简介
完整内容地址:https://moonbingbing.gitbooks.io/openresty-best-practices/content/index.html
决定在动手之前先把这本书浅读一遍,磨刀不误砍柴工。
这里记录的都是我自己的理解和观点,或者需要强调的知识点,并不代表书的详细内容,详细还是请参见原文。
纪要
- lua葡萄牙语里面表示美丽的月亮。
- 纯c编写,能被当作c库嵌入和调用,能方便和c/c++相互调用。
- 变量没有类型,可以动态绑定。
- 运行期能编译字符串形式的程序文本并载入虚拟机执行。(这个有点意思)
- nil 是一种类型,Lua 将 nil 用于表示“无效值”。Lua 中 nil 和 false 为“假”,其它所有值均为“真”。比如 0 和空字符串就是“真”;(惊讶)
- table:“关联数组” 是一种具有特殊索引方式的数组,索引通常是字符串(string)或者 number 类型,但也可以是除 nil 以外的任意类型的值。
- 与或是and or,结果不再是0或者1
- do return end 实现代码return的随意打桩
- 函数支持变长参数 ...
- 做函数参数时,table是传引用,其他类型都是传值
- 模块的全局变量检测用工具releng
- 字符串下标是从1开始的,跟物理位置次序一致
- openresety支持防止sql注入的方法
- 支持匿名对象 " _ ",用来占位,这个和golang一致
- 压力测试的好工具wrk
- 规则中尽量不要使用if
- 代码中不要使用阻塞操作,尽量不要使用lua的原生接口,使用openresty的相应接口
- 火焰图是个定位底层调用栈的好东西
- cosocket是好东西