混乱的代码是技术债吗

翻译自 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.

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


本文首发于公众号 架构道与术(ToBeArchitecturer),欢迎关注、学习更多干货~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,874评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,151评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,270评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,137评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,116评论 5 370
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,935评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,261评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,895评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,342评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,854评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,978评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,609评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,181评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,182评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,402评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,376评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,677评论 2 344

推荐阅读更多精彩内容