《程序员修炼之道 从小工到专家》第二章读后感
第一小节是重复的危害。可靠的开发软件,并让我们的开发更易于理解和维护的唯一途径,是遵循我们称之为 DRY 的原则:系统中的每一项都必须具有单一、无歧义、权威的表示。重复的产生通常又以下种类:强加的重复,开发者觉得他们无可选择,其实是有一些方法使我们避免重复的·。无意的重复。开发者没有意识到他们在重复信息。这个需要通过提高代码意识或者 CR 进行减少。无耐性的重复。开发者偷懒,因为重复可以让事情更容易。有时往往会遇速则不达,在这类重复面前我们应该更慎重。开发者之间的重复。同一个团队或者不同团队的几个人重复了同样的信息。
第二小节是正交性。正交性是一个从几何学中借鉴而来的术语,如果两条直线相交成直角,他们就是正交的。这在向量中的解释是沿着一条直线移动,你投影到另一条直线上的位置不变。在计算机中,用于表示某种不相依赖性或解耦性。正交的好处是它提高生产效率,各个组件不相互依赖,使得改变得以局部化,促进复用,对于正交组件进行组合也可以提高生产效率,同时它还降低了代码的风险。延伸开来,项目团队的配合也应该遵循正交性。如果成员之间任务重叠较多容易让大家疑惑问题和责任的归属如何划分,这会造成配合的效率低下。代码设计的时候也应该尽可能考虑正交性,这需要结合一些特定的设计模式以达成目的。
第三小节是可撤销性。如果某个想法是你唯一的想法,再没有什么比这更危险的事情了。在设计软件时我们要为各种可能存在的问题做准备,没有最终决策。我们要设计灵活的构架。
第四小节时曳光弹。曳光弹行之有效,是因为他们与真正的子弹在相同的环境、相同的约束下进行工作他们快速的飞向目标,所以枪手可以得到及时的反馈,同时从实践的角度看,这样的解决方案也最便宜。曳光开发与项目永远不会结束是一致的:总有改动需要完成,总有功能需要增加,这是一个循序渐进的过程。曳光代码的优点:用户能够及早看到能工作的东西。开发者构建了一个能在其中工作的结构。你有了可用于演示的东西。你能够感觉到工作进展。曳光弹告诉你击中的是什么,那不一定总是目标,于是调准准星,直到完全击中目标为止。这正是要点所在。曳光代码也是如此。
第五小节是原型与便筏,在软件制作当中我们要学会构建软件模型,分析和揭示风险,以大大降低的代价,为修正提供机会。
第六小节便是领域语言。语言的界限就是一个人的世界的界限。计算机语言会影响我们思考问题的方式,以及我们看待交流的方式。我们要尽可能的让项目靠近问题领域,这样我们才能通过在更高的抽象层面上编码,获得专心解决领域问题的自由,并且可以忽略琐碎的实现细节。
最后一节是估算。通过学习估算,并将此技能发展到事物的数量级有直觉的程度,你就能展现出一种魔法般的能力,确定他们的可行性。估算是为了避免发生意外。模型应该是一个动态的,它像一个人工智能模型,你需要持续不断的训练它,才能使它真正准确起来。每次的估算都需要记录,反思估算效果,找出影响因素,加入新的影响项或者调整对应参数。被要求进行估算时间时,我们可以这样回答:我等会儿回答你。然后花点时间仔细检查我们在这一节描述的步骤,你总能得到更好的结果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署