本来是想写最近看到的大型网站的发展演化之路,写着写着就跑偏了,后来就索性抹掉,重新动笔写了这篇。
作为一介码农,我想我是幸运的,从实习至今,我大致看到并经历过不同规模的网站或产品的开发,小到两个人就能撑起一个网站,大到需要和来自不同国家的团队一起合作完成产品开发。产品质量有好有坏,但是开发模式很难评出最优,只能说适合的就是最好的。
小型项目
开发规模
2人左右(其实一个人也可以)
需求
需求确定流程较为简单。因为都是用一套框架做东西,用户群体单一,功能变化不多。所以在项目初期和用户谈好,没有特殊需求,基本就能按照原有的逻辑完成开发。
开发
因为开发模式和流程相对固定,所以不太重视写文档。即使有文档,也可能是存在张三的c盘,张三装个系统,文档就没了,张三离职了,文档也没了,张三自己忘记放哪了,文档还是没了。但是只要项目组老大不走或者自己在项目中干过一段时间,对于项目的逻辑也就比较清楚。
敲代码之前,比较重视的是表结构设计,因为和以往的项目业务流程相似,所以侧重点放在表结构上面。一旦设计好表,基本就可以大刀阔斧的编写代码了。
测试
测试人员就是开发人员,开发人员就是测试人员。自己写过的代码自己做主,测不测由你,出事了有锅就由不得你了,你得来背。但是因为业务流程比较固定,所以出问题的概率较小,这样的小型项目,一般用户也不是很多,相对来说即使出了问题也不是十万火急,有比较充足的时间让你修复。
部署
结合上面再补充下,测试人员即开发人员,开发人员即部署人员。你只需要拷贝出你修复bug后的代码(class文件或者html又或是js文件)放到服务器上(也就是一台电脑),然后重启tomcat。OK,那么你就完成了部署。
中型项目
开发规模
5~10人
根据公司的项目管理制度来决定。有的是一个大组共同开发,也有是将大组在拆分为小组,分别负责相应模块的开发。
需求
需求不再是仅仅由开发人员来对接,一般会有商务法务等角色介入,因为一个项目最终决定是否做,需要从各个角度来考量。不再像小型公司的小型项目都是千篇一律,中型项目具有一定的灵活性,特殊性和扩展性。
经过商务等需求的初步确定,需要内部沟通产品经理和开发团队,对项目的可行性以及项目周期完成评估。最终开发团队将任务拆分为可执行的小任务进行开发。
开发
鉴于中型项目一般拥有相对较大的用户量以及异常激烈的竞争环境,所以开发新功能和业务功能增强较多。开发前要考虑的问题比较多,比如对老接口的向后兼容,对数据库数据对缓存的影响等等。所以,文档显得比较重要,包括接口文档和设计文档。开发人员会先设计文档,其中包括业务流程设计,数据库设计,接口设计和对接等。之后会按照设计文档与多人完成功能开发。
测试
一般团队会配备测试,但是数量不多,仍以开发为主,开发人员往往兼职测试人员。开发人员能够自己完成单元测试,也可以和其他开发人员完成集成测试,还有专业测试人员的补充测试。当然,这个测试流程仍然不规范,但是快节奏的开发和迭代很少能给出充裕的测试时间,尤其是互联网企业。
部署
部署细节不详。但是起码从这里就可以看出比小型项目要谨慎和专业。作为开发人员的我们不再参与部署事宜,我们的最后一道工序就是上线,将写好或者改好的代码上线,之后有相应专业人士配域名和分配主机等等操作最终将项目部署到云端让用户可以访问网站或者使用产品。
大型项目
开发规模
10人以上(人数也不是评价项目规模的决