全栈工程师的百宝箱:图形工具篇

为了防止我下次钱包丢失,我正在努力打造一个智能(带GPS、蓝牙)的钱包,所以最近文章会少一点。

在上一篇《全栈工程师的百宝箱:黑魔法之文档篇》我们介绍了一些文档工具,今天让我来分享一下,我常用的一些图形工具,主要有两类:

  • 流程图
  • 数据可视化

流程图:Graphviz

说到流程图还是再次提及一下,我们之前说到的Graphviz

Graphviz (英文:Graph Visualization Software的缩写)是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形。它也提供了供其它软件使用的库。

它的主要特点是代码生成图像,并且足够的简单。

在我的那个“Web Developer 成长路线图”(GitHub: https://github.com/phodal/developer)里,就是用这个工具生成下面这个复杂的图形。

而其代码特别简单——和我们平时表达的手法是一样的,即:

"包管理" -> "包发布" -> "自动部署"
"CLI" -> "部署"
"脚本语言(Bash,Perl,Ruby,Python etc)" -> "部署"
"脚本语言(Bash,Perl,Ruby,Python etc)" -> "构建"
"*nix" -> "软件编译" -> "部署"
"构建" -> "软件编译"

Graphviz有一个大的优点和弱点是:自动生成,导致画线的时候很出现出问题。接着,我们就来看看手动画线的例子。

流程图: Visio vs Dia vs OmnIGraffle

在Windows世界里,在这一类的工具里面最常见的算是Visio:

遗憾的是,它并不支持在Mac OS上使用。而且,它并不在我购买的Office 365套装里。

在Mac世界里,最好的工具算是OmniGraffle,就是很贵——我们平时使用的是公司的Mac电脑,使用盗版软件是有法律风险的。

在GNU/Linux世界里,我们使用Dia。

Dia 是开放源代码的流程图软件,是GNU计划的一部分,程序创立者是Alexander Larsson。Dia使用单一文件界面模式,类似于GIMP与Inkscape。 Dia将多种需求以模块化来设计,如流程图、网络图、电路图等。各模块之间的符号仍是可以通用的,并没有限制。

顺便安利一下,我最喜欢的操作系统OpenSuSE——简洁、尾长、绿色。

OpenSuSE在KDE桌面下效果最赞了——因为KDE和OpenSuSE都是德国制造。总的来说,会比Debian系的Debian和Ubunt,及RetHat系的CentOS及Fedora稳定、漂亮。

令人遗憾的是这三个工具,我都用不了。Mac对X Windows的支持不是一般的差,于是我就需要别的替代工具。

在线流程图:Processon

这个工具还是相当好用,至少是在GxFxW内比较快——我之前使用过Creately、draw.io、Gliffy等等的一些工具,只是随着版图的扩展,很多地区都已经“xx”了。

不过遗憾的是:他们没有给我广告费。

ProcessOn是一个在线协作绘图平台,为用户提供最强大、易用的作图工具!支持在线创作流程图、BPMN、UML图、UI界面原型设计、iOS界面原型设计等。

同样的,在我的那个“Developer进阶书单”(GitHub: https://github.com/phodal/booktree)中,就是用这个工具画出规规矩矩的线。

并且,它还是跨平台的。

各种图: Word和Excel

由于翻译和写书的需要,我成了一个Office 365订阅用户。于是发现在Word等一系列的Office工具中,自带了一个SmartArt的工具:

可以画出很多很有意思的图形,比如:

又或者是:

分分钟就能画一个的节奏。

脑图: XMind

我想这个一般人都是知道的。

XMind思维导图软件被著名互联网媒体Lifehacker评选为“最佳头脑风暴和思维导图工具”及“最受欢迎的思维导图软件”。

它有一个很大的优点是使用了全球最先进的Eclipse RCP 软件架构,支持跨平台使用。它有一个很大的缺点是使用了全球最先进的Eclipse RCP 软件架构,导致了有点卡。

相比于流程图什么的,它只适合做脑图。

如果你还在使用Eclipse,那么你应该试试Intellij IDEA了。

各种图:D3.js

D3.js(D3或Data-Driven Documents)是一个用动态图形显示数据的JavaScript库,一个数据可视化的工具。

与上面的工具相比,这个工具可能没有那么方便。但是,作为一个数据可视化工具,它不仅仅可以做出各种炫酷的图形:

还可以做出一个技能树:

这个项目的GitHub见:https://github.com/phodal/sherlock

地图:Leaflet

Leaflet 是一个为建设移动设备友好的互动地图,而开发的现代的、开源的JavaScript 库。

虽然它与上面的图形没有啥关系,但是它带了一个图字啊。与Google Map原生的API,或者OpenStreet相比,它最大的优点是对移动设备支持好。

并且,它也是一个可以根据数据(GEOJSON,地理数据)生成图形的工具。

原文发布于微信公众号 - phodal(phodal-weixin)

原文发表时间:2016-06-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏破晓之歌

移动端音频视频入门 原

通过内部总线传到媒体服务器上,cdn网络使用rtmp协议,媒体服务器起到转换作用,从rtp到rtmp

2233
来自专栏Hadoop数据仓库

HAWQ取代传统数仓实践(十九)——OLAP

一、OLAP简介 1. 概念         OLAP是英文是On-Line Analytical Processing的缩写,意为联机分析处理。此概念最早由关...

5595
来自专栏JavaQ

编写高质量代码开篇

最近因为加入一个新的团队,才开始认真的关注关于编写高质量代码的话题,学习总结的同时,记录下这段让自己再一次认真学习的过程。 想成为架...

3165
来自专栏玉树芝兰

如何用正确的姿势发微信群通知?

人数众多的微信群里,你如何管理通知发放进度?想不想使用更高效的办法发通知?本文推荐给你一款小程序,帮助你轻松搞定微信群通知。

1541
来自专栏SAP最佳业务实践

想学FM系列(5)-SAP FM模块:主数据(3)-基金中心

3.1.2 基金中心 是基金预算管理的最小责任单元,并可归属指定的公司代码,同时可指定责任人员。它可带层次结构,并不是只有最末级才能有预算和预算消耗。在账户分配...

5816
来自专栏SDNLAB

SDN和NFV在接入网和核心网的最新趋势

现今,有线和无线技术正在竞争下一代接入网络的支配权。由于带宽的巨大需求,光网络仍会在接下来的发展中扮演着主要角色。其中,PON是公认的宽带架构。这种技术能够促使...

2715
来自专栏跨界架构师

过去这几十年,分布式系统的「数据一致性」精华都在这了!

        本文是本系列的第三篇。与前两篇《分布式系统关注点——数据一致性(上篇)》、《分布式系统关注点——通过“共识”达成数据一致性》形成完整的「数据一致...

1601
来自专栏分布式关系数据库探索

分布式关系数据库探索 - NewSQL 演化过程

回味过去,展望未来,开始分布式数据库探索之旅,首先了解历史,本文大致梳理一下数据库发展过程,从1970年到2018年,数据库的发展过程,仅供参考,交流和学习,感...

4931
来自专栏牛客网

BAT面经

因为也许我当时因为要实现梦想只有一条途径,可如果你选择了一条路,这并不意味着你要放弃其他的方式。——《跳出我天地》

1683
来自专栏轮子工厂

Linux系统的前世今生

上世纪六十年代,人们还在用批处理计算机,也就是一次性给一批任务到计算机,然后等待结果,中途不能和计算机进行交互,而且准备作业需要耗费大量时间。于是1965年,贝...

1062

扫码关注云+社区

领取腾讯云代金券