想知道程序员应该知道什么才能擅长设计,特别是在Java / J2EE技术中。
答案 0 :(得分:3)
首先,Good Design超越了您选择用于实现设计的任何语言。良好的软件设计是关于管理复杂性以创建易于理解的代码,这些代码是健壮且可维护的。要点是
在我看来,良好的设计是通过理解良好实践和创造性的结合来实现的。根据我的经验,设计中最难的部分是将问题正确地功能分解为更小的子问题。重要的是要理解实现这种分解的过程几乎总是一个迭代过程,而不是一个有条理的自顶向下过程。你必须准备好修改或丢弃以前的设计分解,直到你有一些可维护的东西。
很难谈论好的设计,更不用说两件事了
虽然有些语言是面向对象的,但有些语言纯粹基于对象,而其他语言(如C语言)是在基于对象的设计变得广泛传播之前创建的,原则和实践可以应用于任何语言。我编写的大多数代码都是在C中,我尝试尽可能使用类似对象的实现。
设计模式为常见问题提供了良好的解决方案,并为这些解决方案命名。我发现设计模式的研究是理解优秀设计可以实现的关键。
答案 1 :(得分:0)
为了开始理解设计,你应该先写一些玩具项目。写下它们,偶尔退一步反思,回去重写。泡沫,冲洗并重复。
在设计中犯错误是了解下次应该如何做得更好的最好方法。当然,您应该注意一些方法,其中最重要的是模式和信息隐藏。除此之外,还有各种软件架构的资源/书籍。例如:Len Bass,Paul Clements和Rick Kazman的实践中的软件架构(第2版)(软件工程中的SEI系列)
尝试仔细查看信息所属的位置。利率应该是(小)例子的Account或AccountType中的字段。
最后但并非最不重要的是,尝试让自己参与有关设计的讨论。与同行辩论,但也挑选更有经验的设计师/建筑师的大脑。
保持关键!虽然软件设计比建筑设计更具有确切的领域,但有一些明显的优点和缺点,品味/偏好和修辞仍然是交易的一部分。
答案 2 :(得分:0)
我会推荐几件事:
模式为您提供了向自己和他人描述设计的基本词汇。只是阅读不同的方法,你会发现新的可能性。如果您正在研究J2EE,那么控制反转等模式至关重要。
良好设计的要点是防止紧密耦合。任何可用于将代码移动到松散耦合层的东西都将有助于您的整体设计。
与混乱的Big Ball Of Mud方法相比,快速研究其他人的代码可以让您感觉外观漂亮。