你好,伙计们,你们好吗?如果你正在寻找一本有趣的软件开发书籍来在这个周末阅读,那么你已经来到了正确的地方。
在这篇文章中,我将与你分享一本很棒的软件开发书籍,它可以帮助你通过避免常见的软件开发错误来做出良好的编程决策。
是的,你猜对了吗?我说的是Tomasz Lelek和Jon Skeet在Manning出版的《软件工程错误与权衡》。
Tomasz Lelek和Jon Skeet写了一本关于每个参与交付软件的人的工作的书,其中充满了权衡。
我们中的许多人都是在有限的时间、预算,同时也是有限的知识中操作的。因此,今天关于我们正在创建的软件的决定将在未来产生影响。
这些后果可能涉及到维护成本,当我们的软件需要改变时的不灵活性,当我们需要扩展时的有限性能,以及更多。
值得注意的是,每一个决定都是在一个特定的背景下做出的。如果不完全了解作出这些决定时的背景,就很容易对过去的决定作出判断。
然而,我们在决策时的知识越多,分析越深入,我们就越能意识到我们的决策所带有的权衡。
本书的作者参与并观察了许多软件决策,了解了他们在整个职业生涯中所施加的权衡。
在这一过程中,Tomasz开始写个人决策日志,记录做出特定决策的情况。它的背景是什么?替代方案是什么?我们是如何评估一个特定的解决方案的,最后,它是如何结束的。
我们是否预见到了某一特定解决方案的所有可能的权衡?还是我们对某些事情感到惊讶?事实证明,这份个人经验教训清单是相当通用的,因为这些问题和决定需要由外面的许多工程师来解决。
在这一点上,Tomasz决定,这是一个与世界分享这些知识的绝佳时机。这本书的想法就是这样诞生的。
作者希望分享他们从各种软件系统的经验中获得的教训:单体、微服务、大数据处理、库,以及更多。
本书将通过现实生活中的生产系统的决策、权衡和错误,并尝试对它们进行深入分析。通过介绍这些模式、错误和教训,作者希望能拓宽你的视野,让你拥有更好的工具。当你在日常工作中需要做出这些决定时,这些知识将帮助你。
预先看到一个设计的潜在问题和局限性可以在将来为你节省大量的时间和金钱。本书不会试图给你明确的答案。
当问题很复杂时,往往可以通过不止一种方法来解决。作者将提出一些具有挑战性的问题,并提出没有明确答案的问题。
每个解决方案都会有其优点和缺点,他们会分析这些。每种解决方案都将导致其权衡,将由你来决定哪种解决方案最适合你的情况。
_本书包含13章--每一章都关注你在生产系统中可能遇到的真实世界的问题。它_试图在各种背景下分析每种情况,并考虑其所有的权衡。它还介绍了一些非显而易见的错误,这些错误可能从不同的角度(不仅是正确性)对你的系统产生重大影响。
- 本书中涉及的一些主题有。
- 为什么代码重复并不总是坏事?代码重复与灵活性。
- Java异常与处理代码中错误的其他模式的对比
- 如何在本章中优化你的代码。过早优化与优化热路径--影响你的代码性能的决定
- 有效地处理日期/时间数据
- 如何为你的项目挑选一个合适的第三方库?
- 学习如何利用数据定位来设计你的大数据处理
- 如何处理分布式系统中的交付语义?
- 对你的API和数据进行版本管理,使你的系统保持兼容性
以及更多。关于所有涵盖的主题列表,请看目录。
总的来说,这是一个很好的课程,通过学习错误和取舍来学习你的软件开发技能 。如果你对作者有任何意见或反馈,欢迎在这里分享。这将是非常感激的!如果你决定购买,你可以使用_35%的折扣代码。_ jrlelek35
软件工程错误与权衡》一书由Jon Skeet和Tomasz Lelek撰写,最初发表在Medium的Javarevisited上,人们通过强调和回应这个故事来继续对话。