关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » 程序人生 »10个对开发项目有害的编程习惯

    10个对开发项目有害的编程习惯

    2014-09-23 00:00:00 出处:segmentfault
    分享

    避免这些常见的编码习惯,会让我们的工作更轻松、软件更安全且更易于扩展。

    帕雷托法则明确指出,20%的因导致80%的果。又称为80-20法则,它适用于几乎每一个需要人作为劳动主体的相关领域。

    在软件开发领域,这个法则可以概括为,大多数的问题都是由少数不良编码习惯造成的。改变这些习惯,你会更有效率。

    下面讲讲最要不得的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点,有人会说,既然不能添加人手,那我死命赶进度总可以了吧。我奉劝一句,不要抱这种幻想。要是你远远落后于计划时间,那说明本身你对项目的预估时间就是错的。不要盲目地坚持将错就错,还是早点对项目时间做新的估计吧。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    25 年第三季度 NAND Flash 合约价格预计将上涨 5-10%

    亚马逊网络服务 (AWS) 已裁员数百人

    邦彦邦彦云PC”新一代云上真机解决方案重磅亮相

    苹果Mac book产品线未来两年大升级:M5、M6系列芯片来袭

    净网—2025|代抢?录入?小心 “票圈陷阱”!

    脱下皮衣,英伟达 CEO 黄仁勋穿唐装亮相中国国际供应链促进博览会

    ATTO360 Storage 软件通过单一智能平台重新定义存储管理

    DigitalOcean 推出 DigitalOcean Gradient AI 平台

    网传华为盘古大模型疑似抄袭通义千问,盘古团队否认

    IDC预测:2028年中国安全智能体相关应用市场的规模将激增至16亿美元,年复合增长率230%

    IT头条

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    严重缩水!NVIDIA将推中国特供RTX 5090 DD:只剩24GB显存

    00:17

    技术分享

    在windows 7桌面右键菜单上添加直接卸载USB设备的快捷菜单选项

    12个Java长久占居主要地位的原因

    SQL Server创建数据库的命令

    SQL Server 带列名导出到excel的实际操作

    MySQL字符串连接函数repeat()

    使用SQL Server日志转移实现高可用性

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。