如果作为一个库设计者的话, 感觉总体遵守
接口易用性优先 (底层实现可以复杂, 但接口要尽可能的易用和理解 区分内部接口和外部接口, 最小集合暴露给使用者谷歌有个C++风格指导: https://google.github.io/styleguide/cppguide.html
在了解到一个项目如何架构和设计后, 又要回到现实 - 根据当下情况和目标, 对项目做出合适的架构, 而不要过渡设计, 因为每个项目都有他发展的时间段, 每个时期, 目标不同
例如: 对于要快速能用或上线的MVP, 目标是能用就行, 反而没有太多设计就是好的设计