极客时间已完结课程限时免费阅读

结束语 | 行百里者半九十

结束语 | 行百里者半九十-极客时间

结束语 | 行百里者半九十

讲述:温铭

时长06:27大小5.91M

你好,我是温铭。
时光飞逝,转眼间,持续 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 的方式见面聊。这种互动所产生的价值,远比单向的知识输出更有意义,也更加持久,这样我才算是走完了最后的十里路。
另外,我们专栏的编辑同学,特意为你准备了一份结课调查问卷,希望你能抽出两三分钟时间填问卷,写下你的学习经历和感受。这既是学习一门课程的仪式感,可以作为你这几个月学习的记录和总结;也是我后续为你迭代优化课程的重要参考资料,很有价值。我很希望能听到你的声音。
各位,道阻且长,行则将至,我们江湖再见!
分享给需要的人,Ta购买本课程,你将得18
生成海报并分享

赞 4

提建议

上一篇
50 | 答疑(五):如何在工作中引入 OpenResty?
unpreview
 写留言

精选留言(17)

  • Charles
    2019-09-21
    感谢温老师,实话说openresty不一定学的好,小项目也不一定用得上,但是很多知识点思想相通可以马上给项目带来“收益”,课程非常值,一路跟下来很开心😃

    作者回复: 是的,没错,很多知识在多个不同的技术专栏中,都会被提到,这就是融会贯通了:)

    2
  • 十三
    2019-09-20
    看到有人评论说,如果说春哥是OR的生父,温铭老师就是OR的养父👏👏 深感如此,这个专栏学完就是捡大便宜了,从最新、最佳用法,到最底层的设计原理和背景,讲得生动有趣、鞭辟入里,赞一个! 十分感谢老师!!
    展开
    1
  • Camosi
    2020-05-30
    最近刚看到这个课程。 现在有个问题,不知道老师能否帮解答一下。 我用的 manjaro 利用yay安装 openresty/1.15.8.2 。 简单的做了一个这样的配置, content_by_lua_block { ngx.say("{\"code\":\"200\",\"msg\":\"success\"}") } 当我用wrk做压力测试的时候, openresy 服务的内存还是逐渐增加 而且当压测结束后,内存并未释放。 不太清楚这是因为原因导致的。 将 lua_malloc_trim 0; 也未起任何作用。
    展开
  • FF
    2020-05-21
    突出了重点,收获很大
  • 丁丁历险记
    2020-04-30
    学习往往是验证自己对知识的理解,和发现细节的乐趣。
  • cloudy
    2020-02-27
    第一个完整跟完的项目,总的来说,讲解得深入浅出。 值得推荐
  • AlexHuang
    2019-11-14
    关注openresty已经有三年,项目中实践做了一个API网关。一直期待有个专栏能系统地学习,这个专栏做的很棒,感谢温老师!
  • 王崧霁
    2019-10-06
    很有收获,很值得,感谢温老师。
  • 冲野
    2019-10-06
    跟完了,学到了不少理念,希望后续能用到日常工作中
  • aoneatwo
    2019-09-29
    太棒了
  • moshufenmo
    2019-09-23
    感谢,温故知新,巩固学习

    作者回复: 加油

  • codjust
    2019-09-20
    来捧场!!😄
  • 写点啥呢
    2019-09-20
    感谢老师,马上就打算上手了,非常开心能有机会从大牛身上学到一点。江湖再见!

    作者回复: 用了 OpenResty 的大部分同学会喜欢上这门技术:)

  • 许童童
    2019-09-20
    感谢老师,跟着老师真的学到了很多,希望可以在公司真实项目中运用一把openResty。加油,行百里者半九十。

    作者回复: 加油

  • 丢了个丢丢丢
    2019-09-20
    老师讲得很好,回复留言也很积极,作为初学者可以跟大牛互动非常开心,谢谢老师

    作者回复: 一起加油

  • @阿锦啊
    2019-09-20
    江湖再见,部落见🤗

    作者回复: :)

  • 空知
    2019-09-20
    😃感谢老师!