一个项目的开发,从简单到复杂。从一个人搭建,到随着项目的扩大,多个人开发和维护。随着项目越来越大,项目变得不可能一个人弄懂所有的功能、逻辑和使用的框架。
而这会让人越来越害怕,哪怕是SE也不一定或者不应该弄懂其中所有的逻辑。道理很简单,人的精力和记忆是有限的,而项目的扩展是无限的。这正如一个公司的组织架构。公司创业的时候,老板认识所有的人,慢慢的产生了组长,部门经理,总监,副总裁,总裁,董事长。
其实随着项目的变大,各个人员角色也需要抽象,往更高层的方向去管理。这不是说开发一定要去做管理,也不是说管理的技能或者薪水一定要高于开发,而是从角色角度去设定的。好像联合国秘书长不会比国家总统更高一样的道理。
比如组长专注于于iOS,andriod项目的总体架构,git方案,review,使用的方案,如rxswift,组件化架构,打包渠道架构这些方面的考量和规划。而具体开发人员专注于各个负责模块的功能。
随着各个功能的扩展呢,可能一个开发人员也不一定能够维护该模块的所有的代码,这时就需要另外一个层面的抽象。就是代码层面的抽象。我们的开发过程应该随着项目的扩展,慢慢从功能层面转如到小功能模块层面,慢慢抽象一些底层的小模块的封装。通过Api的形式去调用这些小模块,各个小模块去扩展和实现这些Api. 这些Api可以有子模块定义,也可以由调用方定义。这取决于具体情况。如果是调用方定义,那么可以定义为一个协议(接口)。
用代码界比较NB的话来说,没有什么问题不是添加一个中间层不可以解决的。是啊,代码的开发过程就是不断的造轮子,固化一些层面的轮子,然后上面加一层适配,再固化,再加一层适配的过程。
网友评论