我的帮人改代码经历中 ,发现外包项目大概有如下一些典型特征:没有设计模式,不用框架, web 目录下和配置文件下永远有无数的复件,代码永远有不明不白的注释或者干脆毫无注释,缩进没有任何规范,变量名几乎都是拼音和英文混合,或者 m123 , a789 , aa , bb , test1 这样的标识名,或者因为代码改了很多次,很多类文件的命名已经和类实际的功能不相符了,比如说本来最开始就一个 mysql.class.php ,结果因为功能一改再改,这个类文件名不仅仅是 sql 操作了,还多了好多其他的操作,但是因为没有用框架,最开始已经有很多地方 include 了这个 mysql.class.php ,因此只好直接在这个类文件里面加其他功能了。 综上所述:外包公司大部分都是生产垃圾代码的地方,也是一个培养只追求功能凑合能用,不追求代码质量,不理会代码安全(我看的这个项目,居然是直接拼接 sql 字符串,不过还好他集成的环境是 php5.2 , GPC 魔术引号是默认开启状态所以很多注入方法用不了,而且网上流传的 ['or 1=1 #] 这个万能密码我用不了不知道是怎么回事,不过据说在字符串为 GBK 宽字节编码的情况下仍然有绕过方案),也不会考虑以后要怎么改,功能要怎么加的程序员出来的地方。 解决方案: IT 培训机构和高等教育学府中的相关专业注重代码质量,关注代码规范性,教科书以身作则不要图省事用 abc 这种变量名(没错我说的就是谭浩强老爷子系列的书),加强设计模式的教育,给从事相关行业的产品经理和项目经理科普一下设计模式的必要性(对客户来说,重构或者规范化编码不会给他们带来好处,但是会增加程序员的人力成本,所以客户不愿意为重构买单,但是相反对程序员就不一样了,因此加强科普不是我在开玩笑,这是真的需要)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.