教程演示🔗
了解如何通过掌握 SOLID 原则和顶级 GoF 设计模式来改进 Flutter & Dart 代码。
你将学到什么
-
使用 *Dart* 在 *Flutter* 框架内*掌握*现代软件工程中最重要和最基本的设计模式
-
像经验丰富的*高级开发人员*一样学习并内化 SOLID 设计原则。
-
深入了解这些“基本设计模式”的内容、原因和方式。
-
获得每个模式的完整架构阐述(使用 UML)以及*真实世界*场景以及每个模式的实际编码示例。
-
致力于并完成基于 Dart 的作业,这将加深您对这些模式的理解。
-
了解如何针对给定的架构挑战“识别”“最佳模式”。
要求
-
假设您了解 Flutter 和 Dart。只需要基本经验。
-
您应该能够运行课程提供的 Dart 代码。我们将使用 Visual Studio Code 作为我们的 IDE,但您可以使用您喜欢的任何 IDE。
-
访问计算机。基于 Mac、Windows 或 Linux 的操作系统同样可以。所有工具均独立于操作系统。
-
您应该有权访问移动设备,但这并不是绝对必要的,因为我们将首先在模拟器/模拟器上开发我们的代码。
描述
我们都希望成为更好的软件开发人员,并能够称自己为“软件工程师”或“软件架构师”,但要做到这一点,您首先必须掌握一些设计模式。
本课程将带您踏上通往目的地的道路。
我们将教您如何识别何时使用特定的设计模式以分而治之的方式构建复杂系统,从而降低和抽象复杂性。
但我们并没有学习所有的设计模式,而是为您策划了最重要、最基础的 GoF 设计模式。
所有这些都是在使用Dart 的Flutter框架的上下文中进行的。
我们首先全面了解SOLID 设计原则以及它们与这些设计模式的关系。我们在真实的 wprld 问题以及具体的代码示例的背景下解释了一切。
在课程结束时,您将通过编写约翰·康威的生命游戏模拟代码来构建解决方案,该模拟将在您的移动设备上运行。
复杂的软件系统受到三个主要问题的困扰:
- 随着需求的变化,时间线也会被拉长。
- 多个开发人员很难协调他们的工作。
- 代码冗余。
这反过来又造成了维护和添加新功能的整体灵活性方面的问题。一般来说,这意味着设计不良的系统难以维护且不具有适应性。
解决上述所有问题的一个答案是拥有正确的设计和架构。想象一下正在建造的摩天大楼。总有一个高层次的蓝图。该蓝图用于向每个相关人员(从建筑师到供应链到建筑工人到机械调度等)展示正在做什么。
每个人都理解并遵循相同的愿景。
蓝图具有许多普遍理解的元素,这些元素在许多项目中重复出现。例如,所有建筑物都需要电线和管道,可能需要电梯、冷却系统、地下停车场,当然还有楼梯。它们通常还连接到电网、供水系统以及……道路。
所有这些共同元素都遵循某些标准,这些标准多年来在许多项目中得到了改进。它们很容易理解,并且几乎可以像食谱一样使用。
在软件工程中,我们还有一组在许多项目中重复出现的元素。例如,所有软件应用程序都需要创建对象,它们需要在这些对象之间传达状态更改,它们需要能够遍历这些对象的集合。换句话说,如果你想成为一名更好的开发人员,那么你需要精通那些经过时间考验的元素。在软件工程领域,这些元素被称为“设计模式”
本课程将教学生如何识别何时使用特定的设计模式以分而治之的方式构建复杂系统,从而降低和抽象复杂性。
这将帮助您在进行任何重大开发之前以架构方式设计项目,并可用于缩短开发时间并降低维护成本。
设计模式很重要,因为它们是众所周知的软件工程问题的经过时间考验的秘诀或解决方案。在创建软件应用程序时,某些问题会以相当可预测的方式重复出现,因此,如果您愿意的话,我们将有各种各样的轮子可供选择,而不是“重新发明”轮子。
我们将以与您之前所教的方式略有不同的方式来教您这一点。我们将采取实用的方法(即具体示例),但设计模式的力量来自于它们的“概念”,我们将教您这些设计模式的概念,以便您完全能够更改它们并根据您的需要进行修改。此外,我们还将研究如何将所有这些模式组合成更大的东西:架构。
精心设计的架构是一件神奇的事情,它的整体大于其各部分的总和。
这就是我们将努力教给您的内容。
本课程适合谁:
- *Flutter 和 Dart* 开发人员想要学习设计、架构并最终开发*更好的代码*。
- 想要深入了解什么是伟大的“软件架构”的开发人员。