翻译自 Uncle Bob 的 Blog A Mess is not a Technical Debt
主要是鲍勃大叔的观点:混乱的代码实现不是技术债。原文地址见超链接。


The term Technical Debt was created by Ward Cunningham to describe the engineering trade-off’s that software developers and business stakeholders must often make in order to meet schedules and customer expectations. In short, you may need to use suboptimal designs in the short term, because the schedule does not allow longer term designs to be used. As a simple example, your initial website design may need to be frames based because you don’t have time to build an Ajax framework.

技术债务一词由 Ward Cunningham 提出,用于描述软件开发人员和业务利益相关者必须经常做出的工程权衡,以满足交付进度和客户期望。 简而言之,可能需要在短期内使用次优设计,因为时间表不允许使用长期设计。 举个简单的例子,您的初始网站设计可能需要基于框架(frames based),因为您没有时间构建 Ajax 框架。

Clearly this causes a debt. If the customer is looking for a web 2.0 system, then frames just aren’t going to cut it for long. So time is going to have to be carved out of a future schedule to refit the system with an Ajax solution.

显然,这会导致债务。如果客户正在寻找一个 web 2.0 系统,那么框架就不会长期削减它。因此,必须从未来的计划中抽出时间来用 Ajax 解决方案改造系统。

In short, the business has decided that it can afford to delay release 2 in order to accelerate release 1. Is this wise?

简而言之,企业已经决定延迟发布版本 2 以加速发布版本 1。这是明智的吗?

Businesses make this kind of trade-off all the time; and there’s nothing inherently unwise about it. If the early release of 1.0 drives the business that pays for the development of 2.0 then the business has won. So this kind of reasoned technical debt may indeed be appropriate.

企业一直在进行这种权衡;它本身并没有什么不明智的。如果 1.0 的早期发布推动了为 2.0 的开发买单的企业,那么企业就赢了。所以这种合理的技术债可能确实是合适的。

Unfortunately there is another situation that is sometimes called “technical debt” but that is neither reasoned nor wise. A mess.

不幸的是,还有另一种情况有时被称为“技术债”,但这既不合理也不明智。一一一团混乱的代码。

Technical debt may be necessary, but it had also better be clean! If you are going to implement a frames solution instead of an AJAX solution, then make sure that the workmanship of the frames solution is top-notch. Make sure the design is well balanced, and the code is clean. If you make a mess while implementing that frames solution, you’ll never be able to replace it with an AJAX framework. The mess will impede your progress forever.

技术债务可能是必要的,但它也最好是整洁的!如果您要实现框架解决方案而不是AJAX 解决方案,那么请确保框架解决方案的工艺是一流的。确保设计平衡良好,代码整洁。如果您在实现该框架解决方案时弄得一团糟,您将永远无法用AJAX框架替换它。混乱将永远阻碍你的进步。

A mess is not a technical debt. A mess is just a mess. Technical debt decisions are made based on real project constraints. They are risky, but they can be beneficial. The decision to make a mess is never rational, is always based on laziness and unprofessionalism, and has no chance of paying of in the future. A mess is always a loss.

混乱的代码实现不是技术债。混乱的实现只是一团糟糕的代码。技术债务决策是根据实际项目限制做出的。它们是有风险的,但它们可能是(对项目)有益的。让编码混乱的行为永远是不理智的,它永远都是因为(开发者)懒惰和不专业造成的,而且将来你也永远还不清这种债务。混乱永远都是一种错误……

When you buy a house and take on a big mortgage debt, you tighten up all your spending and accounting. You clean up your books and your budgets. You behave with increased discipline. The same is true of technical debt. The more technical debt you take on, the tighter your disciplines need to be. You should do more testing, and more pairing and more refactoring. Technical debt is not a license to make a mess. Technical debt creates the need for even greater cleanliness.

当您购买房屋并承担巨额抵押贷款时,您会收紧所有支出和账户消费。你清理你的订单和你的预算,你表现得更加自律。技术债务也是如此。你承担的技术债务越多,你收紧得就应该越严格。你应该做更多的测试,更多的结对编程和更多的重构。技术债务不是制造混乱的许可证。技术债务创造了对更高整洁度的需求。

When you decide to take on a technical debt, you had better make sure that your code stays squeaky clean. Keeping the system clean is the only way you will pay down that debt.

当您决定承担技术债务时,您最好确保您的代码保持干净整洁。保持系统清洁是偿还债务的唯一方法。

混乱的代码是技术债吗相关推荐

  1. 偿还技术债 - 通过重构拯救老代码

    偿还技术债 - 通过重构拯救老代码 尝试去接管一个陈旧的代码库使他成为达成一个可控的状态?这几年的大型的旧web应用程序开发给了我们如下这些建议. 通过重构去拯救旧代码 松鼠会因为忘记自己把松果放在那 ...

  2. 开源社区的技术债:写代码的“码农”VS 删代码的“清道夫”,谁更该被嘉奖?

    ​ 大数据文摘出品 编译:钱天培,夏雅薇.Aileen 对于开源项目来讲,写新代码的贡献者不一定是好程序员,但不会删代码的程序员一定不是合格的程序员--因为"删代码"才是使开源软件 ...

  3. 代码质量与规范,那些年你欠下的技术债

    提到"质量"二字时,我们的第一反应往往是"有多少BUG?""性能好不好?"这样的问题.我们对软件产品或服务的质量定义看其能不能满足用户的需求 ...

  4. Paper:《Hidden Technical Debt in Machine Learning Systems—机器学习系统中隐藏的技术债》翻译与解读

    Paper:<Hidden Technical Debt in Machine Learning Systems-机器学习系统中隐藏的技术债>翻译与解读 导读:机器学习系统中,隐藏多少技术 ...

  5. 如何领导团队做好技术债管理?

    来源:InfoQ 作者:Csaba Okrona(在 Contentful 担任高级工程经理) 译者:张健欣 策划:褚杏娟 技术债(Technical debt,或 tech debt)在过去几年中成 ...

  6. 为什么不断做迁移,那是在还技术债

    本文来自2018年QCon旧金山大会的演讲,Will Larson谈到Stripe公司的代码剧增后,迁移是有效治理技术债的唯一机制,同时他还介绍了不断迁移的方法. 我是Will Larson.在这里, ...

  7. 被黑客们使用的代码混淆技术

    长久以来,代码混淆技术一直都被认为是不能登大雅之堂的奇巧淫技,没有哪个学者会拿正眼瞧它一眼.国际C语言混乱代码大赛(International Obfuscated C Code Contest,IO ...

  8. Google 顶级论文:机器学习系统,隐藏多少技术债?

    来源: 全球人工智能 概要:随着机器学习(ML)社群持续积累了几年对于活跃系统(live systems)的经验,一种让人不舒服的趋势广泛地浮出水面:研发和部署机器学习系统相对来说是既快速又便宜的,但 ...

  9. 入职阿里5年,他如何破解“技术债”?

    简介: 作者 | 都铎 作为一名技术人,你常常会听到这样的话: "先快速上线" "没时间改" "再缓一缓吧" "以后再解决&quo ...

  10. 阿里技术专家都铎:一文搞懂技术债

    阿里巴巴技术质量 读完需要 6 分钟 速读仅需 2 分钟 阿里 QA 导读:先快速上线.没时间改.再缓一缓吧.以后再解决.先用临时方案处理--埋下的坑越来越多,不知道哪天哪位同学会踩上一颗雷. 特别赞 ...

最新文章

  1. Linux网络编程必看书籍推荐
  2. HDFS的API操作
  3. python输出到语音播放_用Python写一个语音播放软件
  4. 综合布线系统设计遵循的标准和条件
  5. 别再说PHP已死了,它活得好着呢
  6. Linux开机启动的步骤
  7. 关于配置两台无线路由器
  8. Python+OpenCV图像处理之模糊操作
  9. 计算机网络中enable,第一章 计算机网络结构概述1、 enable# conf
  10. SqlServer数据库正在还原的解决办法
  11. matlab车牌识别课程设计报告模板(附源代码)
  12. 计算机用老毛桃u盘备份系统,如何用老毛桃u盘备份系统
  13. html播放mp4不显示画面,浏览器播放mp4格式视频时只有声音看不到画面的原因及解决方法(精)...
  14. python 根据身份证号计算年龄和性别_根据身份证自动计算出生日期、年龄、性别的例子...
  15. 【DB宝36】使用Docker分分钟搭建漂亮的prometheus+grafana监控
  16. 贷款逾期,征信记录五年之内可以消除?
  17. 美团java研发岗二面:mysql功能介绍
  18. 女生做软件测试的利弊如何权衡?
  19. 微信小程序下载图片获取相册授权,保存视频或图片到手机相册
  20. 店铺如何提升流量,抢占先机

热门文章

  1. 对Parcel的使用学习
  2. 4 款超级好用的终端文件管理器,提高你的使用效率!
  3. 保送北大,连发三篇Science,这位80后川妹子近日再发重磅级研究成果!
  4. Python中scatter函数参数搞懂之新手上路
  5. ABC分类法在库存优化管理中的应用原理
  6. XRD测试的68个问题(一)
  7. 【RT-Thread 开源作品秀】时光空间立方
  8. 65883-12-7,PEG5-Ms带有甲磺酸基和羟基的PEG连接剂
  9. WIN2000故障修复之故障恢复控制台篇
  10. Computer Architectrure: Quantitative Approch 第三章第四节