tl;dr
Atomistic Approach
- Break things down into the smallest reasonable units
- Ask: What does this thing do? What are the relationships with other units?
Holistic Approach
- Break things down into the biggest reasonable units
- Ask: What does this unit do? What are the relationships with other units?
Combination of Both Approaches is Usually the Best
Atomistic
These are the two ways of thinking about something:
In the Atomistic Approach, you break things down into smaller components, trying to explain them and understand their relationships with other components. This approach is widely understood and commonly used. It involves breaking things down into the smallest reasonable units. The term "reasonable" is crucial here, signifying a unit that is small but still meaningful for the intended purpose. For example, thinking about a function as a unit makes more sense than breaking it down into each line of code. Questions about the unit arise:
- What does the unit do?
- What are the relationships with other units?
Holistic
The Holistic Approach is the opposite. It involves breaking things down into the biggest units and then relating these big units to answer the same questions. For example, consider what an entire module/file/class does and how it relates to others. You could even think about what an entire app does and how it relates to other apps.
Combination of Both Approaches is Usually the Best
Typically, a combination of both Atomistic and Holistic approaches yields the best results. Start with a Holistic view, then progressively break down the units into smaller components.
Top comments (0)