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

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » 程序人生 »优秀程序员是如何处理糟糕代码的

    优秀程序员是如何处理糟糕代码的

    2015-08-29 00:00:00 出处:ITJS
    分享

    可能你一行不好的代码也从来没有写过。这是有可能的,但在现实中又不太可能。

    现实情况是,和这个星球上的其他所有程序员一样,你会产出安全漏洞、UI元素偏移,等等等等的代码。这并不能说明你是一个不好的开发人员。只是因为你是人类而已——一种不可避免会犯错的生物。

    正是这种每个开发人员都有的“人性”缺陷,驱使那些优秀的开发人员敢于承担代码和底层基础架构的不足,有准备有计划地行动。下面是他们将做的事情。

    假设

    几年前,Netflix开源了Chaos Monkey和Simian Army的其他部分(Simian Army是一套工具,用来管理基于云的软件)。从本质上说,Chaos Monkey的范围贯穿亚马逊Web服务的基础设施,能够随意终止实例。从根本上说,它是一种通过创建最坏的可能方案来做最坏打算的方法。

    正如Netflix的Cory Bennett和Ariel Tseitlin于发行之时在博客上这样写道,“代码会失败,并且你越不希望失败或一点也没有准备的时候,反而更加不可避免会出现故障。要是你的应用程序不能容忍实例故障,那么你是愿意凌晨3点被召唤呢还是在办公室里通宵?”

    使用不可预测的方式来模拟故障,Netflix强迫注重基础设施的弹性。与其假设最佳的情形,还不如做一个最坏的打算。这样我们就能愉快地进入下一个进程了。

    测试

    上面我们说了一个提高基础设施的伟大方法,那么代码呢?

    Jeff Atwood,一个程序员的答案是:“你需要折腾你的代码。”他写道:

    我相信,每个专业程序员职业生涯的一个关键转折点,就在当你意识到你才是自己最大的敌人,以及减轻这种威胁的唯一办法就是接受它的时候。将自己当作最大的敌人。打破你的用户界面。打破你的代码。折腾你的软件。

    在实践中,这意味着“程序员至少需要对常见错误有一定的了解,可是,很多程序员往往不会这么去做,甚至是反着来。”这意味着你作为“编程之神”的责任也包括成为“测试之神”,通过“折腾”代码积极地来消除里面的错误。

    Andre Medeiros补充认为我们应该对调试“精益求精”,因为开发人员需要对他们的代码做更多的事情。

    “为了防止bug,你写出来的代码得让任何程序员都觉得简单。为了修复bug,你得理解你的代码。为了精密地了解代码,你需要列举和验证你的假设,要是有必要,你还需要构建调试工具。”

    贫民窟上的摩天大楼

    当然,对于我们的代码,其最大的问题之一是,它继承了如此多其他的代码。特别是在已建立的企业中,我们常常构建在旧代码上,从而导致了各种后续延伸问题。

    以下是Zeynep Tufekci的精彩描述:

    将它比喻成造房子的话——也就说你将要在已经造好的底层基础上造二楼。但房子一开始造的时候并没有造好,没有打好地基,你也不知道哪面是承重墙。你只能尽可能地去猜,然后造好了一个楼层——用你的手指。然后你接着这样做。很多旧但控制着基础设施关键部分的软件系统就是这样运行的。在某一段时间内它也的确是可以工作,但每一个新楼层的建造意味着增加了更多的漏洞。我们正在代码中建设贫民窟上的摩天大楼——而且,还在地震区。

    很显然,我们对于改善这种情况束手无策,除非我们能够致力于去除技术债务。

    但也许,只是也许,在心甘情愿折腾代码的过程中,你会发现消除技术债务是如此之重要。

    上一篇返回首页 下一篇

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

    别人在看

    Cloudflare 收购了 Human Native, 推动AI 数据市场发展

    数据泄露?半导体光刻设备巨头ASML官方否认被黑客攻击

    2025年全球半导体市场排名揭晓,英伟达遥遥领先

    全球最大资管贝莱德展望2026:看衰美国经济,看好加密货币,认为AI继续主导市场

    每位求职者面试时都应准备好回答的AI问题

    曾经风靡全球的扫地机器人“鼻祖” iRobot 倒闭

    摩根大通第四季度展望背景:驾驭人工智能驱动的增长、监管风险与市场分歧预测

    SIOS 发布 LifeKeeper v10 ,引入网页版统一控制台

    2026年1月1日起,这些新法新规正式施行,对我们的生活和工作有直接影响

    云存储公司 Wasabi 推出 Covert Copy隐蔽复制功能,防勒索软件储存解决方案

    IT头条

    马斯克2026最新采访总结:2040年,全球机器人数量将突破100亿台

    23:52

    专家解读|规范人工智能前沿业态健康发展的新探索:解读《人工智能拟人化互动服务管理暂行办法》

    00:54

    用至强 6高存力搞定MoE卸载!

    17:53

    美国将允许英伟达向中国“经批准的客户”出售H200 GPU

    02:08

    苹果与微信就15%手续费达成一致?腾讯未置可否

    22:00

    技术分享

    PHP 和 Node.js 的10项对比挑战

    Javascript闭包深入解析及实现方法

    windows 7、windows 8.1手动增加右键菜单功能技巧

    MYSQL出错代码大汇总

    windows 7假死机怎么办 windows 7系统假死机的原因以及解决方法

    Ubuntu(Linux)下配置IP地址的方法

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

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