针对初学者的设计原则?
我编程大约有一年了,写的东西都能运行,但从我的角度来看,代码写得非常糟糕。我想知道有没有什么好的(免费的)软件设计书籍,可以给初学者一些指导?我觉得如果我了解一些软件设计的思维过程,就不会遇到这么多问题了。
18 个回答
DRY和YAGNI是初学者很好的入门概念,你需要学习和理解面向对象编程。
关于设计模式(这比DRY和面向对象编程稍微复杂和抽象一些),你可以从免费的设计模式 - Java 伴侣中学习。虽然它不是Python的内容,但这并不重要——经典的设计模式在任何地方都适用。
当你想更进一步时,可以看看领域驱动设计(Eric Evans的免费DDD书籍),当然还有单元测试,相信我,这会让你的代码和设计能力都有所提升。
《Head First Design Patterns》 可能是一本更容易理解的书,适合初学者入门GoF的《设计模式》这本书。
Steve McConnell的《Code Complete》 是一本关于代码的好指南,里面讲了很多内容,包括如何在那些不支持某些好策略的编程语言中使用这些策略。
Martin Fowler的《Refactoring》 里提到了很多设计模式,但它更像是一本关于一般代码的目录,教你如何写得更好(我在读《Code Complete》的时候也读了这本书,差不多在读《设计模式》之前的几年里,《Refactoring》对我看待自己写的代码产生了很大的影响。我觉得是朝着更好的方向发展)。
这些书都不是“免费的”。但你想要多好的建议呢?如果你想在职业上有所投资,这其实是最便宜的方式。
多看看别人的代码。这是学习更好设计原则的最佳方法。在工作中看看同事的代码,论坛上看看别人的代码,关注一些开源项目……而且要不断地编码,因为你在过程中犯的错误才是最好的老师。
推荐你看看一本书,《务实程序员:从学徒到大师》。这本书非常适合填补你知识上的空白。