避免这些常见的编码习惯,会让我们的工作更轻松、软件更安全且更易于扩展。
帕雷托法则明确指出,20%的因导致80%的果。又称为80-20法则,它适用于几乎每一个需要人作为劳动主体的相关领域。
在软件开发领域,这个法则可以概括为,大多数的问题都是由少数不良编码习惯造成的。改变这些习惯,你会更有效率。
10个对开发项目有害的编程习惯
下面讲讲最要不得的10条编码习惯:
1.拼写错误
让我特别讶异的是,为什么大家明知这个习惯百害而无一利,竟然还是任其在代码中肆虐横行,以致于经常出现拼写错误的变量名和函数名。更加悲剧
的是,错误的拼写常常隐蔽得很好,很难发现。
至于解决方法,可以在一个良好的集成开发环境(IDE)上写代码,或者干脆用程序员专用的文本编辑器,这些都可以显著减少拼写错误。还可以选择特
定 的变量名和函数名,一方面容易拼写,另一方面即便写错了也能轻易发现。尽量避免使用很容易拼错的单词,例如“receive”,很容易拼写成
“recieve”。
2.未按规定格式写代码
缩进和格式化,能让我们的代码一目了然、易于理解,有什么错误也能一览无余。而且也方便别人理解和维护。
如果你使用的是不会自动格式化代码的IDE,那么可以考虑使用代码美化软件,如Uncrustify,这个软件允许用户自定义格式要求,然后它会一丝不苟地
执行。
3.未按规定模块化编写代码
一个函数对应一个指令的习惯相当好,因为简短所以易于理解和维护。长函数实现的可能路径太多,所以测试起来就特别麻烦。
第一个规范原则:一个函数最多只能占一显示屏的空间。第二个:如果有10个以上的if语句或者循环语句,那么你就可以考虑重写了。
4.过度依赖IDE
毫无疑问,IDE和其他一些工具能让你的代码写得又快又好。在一定范围内它们能提供变量和其他很多东西,给出你想要输入内容的多种选择提示。但是
这 种类型的工具也存在着风险——如果你不能保证自己有火眼金睛,那么很容易误选相似的变量名。从本质上说,这类工具替代了人的一部分思维,但
实际上这是你自 己的责任。
工具的确是我们的好帮手,例如可以消除拼写错误,以及提高工作效率等,但是如果你自己不仔细的话,同样会有写错代码的问题出现。
5.使用硬编码的密码
很多人倾向于硬编码一个秘密帐户和密码,这样之后就可以自由进入系统。但是这是不对的——没错,这于你而言的确是大大的方便了,但同时这也大
大方便了别人去访问你的源代码。
究其原因在于,硬编码的代码比你想象的还要脆弱,这就使得它成为了一个巨大的安全隐患,而且还是一个很不好修复的安全隐患。
6.没有采取良好的加密手段保护数据
敏感数据在互联网上传输时是需要加密的,因为在这个过程中它很有可能被拦截。不要抱怨麻烦,这是最基本的安全要求。
这也意味着以明文形式发送数据是不被认可的,同时也排除了我们使用自己的加密方式和混淆目标的措施。写安全加密系统是很难的——看看wep的情况
就知道了——所以我们不妨使用经过验证的标准加密库。
7.过早优化代码
Donald Knuth,一位传奇的程序员,曾经说过,“程序员将太多的时间花在了思考和担忧程序非紧要部分的进度问题上,因为这些举措反而对效率产生
了强烈的负面影响,如果还同时要考虑到调试和维护的话,那么影响更甚。”
善于写代码的程序员的确能让代码跑得更快更顺畅,但是后期调试和维护相反则会变难。提供一个好策略:清清楚楚地写好代码之后,再去找真正需要
优化的地方以提高性能。
8.没有超前的思想
项目的目标是什么?预计规模有多大?会有多少用户,运行速度得有多快?这些问题乍一看上去好像和我们程序员没啥关系——但是,如果不好好思考
这些问题,我们怎么能正确选择开发应用程序的框架,以满足这些要求?
Twitter在这方面就有因为低估未来需求而失败的例子,导致其最终不得不放弃Ruby on Rails,并且重写了很多使用Scala和其他技术的代码,这是因为
原先用于架构的Ruby代码,根本跟不上Twitter的快速增长的用户群。
9.以为增加人手就能加快进度
几乎所有的软件项目都会落后于计划。有人会说,人多力量大,落后了那我添加人手不就能跟上进度了吗?听上去挺美的,但事实却是,几乎所有的项
目在增加“新鲜血液”之后都发生了“凝血反应”——整体效率不升反降。
10.知错不改,错上加错
接上面第9点,有人会说,既然不能添加人手,那我死命赶进度总可以了吧。我奉劝一句,不要抱这种幻想。如果你远远落后于计划时间,那说明本身你
对项目的预估时间就是错的。不要盲目地坚持将错就错,还是早点对项目时间做新的估计吧。
译文链接:http://www.codeceo.com/article/10-bad-coding-break-project.html
英文原文:10 Bad Coding Practices That Wreck Software Development Projects
分享到:
相关推荐
以下是对标题和描述中提到的四个有害Java编程习惯的详细解释和改进建议: 1. **变量命名没有区分** 不同类型的变量(局域变量、参数、字段)使用相同的命名约定,使得阅读代码时难以快速辨别它们的用途。建议采用...
【编程习惯 No. 1:使用 `goto`】 在编程界,`goto` 语句一直备受争议。反对者认为它可能导致不可预测的控制流,产生难以理解和维护的“意大利面条式代码”。然而,著名计算机科学家 Edsger Dijkstra 在论文《Goto ...
5. **BASIC语言的影响**:Dijkstra认为学习BASIC可能会使程序员形成不良的编程习惯,这表明他对编程语言设计和教学方法的批评,以及对培养良好编程习惯的重视。 6. **语言设计的智慧**:Dijkstra用钝斧子削铅笔的...
《易语言源码保护眼睛桌面源码》是一个基于易语言编程的项目,旨在提供一种桌面应用,以减轻长时间使用电脑对眼睛的疲劳。这个源码的亮点在于它关注了用户的健康,尤其是对于那些长时间面对电脑屏幕的用户。下面将...
5. **代码结构与可维护性**: 保持代码整洁,遵循良好的编程习惯,以便于后续的维护和升级。 通过这个通用多文件ASP上传组件,开发者可以快速实现文件上传功能,同时也可以借鉴其设计思路,提升自己的ASP编程技能。...
同时,良好的编程习惯和错误调试能力也是必不可少的。项目完成后,他们不仅可以提升硬件和软件的综合技能,还能对环境监测有深入的理解,这在物联网(IoT)和智能家居等领域具有广泛的应用前景。 总之,“湿湿度+...
6. **答辩PPT**:这可能包含了开发者对项目的概述、设计思路、技术实现、市场前景分析等内容,是开发者向教师和同学们展示项目的重要材料。 7. **学习心得**:开发者在开发过程中遇到的问题、解决办法、学习收获等...
在这个项目中,一个智能污染控制装置被设计并安装在车辆的排气口附近,它能够实时监测燃油的使用效率,并在检测到用户驾驶行为导致燃油浪费和排放增加时,及时向用户发出警告,从而提醒用户改善驾驶习惯,降低对环境...
成为一名优秀的程序员不仅仅是掌握编程技巧,更重要的是具备良好的编程习惯、不断学习新知识和技术的能力,以及对软件质量的不懈追求。优秀的程序员能够通过实践经验积累,不断提高自己的专业水平,并为团队带来正面...
我-项目开发”暗示了一个与智能口罩相关的创新项目,可能是通过集成技术来提升传统口罩的功能。这个项目可能旨在提高个人健康护理的水平,利用现代电子技术和物联网(IoT)来监测和改善用户的生活质量。 描述中...
同时,遵循良好的编程习惯,如错误处理和日志记录,可以使工具类更加健壮和易维护。 总结起来,这两个网页工具类为处理HTML、验证用户输入以及提取网页数据提供了便利。它们不仅简化了常见的Web开发任务,还通过其...
此外,良好的编程习惯和注释能提高代码的可读性和可维护性。 总的来说,这个压缩包提供的资料可以作为学习单片机开发和C/C++编程的实例,通过阅读和分析"Initial.c"的代码,我们可以了解到如何用C/C++编写一个实际...
4. **do good to/do harm to** - 正确的编程实践"有利于"代码质量,而不良习惯则"有害"。 以上词汇和短语在IT领域都有其独特的含义和应用,理解和掌握它们能帮助我们更好地沟通、学习和解决问题。
1. **蓝光过滤**:通常,护眼灯会采用特殊的LED灯源,这些LED灯经过特殊处理,减少了有害的蓝光成分,以降低对眼睛的损害。 2. **亮度调节**:通过微控制器控制LED的亮度,用户可以根据环境光线和个人需求进行调整...
1. **需求分析**:首先,需要了解校园垃圾分类的需求,包括不同类型的垃圾(如可回收物、厨余垃圾、有害垃圾和其他垃圾)、垃圾投放点的位置、收集频率以及学生、教职员工的使用习惯等。这一步骤将为后续的设计和...
这款应用程序可以作为一个强大的个人发展工具,帮助用户监控和改进日常生活中的习惯,同时提供自测功能,让用户能够对自己的进步进行评估。 首先,让我们深入了解一下树莓派。树莓派是一种基于Linux的微型电脑,其...
Dijkstra”是计算机科学界的传奇人物,他的工作影响了编程语言理论、数据结构和算法分析等领域,如提到的“Goto语句有害”就是一个非常有名的名言,强调了编程中应该避免无条件跳转的编程习惯。Dijkstra还提出了...
另一方面,项目管理上的压力,如紧张的迭代周期和功能需求的频繁变动,使得开发人员往往更加注重满足短期功能需求,而忽视了代码的长期质量和可维护性。 烂代码的后果是多方面的。首先,它直接影响到软件项目的维护...
标题 "Recycling-Bins-for-School-and-home" 暗示了这个项目是关于在学校和家庭环境...总的来说,这个项目结合了教育和科技,通过JavaScript技术来提升公众对垃圾分类的认识,对于培养年轻一代的环保习惯具有重要意义。