代码简洁之道
大家好。我出版了一本新书!书名是《理解软件》。
这本书包含了我自《代码简洁性》出版以来所写的所有关于软件开发和团队合作的内容,外加一些从未在任何地方发表过的全新内容。事实上,它包含了我2008年写的一篇最喜欢的文章,但之前从未发表过。所以这对你来说是个惊喜。
所有内容都被精心排版,经过整理和组织,以达到最佳的可读性。这是我真正感到满意的作品,我期待听到你们的反馈。
来自出版商的介绍
《理解软件》涵盖编程的许多领域,从如何编写简单的代码到对编程的深刻见解,再到如何在你所做的工作中少犯错误!你将发现软件复杂性的问题、其根本原因,以及如何利用简洁性创建出色的软件。你将以前所未有的方式审视调试,以及如何在团队合作中保持快乐。
Max从他传奇的博客《代码简洁性》中精选了一系列精心撰写的文章、想法和建议,关于在软件行业工作和取得成功。Max撰写了四十三篇文章,这些文章有能力帮助你避免复杂性并拥抱简洁性,从而让你成为一个更快乐、更成功的开发者。
Max的技术知识、洞察力和善良,使他赢得了代码大师的地位,他的想法将激励你,并帮助刷新你应对开发者挑战的方法。
你将学到什么
- 看看如何将简洁和成功带入你的编程世界
- 复杂性的线索——以及如何构建优秀的软件
- 简洁性和软件设计
- 程序员的原则
- 摇滚明星程序员的秘密
- Max对软件行业的看法和解读
- 为什么程序员会犯错,以及如何少犯错误
- 用两句话概括软件设计
- 什么是bug?深入调试
你可以在亚马逊、出版商直接购买,或任何其他销售编程书籍的地方找到它。
-Max
评论
Saim Aksr 说: 2017年10月19日下午5:27
有趣的文章,代码应该始终保持干净,便于其他开发者阅读。
回复
Urvish S 说: 2018年12月11日上午12:11
这对软件开发领域的新手来说将是极大的支持。
回复
Dig in and create you own parser library – Tech Musings By Dave 说: 2024年1月3日下午12:24
[…] Max Kanat Alexandar的《理解软件》是一本超级快速的读物,应该成为任何新开发者(工程师)的必读之书。它提供了简单的指南和解决问题的方法。书中的一部分一直在我耳边回响,大约一年前,“好的开发者会阅读每一行代码”。我以前从未考虑过这一点。就像对于你支持的应用/公司,你应该理解生产环境中运行的每一行代码。这包括你使用的第三方库。所以回到2021年,我的团队正在编写一个新应用,可以处理各种充满工作的XML文件。(我曾为Getwork/LinkUp工作) […]
回复
最新动态
Max Kanat-Alexander 6天前
非常兴奋地宣布,我将在2025年开发者生产力工程峰会上发表主题演讲之一。我将谈论什么造就了伟大的开发者体验。我自1995年以来一直在技术领域工作,自2004年起几乎全职专注于开发者体验。关于如何让开发者体验变得伟大,有一些基本的、普遍的真理,我将尽力在有限的时间内覆盖尽可能多的内容。希望在那里见到你。:)
阅读更多
1177 分享
Max Kanat-Alexander 6月27日
我目前认为,AI代理能够成功生成的输出数量和质量取决于:
- 模型的质量。
- 代理的质量。
- 输入的质量(如提示或其他上下文)。
- 代理可以独立运行的确定性、客观验证的质量。
我目前认为,除非你是模型开发者,否则最重要的部分是“确定性、客观验证”。
简单来说,如果你告诉AI做某事,它需要某种方式能够自行验证它做对了。在软件中,这通常意味着运行测试、lint工具等,如果系统做错了,这些工具会失败。
这意味着你的测试和验证工具越好,你从模型得到的输出就越好。这不仅仅是测试数量的问题。它们必须是好的测试,具有智能的断言和良好的错误消息。
这也意味着代理的成功涉及如何将任务分解成可以各自通过自动化测试、lint工具等客观验证的独立部分。
作为说明,输入的质量也很重要,并且在我们控制之下。如果我们编写更好的文档和更清晰的代码,代理会表现得更好。令人惊讶的是,几乎所有帮助人类编写代码的东西也帮助代理。
阅读更多
2510 分享
Max Kanat-Alexander 6月4日
技术债务有价值的想法大多是个神话。当你做出糟糕的软件工程决策时,它会在几小时、几天或几周内拖慢你的速度。那是上限。许多人认为需要几个月或几年才能看到在软件设计上偷工减料的影响,但那根本不是真的。它几乎立即开始。做正确事的成本通常是几小时,也许一天,而你几乎总是立即收回那段时间。也就是说,做对事通常花的时间与做错事花的时间相同。“等等,什么?那怎么可能?我们偷工减料是为了节省时间!”结果几乎总是它根本不会节省你的时间!它让处理变更更加混乱。它让代码审查时间更长。它在测试期间以更混乱的方式失败,需要更长时间调试。它几乎从不节省你的实际时间。
偶尔,你的路径上会有一些“巨石”如此巨大,你根本无法移动它。没有人应该花三个月设计一个新工具,只是为了你能一次交付一个一天的功能。但那是技术债务决策中极小极小的一部分。
这变得更疯狂,因为如果你在过程中做对一切(你总是重构系统,使其看起来像是被设计成现在所做的样子),那么一切在整个过程中都保持相对容易。但如果你偷工减料,一切会变得复合性地更困难,以至于你生成没人能移动的“巨石”。复杂性不是某种线性事物,你可以后来投入线性时间修复。你绝对可以让自己陷入一种如此糟糕的情况,以至于你公司中没有人有时间或专业知识修复它。
这一切感觉如此无辜:“让我们偷点工减点料,它会帮助我们赶上这个截止日期,”(一个通常是想像的截止日期,你可以推迟几周而没有任何后果)。“很难弄清楚如何做对这件事,我们能推迟吗?”然后砰,很快你发现自己陷入沼泽,一切都很困难,而“我们不知道为什么!”
我最后留给你一件事:当我每天直接编码时,我在这方面完全 uncompromising。我基本上无法看着糟糕的代码——我必须重构它,否则我无法工作。而不知何故,在我整个职业生涯的那部分,我从未错过一个截止日期。
阅读更多
12942 分享
Max Kanat-Alexander 5月30日
我估计,我每看到或听到一万条糟糕建议,才会收到一条好建议。互联网充满糟糕建议,因为文明充满糟糕建议。文明充满糟糕建议,因为全球的教育大多不教人们思考、研究或确定什么是真的。相反,它教人们记忆和重复事实,其中大多数是不重要、不真实或无用的。
所以总的来说,我们不应该惊讶互联网(尤其是社交媒体)充满不重要、不真实或无用的信息。并非全部如此——我在网上学到了大量非常有用的东西。有大量有价值的内容。我会说,人们对事物的意见,无论是在报纸、博客文章、论坛还是其他什么地方,很少具有那种价值。
那么,要点是什么?嗯,最好有一些方法在开始依赖或向他人重复某事之前,确定它是否重要或有用的。最简单的工具是说:“它有效吗?”这条数据是否可靠地帮助你完成某事?它100%有效,还是更少?
对于许多帖子,你会发现:这条数据根本不会帮助你做任何事。
阅读更多
249 分享
加载更多
© 2025 版权所有。由 The Fox 提供支持。