You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
6.2 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 结束语 | 行百里者半九十
你好,我是温铭。
时光飞逝,转眼间,持续 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://static001.geekbang.org/resource/image/67/fd/67bd257e5171525b30d17ad9f22d8efd.jpg)](https://jinshuju.net/f/c09Mdz)