nginx源码分析(4)-方法(1)

看了几天的源码,进度很慢,过于关注代码实现的细节了,反而很难看清整体结构。于是问诸google寻找方法。大体上分析源代码都要经历三遍过程,第一遍是浏览,通过阅读源码的文档和注释,阅读接口,先弄清楚每个模块是干什么的而不关心它是怎么做的,画出架构草图;第二遍是精读,根据架构草图把系统分为小部分,每个部分从源码实现自底向上的阅读,更深入细致的理解每个模块的实现方式以及与模块外部的接口方式等,弄明白模块是怎么做的,为什么这样做,有没有更好的方式,自己会如何实现等等问题;第三遍是总结回顾,完善架构图,把架构图中那些模糊的或者空着的模块重新补充完善,把一些可复用的实现放入自己的代码库中。

现在是浏览阶段,并不适合过早涉及代码的实现细节,要借助nginx的文档理解其整体架构和模块划分。经过几年的发展,nginx现在的文档已经是很丰富了,nginx的英文wiki上包含了各个模块的详细文档,faq也涵盖了很丰富的论题,利用这些文档足以建立nginx的架构草图。所以浏览阶段主要的工作就是阅读文档和画架构草图了。

对于源码分析,工具是相当关键的。这几天阅读源码的过程,熟悉了三个杀手级的工具:scrapbook离线文件管理小程序、graphviz图形生成工具、leo-editor文学编程理念的编辑器。

scrapbook是firefox下一款轻量高效的离线文件管理扩展程序,利用scrapbook把nginx的wiki站点镜像到本地只需要几分钟而已,管理也相当简单,和书签类似。

graphviz是通过编程画图的工具集合,用程序把图形的逻辑和表现表示出来,然后通过命令行执行适当的命令就可以解析生成图形。

leo-editor与其说是一个工具平台,不如说是一套理念。和其他编辑器ide不同的是,leo关注的是文章内容的内在逻辑和段落层次,文章的表现形式和格式是次要的。用leo的过程,其实就是在编程,虽然刚开始有些不适应,但习惯之后确实很爽,杀手级的体验感,很听话。

btw,充实的8天长假结束了,总结一下,这个假期没有出去玩,做了三件事情,第一件事情是基本完成了房子的装修,墙面、地板、家具,都是亲力亲为的成果,虽然没有节省多少开支,却增添了动手的乐趣;第二件事情是溜冰,体会了平衡的力量;第三件事情是练习画画,锻炼了观察与概括的能力。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值