软件质量,不但依赖于架构,设计以及项目管理,而且与代码质量紧密相关。这一点,无论使用什么开发技术,都不得不承认。代码是程序员沟通最直接的手段,代码是技术交流的手段,代码是需求交流的途径。如今我们落地,找回软件的本源,彻彻底底看清代码、深入思考代码。那些一流的研发中心非常重视代码,Facebook就有经典的Code wins arguments(代码赢得争论)。在Facebook 做 code review时间大约占50%,管理者对代码质量负有一定责任,甚至代码质量高于一切:Facebook Code review是重点KPI考核的对象,实行连坐制。但是我们的管理者经常听到开发人员这样抱怨:软件代码一团糟,就像纸糊的老虎,根本应付不了持续增加的用户需求。当他们重写代码的过程中,用户无法看到产品的任何改进,管理者眼睁睁看着用户投奔竞争对手,而这个时候,竞争对手恰恰在不断地改进产品。
我们研发人员有一个理念“代码是债务而不是资产”。最开始,团队会编写代码,做出产品,并用它来赚钱,但是,之后团队应该尽可能地寻找减少代码的方法和使代码尽量整洁,从而降低成本。软件界有一个真理,拥有的代码越多,维护代码所要付出的成本就越高。如果代码结构越好,做了越多的单元测试,代码质量越好、越小、耦合越松,那么添加新代码所需要付出的成本就越少。因此大师 Craig Larman说: “最好维护的代码就是没有代码,好的程序员的代码产量是负的,因为他通过减少代码来增加功能”。对比现实中,很多人以为,LOC(line of code)越多的feature越大,写LOC越多的程序员越有实力。这其实是极其错误的观念。
因此我们必须有全面的管理制度让我们保持代码少而整洁。Michael Feathers认为"未来属于知道如何有策略地删除代码的公司”。持有代码的成本要比我们想象的大。意识到这一点的公司更具有竞争优势。
课程收益
1.切实帮助软件企业降低企业项目开发成本,大面积提高软件工程师编程能力和代码质量管理能力;
2.初级工程师能够从大师的视角来看待编程,了解编程的价值观和原则;
3.具有丰富经验的设计师和架构师可以通过实现模式进行反思,探究成功实践背后的意义,把价值观,原则和开发实践结合;
4.管理者通过学习业界著名研发中心的管理经验和失败的教训,来制定自己公司的代码管理策略;
5.质量管理相关人员学习如何定制代码质量指标,通过哪些工具进行监控,怎样管理代码质量。



京ICP备2022035414号-1