《Act with Prudence》读后感
《97 Things Every Should Know》中第一个编程方面的建议
文章链接:行事谨慎
很赞同文章中的观点,在做项目中是要谨慎行事和考虑后果。一直在项目前期考虑不够周到,以至于在项目后期不断解决项目前期带来的技术问题。刚入行半年,希望能在项目开始能考虑得全面一点,使得技术债务能轻一点或者没有。
文章翻译:
“无论你做什么,都要谨慎行事以及考虑后果”——Anon.
无论时间表在一开始迭代的时候看起来有多么的舒适,有时候你都无法避免压力。如果你发现你必须在“正确地做这件事”和“快速地解决这件事”之间做出选择,通常“快速地解决这件事”是很有吸引力的,因为你知道你以后会回来解决这个问题的。当你对你自己、你的团队、你的伙伴做出这个承诺,你是认真的(you mean it参考有道翻译)。但是通常下一个迭代会带来新的问题,而你会将注意力放在这些问题上。这一系列可延期的工作被称为技术债务,不是你的朋友。特别的,Martin Fowler 在他的技术债务中称这种故意的技术债务不应该与无意的技术债务混淆。
技术债务就像是借贷:你在短期时间内会从中受益,但你必须为此支付利息直到它被偿还完。代码中的捷径会使添加功能或者重构你的代码变得困难。他们是缺陷和脆弱测试案例的滋生地。你离开它越久,它就会变得更糟糕。当你着手进行最初修复时,可能会有一堆不太正确的设计选择叠加在最初问题之上,使得代码变得难以重构和纠正。事实上,通常只有当事情变得糟糕到你必须要解决它,你才会回头去解决它。到那时候问题是如此难以解决,你真的没有时间或风险。
有时,你必须承受技术债务以满足最后技术债务或实现某个特征的一小部分。不要尝试着处于这种状态,但是如果情况绝对需要,那就去做吧。但是(这是个大大的但是),你必须追踪技术债务并迅速偿还,否则事情就会迅速恶化。一旦你做出妥协的决定,写任务卡或者记录在你的问题追踪系统中以确保它不会被遗忘。
如果你计划在下一个迭代中长话债务,那么花销将是最小的。不偿还债务会产生利息,而利息应该被追踪以使花销可见。这将强调技术债务对业务价值的影响,并能适当确定偿还的优先循序。如何计算和追踪利息的选择将取决于特殊的项目,但你必须追踪它。
尽可能快地偿还完技术债务,否则这将会是轻率的。
翻译如有错误欢迎指正!
《Act with Prudence》读后感的更多相关文章
- 《DevOps软件架构师行动指南》读后感
从软件架构师视角讲解了引入DevOps实践所需要拥有的技术能力,涵盖运维.部署流水线.监控.安全与审计以及质量关注,这是本书一开始内容简介的开头,本书的作者是伦恩·拜斯(Len Bass).英戈·韦伯 ...
- nodejs开发指南读后感
nodejs开发指南读后感 阅读目录 使用nodejs创建http服务器; supervisor的使用及nodejs常见的调式代码命令了解; 了解Node核心模块; ejs模板引擎 Express 理 ...
- DevOps:软件架构师行动指南(文摘)
第一部分 背景 第1章 DevOps是什么 第二部分 部署流水线 第三部分 横切关注点 第四部分 案例研究 第五部分 走向未来
- 2020年DevOps工程师入门指南
DevOps兴起于2010年代,到现在DevOps已经在行业中拥有了一席之地,并在继续发展壮大. 有兴趣成为一名DevOps工程师吗?如果想要成为一名DevOps工程师,需要做到以下五点: 要有开发者 ...
- 5月29日 Java性能调优指南 读后感
并行垃圾收集器 串行垃圾收集器 并发标记清除(CMS)垃圾收集器 Garbage First(G1)垃圾收集器 没有深入的学习G1的原理,只是看了大概的思想; SA工具:待学习
- 敏捷开发、DevOps相关书籍——书单
自己瞎整理的一些书单,都是豆瓣评分比较高的书,可以作为选择的一个参考. 书名 豆瓣链接 持续交付:发布可靠软件的系统方法 https://book.douban.com/subject/6862062 ...
- 有奖试读—Windows PowerShell实战指南(第2版)
为什么要学PowerShell? Windows用户都已习惯于使用图形化界面去完成工作,因为GUI总能轻易地实现很多功能,并且不需要记住很多命令.使得短时间学会一种工具成为可能. 但是不幸的是,GUI ...
- [转载]你所不了解的DevOps
DevOps开发运维训练营 一旦建立了创新的文化,即使那些并非科学家或者工程师的人——诗人.演员.记者——也能以团体的形式,接受科学文化的意义.他们信奉创新文化的概念.他们以促进这种文化的方式投票.他 ...
- 给 DevOps 初学者的入门指南
当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念.那么,到底什么是"DevOps"呢? 什么是DevOps 随着软件发布迭代 ...
- CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南
CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...
随机推荐
- 在 Windows Server Container 中运行 Azure Storage Emulator(一):能否监听自定义地址?
我要做什么? 改 ASE 的监听地址.对于有强迫症的我来说,ASE 默认监听的是 127.0.0.1:10000-10002,这让我无法接受,所以我要将它改成域名 + 80 端口的方式: 放到容器中. ...
- HTTP协议图--HTTP 协议报文结构
1.HTTP 报文 用于 HTTP 协议交互的信息被称为 HTTP 报文.请求端(客户端)的 HTTP 报文叫做请求报文:响应端(服务器端)的叫做响应报文.HTTP 报文本身是由多行(用 CR[car ...
- Economy a Two-Edged Sword for Democrats
2017-05-03 12:05:07 https://www.usnews.com/news/blogs/ken-walshs-washington/2014/10/03/economy-a-two ...
- git团队操作
1.git命令行 1)分支的创建 git branch 分支名 分支创建之后,就会自动pull master的内容 2)分支的查询 git branch 3)分支的进入 git checkout 分支 ...
- canvas小球 时间demo
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- ZooKeeper学习之路 (四)ZooKeeper开发环境eclipse配置
一.eclipse中配置zookeeper开发环境 1)将zookeeper eclipse plugin中的6个jar包放到eclipse安装目录下的plugins文件中,重启eclipse (2) ...
- Python 多线程 线程安全、daemon简介 (四)
线程安全 只能在Winodws下的ipython中演示,Python命令行.Pycharm.Mac下的ipython都演示不出效果 import threading def worker(): for ...
- face++
1.链表反转 2.快排 3.m*k n*k两矩阵计算欧几里得距离np.tile 4.链表排序,要求时间复杂度小于O(N^2),空间O(1),不允许改变链表的值 5.2sum及其变体 6.给一个数组 ...
- 俄罗斯方块 UWP 版
UWP跟 WPF编程模型一致,不过UWP做了精简,而且不同的系统的API还略有不同.不同的地方有以下几点: 1.动画.动画除了故事版,还有其它的实现方式. 2.异步方法.UWP中的方法调用,大部分都是 ...
- 解决Bug步骤
1.看报错.将bug定位到文件.类.方法. 2.打断点.将bug定位到具体代码行号. 3.分析断点输出结果. 4.结合报错和断点结果,修改代码. 总之:拆解问题.定位问题.分析问题.解决问题.