UML - 我从哪里开始?我什至需要学习它吗?

UML - Where do I start? Do I even need to learn it?

我目前正在学习成为一名开发人员。在解决问题时,我发现自己很难理解问题、要求、事物之间的联系等...

然后我偶然发现了 Mosh Hamedani 的设计模式课程,发现了 UML - 统一建模语言,思考 “我需要这个!这个将帮助我成为更好的问题解决者/开发者。"

我真的很讨厌不知道自己到底在做什么的感觉。即使是一个简单的例子,比如在 React 中制作一个 counter 应用程序。对软件开发没有基本的了解,光看教程就没意义了。

所以有了这个post,我想问:UML能帮我吗:

  1. 构建软件时识别/组织需求?
  2. 更好的可视化/理解算法和数据结构?

使用 UML,我可以:

  1. 制作图表来解释和理解算法的工作原理? (例如递归函数)。
  2. 让我了解我要构建的东西的整个结构,从简单到大型复杂系统?

如果 UML 可以完成所有这些,除了来自 Youtube 的视频教程,我在哪里可以找到免费资源 学习和掌握 UML?

谢谢!

Whosebug 不是一个获取有关如何学习软件设计、开发等方面建议的平台。afaik。话虽如此,我会尽力回答您的问题。 (它将是 opinion-based)

Will UML help me:

  1. Identify / Organize the requirements when building software?

UML 是一种语言,可帮助您可视化已有的模型,以便更好地与其他开发人员交流这些想法。它不会帮助您自己创建这些模型。

  1. Better Visualization / Understanding Algorithms & Data Structures?

不,你必须分别学习数据结构和算法才能理解它们。

With UML, can I:

  1. Make diagrams to explain & understand how Algorithms work? (Recursive functions for example).

特别是算法,没有。由于 UML 是统一 建模 语言,它可以帮助您描述模型,例如软件设计模式(例如,class OOP 中的图表和方法)。算法通常用伪代码来描述。

  1. Make me knowing the entire structure of what I'm going to build, from simple to big complex systems?

如果您完全理解 UML,那么它将帮助您查看现有的 UML 并了解正在发生的事情、给定系统中的不同组件如何相互交互等,但它最终不会帮助您构建一个本身。

UML 只是软件设计的一小部分,它的目标主要是在人与人之间有效地交流思想,因为通过文本描述复杂的系统效率低下且难以理解。通过一致的规则和符号,我们可以互相讨论我们如何设计软件并更好地确定要改进的地方等。

如果你想学习数据结构和算法,应该有这方面的课程。 (我敢肯定有开放的大学课程)如果你想学习软件设计,学习设计模式、需求等应该对你有更好的帮助,而 UML 只是其中的一小部分。无需关注 UML 本身。