代码简洁之道第二修订版
2012年8月22日,作者:Max Kanat-Alexander
六月,我发布了《代码简洁之道》的第二修订版。可能有些人已经知道了,但我觉得也应该让其他人知道。
最重要的变化是,现在这本书能更快地进入软件设计的法则和规则。它以完全重写的序言开始,讲述了我如何开发《代码简洁之道》中的原则,以及为什么你可能对它们感兴趣。然后进入更短的第一章,将旧版第一章的所有内容浓缩为几页,跳过了旧的第二章(关于某物成为科学的漫长讨论),直接进入法则部分。
特别是如果你读过原版,我非常想听听你对新修订版起始内容的反馈!
-Max
附言:如果你从O’Reilly购买了电子书,你可以免费获得每一个新修订版,而且可能还会有比这更多的修订版!如果你从其他地方获得了电子书,书里面有一个小链接,可以让你以相当便宜的价格"升级"到O’Reilly版本,这样你也可以免费获得这个修订版和所有未来的修订版。我不偏袒任何特定的购书方式,但O’Reilly版本绝对是获取新修订版的最佳方式。
评论
Kevin 说: 2014年5月22日上午9:59 太疯狂了!亚马逊发货更快,所以我选择了那条路。我喜欢电子书,但根据我读过的你的材料,我想确保我能对重点做标记。现在我在想,我应该花几块钱买两本,在等待印刷版发货时读电子书。当然,假设电子书是即时下载的。 我看到我的书有67页,所以我一定是买了原版。 从O’Reilly买吧,朋友们,教训学到了。- Kevin
回复
Max Kanat-Alexander 说: 2014年8月24日下午4:11 疯狂大学!是的,电子书是即时下载的。我觉得两种格式都有很好;我可以在手机上获取电子书,如果需要的话可以给别人看,但有时实体书对人们来说更"真实"。 我想序言中会说明是哪个修订版。如果有说明我删除了整个章节的注释,那就是第二版。 -Max
总是为暴力精神病患者写代码 | Christiaan Molendijk 说: 2015年12月18日凌晨2:52 […] http://www.codesimplicity.com/post/code-simplicity-second-revision/ […]
代码简洁之道第二修订版 – coding | factory 说: 2018年12月22日下午6:48 […] 更多 […]
最新文章
Max Kanat-Alexander,6月27日
我目前认为,AI代理能够成功生成的输出数量和质量取决于:
- 模型的质量
- 代理的质量
- 输入的质量(如提示或其他上下文)
- 代理可以独立运行的确定性、客观验证的质量
我目前认为,除非你是模型开发者,否则最重要的部分是"确定性、客观验证"。
简单来说,如果你告诉AI做某事,它需要某种方式能够自行验证它做对了。在软件中,这通常意味着运行测试、linter等,如果系统做错了就会失败。
这意味着你的测试和验证工具越好,从模型获得的输出就越好。这不仅仅是测试数量的问题。它们必须是好的测试,具有智能断言和良好的错误消息。
这也意味着代理的成功涉及如何将任务分解成可以各自通过自动化测试、linter等进行客观验证的单个部分。
需要注意的是,输入的质量也很重要,并且在我们的控制之下。如果我们编写更好的文档和更清晰的代码,代理会做得更好。令人惊讶的是,几乎所有帮助人类编写代码的东西也帮助代理。
阅读更多 2010 分享
Max Kanat-Alexander,6月4日
技术债务有价值的想法大多是个神话。当你做出糟糕的软件工程决策时,它会在几小时、几天或几周内减慢你的速度。那是上限。许多人认为需要几个月或几年才能看到在软件设计上偷工减料的影响,但这根本不对。它几乎立即开始。
做正确的事的成本通常是几个小时,也许一天,而且你几乎总是立即收回那个时间。也就是说,做对通常花费的时间与做错花费的时间相同。“等等,什么?怎么可能?我们偷工减料是为了节省时间!“结果几乎总是它根本没有节省你的时间!它使处理变更更加混乱。它使代码审查时间更长。它在测试期间以更混乱的方式失败,需要更长时间调试。它几乎从未节省你的实际时间。
偶尔,你的路径上会有一些如此巨大的"岩石”,你根本无法移动它。没有人应该花三个月设计一个新工具,只是为了你能一次性地发布一个一天的功能。但那只是技术债务决策中极小的一部分。
这变得更疯狂,因为如果你在过程中一切都做对(你总是重构系统,使其看起来像是被设计成现在所做的样子),那么一切在整个过程中都保持相对容易。但如果你偷工减料,一切都会变得越来越困难,以至于你生成没有人能移动的"岩石”。复杂性不是某种线性的东西,你可以后来投入线性时间修复。你绝对可以让自己陷入如此糟糕的境地,以至于你公司中没有人有时间或专业知识来修复它。
这一切感觉如此无辜:“让我们偷工减料吧,它会帮助我们满足这个截止日期”(一个通常是虚构的截止日期,你可以推迟几周而没有后果)。“很难弄清楚如何做对,我们能推迟吗?“然后砰,很快你发现自己陷入了一个沼泽,一切都很难,“我们不知道为什么!”
我最后留给你一件事:当我每天直接编码时,我在这方面完全 uncompromising。我基本上无法看坏代码——我必须重构它,否则我无法工作。不知何故,在我整个职业生涯的那部分,我从未错过一个截止日期。
阅读更多 9342 分享
Max Kanat-Alexander,5月30日
我估计,我每看到或被告知一万条坏建议,才会收到一条好建议。互联网充满了坏建议,因为文明充满了坏建议。文明充满了坏建议,因为全球的教育大多不教人们思考、研究或确定什么是真实的。相反,它教人们记忆和重复事实,其中大多数是不重要、不真实或无用的。
所以总的来说,我们不应该惊讶互联网(尤其是社交媒体)充满了不重要、不真实或无用的信息。并非全部如此——我在网上学到了大量非常有用的东西。有大量有价值的内容。我会说,人们对事物的意见,无论是在报纸、博客文章、论坛还是其他什么地方,很少具有那种价值。
那么,要点是什么?嗯,最好有某种方式在开始依赖或向他人重复某事之前确定它是否重要或有用的。最简单的工具是说:“它有效吗?“这条数据是否可靠地帮助你完成某事?它100%有效,还是更少?
对于许多帖子,你会发现:这些数据根本无助于你做任何事。
阅读更多 219 分享
Max Kanat-Alexander,5月29日
你对系统所做的任何更改在推出时都会收到某些人的负面反馈。这不是因为每个更改都有问题,而是因为用户习惯了系统的工作方式,他们不喜欢它改变了。他们可能会批评新的用户界面,或者对为什么新东西"糟透了"有一些情绪化的论点,但通常他们真的只是对任何更改发生感到不安。这不是什么不寻常的事;这是几乎所有人中都存在的因素。人们往往对在一段时间内愿意经历多少变化有一定的胃口,如果你超出了那个范围,他们就会不安。
重要的是要认识到人们的反馈是简单的这种"变更厌恶"还是关于有价值事物的真实反馈。有几种方法可以判断:
- 变更厌恶通常持续3到10天。如果你在推出更改后的头3到10天内收到用户的反馈,并且同一反馈没有被大量用户提供,那么值得考虑用户的反应是否只是变更厌恶。
- 变更厌恶反馈通常是情绪化的。它可能是侮辱性的。它可能只是表达为一种意见(“新菜单的颜色很丑”) vs 一个事实(“我测量过,新工具比旧工具慢10倍。")。
在管理变更时,你要避免的是制造如此多的变更厌恶,以至于引起反抗。反抗基本上看起来像是如此多的人生气,以至于他们去找你的管理层,他们停止你的工作。如有疑问,向更少的人推出更小的更改,扩展速度更慢。随着时间的推移,你将了解可以推出多少变更,多快。永远不要做"大爆炸"发布,让所有用户同时经历 massive change。
现在,所有这些 said,永远不要将所有反馈归因于"变更厌恶”。通常人们确实有合法的反馈。如果许多人向你提供相同的事实反馈,你看了觉得他们的反馈有道理,并且你认为修复它会改进产品,那很可能不是变更厌恶。另外,说"这只是变更厌恶"并不意味着你应该完全忽略反馈。你至少应该承认它,让人们知道他们被听到了。这确实意味着你不应该与那个人争论或试图与他们讲道理,因为他们正在情绪化反应,你试图用"逻辑"说服他们不会帮助任何人。如果你认为是变更厌恶,你承认他们,而他们只是继续与你斗争,有时你应该忽略他们,继续做你的工作。如果他们在3天后带着更合理的论点回来,那么你知道那不仅仅是变更厌恶,而且他们可能到那时更有帮助了。
阅读更多 234 分享
加载更多
© 2025 版权所有。由 The Fox 提供支持。