项目开发过程中论“面向接口编程”的重要性
刚刚领导了一轮新项目开发,在开发过程中至始至终坚持“面向接口编程”的原则,并基于此原则进行分工合作,最终较高质量的完成了代码编写过程。总结项目过程,深味面向接口编程思想的重要性,个中滋味与君分享。
面向接口编程的好处之一是,可以站在全局角度俯瞰项目架构,对项目需求有更深层次的理解。往常我们只归纳项目流程以及设计对象,但是对于接口的设计没有提前,算是做到哪再想有哪些接口,这样很有可能会在没有完全理解整体需求的情况下就开动,造成了后期调试的麻烦和返工。
面向接口编程的另一个好处是,从横向将项目切割成一个一个的剖面,特别适合现在分层比较复杂且各层权责分明的项目架构。各层之间的交互关心的其实是接口定义得如何,事先将接口确定下来,可以是项目骨架趋于稳定,也可以降低开发中的风险和不可测。
面向接口编程还有一个好处是,使team leader能更好地把控项目的开发节奏。在分工阶段,既可以按照功能模块和功能点分工,也可以按照层次之间进行分工。例如,之前的项目开发中,曾经尝试过让不同人分别负责前端页面和后端服务开发,由于事先未定义好彼此间交互和通信的接口,并行开发到联调阶段发现,双方对于各自所需差异很大,联调耗时甚至比开发时间还长,得不偿失。而事先定义好接口,甚至细化到url和接口的命名,参数和返回的类型,则大大缩短了联调的时间,最终联调时间仅占开发时间的五分之一不到,效果明显。在单元测试阶段,由于接口固定,可以将各层的单元测试提前写好,节省了开发时间。
通过实际项目开发的实践,以及对过往项目开发的总结,可以深切体会到面向接口编程这种思想的好处。接口者,通信协议也。项目间协作和配合完全靠一个个清晰简约的接口实现。沿着这些接口的脉络,能更好地提高团队开发效率,促进团队进步。