纪念逝去的firefox扩展

Posted on April 23, 2016

我曾经写过3个firefox扩展, 都是公司内部使用.

说起firefox扩展, 不得不提一下我在深圳第一份工作的老板Brett, 他是一个十足的mozilla fan, 他经常鼓励我们学习mozilla相关的一些工具和技术, 我的大部分前端扩展技能, 也就是从那时候开始.

Brett自己写过几个firefox扩展, 也教我们如果编写, 不过当时对这些技术比较模糊, 不清楚有多大的用, 其实mozilla很多技术还是比较小众, 也没有推广开, 很多技术甚至名字都已经忘记了, 不过当时他给我们推广任何技术, 我们都愿意学, 其中有包括firefox扩展开发.

不过我后来成为了 chrome fan.


在2012离开深圳换了工作后, 逐渐转向后端开发, 13年初时, 公司在做一个帮助团购用户自动下单的功能, 当时是一个重要的功能. 最开始自动下单完全就是后台一群小编在手动下单, 因为要登陆不同的第三方团购网站, 又要保证时效性, 所以编辑的工作非常繁忙. 技术部门就着手优化这一事情, 想实现自动登陆第三方团购平台, 减少小编的工作量. 尽可能发掘可以自动化的流程, 这是公司能高效运转的一个因素.

当时团队leader想到用firefox插件, 其实当时团队没人会做, 包括我当时也不敢说自己会, 因为当时只是写过, 但是从来没有完成过一个作品. 其实这事很能体现一个技术团队leader的作用, 虽然自己不会, 甚至团队中也没人会, 但是知道什么技术能解决当前的问题, 就是leader要做的事情.

当时可能是问了一圈, 发现我有点firefox的基础, 我当时好像真实的回答就是: 我以前的老板教我写过, 但是也没太学会; 于是这事就安排我去调研.

当时自己是个初级程序员, 心里其实没底, 好在以前学过, 开发过程比想象的顺利, 大概用了一天. 其实原理就是从服务器拿已经存好的包含登陆信息的cookie, 写入使用者(公司小编)的firefox, 就可以实现自动登陆. 记得当时在公司内部联调测试时, 在测通自动登陆时, 团队一片欢呼雀跃, 当时真实感受到了作为程序员的成就感, 能创造出有价值的东西, 真心感谢当时团队成员对一个初级工程师鼓励的掌声.

这个自动下单的项目大概持续了一年多, 停掉了, 这个自动登录插件当然就寿终正寝.

回头想起这事, 其实大部分时候, 在工作之外扩展自己的技术面, 大都不确定以后什么时候能排上用场, 但是只有不停的学习, 才可能在未来需要时候, 有更多的技术选择.


因为自动登录插件的成功, 后来还给团队做过firefox插件开发的分享firefox 扩展开发分享

firefox插件也成为了我们实现编辑内部工作的一个可考虑的技术方案, 不过这种工作其实不多, 所以没有必要推广让团队所有人学习, 因此后来几个插件的工作, 都是我一个人完成, 这也成了我个人在团队的一个亮点.

后来13年还写过一个firefox浏览器分屏的插件, 写完上线后就没管过, 现在代码都找不到了, 我后来以为可能都没人用了, 后来在16年初, 居然有编辑来找我, 说这个分屏插件不能用了, 当时很吃惊, 没料到这个插件还有人使用, 后来排查是因为firefox 43版本中, 增加了一个禁用未验证的扩展的功能, 导致这个插件不能使用, 通过浏览器设置可以解决.


最近写过的插件, 是14年底, 当时计费业务要求我们获得taobao的商品销量, 通过爬虫抓取的程序经常受到taobao反爬虫的限制, 不是很稳定, 因此同时要求可怜的编辑人工去页面数销量, 当然这事很快落实到我头上, 写一个自动数销量的插件.

其实就是在浏览器中自动点击销量, 计算一下, 然后发给我们服务器. 期间还要解决taobao经常变化的反爬虫策略.

因为这个计费业务非常重要, 最开始也是周末加班搞出来的, 后面频繁的改动过需求, 增加了很多特性, 代码其实写得比较乱, 加上一个人做, 开发审核测试基本算我一个人. 最后反正功能是完全实现了, 达到了效果.

代码中有个小插曲, 在对一个类命名时, 一直没想到合适的类名, 犹豫了好久, 颇有点贾岛推门还是敲门的意思, 当时一任性, 取名为Fox, 因为fox是我的网名. 因为一个人开发, 也算有点福利, 不会有审核人找你麻烦, 不需要考虑后续别人接手维护的问题, 哈哈, 其实不值得提倡.

再后来, 这个插件继续改动, 一直到15年底, 偶尔还会有需求, 因为每次都是临时改动, 慢慢觉得代码可读性可维护性也出现问题, 所以一直想找找个时间重构一下.

然后在16年初, 突然taobao宣布不再显示销量, 这对我们的计费业务调整非常大, 当时很多技术部门加班加点进行调整, 然而我第一件想到的事情是, 自动发送销量的插件生命周期结束了, 就是这么突然, 本来还想着重构一下的, 现在看来没必要了.

我找出之前创建的插件优化的工单, 默默的关闭了.


前几天在清理移动硬盘, 发现还有些当时在深圳工作时的项目代码, 当时大部分是给美国的一个公司内部使用的, 我在想, 这些项目中, 会不会有些代码, 在某台服务器上还在默默的运行着.

编程是程序员的基本技能, 程序是我们的产出, 程序实现着我们的价值, 当我们打开编辑器写下一行行代码时, 谁能知道, 这些代码是昙花一现, 还是会改变世界呢?