我在北京写代码(31)

我在北京写代码(31)

作者:鲁棒棒

写于:20240322

正文

上一篇写到了我的第一个工作所面对的需求,以及使用的框架,今天来详细记录一下我当时做研发所面对的一些问题和一些困惑。当时因为是使用了 openresty 这个框架,这个框架貌似是用在爬虫里的,我近期又研究了一下这个框架,这个框架貌似不太适合把比较复杂的业务放在里面,所以我仔细考虑之后,也没太弄明白为什么非要让我用这个框架去做。

当然这个抽取数据并放到 web 页面中的功能本身也不复杂,放在 nginx 里,也不能说不行,但是可用的替代方案实在是太多了,为什么偏要用 lua 这套东西呢?我到现在也没有十分清楚,同时我的上级也不跟我讲为什么,跟我对接的说辞就是

“我们公司现在在用的一个东西是 openresty,你看一下,之后你要用这个东西来写代码,这个是 lua 的,你看下 lua,今天就开始写吧”

然后我就吭哧吭哧满头大汗的开始搞了,我认为不外乎几点原因,但是都是我自己的推测,除非我去问一下我当时的领导。首先就是公司技术栈的适应问题,现在公司的项目有一部分是基于 openresty 的,让我用这个东西来写业务,可能也是出于适应公司文化上的考虑。

其次还有一个原因就是我面试的时候所面的职位是 “Python 程序员” 当时不让我做 python 方面的工作,可能是想在实习期,给我一个比较全面的测试,比如学习技术的速度,对业务的理解,抗压能力等等。我认为这个理由可能比较靠谱,当然在一般情况下,面试的岗位和工作的岗位不同,是经常有这种情况的,尤其是在不太成熟的小微企业,这种情况没必要过多解释,因为不管面试什么职位都是 “打杂职位”,和大型科技巨头的 “一个萝卜一个坑” 是非常不同的,纯属个人瞎猜,不用较真。

因为当时有更快的方案去实现整个业务,但是我不能用,没有选择权,比如用 django 或者用 flask,都是我比较熟悉的 web 框架,用起来也是比较顺手,同时我觉得 openresty 内嵌的 lua,不太好用,比较适合做一些流量转发,权限校验等需要在网关层面做的业务,增删改查用这个东西来做,可能有些牵强,我当时其实就这么想的,只是苦于不敢跟领导说。

其实还是自己的心态不够强大,其次也是多年所受的教育就叫我要 “逆来顺受”,人家让你干嘛你就干嘛,这也是老祖宗教我的,现在我不打算这么干了,所以我选择成为一名艺术家,我现在行为基本是反过来的。不是 “人家让你干嘛你干嘛” 而是 “我想干嘛就干嘛” 当然仅限于在干活上。生活中我选择多参加点娱乐活动,这样可以身心放松一点。

明白了业务,明白了需要用的技术,然后我就开始工作了,费尽千辛万苦把框架搭建起来之后,终于把 “Hello World” 跑通了,跑通之后我就需要去学习使用 lua 处理 http 请求了。

关于 lua 我的印象很深刻,公司当时给我扔过来一本很厚的书,叫做 “Lua 程序设计” 这本书是 lua 的作者写的,现在已经有了第四版,而我当时看的不是第四版,而是黄色书皮的那个版本,因为要尽快开始写代码,我也没有去翻看这本书,而是打算晚上的时候带回住处,慢慢看。

而在公司里,肯定不能让别人看到你整个下午抱着书看了,而是慢慢的一点一点从 demo 中复制代码过来,然后慢慢改着,测试运行,虽然并不十分清楚每一行代码的用处,但是比如处理字符串,处理 table,还有获取 http 请求,从 http 请求中获取参数等,都是一些 web 框架的常见的功能。

不外乎使用什么技术,什么语言,协议是如此的,那么就肯定要处理各种 http 中的参数,比如 query string 之类的等等。当时我比较着急,所以觉得心情有些焦躁,心态把控的不是很好,总觉得催命一样的感觉,总之就是很不舒服,也不知道该如何缓解,很郁闷。

就这样一边琢磨,一边研究,一边心慌的终于把 http 请求处理这部分跑通了,然后成功的在网页上打印出了 “Hello World” 不过我对其中的原理还是一知半解的。之后便很快又遇到了另一个问题,那就是 lua 的模板语言我看不懂,不会用,这就更着急了。

当时的程序还不是前后端分离啥的,可能现在参加培训之后上岗的程序员朋友,没听说过模板渲染,原理和现在流行的 nodejs 里的那个 server side render 差不多,都可以说是一种服务端渲染,反正 html 代码都是服务器上拼装上去的,连同 js 代码, css 代码,有时候也是需要在服务器端拼装的。

但是拼装的时候,比如需要把某个变量的值,直接传输到某个页面里,如果没有模板引擎,就只能自己去用读文件的方法 fopen 这个 html 文件,用字符串读出来,然后找到 token,最后将 token 替换成变量的值。

而有了模板引擎就不需要这样做了,因为模板引擎做的工作就是代换变量值和进行计算的工作,而公司大佬写的这个框架,一开始是没有模板引擎的,让我着急了好一阵子,因为我自己弄不明白,我只会用 django 里的模板引擎。

无论如何我都解决不了模板的问题,而且前端页面的代码量也比较大,很多功能都得自己写 html 和 js 才行,我跟领导说了,领导说自己研究研究,我跟写框架的大佬说,他说回头给你整个模板引擎,不过我估计他给我整模板引擎整的就把我整下岗了。

所以我很着急啊,接着我磨蹭了大佬好久,大佬终于把一个开源的 lua 模板引擎加上去了,不过也是 bug 很多,其实他可以告诉我的,我可以自己搞搞试试,但是我不知道模板引擎还能用开源的,我以为必须自己写。

这也算是我的一个经验不足的问题吧,现在代码跑通了,模板引擎也有了,接下来就开始开发业务。今天就写到这里,明天继续吧。

晚安!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,635评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,628评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,971评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,986评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,006评论 6 394
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,784评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,475评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,364评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,860评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,008评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,152评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,829评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,490评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,035评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,428评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,127评论 2 356

推荐阅读更多精彩内容