如何绘制流程图和结构图

经常会看到一些技术博客在讲解代码的时候,能配上一幅幅精美的程序流程图、结构图,一直都很佩服这样的作者。其实他们大多数也并没有使用什么特别的工具,基本上可以分为如下几类:

  • Microsoft Viso, Word, PPT, Windows 自带的画图板等常用办公软件
  • 一些其他相对较小众的绘图软件,例如 Pencil
  • 脑图工具,例如 Xmind
  • Graphviz, 使用一种叫 dot 的语言来描述结构并生成图片
  • 利用最基本的字符(连字符,箭头等)来绘制,这种做法第一眼就会给人一种返璞归真的感觉,但实际上我个人并不习惯

上面这几类绘制结构图、流程图的方法或工具,我基本上都使用过,但绘图水平实在太差,效率也很低。在读代码的时候,大部分是靠笔、纸这种最原始的工具来完成分析,甚至还专门买了一个白板放在家里。这样往往几幅图画下来后,自己是弄得很明白了,却没法分享到文章里去。

一场噩梦

昨晚上做了一个噩梦,现在想想还不寒而栗。

这个梦有很长的情节,醒来后还回忆了一下,觉得大概可以写成一部小说了。但是现在却只记得一个片段。

忘了因为什么原因,在一番恶斗后,我被一个恶人制服了,一双铁钳般的手扼住了我的脖子。在拼命的反抗中,我的一只手抓住了他的一只胳膊,像抓到了救命稻草一样,我奋力用手指、指甲去拧、去挠,但并没有挣脱出来。忽然我意识到,用指甲去挠他的胳膊时,我的另一只手臂却感受到了同步的疼痛,这个念头让我在梦里手脚冰凉。为了确认,我反复的掐、挠,果然我的意识是对的。无论我怎么将力量作用在他的那只胳膊上,这些力量其实都施加在我自己的另一只胳膊上。

口琴与蛋炒饭

2016第一天这篇日志里,我为自己的2016定下的关键词之一是学习。学习这两个字内涵非常深,希望自己无论是在工作上,还是其他方面,都能保持学习心态。这句话似乎我们在读书时每年都会说,说了近二十年。现在再说出这句话来,却是发自内心的体会,人是确实需要持续学习,终身学习的。想到如果三年、五年、甚至十年,自己仍然跟今天一样,就会觉得害怕。我希望自己每一年回过头来,总能看到自己的变化。这也是为什么我作为一个程序员,在写技术文章之外,还要写那么多看起来无病呻吟的其他类文章的原因,希望这一篇篇文章,是我人生旅途的一个个刻度。

终身学习、活到老学到老等等俗语、谚语,看起来、说出来都是那么天经地义、理所当然。可现实是很多人一毕业就忘了怎么学习了。所以,李笑来提出来一个概念,叫“学习学习再学习”,这三个学习不是简单的重复、递进关系,第一个学习是动词,第二个是名词,第三个是动词,简言之,就是学习如何学习这件事,再去保持持续的学习这个过程。

一悲一喜

这几天,开源软件界有两件大事,一件是 Debian 创始人 Ian Murdock 自杀身亡,另一件是在锤子手机 T2 的发布会上,罗永浩宣布将门票收入捐给 OpenResty,可以说是一悲一喜。

2013年,Markdown 标记语言的设计者之一 Aaron Swartz 自杀,我以及无数的程序员们的博客书写时用的就是 Markdown; Debian 以及 Debian 的变种 Ubuntu,也是很多人使用过或正在使用的 Linux 发行版。他们的自杀前后的心理状态,我们肯定不可能去感同身受,我们可能会感叹一句,原来在黑客氛围浓厚的美国,这些著名的黑客在现实中却也遭遇着能敢于去自杀的痛苦。不管怎么样,他们在这个世界上留下了他们的足迹供后人怀念。祝 Ian Murdock 走好。

2016第一天

以前从来没有把元旦当作新一年的开始,因为觉得这是农历春节的作用。如今这个观念要做出改变了。一年的时间实在过得太快,如果把春节作为新一年的开始,发现没过多久一年又过去一半。所以,今天就应该回顾一下过去的一年,展望下新的一年了。

过去的一年里,生活上最大的变化就是结婚了。结婚本身真是一件非常简单事,简单到之前漫长的等待、纠结都好似不曾存在一样。实际上婚姻相关的主题,占据了这一年大部分的时间,说在今天回顾一下过去的一年的得失,我竟只能想到结婚这两个字。回想一下,让人更觉得在那些没有意义的事情上的纠结,实在是浪费生命。与婚姻相关的痛苦和纠结,很多经历过的人都懂,就不在博客里细说了。反而,婚后的生活,异常的平静,一切更井井有条。