只有真正体验到必须使用某项技术时才开始使用某项技术,那么这时才不会发生只是形式化地使用技术,因为此时当事人已经真正理解了这项技术的实质含义,并且才不会误用技术或者产生对技术的使用不当。
如,对于软件开发中的代码修订历史记录的文档化,也许很多人认为只有大公司这才是必要的。但是,其实如果没有对此项技术的使用,那么就有可能会影响到我们对软件项目架构的设计。
假设 A 在项目开发中负责数据访问层(Data Access Layer,DAL)及数据实体层(Data Entity、Model)的开发。在开发中,由于各种原因,Model的结构经常有所改变,这也影响到了 DAL 的代码。过了一段时间 A 开始感到由于经常性的改变,代码开始变得越来越难以维护,有些地方已经出现“坏味道”和“臭味”代码了,而且由此也伴随来了功能间关系错综复杂、代码难以控制、Bug 似乎任何地方都可能出现等状况。于是 A 就开始认为 Model 层需要设计得足够可以扩充和冗余,要尽量修改最小。这似乎是正确的,但由于冗余设计,伴随而来是出现了性能问题,如果再加上对软件开发架构搭建理论结合实际的认识不足,对实际技术掌握的不足,可能又出现了其它情况。但如果从一开始代码发生改变起就做好代码修订的的记录、项目架构关系图的记录,那么情况可能就会好很多,再加上“重构”技术的使用、项目健康度的把握和控制、一开始就良好的设计、客户需求的真正理解等,也许 A 就不会有“冗余设计”的思想了!这就是真正体验及理解技术的重要性!