开发效率低下?造成代码难以维护的 35 个恶习

简介:

《人月神话》出版以来,IT行业的科技公司们一直苦苦追寻传说中以一当十的超级程序员,最新的研究表明确实存在这样一小撮效率奇高的“程序金刚”,但是一位普通程序猿如何能够蜕变成代码金刚呢?

近日web开发专家Christian Maioli总结了导致程序猿效率低下,代码像意大利面条一样难以维护的35条恶习(归为代码组织、团队工作、写代码、测试与维护四大类)。

代码组织

1.总是说“一会弄好”,但从来不兑现。(缺乏任务管理和时间管理能力)

2.坚持所谓的高效、优雅的“一行代码流”,事实上,可读性才是最重要的,聪明是第二位的。

3.无意义的优化。(类似网页大小之类的优化最后再做)

4.不注重代码样式和风格的严谨。

5.使用无意义的命名。

6.忽略经过验证的最佳实践(例如代码审核、TDD、QA、自动化部署等,推荐阅读软件开发必读经典著作:Making Software:What Really Works,and Why We Believe It)。

7.给自己埋雷。(例如使用不会报错的库或者忽略例外)

团队工作

8.过早放弃计划

9.坚持一个无效的计划

10.总是单打独斗。(必须强迫自己与团队分享进度和想法,避免错觉,提高效率)

11.拒绝书写糟糕的代码。(日程紧迫的时候可以写一些“糟糕”的代码,这是程序员的能力而不是bug,当然,有时间的时候一定要回头偿还“技术债”)

12.抱怨他人。

13.不与团队分享所学。

14.向主管/客户反馈的速度过慢

15.不会充分利用Google

16.看重个人编码风格

17.带着个人情绪看待他人对自己代码的评论和注释

写代码

18.不懂优化策略

19.使用错误的工具。

20.不追求对开发工具和IDE的精熟。

21.忽略报错消息。

22.迷恋称手的开发工具。(不同类型的开发任务需要匹配对应的最佳开发工具,例如Sublime适合动态语言,而Eclipse适合Java,如果你喜欢vim或emacs,并不意味着能用这些工具干所有事)

23.不注重代码中赋值的可配置性。(不养成把代码中的活动部件分离出来的习惯,会导致技术债暴增)

24.喜欢重新发明车轮。

25.盲目地剪切/粘贴代码。

26.应付差事,不求甚解,不花时间搞清楚项目运作的机理。

27.对自己写的代码过度自信。

28.不去考虑每一个设计、方案或者代码库的“副作用”。(一个成功的用例并不意味着“万灵药”)

29.在一个地方卡住了但坚持不呼救。

测试与维护

30.只去写能通过的测试

31.重要项目中忽略性能测试

32.不去核实代码是否真的可用,没有养成开发中及时快速测试的习惯。

33.重大改动延迟推送

34.抛弃和逃避自己的代码。

35.忽略其他非功能性需求。(例如安全和性能,准备一份这方面的清单,忽略这些会毁掉你的所有成果)

本文来自开源中国社区 [http://www.oschina.net]

目录
相关文章
|
2天前
|
算法 Java 测试技术
深入解析白盒测试:提升软件质量与效率的关键
【4月更文挑战第22天】 在软件开发的复杂多变的世界中,保证代码质量和功能的正确性是至关重要的。白盒测试作为一种重要的软件测试方法,提供了一种透视软件内部逻辑结构的途径。本文将详细探讨白盒测试的概念、技术手段和实际应用,旨在帮助读者理解如何通过这种测试提高软件系统的稳定性和性能。文章还将讨论白盒测试中面临的挑战以及应对策略,以期为软件质量保证提供实用的指导。
12 2
|
4月前
|
开发者
浅谈代码优化与过度设计
浅谈代码优化与过度设计
|
10月前
|
安全 搜索推荐 机器人
API接口技术的使用可以增加软件开发和运行的灵活性,降低软件运行和维护的成本
随着科技的发展和互联网的普及,越来越多的公司和企业把业务拓展到互联网上,这就需要用到API接口技术。API(Application Programming Interface,应用程序接口)是指不同软件系统之间进行数据交流和信息共享的一种方式和规范,它通过标准化的接口实现不同系统之间的数据传递和协作,是构建应用和软件的基础。
|
11月前
|
安全 程序员 UED
程序员在软件开发中,业务开发和非业务开发到底哪个工作量更大?
随着互联网的普及和信息化时代的到来,软件开发已经成为了一个非常重要的行业。而在软件开发的过程中,业务开发和非业务开发都是非常重要的环节。那么,在这两个环节中,哪一个工作量更大呢?本文将就此问题简单探讨一下。
130 1
程序员在软件开发中,业务开发和非业务开发到底哪个工作量更大?
|
SQL 缓存 NoSQL
写代码有这16个好习惯,可以减少80%非业务的bug
每一个好习惯都是一笔财富,本文整理了写代码的16个好习惯,每个都很经典,养成这些习惯,可以规避多数非业务的bug!希望对大家有帮助哈,谢谢阅读,加油哦~1. 修改完代码,记得自测一下...
293 0
|
测试技术
软件测试面试题:如何降低自动化维护成本
软件测试面试题:如何降低自动化维护成本
146 0
|
C# 测试技术 JavaScript
最大限度地降低多线程 C# 代码的复杂性
最大限度地降低多线程 C# 代码的复杂性分支或多线程编程是编程时最难最对的事情之一。这是由于它们的并行性质所致,即要求采用与使用单线程的线性编程完全不同的思维模式。对于这个问题,恰当类比就是抛接杂耍表演者,必须在空中抛接多个球,而不要让它们相互干扰。
1599 0
QMutext 项目使用中的效率问题
最近做一个项目,采用Qt开发,在串口通讯采集与转发上要求高效率执行,发现效率不理想, 抛去串口返回响应时间的约束,程序逻辑实现上也花费了较长时间,最后定位在 QMutext为罪魁祸首。
979 0