不谈技术,聊聊人生(工作)

发表于 2017-07-28
更新于 2024-05-23
分类于 技术专栏
阅读量 9966
字数统计 2697

入行前端快要一年了,其实早有想法想说一说的,无奈于这些想法都犹如襁褓中的婴儿,略显稚嫩,太不成熟。最近刚忙完一个项目,终于能够在八点半之前回家,就想着打开轻音乐,看能不能够写出什么值得自己回味的文章来。

去年的这个时候,机缘巧合地以前端新手的身份加入来现在的公司,那个时候的自己没有任何的前端工作经验,凭着些许运气,竟然面试成功,关于这点还是很感谢现在的TL。

入职后才发现团队不大,大部分都是最近才入职的。可以说当时团队除了一些项目的代码积累,几乎没有任何基础性的知识沉淀,也没有任何文档和任何规范。唯一有的是技术栈就是React+Reflux,另外还有的就是React Native。

熟悉了没几天就开始了我的第一个前端项目-将官网的代码抽出去放到nodejs服务器上。当时公司的整体前端代码都是和后台的java绑定一块,每次发布前端代码都是得后台的去发布才能生效。这也许就是业界后来强调的前后端分离的一个推动点。事实上,我这种前端新人都觉得太复杂了。那时TL应该是对后面团队的发展方向有了一定的预判,打算开始做一些前后端分离的事情,于是就拿公司的官网先来试试水,而我有幸成为实施这一想法的操刀手。

整体项目简单地使用express服务器框架搭建,没有涉及到任何复杂的东西,几乎可以说开箱即用,无非就是将之前再java的网页使用ejs模板引擎来渲染。至于与后台的数据通信就通过http请求加上一些认证方式去实现。这在当时算是公司前端小组的一个巨大变革,因为我们开始用Nodejs来做些事情了。

后面公司的技术栈开始转为React+AntDesign+Redux,开始有了自己的一套界面风格,但是仍然不够成熟,在代码规范这块领域中,我参考了一些业界的做法,使用ghook(现在改成了husky)在代码的提交各种阶段做了一些钩子,来保证公司的代码提交日志的规范以及Eslint的检查,这方面可以参考我的博文(git代码审查以及log规范化的解决方案)[https://blog.5udou.cn/blog/detail/gitDai-Ma-Shen-Cha-Yi-Ji-logGui-Fan-Hua-De-Jie-Jue-Fang-An-42]

之后的几个月,波澜不惊地处于正常的项目实践中,使用React,使用Redux来照葫芦画瓢,完成一个接一个的需求,似乎每天的工作都成一个样,没有任何惊喜,但是不应该呀!这种工作现状不应该出现在前端这个行业呀!

是的,没过多久,公司的技术架构一下子出现新的架构--微服务架构。借助于阿里的dubbo的微服务架构,后台人员开始重构他们自己的代码。那么我们的前端呢?还是老样子吗?当然不是!这个时候,我们前端组开始出现一个❤新的称呼--前端网关!是的,在这个架构的实施中,Nodejs开始出现大量应用的情况。于是乎,整个前端小组就不再局限于写页面了,我们开始慢慢地承担公司的一部分网关工作,于是写的nodejs服务器开始变得有点复杂,毕竟我们承担了鉴权/dubbo的消费者以及其他基本的服务器功能。

这个时候公司的技术栈开始变得宽广,除了之前的,现在还得有koa或express服务器框架的知识。与此同时,公司的UI规范逐渐形成,界面风格越来越统一,服务器部署和测试环境发布随之也越来越来规范,同时前端人员也是不断增加,自己内心对于这样的正向发展亦是感到无比欣喜,这种感觉在之前的两家公司都是从未有过,这也许也是我喜欢前端的一个原因,因为前端给人的蓬勃是其他语言都没有的。

之后过年回来开发环境开始转向微信,也就是微信网页开发,此时的技术栈是React+Mobx,在经历了几个微信网页开发的项目中,基本掌握了微信网页开发的窍门,同时了沉淀了微信nodejs端sdk包:wechat-nodejs-sdk,方面后续的微信开发。在微信网页开发也遇到诸多问题,可以参考另外一篇文章Nodejs下微信网页开发进阶篇.此时我们的nodejs在微服务架构下已经越来越成熟了,但是距离一个成熟可靠的服务器架构还是差距很远的。在微服务架构架构下,前后端的契约式开发都体现在javadoc上,TL写了一套工具去解析他们的javadoc,然后在我们的js到java之间的数据通信去做数据自动转换,在我眼里感觉这好🐂的呀。原来js和java还可以这么玩的。

微信鼓捣完,我开始鼓捣起移动端,不得不说这个移动端果然是个巨坑,很多兼容性问题都得处理。这个捣鼓也是实现前后端分离,去实现hybrid APP。这个项目现在可以每天给Nodejs带来几百万的PV,而且在需求的不断叠加,这个值还会继续增加。正是在这么一个项目的驱动下,我们开始接入网关监控,日志ELK,disconf配置中心,时时刻刻向java的开发生态看齐。虽然有了前端网关,但是部分前端人员并没有精力去熟悉前端网关这套东西,只是专注在自己的页面开发中,于是组内的联调就又是一个问题。于是我在自己的项目中使用swagger中的openAPI规范开始写了一套工具,利用路由的注释去生成符合规范的yaml文件,然后使用改装的swagger工具去测试网关的API以及可视化网管API文档,提高了开发效率,解耦了页面开发与网关开发的关系。

直到最近一个月,我的战场又燃烧到Dcloud,一个提供APP壳加HTML5页面的软件。在这个项目中我们 又一如既往地开始踩坑,后续可以当然针对这个软件再写一篇介绍文章。在这个项目中我们开始使用TS去写网关的代码,同时也使用升级的dubbo版和一套全新的网关框架,在这些因素的加持下,使用VScode来编码便有了一种C++的感觉。不信的话你可以来试试。

好了,说了这么多,不知道感觉有没有太乱了,但是呢,前端这行业本来就是这么刺激,不断地切换自己的技能树,但是有一句话说的好“不忘初心,砥砺前行”,不多折腾,你怎么可能有一个好的视野,不多折腾,你怎么可能知道自己适合什么,不多折腾,你怎么可能知道生活其实还有另外一面呢?

今天刚好是公司的一个里程碑,早上的庆祝活动还是很让人兴奋的,在一个快速成长的公司,你能够感受到一种气息--小草初春萌芽的味道,不知道你们有曾感受到不?

公众号关注一波~

微信公众号

关于评论和留言

如果对本文 不谈技术,聊聊人生(工作) 的内容有疑问,请在下面的评论系统中留言,谢谢。

网站源码:linxiaowu66 · 豆米的博客

Follow:linxiaowu66 · Github