Best practices for creating reusable visualizations - Tuong-Nguyen/Angular-D3-Cometd GitHub Wiki
It's important to remember that over generalization can be just as bad as under generalization. A good strategy is to always take some time up front to consider if a visualization needs to be generalized. Does the visualization need to be used in multiple places? If the answer is "yes", we should consider to apply following techniques, otherwise, they may unnecessarily over complicate our code