结束语 行百里者半九十 你好,我是温铭。

时光飞逝,转眼间,持续 4 个多月的 OpenResty 技术专栏就要结束了。在最后的结课时光,让我们暂时放下技术,聊一聊我自己创作专栏的感触和心得吧。

OpenResty 开源已有十几年的时间,它的同步非阻塞的编程理念、高性能的稳定表现,都是远超同时期其他开发语言和平台的。但 OpenResty 至今都不是一个能够深入业务层面、能被更多开发者掌握的技术。究其原因,首先和它的自身定位和长远规划有关系,这方面我们没有办法改变;另一方面,也和它在社区上的投入不足有很大关系,直到现在, OpenResty 也没有一个很好的入门指南和完整的学习书籍。

所以,尝试从学习资料方面来促进 OpenResty 的普及,便是我联系极客时间团队撰写专栏的初心。我希望能够通过这种形式,让更多的开发者可以入门,对 OpenResty 有完整的认识,并能够把 OpenResty 深入到业务代码的开发中去。

最开始时,我是想用视频课的形式来完成这个内容的,因为这样对我来说最节省时间。熟悉我的朋友都知道,我是一个台上 high 的人,最喜欢的就是脱稿,因为这样可以让大脑飞速地运转,冒出很多自己都没有想到的观点。

但考虑到内容的错误订正,读者的复习、查找、传播等因素,最后我还是改用了文字为主、视频为辅的这种新模式。现在来看,我很庆幸采用了这种模式,文字稿可以让我有机会去打磨文字内容和代码片段,不断做到更好。所以站在追求完美的角度来看,我还是更喜欢文字的形式。

回顾专栏的创作,个中滋味如人饮水。苦,那自然是苦的。录音基本都是在深夜睡觉前完成的,大部分文字稿也是晚上和出差途中挤时间写出来的,再加上今年自己出来在创业,杂事儿特别多,人也特别忙碌。

但苦后的回甘,却来得更长久。我终于有机会对自己多年来积累的 OpenResty 知识做了完整的回顾和总结,也通过大家热情的留言发现了不少自己知识的错漏。教学相长,是件快乐的事情。

知道如何去学,远比记住更重要

其实,在知识的积累方面,我是一个记性很差的人,学过的东西经常过两天就忘记了,所以我就有意地去写博客记录下来。有时候去翻看 OpenResty 和周边 lua-resty 的代码,我经常连自己操刀的功能,也忘得一干二净,只有 Git 的 commit 记录证明那是自己写的。

你看,就是记性这么差的一个人,但靠着良好的整理记录习惯,我却总是能够很快地掌握并上手使用新的技术,并且,在实际的使用中,得到进一步的巩固。

所以,我在这个专栏中反复地告诉你,文章中涉及到的知识点,你没有必要全部记下来。只要你的脑子里面有个大概的印象,在使用到的时候知道到哪里找答案,这就足够了。知道怎么去找答案,远比记住答案本身重要得多,正所谓授人以鱼,不如授人以渔。

对于 OpenResty 的学习也是一样。从文档和测试案例入手,你就能快速准确地明白 API 的使用;从尽可能复用和减少对象的创建入手,你就可以写出高性能的 Lua 代码;从测试驱动开发入手,你也可以写出像 OpenResty 一样稳定的系统。这些不同的思考角度就是根本,而各种技巧和方法,都是从它身上长出来的花朵和果实。

因此,在 OpenResty 专栏的内容设计上,我并没有尝试去覆盖广度,而是在各章节之间设计了一些埋点,然后通过简单示例的方式把它们串联起来,争取把一个典型的知识点讲透彻,让你很自然地对相似类型的问题触类旁通。如果本专栏能让你找到学习 OpenResty 的正确路径,那么我的目的也就达到了。

行百里者半九十

在专栏的最后,我想用“行百里者半九十”来做为结语,与你共勉。

这句话是什么意思呢?从字面上来看,如果你要走一百里路,那当你走完九十里的时候,其实只算完成了一半,因为最后的十里路才是最艰难的。

回到实际工作中,如果你学完了整个专栏,你会发现,OpenResty 并非十全十美,还存在有很多问题。如果只从功能数、稳定性和性能上来看,OpenResty 并不比 Envoy 差。但 Envoy 的发展速度和生态显然比 OpenResty 好太多:

  • Envoy 有接近 500 名贡献者,OpenResty 只有 70 多名贡献者;
  • Envoy 平均 2-3 个月发布一个版本,而 OpenResty 一年才发布一个版本,让社区望眼欲穿;
  • 另外,OpenResty 至今都不支持 TLS 双向认证,以及gRPC server、client 这些微服务体系中必备的功能。

所以,我一直担忧的是,对于 OpenResty 而言,在微服务和东西向流量这条路上,再不迎头赶上,就真的望尘莫及了。

对于你——这个专栏的读者来讲,花费 4 个多月的时间学习完所有的内容,其实也只是一个开始。把这些内容消化并运用起来,融入自己的知识体系中,才是那最关键的十里路。

对于我自己而言,这篇文章写完,就意味着交付了整个 OpenResty 技术专栏,但与你建立的联系才刚刚开始。我们仍然可以通过极客时间的留言区、部落、QQ 群等方式,进行线上的互动;也可以通过线下 meetup 的方式见面聊。这种互动所产生的价值,远比单向的知识输出更有意义,也更加持久,这样我才算是走完了最后的十里路。

另外,我们专栏的编辑同学,特意为你准备了一份结课调查问卷,希望你能抽出两三分钟时间填问卷,写下你的学习经历和感受。这既是学习一门课程的仪式感,可以作为你这几个月学习的记录和总结;也是我后续为你迭代优化课程的重要参考资料,很有价值。我很希望能听到你的声音。

各位,道阻且长,行则将至,我们江湖再见!

参考资料

https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/OpenResty%e4%bb%8e%e5%85%a5%e9%97%a8%e5%88%b0%e5%ae%9e%e6%88%98/%e7%bb%93%e6%9d%9f%e8%af%ad%20%e8%a1%8c%e7%99%be%e9%87%8c%e8%80%85%e5%8d%8a%e4%b9%9d%e5%8d%81.md