这个系统的起源在于去年底接到一个任务,开发微博新鲜事系统,当时我带着两个新人,还有两个前端要在一个月内上线一版。我还需要一边写PHP框架,一边跟另外两个后端一起写业务代码。时间很紧, 而且沟通问题很烦人,遂决定搞一个api管理系统,我们后端出wiki,前端或app端按wiki来开发,减少不必要的扯皮。 我的需求很简单,就几点:
- 可以离线用客户端工具书写
- 速度快,不卡顿
- 可以追溯所有的变化
但是很遗憾,找遍了也没找到一个满意的,于是决定自起炉灶。 第一版只花了半天就写出来了,其实就是个Python脚本。我们将写好的文档放到指定的git的一个文件夹下,然后git提交的时候会触发git hooks,这时Python脚本会遍历这个文件夹并解析里面的markdown文件,将其转换成指定格式的json。然后前端页面只需要读取这些json文件并展示就行了。因为基本相当于静态页,所以访问速度非常快。整个文档是在git的管理下的,所有的变动都是可以追溯的。而且书写markdown的工具也很多。
微博新鲜事项目开发的很顺利,第一版实际只用了二十多天。当时我们后端把接口写好后输出文档,前端按着文档来。后端只需要保证文档和接口一致即可。
新鲜事第一版上线后,我又优化了一下这个文档系统,主要是解除了Python的依赖,用shell实现了Python的部分功能。然后把markdown的解析放到了前端。前端是基于react的,我自己撸了一套简单的ui,看起来还算美观...
部署也很简单,直接git clone这个系统,然后用nginx或其他webserver(我以后可能用go或c++实现一个)指向这个项目的根目录,默认首页设置成index.html
即可。
github地址: https://github.com/tiyee/gomamon
demon: Demo