草庐IT

绝杀processOn,这款UML画图神器,阿里字节都用疯了,你还不知道?

座右铭 2023-04-16 原文

大家好,我是陶朱公Boy,又和大家见面了。

前言

在文章开始前,想先问大家一个问题,大家平时在项目需求评审完后,是直接开始编码了呢?还是会先写详细设计文档,后再开始进行编码开发?

☆现实

这个时候可能有部分小伙伴会出来反驳:还详细设计呢连给开发的时间都不够,项目经常被倒排期。

作者其实能感同身受上述小伙伴说的话。目前国内很多互联网公司,为了快速抢占市场,老板恨不得今天出产品需求明天就能见到产品。于是不可避免出现一种情况:一个月的工期硬是压缩到两周,别说写文档了,能把代码写完就已经不错了。

☆建议

作者对这种工期倒排的情况一直都是嗤之以鼻。这样的系统上线后期副作用太大(功能到处都是bug,用户体验也差,几乎是一次性代码)。

话说回来如果你的项目按正常节奏进行,然后分配到你手上的任务量已经超过3个工作日了,那么作者是强烈建议你写个设计文档的。

这个也是很多中大长的一个事实标准。工作量3天以内的,比如一般的技改需求,直接上手就行了,因为太过简单。
但往往那种复杂需求:前后链路交互错综复杂,业务内容各种条件判断,如果不好好画画图,很有可能会遗漏掉部分case,那么程序出BUG的风险就会大大增加了。这也是写文档画图的一个深层次的原因。

工具推荐

如果你已经开始打算写详细设计文档,那用什么内容填充文档呢?

大家看下这份围绕“架构”的类图,我们说架构由架构文档来承载体现,而架构视图组成了架构文档。所以我们要画一些架构视图来填充我们的架构文档。

而UML图正是架构视图的一部分,也是当下业界最主流的架构视图。

那有没有比较专业、美观、靠谱的UML画图工具推荐呢?

我们说时下UML画图工具实在很多比如processOn、Aastah、Visio、draw.io等。就单纯从UML画图工具而言我强烈给大家推荐这一款——visual paradigm(支持多环境、在线离线等特性。第15界jolt的uml设计工具大奖得主)。

一起来看看有哪些公司正在使用它,就足够证明它的优秀

贴几个作者在平时工作中用这款软件画的几个UML图,供大家参考。

☆用例图

☆ER图

☆时序图

快速开始

☆下载安装

首先大家在浏览器中输入网址:www.visual-paradigm.com/cn/进入其官网首页,…

进入下载界面,选择社区版

跟很多软件一样,它是分商业版本和社区版本的。商业版本功能相对比较多,但很遗憾是收费的。
社区版相对功能少一点,但聚焦我们关注的UML图、ER图刚好社区版全线支持,所以大家直接下载社区版即可。

选择社区版下载

☆工具使用

新建项目

应用安装完毕后,打开应用进入首页。导航栏部分我们重点关注一下项目、图标两项。

新建UML图前,我们需要先新增一个项目。点开项目选项后,立即点击新增按钮,进入项目新建界面,填写完项目基本元素后,最后点击

建立空白项目按钮创建一个空白的项目,创建完后会刷新停留在项目首页。

点开左侧菜单项的”图表总管“

至此一个空白的自定义项目已创建完毕。

绘制图形

点开左侧菜单项的图表总管后,大家就可以看到我们刚新建好的项目,项目下的第一个包就是UML图表,里面包含了UML的各个元素。接下来我们就可以开始进行绘图了。

举例

各个UML图型绘制的步骤都是一样的,作者以用例图的绘制举例,给大家演示一下具体的绘制步骤:

首先在UML图表下选中你想绘制的图形,比如用例图。然后右键点击会出现一个弹窗,选择新增用例图后,会出现相应图形的绘制主界面。

主界面整体分左右两个部分。左边部分为工具箱(包含具体绘制元素),右边部分是绘图区域,大家根据需要把工具箱里的元素拖入右边的绘图区域即可。

保存

绘制完成后,记得保存(支持保存到本地云上)。

本文完!

写到最后

如果这篇文章你看了对你有帮助或启发,麻烦关注、点赞一下作者。你的肯定是作者创作源源不断的动力。

公众号

欢迎大家关注我的公众号:【陶朱公Boy】

里面不仅汇集了硬核的干货技术、还汇集了像左耳朵耗子、张朝阳总结的高效学习方法论、职场升迁窍门、软技能。希望能辅助你达到你想梦想之地!

公众号内回复关键字电子书”下载pdf格式的电子书籍(JAVAEE、Spring、JVM、并发编程、Mysql、Linux、kafka、分布式等)、“开发手册”获取阿里开发手册2本、"面试"获取面试PDF资料。

加群

回复关键字“加群”拉你入群,可以跟很多BAT大厂的前辈交流和学习。

有关绝杀processOn,这款UML画图神器,阿里字节都用疯了,你还不知道?的更多相关文章

  1. Ruby - 如何将消息长度表示为 2 个二进制字节 - 2

    我正在使用Ruby,我正在与一个网络端点通信,该端点在发送消息本身之前需要格式化“header”。header中的第一个字段必须是消息长度,它被定义为网络字节顺序中的2二进制字节消息长度。比如我的消息长度是1024。如何将1024表示为二进制双字节? 最佳答案 Ruby(以及Perl和Python等)中字节整理的标准工具是pack和unpack。ruby的packisinArray.您的长度应该是两个字节长,并且按网络字节顺序排列,这听起来像是n格式说明符的工作:n|Integer|16-bitunsigned,network(bi

  2. ruby - EventMachine - 你怎么知道你是否落后了? - 2

    我正在研究使用EventMachine支持的twitter-streamruby​​gem来跟踪和捕获推文。我对整个事件编程有点陌生。我如何判断我在事件循环中所做的任何处理是否导致我落后?有没有简单的检查方法? 最佳答案 您可以通过使用周期性计时器并打印出耗时来确定延迟。如果您使用的是1秒的计时器,您应该已经过了大约1秒,如果它更长,您就知道您正在减慢react器的速度。@last=Time.now.to_fEM.add_periodic_timer(1)doputs"LATENCY:#{Time.now.to_f-@last}"@

  3. ruby - Sinatra:哈希的未定义方法字节大小 - 2

    很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。我正在创建一个Sinatra应用程序,它采用上传的CSV文件并将其内容放入哈希中。当我像这样在我的app.rb中引用这个散列时:hash=extract_values(path_to_filename)我不断收到此错误消息:undefinedmethod`bytesize'forHash:0x007fc5e28f2b90#object_idfile:utils.rblocation:bytesiz

  4. ruby-on-rails - Ruby 如何知道在哪里可以找到所需的文件? - 2

    这里还有一个新手问题:require'tasks/rails'我在每个Rails项目的根路径中的Rakefile中看到了这一行。我猜这行用于要求vendor/rails/railties/lib/tasks/rails.rb加载所有rake任务:$VERBOSE=nil#LoadRailsrakefileextensionsDir["#{File.dirname(__FILE__)}/*.rake"].each{|ext|loadext}#LoadanycustomrakefileextensionsDir["#{RAILS_ROOT}/lib/tasks/**/*.rake"].so

  5. ruby - 如何知道通过 ruby​​ 上传 ftp 是否成功? - 2

    下面的代码通过ftp上传文件并且它有效。require'net/ftp'ftp=Net::FTP.newftp.passive=trueftp.connect("***")ftp.login("***","***")ftp.chdir"claimsecure-xml-files"ftp.putbinaryfile("file.xls",File.basename("file.xls"))ftp.quit但是如何确定上传是否成功呢? 最佳答案 之后ftp.putbinaryfile("file.xls",File.basename("

  6. ruby - 类的大小(以字节为单位) - 2

    有没有一种方法可以查看ruby​​中为类分配的内存大小?我构建了一个自定义类,我想知道它在内存中的大小。那么C语言中有没有类似sizeof()的函数呢?我只是想像这样初始化一个新类test=MyClass.new并试图找到一种方法来打印出已分配给内存的类的大小。这在ruby​​中甚至可能吗? 最佳答案 没有以与C相同的方式计算类大小的语言功能。对象的内存大小取决于实现。这取决于基类对象的实现。估计使用的内存也不简单。例如,如果字符串很短,则可以嵌入到RString结构中,但如果它们很长(NevercreateRubystringsl

  7. ruby - 将 Ruby 2.1 编译为字节码 - 2

    同时Ruby1.9wascompilingtobytecode,它无法将预编译的脚本保存到磁盘。我们被告知期待Ruby2toallowsavingcompiledbytecode到磁盘,但我没有听到太多关于它的讨论,也没有看到无数的博客文章描述如何通过编译获得性能,我希望看到它是否真的在Ruby2.x的某个地方实现。AfocusedGooglesearch似乎没有返回任何有用的东西。在2.1(或更早版本)中可以吗?如果没有,这是否仍在路线图上? 最佳答案 有一半可能。从here下载扩展并编译它。需要库iseq.so好的,现在字节码的

  8. ruby - 任何人都知道字符串开头的 "weird"字符是怎么回事? - 2

    我在尝试从它们的数组中检测某个字符串时遇到了一个奇怪的问题。有人知道这里发生了什么吗?(rdb:1)pmagic_string"TimePeriod"(rdb:1)pmagic_string.classString(rdb:1)pmagic_string=="TimePeriod"false(rdb:1)p"TimePeriod".length11(rdb:1)pmagic_string.length14(rdb:1)pmagic_string[0].chr"\357"(rdb:1)pmagic_string[1].chr"\273"(rdb:1)pmagic_string[2].c

  9. ruby - 有没有办法知道调用方法? - 2

    我知道类方法告诉对象类的名称是什么,我怎么知道调用方法的名称?有办法知道吗? 最佳答案 ExaminingtheRubyCallStack共享此信息:您有没有想过在不引发异常的情况下查看调用堆栈?caller.each{|c|putsc} 关于ruby-有没有办法知道调用方法?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1859979/

  10. ruby - 在 Ruby 中计算一个字节的奇偶校验 - 2

    在Ruby中计算一个字节是奇校验还是偶校验的最佳方法是什么?我有一个可用的版本:result="AB".to_i(16).to_s(2).count('1').odd?=>true不过,将数字转换为字符串并计算“1”似乎是一种糟糕的计算奇偶校验的方法。有什么更好的方法吗?我希望能够计算3DESkey的奇偶校验。最终,我想将偶数字节转换为奇数。谢谢,丹 最佳答案 除非你拥有的速度不够快,否则请保留它。它清晰简洁,性能比您想象的要好。我们将根据数组查找对所有内容进行基准测试,这是我测试过的最快的方法:ODD_PARITY=[false,

随机推荐