程序员绘图工具推荐

偶尔讲讲工具,放松一下。

现在写技术文章不但要写技术细节,图还得画的好看。对于表达思路和架构来说,图确实挺直观的,这篇文章介绍一下常见的绘图工具。大家可以看自己的喜好自行选择。

在早期写 golang-notes 的时候,想要向那些写 RFC 文档和早期的 unix 大神们致敬,所以比较喜欢 ascii 图,这种图的好处是你可以直接将图表内嵌在文档内部,不需要有附件。有利于单文件传播。

用来画 ascii 的图工具有不少。

textik

textik 是一个在线项目:https://textik.com,可以直接在线绘制 ascii 图,绘制完之后,链接可以直接丢给别人看,有点类似那些语言的 playground。在他们的后端大概是有一个简单的存储吧。

textik

工具很简单,所以画的图一般也比较简单。

asciiflow

asciiflow

asciiflow 也是一个在线应用 https://asciiflow.com/ ,导出的时候可以选择 ascii 模式或者 extended 模式(其实就是用了一些非 ascii 的 unicode 字符)。

但是不支持中文

monodraw

monodraw

monodraw 是一个 mac 上的 app,看起来比 textik 之类的就高级多了,绘制的时候可以选择 unicode 模式或者 ascii 模式,unicode 模式的线条和边角会比 ascii 模式流畅很多。之前我在写 golang-notes 的时候,用 monodraw 画了大量的图片。

map

像 map 这种复杂的数据结构,一定是复杂的图,用 monodraw 画出来最终效果也不错。

monodraw 也不支持中文。

除了这几个工具,其实还有很多类似的:

比如:

https://technicism.github.io/Charaster/

还有可以把图片转成彩色 ascii 图[1]的:

ascii_color

不过这个比较像玩具了,还有人把视频抽帧转成 ascii,再转回视频来博眼球的。

如果不喜欢 ascii 图,现在有一些方便的工具,比如 draw.io(现在改名叫 diagrams.io了),用来绘制一些常用的软件工程图也挺方便的。

有人说 draw.io 画出来的图不好看,有两方面原因,一是工程师们基本都没有什么审美,所以不会调色;二是工程师用画图工具基本只用默认样式,所以对绘图工具的比较就是哪款软件的默认样式好,就吹哪款。

draw.io 内置的图有一些是很好看的:

drawio

这张图当时震撼了我好久,画图本质上其实是个设计问题,最近和图灵的老师要来了几本设计书,等我设计功底过关的时候再看看我能画出什么样的图。

不过我们还是要讲讲卷卷工程师们喜欢用的东西:

sketch

sketch 其实是一个原型设计工具,早期没有原型工具的时候,设计师们都是用 PS 来做设计的,效率低反人类,这个轻便小巧的工具一出现就赢得了很多人的心。

没想到多年后,连程序员也用这个玩艺儿来画图了。说白了他们就是喜欢这个工具的默认样式嘛:

sketch

看着确实很唬人。对于大多数没什么审美的人来说,#eeeeee 和 helvetica 就是极简设计审美密码了。

孰料设计行业的设计师们早就大踏步奔向了别的工具怀抱,这里卖个关子,关注我后面的分享的话应该知道未来他们在使用什么工具了。

omnigraffle

omnigraffle 和 sketch 一样是个付费软件,而且费用不低。主要优势就是 stencil(其实就是模版)丰富:

stencil

写《Go 高级编程》的时候有一些图我是用这个工具画的,不过用 draw.io 也一样可以画出来,感觉对于工程师来说,这个工具除了模板丰富,没啥别的优势了。

除了上面这些玩艺儿,我们可以选择一些工程师自己才玩得转的工具。

graphviz

graphviz 是一个用代码来生成图工具,你在用的 pprof 生成的图本质上就是用 graphviz 绘制的。

graphviz

把一些代码逻辑通过图表展示出来,首选的应该就是 graphviz,玩开源玩的多的应该都见过它的踪影。

plantuml

plantuml 是 java 写的一个 uml 图生成工具,之前在公司内部画活动图,序列图的时候我用的非常多。用这种模式画图和写代码其实差不多:

@startuml
scale 512*1024

|Gateway|
start
repeat
    :record data;
    :wating;
repeat while (id < 10)

|#778899|<font color=white>Copper</font>|
:enter the Endurance;
while (not hungry)
    :play;
    :kick football;
endwhile

end
@enduml
advanced_activity

既然是代码,那我们用版本控制工具来把这些 plantuml 的代码管理起来也是顺理成章的。

未来需要回头查(copy)阅(paste)也是很方便的。

该工具生成的图默认是早期 rational rose 风格,很复古,看着很专业。

基本上所有类型的 uml 图都可以用 plantuml 来绘制,前面说的 graphviz 能做的事情,有一部分用 plantuml 也可以做。

aws-plantuml

aws-plantuml[2] 是一个 plantuml 的扩展,能够生成 aws 上的模块交互图,很方便:

aws

这一期讲的都是一些还算正常的工具,下一期可能会讲一些加速程序员内容输出内卷的绘图/视频工具。

[1]

图片转成彩色 ascii 图: https://www.ascii-art-generator.org/

[2]

aws-plantuml: https://github.com/milo-minderbinder/AWS-PlantUML

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
数控程序员是机械制造行业中的一种职业,主要负责编写数控机床的加工程序,以及控制数控机床进行加工操作。在实际工作中,数控程序员需要应用CAD/CAM软件来进行相关工作。 CAD/CAM软件是现代机械制造行业中的重要工具,它可以帮助数控程序员进行加工工艺的设计和优化,提高加工效率和质量。具体来说,数控程序员关于CAD/CAM软件的应用主要包括以下几个方面: 1. CAD/CAM软件的基础操作:数控程序员需要学习和掌握CAD/CAM软件的基础操作,包括界面操作、绘图工具、编辑工具等方面的知识。 2. CAD/CAM软件的应用场景:数控程序员需要了解CAD/CAM软件在机械制造行业中的应用场景,包括零件设计、装配设计、工艺规划等方面的知识。 3. CAD/CAM软件的编程:数控程序员需要学习和掌握CAD/CAM软件的编程功能,包括自动编程、手动编程、编程优化等方面的知识。 4. CAD/CAM软件的仿真:数控程序员需要使用CAD/CAM软件进行数控机床加工仿真,包括模拟加工过程、验证加工程序、预测加工效果等方面的知识。 5. CAD/CAM软件的数据管理:数控程序员需要使用CAD/CAM软件进行数据管理,包括零件库管理、工艺库管理、加工程序管理等方面的知识。 以上是数控程序员关于CAD/CAM软件的应用的主要内容,熟练掌握和应用CAD/CAM软件可以提高数控程序员的工作效率和加工质量,也是现代机械制造行业中的重要技能之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值