[Dart翻译]Flutter中的UML酷感

1,232 阅读2分钟

原文地址:itnext.io/uml-coolnes…

原文作者:fredgrott.medium.com/

发布时间:2021年2月6日 - 4分钟阅读

image.png

开发过程中的部分小细节是为你的Flutter项目生成一个UML图。UML图可以帮助开发者理解你的代码在OOP方面是如何配合的。

如果你的flutter项目有一套UML图,这也是开发者专业性的一个好标志。让我告诉你一个简单的方法来为你的flutter项目生成一些UML图。

UML插件

George Lesica 创建了 dcdg 插件,为 dart 和 flutter 项目生成 UML 图。

dart dcdg插件作者简介

George Lesica 不仅制作了 dcdg dart 插件,还制作了一些其他的 dart 东西,如叫做 Disp 的 Lisp 解释器。查看他的github简介(github.com/glesica)

前提条件

请注意,Flutter-SDK将dart安装在flutter-SDK中,设置环境变量和路径的正确方法是。

ENVS

FLUTTER_SDK_ROOT your-path-to-the-flutter-sdk-folder

并且,需要设置的是这些路径。

PATH SETTINGS
FLUTTER_SDK_ROOT/FLUTTER_SDK_ROOTbin
FLUTTER_SDK_ROOT\.pub-cache

注意:在MS Windows上,当我在路径设置中和在power-shell命令中引用env变量时,我必须用开头和结尾的%来分隔env变量。在Mac和Linux上,一旦你设置了一个env,你就需要使用前面的$。还要注意的是,pub-cache设置在flutter sdk文件夹中,而不是Google Docs在Mac、Linux和MS Windows上所说的位置,否则我们就无法在MacOSX、Linux和MS Windows上正常地进行跨平台操作。当他们从flutter 1.1过渡到flutter 1.2时,pub-cache的位置被移动了。

DCDG 插件

dcdg插件使用PlantUML来生成puml文本文件。只要把plantuml jar放在一个文件夹里,并设置env变量指向plantuml.jar文件。这样,当你使用java -jar命令使用puml文件作为输入来输出png文件时,你就可以参考这个env名称。

要安装那个dart dcdg插件,请记住,你需要在pub命令前加上flutter,就像它说的那样。

pub global dcdg activate

在dcdg插件页面上。但是,实际上是这样的,因为你把flutter和dart sdks一起安装了。

flutter pub global dcdg activate

在你的flutter sdk中,因为它有dart sdk在同一个sdk中。如果你不相信,试着以其他方式输入,你应该得到一个找不到pub的错误。

在我们开始实际的UML图的生成之前,确保你的IDE安装了PlantUML插件。

现在,让我们得到一些UML图!

image.png

生成UML图

在你的终端上,在你的flutter项目的位置上,你将输入。

dcdg -o uml\samsara.puml

假设你在Flutter项目中首先创建了一个子文件夹uml,这个命令行集应该在UML子文件夹中产生一个samsara.puml文件。而且,你将可以在你的IDE中用你安装的PlantUML插件查看该文件。

为了得到png文件,在你的终端上再这样做。

java -jar %PLANTUML% uml\samsara.puml

请记住,这是MS Windows ps的方法,如果你在MacOSX或Linux上,你需要把PLANTUML的环境名称去掉开头和结尾的%,然后在环境名称上加一个$的前缀即可。你会得到一个图像。

image.png

简而言之,统一建模语言(我们称之为UML)是一种表达编程代码OOP结构的方式。方块代表类,由大C表示,变量在最上面的子框中,下面的框表示函数。方块表示声明为私有的变量和函数,圆圈表示非私有的函数和变量。

结论

你现在可以为你的Flutter项目生成一个UML图,这本身听起来并不算什么。但是,我必须向您展示所有的开发操作部分,以及如何在您的flutter项目中把这些部分放在一起实现开发操作自动化。

通过看到这些部分的组合和自动化,你会明白,你可以在创建flutter项目时就开始进行开发作业,而不是等待。是的,即使你正在开始学习flutter和dart。

商标通知

谷歌拥有以下商标;Dart, Flutter, Android, Roboto, Noto. 苹果拥有iOS、MacOSX、Swift和ObjectiveC商标。在我的能力范围内,我遵循上述商标的品牌和使用指南。

资源

关于Fred Grott

我是一个疯狂的SOB,作为一个前安卓手机开发者,我开始写关于flutter手机应用的开发、设计和生活(见Eff COVID和GOP fredgrott.medium.com/eff-covid-a… )。我是否会达到关键的一百万中级月度浏览者大关?坐下来,看着它发生。在这些社交平台上找到我:

twitter.com/fredgrott