我过去两年一直在使用Java编程,现在想进入应用程序设计领域。到目前为止,我只是从事编码,也就是给我提供的设计文档/类图等并要求我进行编码。现在我想学习如何设计,也就是说,我想学习什么时候应该使用接口而不是具体类,根据需求提出设计、设计技巧和其他方面的所有内容。
请问您能否建议任何一系列的文章/书籍等来学习这些内容。
我已经尝试过阅读《Headfirst Design Patterns》,但即使我能够掌握一些设计模式,我仍然无法自己设计应用程序。
请帮忙。
我过去两年一直在使用Java编程,现在想进入应用程序设计领域。到目前为止,我只是从事编码,也就是给我提供的设计文档/类图等并要求我进行编码。现在我想学习如何设计,也就是说,我想学习什么时候应该使用接口而不是具体类,根据需求提出设计、设计技巧和其他方面的所有内容。
请问您能否建议任何一系列的文章/书籍等来学习这些内容。
我已经尝试过阅读《Headfirst Design Patterns》,但即使我能够掌握一些设计模式,我仍然无法自己设计应用程序。
请帮忙。
设计模式是建立在基本原则上的高级设计特性的示例,例如关注点分离、一致性和可扩展性。如果你还在想接口和类的问题,可能需要阅读一些基本的面向对象思想。例如,阅读有关SOLID 原则的文章。因此,我不会首先买书,而是应该从那篇文章开始,并从那里的链接和谷歌搜索中继续学习。
然后,读书并不足够,您需要实践。
下次收到规格说明书时,请认真阅读并理解要解决的问题,然后回去自己设计它。将您的尝试与规格说明书进行比较。或者考虑规格说明书之外的替代方案,假设这里没有接口,或者那里没有工厂,这会有什么影响?
理想情况下,如果您的领导开始给您提供更少具体的问题并允许您设计它们,您的成长将得到促进。项目压力可能会阻止这种发展。在这种情况下,我认为您需要在自己的时间里进行工作。选择一些小项目并开始工作。这可能很困难,除非您有导师,但我认为只读不做不会使您进步得那么快。
对于初学者,可以尝试以下步骤:
每天学习一种模式是非常好的进度。
我同意Ben的观点,并想要补充一些我的看法...
设计是一门艺术,就像绘画一样,它不是来自书本,而是来自内心。
像设计模式这样的概念并不是设计的全部,它们只是用于创建设计的工具包中的一部分。特别是设计模式为我们提供了一种词汇,用于描述解决一些常见问题的方法。然而,确定要解决的问题是从需求中创建设计的艺术的一部分。
查看与您收到的代码相关的设计文档的要求。思考设计师将要求分解成一系列有限的问题的方式。
当然,不要害怕询问设计师的方法。
学习的最好方法是通过实践以及学习其他真实世界的项目。
学习设计模式对于设计良好的应用程序至关重要,但这本身还不足够。除了书籍/阅读/示例之外,我建议您查看现有应用程序的设计。选择一个开源项目-探索、实验并为该项目做出贡献。在做出贡献的同时,了解项目中使用的设计原则和方法。不要害怕尝试多个项目,直到找到您最感兴趣的“那一个”为止。
当然,一开始您需要理论知识作为基础,因此我推荐以下书籍:
设计应用程序需要一些实践,但这不应该阻止你尝试。过一段时间,你就会掌握它;
一个提示:尝试向同事学习。让他们展示给你他们如何设计应用程序,他们遵循什么流程,如何识别问题以及他们是否使用模式来解决问题?有时候最好看看设计过程是如何工作的,而不是试图自己学习所有内容。
我对好资源的建议: