ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
  继续维护专栏,开辟了Web优化和算法栏目,并且补充了React、Node.js等栏目。   继续GitHub仓库,除了完善[daily](https://github.com/pwstrick/daily)之外,还新增了一个性能分析工具,代号[pineapple](https://github.com/pwstrick/pineapple),不过没有坚持维护下去,也没机会在线上做验证。   除此之外,在年中的时候做了个一个重要的决定:跳槽,离开呆了4年多的公司,跳出这么多年的舒适区,开始新的历程,期间也经历了各种波折,不过都是些不错的体验。下面是一些感悟。   最近跳槽到一家创业多年的小公司,带一个前端小团队。   在这一个多月中,主要是熟悉业务,维护老代码,编写新业务等,期间也发现了当前团队出现的种种问题,打算在接下来的日子里好好改造。   接下来给自己定的小目标是,改变混乱的局面,提升工作效率,团队更加稳定和规范化。 :-: ![](https://img.kancloud.cn/73/8d/738d3298db2dec28f0e4439d8a80ea5c_786x364.png =400x) ## 一、适应新的环境 **1)规章制度**   首先要适应公司的规章制度,主要还是要习惯上下班时间,这和以往不同,本来是到点就走的。现在的话,每天都比较忙碌,下班时间也不定。 **2)新的角色**   其次是要适应自己的新角色,新公司负责的事情要比老公司多很多,以往还是蛮闲的,但现在不同。   并且要带团队,考虑的层面也得比以前更高一点。不能只想着自己的个人发展,更多的是要关注团队发展,为团队的每个人负责。 **3)开发模式**   接着是要适应当前的开发模式,上家公司只做H5相关的事情,也就是做些效果、小程序之类的纯前端工作。   而这里还会涉及到一些后端任务,用Node做了中间层,整合各类数据,执行Redis缓存,有时候还要直接操纵数据库。   刚开始还真有点不适应,不仅要学会用终端,还得知道怎么通过看日志来排查各类问题等等。 **4)业务逻辑**   最后就是要熟悉业务逻辑,前提就是要把项目跑起来,知道怎么修改。   目前公司缺失各类文档,员工离职后很多信息就只能通过代码来了解其中的逻辑了。   为了方便调试,特地搭建了单元测试(主要测试Node方面的代码,[Mocha](https://mochajs.cn/)+[Chai](https://www.chaijs.com/)+[Supertest](https://github.com/visionmedia/supertest)),这样既能保障代码质量,也方便了解某个函数的功能、变量的值等。   目前还有很多我不了解的业务,未来将会经常遇到。对于这些未知业务,除了被动的遇到后再了解之外,还可以主动与各个组的相关负责人了解,未雨绸缪。 **5)难点**   祖传代码还在运行中,代码写的杂乱无章,并且很多服务已无人维护,但是由于缺乏文档,难以轻易地修改。   人员缺乏,每天都疲于修复各种BUG,以及各种杂七杂八的事情,经常要花大精力去查看代码、日志和数据库,计划要写的代码或要做的事情经常无法按时完成,难以达到平衡。虽然短期内加班可以解决,但长期的话还是得补充人员。 ## 二、制订游戏规则 **1)前后端真正分离**   当前公司对前端的要求有点高, 既要会市面上主流的前端技术(HTML和CSS是必须的,还有React、Vue等),也要有后端开发的经验,比如操作MongoDB和MySQL等。   之前公司已经有好几个员工因为这些原因而离职了。以后如果还这么招人,定会遇到许多阻碍,毕竟没有大厂的条件。   前端会负责一个比较庞大的后台管理系统,如果是些简单的查询更新等数据库语句,其实复杂度上倒也没什么,只不过费时间而已。   但前端还要处理金额敏感信息,这块还是需要交接出去,过来后就和后端的大佬们讨论了方案,做到真正的分离,后端组的人也是积极响应,不过这种交接过程将是比较漫长的,毕竟资源有限。   未来尽量由后端服务器组提供数据源,前端就做数据整合以及页面效果的工作,尽量做到专精。 **2)统一技术栈**   当前前端有些技术栈比较老旧,有些活动页面甚至还在用jQuery制作,这样很限制团队成员的发展。   因此打算统一技术栈,将后续的项目迁移到Vue或React这些目前比较主流的库,这样也有利于团队成员的自身发展。 ## 三、补全各类文档 **1)技术文档**   在我进新公司之时,有个老员工要离职了,他了解很多业务,于是就安排他尽可能多的记录到内网的Wiki中。文档虽然不算全,但好歹有个雏形,未来慢慢补全。   当前前端组维护了多个项目,这些项目又分别使用了不同的技术栈。   例如后台管理系统前台采用的是[UmiJS](https://umijs.org/zh-CN)+[DvaJS](https://dvajs.com/)+[Ant Design](https://ant.design/index-cn)+[React](https://react.docschina.org/),后台采用的是[KOA2](https://koa.bootcss.com/)+[NodeJS](http://nodejs.cn/)+[MySQL](https://www.mysql.com/)+[MongoDB](https://www.mongodb.com/)。   自己花了点时间和精力探索了一下这两个项目的运行过程(画了几张流程图),还对其中的技术细节做了归纳和总结,降低后续新加入的小伙伴的理解难度。 **2)代码注释**   未来的话,还需要完善源代码的各种注释,目前很多组件和函数都是没有注释的,只能一行一行的看代码来理解,很是费劲。   公司也打算用工具(例如[swagger](https://swagger.io/))通过写注释的方式,自动生成接口文档。 **3)各类业务**   其他组应该也会有相关文档,未来需要有个引导页面,跳转到相关业务中。如果没有的话,需要找个协商人,让他安排人手去补齐。 ***** > 已建立一个微信前端交流群,如要进群,请先加微信号freedom20180706或扫描下面的二维码,请求中需注明“看云加群”,在通过请求后就会把你拉进来。还搜集整理了一套[面试资料](https://github.com/pwstrick/daily),欢迎阅读。 ![](https://box.kancloud.cn/2e1f8ecf9512ecdd2fcaae8250e7d48a_430x430.jpg =200x200)