劃分 software components 的指導原則 -- From Clojure Applied
We separate our code into components for several reasons:
- reuse of generic components within an application
- dividing development within a team
- dividing development within a structure that allows us to think about only part of the problem at a time
Guidelines to group code together to separate software components:
- the functions work on the same kind of data
- the data has a common scope or lifetime
- the likelihood of change from external requirements is similar
- the resources needed are similar