造成代码难以维护的35个恶习

简介:

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

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

代码组织

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

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

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

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

5.使用无意义的命名。

6.忽略经过验证的最佳实践(例如代码审核、TDD、AQ、自动化部署等,推荐阅读软件开发必读经典著作: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.忽略其他非功能性需求。(例如安全和性能,准备一份这方面的清单,忽略这些会毁掉你的所有成果)

本文转自d1net(转载)

相关文章
|
机器学习/深度学习 存储 人工智能
极智AI | 一文看懂Google TPU脉动阵列加速卷积计算原理
本教程详细解释了 Google TPU 脉动阵列加速卷积计算原理。
2614 0
|
传感器 运维 网络协议
Modbus故障码速查手册(故障码含义、分析原因、详细解读)
当涉及到Modbus通信协议的故障排查和调试时,速查手册是一项极为重要的资源。了解故障码及其含义能够帮助工程师在通信问题出现时迅速定位和解决相关故障。 本篇文章旨在为读者提供一个方便快速查阅的资源,以便快速获取有关Modbus通信中可能出现的故障码的信息。通过仔细研究这些故障码,读者可以更有效地诊断和解决通信问题,减少故障排查的时间。
5445 0
|
11天前
|
数据采集 人工智能 安全
|
6天前
|
机器学习/深度学习 人工智能 前端开发
构建AI智能体:七十、小树成林,聚沙成塔:随机森林与大模型的协同进化
随机森林是一种基于决策树的集成学习算法,通过构建多棵决策树并结合它们的预测结果来提高准确性和稳定性。其核心思想包括两个随机性:Bootstrap采样(每棵树使用不同的训练子集)和特征随机选择(每棵树分裂时只考虑部分特征)。这种方法能有效处理大规模高维数据,避免过拟合,并评估特征重要性。随机森林的超参数如树的数量、最大深度等可通过网格搜索优化。该算法兼具强大预测能力和工程化优势,是机器学习中的常用基础模型。
331 164
|
5天前
|
机器学习/深度学习 自然语言处理 机器人
阿里云百炼大模型赋能|打造企业级电话智能体与智能呼叫中心完整方案
畅信达基于阿里云百炼大模型推出MVB2000V5智能呼叫中心方案,融合LLM与MRCP+WebSocket技术,实现语音识别率超95%、低延迟交互。通过电话智能体与座席助手协同,自动化处理80%咨询,降本增效显著,适配金融、电商、医疗等多行业场景。
334 155