最近在思考 Web 开发者相别与其它种类开发者能力的区别的问题。固然所有程序员都应当有足够的(1)学习能力(2)沟通协作能力(3)工程管理能力以及(4)对技术高效运用的能力等通用能力。
但 web 开发人员一定有一些不同于其它程序员的能力要求。我认为应当分为以下两个部分:
一,对业务的深刻理解以及写出维护性足够高的代码,这一点是所有应用开发者都该具备的。
1)对业务的理解简单的说说:一是学习其它开源项目的做法,比如做电商网站的时候可以借鉴 Spree 的数据库结构、API、业务流程。第二就是在同类项目中有丰富的业务经验上的积累,这个只能靠时间和经验累积。
2)写出可维护性足够高的代码,可维护性包括拓展性好和可读性好,这建立在三个前提之下:第一是有足够的编程经验,这个不用说了,第二是对诸多编程范式、设计原则或抽象模式有自己的理解,第三是对业务本身有足够的理解。
二,web 架构的选择和优化能力
1)会做技术选型,一是看其它同类业务的应用架构怎么做的,适不适合我们团队,二是列出团队最关注的几项技术指标:比如开发效率、性能、容不容易学习或招聘等,然后居中权衡。
2)架构优化,做好选型,开发到某个阶段的时候需要做优化,这时候需要对 web 涉及到的所有技术做粗浅的了解。分析性能瓶颈:
请大家补充或建议。