软件分析....从UML或设计模式开始?

时间:2012-01-22 00:15:56

标签: java design-patterns uml

我是一名有两年经验的java程序员,我非常喜欢编程,尤其是OO编程,如果我有一个项目,我会直接编程,没有任何系统分析操作,所以我的代码没有排序,因为它应该是的,我想学习如何编写和设计一个好的代码,我应该开始学习UML还是我可以直接通过设计模式?什么是学习UML和设计模式的最佳书籍。

非常感谢你的时间

5 个答案:

答案 0 :(得分:2)

从粗刷设计开始,您可以在其中识别解决方案的主要部分。你可以使用UML,但这不是强制性的。

然后,开始编写测试或可执行规范,并发展代码以满足这些测试。使用您的粗刷设计作为指导,以及测试。练习测试驱动的开发。征求利益相关方的反馈意见。重复。重复。迭代。

(当然,这在很大程度上取决于您所使用的应用程序类型,我假设使用类似于业务的非安全关键软件。)

至于书籍,请看“领域驱动设计”和“以测试为导向的面向对象的软件”。

哦,永远不要从设计模式开始......

答案 1 :(得分:1)

UML是达到目的的手段,绝不是唯一的手段。尝试一下,看看你是否喜欢它,我个人并不喜欢它。您需要发现自己想要如何思考和设计应用程序。我个人喜欢在白板上画画框。

设计模式可能很有用,但它们描述了更具体问题的解决方案。这里的一个陷阱是,从设计模式开始的人试图在任何地方应用它们。他们试图将设计模式与问题相匹配,但它应该是另一种方式。 UML和设计模式绝不是相互排斥的,它们(必然)不会起到同样的作用。

就设计模式而言,我发现Head First Design Patterns是一本不错且易于阅读的书,虽然这非常主观,因为我知道很多人真的很讨厌Head First的写作风格书籍。

答案 2 :(得分:0)

UML是一种表示模型的方式,它不是模型的替代品。该模型可以用UML表示,但不仅仅用UML表示 设计模式有助于创建合适的模型并避免常见错误。就个人而言,我发现马丁福勒和埃里克埃文斯的书非常有用,但我相信还有很多其他好作家。

答案 3 :(得分:0)

没有学习如何设计代码的方法,而是关于经验。

好吧,经过15年以上的汇编/基础/ pascal / java / c / c ++ / C#和其他大量语言,有时候我的代码没有按照它应该(或可能)的顺序进行排序,但我仍然付出了很高的代价。一般认为是一个优秀的程序员。

背后有太多原因,紧张的发布日期,过快的发展技术,愚蠢的客户要求,设计的怪异框架只考虑可扩展性(这甚至是英语单词)而不是专注于可用性。

当我开始一个新项目时,我做的第一件事就是喝咖啡。

然后我联系客户(或任何将使用该应用程序的人)并尝试掌握他们真正需要的东西。了解客户需要的是真正的目标(当然获得报酬后^^)

在此之后,我用铅笔和纸画画,不遵循任何标准。盒子,圆圈,箭头,笔记,某种艺术头脑风暴。

设计模式......使用它们的最佳方法是避免使用它们。它们经常与现实生活中的问题不符,但世界各地的程序员都在滥用它们,是的,主流化导致了这一点。但如果您觉得使用它们的绝对理由,请从GoF野兽开始(设计模式:可重复使用的面向对象软件的元素:Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides)。

2年只是一小部分时间。设计好的代码需要更多的时间(当然还要尝试不同的语言)

答案 4 :(得分:0)

可用于设计模式的最佳书籍是四人帮中的book'设计模式:可重复使用的面向对象软件的元素'。本书的最新版本还包括一个UML书籍。这将是一个良好的开端。

然而,仅仅实现设计模式是错误的。当你想学习编写和设计好的代码时,理解何时使用模式(以及何时开发自己的模式!)是必须的。