<audio id="audio" title="结束语 | 行百里者半九十" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/72/c0/72fd975d24b87479a3635808626551c0.mp3"></audio>

你好，我是温铭。

时光飞逝，转眼间，持续 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 的方式见面聊。这种互动所产生的价值，远比单向的知识输出更有意义，也更加持久，这样我才算是走完了最后的十里路。

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

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

[<img src="https://static001.geekbang.org/resource/image/67/fd/67bd257e5171525b30d17ad9f22d8efd.jpg" alt="">](https://jinshuju.net/f/c09Mdz)
