开启渐进式Web全栈开发之路

Monday, February 7, 2022

2003年。早在大学期间,我就与软件开发结下了不解之缘。与一些喜欢刷ACM算法题立志进入像谷歌微软这样大厂的同学不同,我更喜欢编写应用软件去解决现实中实际的问题。2003年是桌面端软件最后的辉煌时代,当时Web端能力只能用来做内容型的网站(改变世界的Gmail还没有问世),也没有移动端什么事情,我的主要精力都聚焦在Windows桌面软件的开发里面。和隔壁寝室的另外一位志同道合的同学一起,我们开发了诸如家庭KTV/全能音频转换通/MP3播放器等等共享软件,放在了当时最火的中国共享软件注册中心上面售卖。尽管当时盗版横行,也没有怎么进行宣传,我们仍然通过这个方式收获了自己的第一桶金。

2006年。转眼间,就到了毕业的时候。我很幸运了进入一家刚进入中国不久的做商业智能软件开发的法国公司。在这家公司,我学会了如何在一个国际化团队中工作的方式。尤其是我当时的Manager对于代码设计和实现精益求精的态度和专业的精神给我留下了极其深刻的印象,这种工作方式一直延续到我后续在国内互联网做Tech Leader和Manager的时候。

随着公司被国际企业级软件巨头SAP收购,以及企业级软件市场的变化,桌面端软件的市场不断的缩小,基于Web的产品由于其天生的跨平台及快速迭代(敏捷开发)的优势,逐渐在C端和B端都开始挤压桌面端软件的市场。

2011年。我离开了工作了5年多的外企。过完年后,我加入了一家做保险软件的公司,正式开始了我的Web全栈开发之路。当时Web前端开发的条件太原始了,我们所有的代码和Java的后端项目耦合在一起,每次启动项目都需要5分钟的时间,没修改一行代码,大,概率需要重新启动整个项目才能看到效果。前端人员的数量和后端人员的比例非常悬殊,一个20人的团队可能就只有3到4个前端开发。我作为一个摇摆人的角色,频繁的前端和后端中切换。

2014年。谷歌的Angular.js开始了前端开发的火箭式发展的序幕。我第一时间在公司的新项目中引入了Angular.js和基于Node.js的前端工具链,并用Node.js开发了若干个研发提效工具和微服务,包括一个分布式的压力测试工具,高性能的保险费率表查询服务,保险费用计算公式编辑器等等。经过这段时间,我逐渐认识到基于JS的全栈Web开发这条路是一条完全能够走通的道路,但是无论是前端还是后端它仍然有很大的提升空间。首先,由于之前前端开发通常只有很少数的人,对于多人协同合作开发以及如何进行项目架构设计这块少有人研究。其次,JS语言的高度动态性和灵活性导致代码容易写但是难以长期维护,普遍代码库的质量远不如Java。第三,SPA架构的性能短板随着项目逐渐变大愈发明显,无论是构建时还是运行时。

2016年。我加入了美团担任前端技术专家的岗位。很快我的职责扩展到了团队管理,从一个IC转变为了一个Manager。国内互联网公司的特点用一句话概括就是“Grow At all cost”,因此分工极端明确,工期压力特别大。我的全栈开发之路不得不暂停下来,全力在前端这个方向上面寻求突破。我最为骄傲的项目台湾爱评网随着美团的上市嘎然而止,再加上公司内部频繁的组织结构调整,让我认识到单纯的做前端方向它的天花板是肉眼可见的低。

2020年。转眼间我已经是个工作了十几年的老人了。我忽然发现云原生/机器学习/区块链/大数据外面炒的火热的东西我居然都没有任何接触。整天为了一个添加商户页面改来改去,维护着只有几个人用的中后台应用。这不是我想要的东西。我反复询问我自己,当初吸引我从事软件开发行业的源动力到底是什么?是我的时间管理出现问题了吗?为什么我觉得缺乏能量?

2022年。答案是回归初心,我仍然对于Web平台及编写代码充满兴趣,我仍然对于创造改变人们生活的数字产品感到激动!而Web,作为世界上最为自由开放的媒体和应用平台,也正在向它的3.0版本前进(目前我仍然没有确切的理解到底什么是Web 3.0,我期望在2022年能够对此有更深刻的理解)。

随着Vue 3在2月7日变成Latest,使用TypeScript替代JavaScript的前端团队相信会爆发式的增长,我个人认为对于一般的非专业型的人员比如设计师、业余爱好者用JS来写一些简单的页面足以,而专业程序员更适合使用TypeScript。以Next.js为首的全栈Web开发元框架(国内Midway.js)+ Serverless/Edge云原生计算基础架构将会变成未来Web应用的开发和部署标准。

我很高兴的看到现在的Web全栈开发路线相比于十年前我刚入行的时候要清晰通畅的多,与此同时,对于前端同学来讲道路也宽敞了许多,前端能够做网站,Web App,Desktop App(Electron),浏览器扩展,Node.js后端开发,WebAssembly,机器学习(TensorFlow.js),区块链、大数据等等。

后面我会在这个博客以及公众号上面陆续发表关于Web全栈开发的系列文章,与此同时,我的个人开源项目Rainbow Pro于今天正式在github上面开源了,这是一个基于Vue 3和TypeScript编写的高级企业级组件库。另外,我的前端课程Effective Vue.js也在紧锣密鼓的筹备当中,如果你想成为一个更好Vue.js 3/TS开发人员,这门课程会非常适合你。

毓杰Oliver © 2022 - Present