[2730] Code Lifespan

Title Text:Surely (no one/everyone) will (recognize how flexible and useful this architecture is/spend a huge amount of effort painstakingly preserving and updating this garbage I wrote in 20 minutes)

Origin:https://xkcd.com/2730/

https://www.explainxkcd.com/wiki/index.php/2730:_Code_Lifespan

代码的寿命

当然,(没有人/每个人都)会(意识到这个架构是多么的灵活好用/煞费苦心地维护和更新我在20分钟内写出的这团垃圾)

http://xkcd.in/comic?lg=cn&id=2730

这个漫画对比了两种情景,涉及Ponytail编写计算机程序:在第一幅面板中,她非常小心地为自己的代码做好了未来化的准备,而在第二幅中,她决定不这样做,因为她认为这个代码很快就会被废弃和/或替代。每个面板下方的字幕指出,具有未来化准备意图的代码通常很快就会停止使用,这反而违背了未来化准备的目的;而那些没有这样准备的代码通常会被使用得比原始程序员们预期的时间更长。这是许多开发者经历过的一个进退两难的情况;第一个情景甚至有一个名字,YAGNI。
第二个面板可能是对2000年问题的暗示,虽然需要注意的是,该问题并不仅仅是开发者没有未卜先知,而是因为当时开发者们使用的计算机资源极为有限,促使了使用两位数年份的情况。
标题文本是一个模块化的句子,其中包含两个括号内的两种备选短语。这样可以有四种排列组合的句子,每个句子都可能是程序员所说的。以下两个排列组合可能是软件开发者期望的理想:

“肯定每个人都能认识到这个架构的灵活性和实用性。”
“肯定没有人会费尽心思地维护和更新我在20分钟内写的这个垃圾。”
然而,现实往往无法达到这样的期望,因为认可为重复使用而设计的代码的人数不足,而试图维护和调整草率工作的人数却远远超过了原本预期的人数。前者可能是因为在需要重复使用代码的时候,存在不确定或不清晰的假设,而这些假设在当时并不明显;而后者有时是因为匆忙工作的迅速被视为更深层次的需求,而实际上它们并非如此。剩下的两个排列组合则表达了这些更加不乐观的观点:

“肯定没有人会认识到这个架构的灵活性和实用性。”
“肯定每个人都会费尽心思地维护和更新我在20分钟内写的这个垃圾。”

You May Also Like

More From Author

Leave a Reply

Your email address will not be published. Required fields are marked *