那么,有人能列出您认为是学习成为更好的程序员和更专业的原则和模式吗?
我使用的编程语言:C#,Ruby,Javascript。
对设计模式有百科全书般的知识并不能让你有所收获,多应用它们才行。这样可以让你知道在什么时候使用它们,在什么时候不要使用。
话虽如此,原版《设计模式》书籍仍然是我最喜欢的之一。在学习过程中,可以掌握其他的模式。
我正在学习并努力提高编码技能,以下是一些与语言无关的技能。
以下是一些关于书籍推荐的问题链接 @ SO:
我会从原则开始,模式紧随其后。
原则:有很多原则,但以下是我实际应用中得到的实惠:
其中很多(组合在一起)被称为SOLID(面向对象设计)。
模式:
维基百科有一个相当不错的软件设计模式列表,假设您还没有看过它。
一件需要记住的最后一点是,模式分为三种基本类型(加上第四类多线程/并发)。知道这些类别并在做某事时牢记它们可能会有所帮助,它们是:掌握工具(例如编程范例、模式、源代码控制、单元测试...)是必要的,但这还不足以称自己为“专业人士”:在我看来,真正专业的程序员的标志是能够理解客户需要什么。不幸的是,这种知识很难从书本中学到。
我认为最好的方法是学习多种编程语言。LISP、Scheme、Python、Smalltalk、Erlang、Prolog、Eiffel等等。
然后用它们来构建东西。
我建议使用Martin Fowler的企业应用架构模式与其他开发人员建立共享词汇(例如存储库、活动记录、域模型、工作单元)。
Douglas Crockford的Javascript语言精粹可以帮助你真正理解Javascript的工作原理。
最后,如果你正在进行棕地开发(我们大多数人都是),我强烈推荐Michael Feather的遗留代码重构手册。这是一本关于TDD(测试驱动开发)的好书。
最后,这本书向你展示了重构和清洁代码的实现方式: Uncle Bob的代码整洁之道。
我认为,《Head First设计模式》一书中描述的所有模式都是设计师/程序员必须了解的最低要求。我建议从这本书开始学习设计模式。 另一本书,《设计模式工作手册》也很适合练习。