我已经学习编程一年了,我写的所有代码都能够运行,但是从我的角度来看,这些代码的质量非常低。我想知道是否有任何(免费)好的软件设计方面的书籍可以为初学者提供一些指导?如果我了解一些软件设计的思考过程,我认为我就不会遇到那么多问题了。
我已经学习编程一年了,我写的所有代码都能够运行,但是从我的角度来看,这些代码的质量非常低。我想知道是否有任何(免费)好的软件设计方面的书籍可以为初学者提供一些指导?如果我了解一些软件设计的思考过程,我认为我就不会遇到那么多问题了。
Head First 设计模式 可能是对 GoF "设计模式" 书籍的更加温和的介绍。
Steve McConnell 的 Code Complete 是一个良好的指南,涵盖了很多关于编程的内容,包括如何在不支持本地策略的语言中使用良好的策略。
Martin Fowler 的 Refactoring 大量参考了设计模式,但它是一份关于一般代码和更好的编写方式的优秀目录(我大约在同一时间读了“Code Complete”,比“设计模式”晚了几年),"重构"对我如何审视自己写的代码产生了重大影响,我想这是有益的。
以上所有书籍都不是 "免费的",但你想要多好的建议呢?如果你想要投资自己的职业生涯,这是最便宜的方法。
DRY和YAGNI是初学者的好起点,你需要学习和理解OOP。
关于设计模式(比DRY和OOP更高级和抽象),你可以从免费的设计模式-Java伴侣中学习。它不是Python也不应该让你烦恼-经典的设计模式可以应用到任何地方。
当你想要更进一步时,请查看DDD(Eric Evans的免费DDD书籍)和当然单元测试,信不信由你,这将改善你的代码和你作为设计师的能力。看起来您需要一本关于设计模式的书。
可以看看这本书:《设计模式——可复用面向对象软件的基础》。但请注意,它并不是针对Python的。
您还可以查看这个Python设计模式的在线资源。
Stackoverflow用户@S.Lott也编写了许多非常好的Python资源。您可以在他的Stackoverflow页面上查看。
我有一年的编程经验,不建议学习设计模式(或《Head First Design Patterns》),因为我认为设计模式(概念)最好在你有更多的编程经验后再学习,也许需要更多像5-10年的经验。
我认为,Andrew Hunt 和 David Thomas 的书《The Pragmatic Programmer: from Journeyman to Master》可能是您目前水平得到最大回报的最佳选择。这里有一个关于主题和内容的精彩摘要(由Coding Horror的Jeff Atwood提供)。如果你买不起自己的副本,可以使用馆际互借。
还有两本经典书籍也是针对编程语言不特定的新手程序员强烈推荐的,它们分别是Fred Brooks所写的The Mythical Man-Month(1995年出版的周年纪念版)和Steven McConnell所写的Code Complete(第二版)。
这些书将帮助扩展你的编程知识,而不会在你目前的开发阶段让你感到不知所措,并为成为更好的程序员打下坚实的基础。所有这些书都经常位于推荐 编程 书籍 的榜首,它们都足够“老”,以至于它们显然不是一时的流行,而是经久不衰的建议,不受特定语言、环境或工具集的限制。
这不是一本书(书已经过时了),但在波特兰模式库花费几个小时阅读绝对是值得的。
虽然它也不是教程,但它有很好的代码示例,以及关于设计模式和编程的精彩讨论。它是学习如何像程序员思考的绝佳资源。