技术分享

使用 PlantUML、Mermaid、Flowchart 和 Graphviz 绘制流程图

使用 PlantUML、Mermaid、Flowchart 和 Graphviz 绘制流程图

在现代软件开发和项目管理中,流程图是帮助团队理解和沟通复杂概念的重要工具。本文将探讨几种流行的文本绘图工具,包括 PlantUML、Mermaid、Flowchart 和 Graphviz,并比较它们的优缺点。

文本绘图工具

文本绘图工具使用户能够通过简单的文本描述来创建图形。以下是我们将讨论的几种工具:

工具对比

工具 特点 适用场景 美观性 学习曲线 优点 缺点
PlantUML 强大的 UML 图生成工具 需要高质量图形的场合 生成高质量图形,功能强大 语法相对复杂
Mermaid 轻量级,适合快速绘制简单图表 Markdown 文档中的快速原型设计 易于使用,快速绘制 功能相对较少
Flowchart 直观易用的流程图工具 简单流程图的快速绘制 简单易用,快速上手 功能有限
Graphviz 适合复杂图形结构的开源绘图工具 复杂图形结构的绘制 强大的布局算法 学习曲线较陡峭

使用工具

在实践中,我们可以使用多种方法来使用这些绘图工具:

  • Visual Studio Code

    我们可以使用插件来支持这些绘图工具的预览功能。

    • PlantUML 插件可以让您实时预览 UML 图。
    • Markdown Preview Mermaid Support 插件则支持在 Markdown 中预览 Mermaid 图。
  • 语雀

    语雀提供了文本绘图的功能,用户可以在其中撰写和预览图表。

Markdown 中的图表

值得一提的是,PlantUML 和 Mermaid 图表可以直接嵌入到 Markdown 文档中,这使得在撰写技术文档时更加方便。

示例

接下来,我将提供一个绘制好的示例,以展示如何使用 PlantUML 进行流程图的创建。

@startuml
skinparam defaultTextAlignment left
skinparam noteBackgroundColor #F9F9F9
skinparam noteBorderColor #CCCCCC

title 软件研发流程

:需求收集;
note right
    **关键活动:**
    1. 收集产品需求
    2. 进行市场分析
    3. 进行用户反馈
end note
note left
    **交付物:**
    1. 用户故事
    2. 需求池
end note

:迭代规划;
note right
    **关键活动:**
    1. 讨论需求
    2. 组织需求讨论会
    3. 分析市场数据
    4. 制定迭代计划
end note
note left
    **交付物:**
    1. 迭代路线图
    2. 下个迭代计划
end note

:设计;
note right
    **关键活动:**
    1. 制定系统架构
    2. 设计 *
    3. 小规模评审(产品内部)*
    4. 大规模评审 *
    5. 迭代启动会 *
end note
note left
    **交付物:**
    1. 设计文档
      - 业务流程图
      - 实体设计
      - 原型和平面设计
      - 开放接口设计
      - 作业设计
      - 系统参数设计
    2. 产品原型
end note

split
    :开发;
    note right
        **关键活动:**
        1. 开发任务拆解会 *
        2. 编写代码
        3. 进行单元测试
        4. 进行代码审查
    end note
    note left
        **交付物:**
        1. 可运行的软件代码
    end note
split again
    :测试;
    note right
        **关键活动:**
        1. 测试任务拆解会 *
        2. 制定测试计划 *
        3. 撰写测试用例 *
        4. 测试用例评审 *
        3. 执行功能测试 *
        4. 执行接口测试 *
        5. 执行性能测试
        6. 执行安全测试 *
        7. 执行 UI 测试 *
        8. 执行兼容性测试
        9. 执行回归测试 *
    end note
    note left
        **交付物:**
        1. 测试报告
        2. 缺陷跟踪列表
    end note
end split

:验收发布;
note right
    **关键活动:**
    1. 对软件进行最终的验收
    2. 准备发布所需的文档和材料
    3. 将经过测试的产品发布给用户
    4. 进行后续的用户支持和反馈收集
    5. 迭代评审会 *
end note
note left
    **交付物:**
    1. 发布的软件产品
    2. 相关文档
end note

:部署;
note right
    **关键活动:**
    1. 部署软件产品到生产环境中
end note

@enduml

效果图: 1.png

Mac 卸载应用后打开方式菜单残留问题的解决方法

在 Mac 上卸载应用程序后,有时会发现在右键菜单的”打开方式”中仍然存在已卸载的应用。这是因为 Launch Services 数据库中保留了这些应用的记录。本文介绍如何通过重置 Launch Services 数据库来解决这个问题。

什么是 Launch Services?

Launch Services 是 macOS 的一个系统服务,负责管理应用程序和文件类型之间的关联关系。它维护着”打开方式”菜单中的应用程序列表,当这个数据库出现问题时,可能会导致已卸载的应用仍然显示在打开方式列表中。

解决方法

  1. 打开 终端(Terminal)应用
    • 使用 Spotlight(⌘ + 空格键)
    • 输入”终端”或”Terminal”并回车
  2. 输入以下命令:

    /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
    
  3. 按回车执行命令
    • 命令执行过程中可能需要等待一会儿
    • 命令会重建 Launch Services 数据库
  4. 重启电脑
    • 重启后,系统会使用新的 Launch Services 数据库
    • 已卸载的应用应该不会再出现在打开方式列表中

命令说明

这个命令的各个参数的含义:

  • -kill:终止 Launch Services 数据库
  • -r:递归扫描指定的域
  • -domain local:扫描本地域
  • -domain system:扫描系统域
  • -domain user:扫描用户域

注意事项

  • 这个操作是安全的,不会删除任何应用程序或文件
  • 重建数据库后,系统可能需要重新扫描应用程序来建立文件关联
  • 如果问题仍然存在,可以尝试重复这个过程

如何下载 Kindle 电子书

由于 Kindle 宣布 2023 年 06 月 30 日停止在中国电子书店的运营[1],我想将购买的一些电子书下载存档。

步骤

  1. 下载电子书
    1. 方法一
      1. 下载 Kindle Download Helper [2]
      2. 安装或解压缩 Kindle Download Helper
      3. 登录 Amazon 官网
      4. 获取 Cookie
      5. 获取 CSRF Token
      6. 运行 Kindle Download Helper(这里遇到了一个坑1.png
    2. 方法二
      1. 下载 Kindle for PC v1.17 [3]
      2. 安装 Kindle for PC v1.17,并取消自动升级功能
  2. 去除 Kindle 电子书的 DRM 版权保护
    1. 下载安装 Calibre
    2. 下载 DeDRM Tools
    3. 安装 DeDRM Tools 插件到 Calibre 2.jpg
    4. 重启 Calibre
    5. 批量转换成 ePub 格式保存

参考

  1. 重要通知 | Kindle 中国电子书店运营调整
  2. yihong0618/Kindle_download_helper
  3. 去除 Kindle 电子书的 DRM 版权保护
  4. 自购亚马逊电子书移除 DRM 教程:DRM 脱壳 + 电子书格式转换
  5. apprenticeharper/DeDRM_tools
  6. noDRM/DeDRM_tools

使用 AI 工具换新头像

给自己定了一个小目标:每年要换一个社交头像。

今年使用了一些 AI 工具。步骤如下:

  1. 使用 ChatGPT

    问:

    2023 年流行的设计元素有哪些?

    答:

    1. 自然色调:从柔和的灰色到深海蓝,自然色调正在改变着设计的方向。
    2. 抽象图案:抽象图案和图形正在成为设计的新趋势,并将继续在 2023 年流行。
    3. 现代简约:现代简约的设计风格以其简洁、清晰的线条和几何图形而受欢迎,将继续在 2023 年流行。
    4. 动态配色:动态配色是一种把多种颜色组合在一起,以创造动感效果的设计技巧,将在 2023 年继续流行。
    5. 无缝渐变:无缝渐变是一种让颜色以柔和的方式从一个颜色渐变到另一个颜色的设计技术,将在 2023 年继续流行。
  2. 使用 ChatGPT

    问:

    有哪些使用 AI 生成图片的网站?

    答:

    1. 深度学习图像生成网站 Deep Dream Generator:https://deepdreamgenerator.com/
    2. AI 抠图网站 remove.bg:https://www.remove.bg/
    3. AI 图像生成网站 Artbreeder:https://www.artbreeder.com/
    4. AI 图像生成网站 DeepArt:https://deepart.io/
    5. AI 图像生成网站 Dreamscope:https://www.dreamscopeapp.com/
    6. AI 图像生成网站 Stylize:https://stylize.ai/
    7. AI 图像生成网站 Magenta:https://magenta.tensorflow.org/
  3. 选择 Deep Dream Generator

    将步骤 1 中关键词:自然色调、抽象图案、现代简约、动态配色、无缝渐变,翻译成英文作为输入,生成图片 avatar-2023.jpg