1. 基本没有重复的代码
2. 独立的模块,单元测试,迫使结构走向高内聚,低耦合的状态。
另外一个,说不上是失败的系统,但是有一些特点是明显需要改进的地方:
1. 对新成员,没有完整的系统结构文档可以理解
2. 对于一个MVC式的结构,数据传递要经过很多层,特别是底层处理部分,新成员一般了解不到。如果一个模块没有完整的系统结构说明,开发人员需要很久才能完整的了解这个模块。
开发人员一般容易被一些类图累到,而容易忽视底层或外在的数据/控制流向。
3. 重复的代码随意可见,为了及时完成业务逻辑,相同的代码被复制粘贴。造成比较严重的技术债务。