2024年3月,工作十年,第一次被优化。
意料之外,情理之中。
——————————
一、开始
2021年,部门业务扩张很快,招了好几个前端新人。因为我们主要做的是大屏数据可视化展示,所以对前端页面的效果,有较高的要求。但新人往往不太能高度还原设计稿,交互效果也不太理想,于是我们部门也跟上了在当时兴起的低代码平台浪潮。
通过技术选型,我们确定使用Electron + Vue + OSS实现低代码平台。
原理如下:
①:组件定义。
一个vue文件和若干图片资源即为一个组件。这个vue文件具有指定的外部入参props和内部参数data。
其中内部参数data只能在低代码平台编辑,是组件的装饰属性,决定组件的尺寸、颜色、位置等。而外部入参props既可以在低代码平台编辑,也能在外部传入,是组件的数据属性,决定组件的数据呈现和状态。
这样的组件,我们计划生产二三十个,包含文本组件、图表组件、导航组件、下拉菜单组件等。各类组件分别产出不同的基础模型,方便业务使用。比如图表类需要有柱状图、折线图、饼环图、雷达图等。
这种组件,我们称之为标准组件。
②:组件派生。
在低代码平台中可以选择任意标准组件保存为业务使用的业务组件。同样的,业务组件也能够继续派生出新的业务组件。通过分组、分类、分业务项目的模式进行管理。
为了能够产出不同的业务组件,低代码平台需要支持组件编辑。
③:组件编辑。
通过AST工具解析组件,读取每个组件的指定参数,渲染出不同的编辑界面。编辑界面的字体、字号、颜色等都是通过全局设定主题的方式管理。比如颜色,全局定义了多种主题颜色,有粉色主题、蓝色主题、灰色主题等,每个主题包含若干种颜色,组件只要切换主题,就能变换不同的颜色。字体同样如此。
AST解析出来的参数,通过编辑,最后保存的时候再通过AST保存到文件中,最后导出的,就是一个可以直接再项目中使用的业务组件。
——————
以上就是低代码平台第一阶段的目标。
第二阶段的目标是,拖拽组件拼接页面。
第三阶段的目标是,拼接的页面接入数据。
在当时,我们都觉得这个工作很有趣,值得一做,大家都充满活力。
按照计划,前端团队成立了三人小组,负责低代码平台的开发:
W同学负责平台基础功能部分,包括模块和接口定义、事件调用、文件读写等。
C同学(即本人)负责组件部分,包括组件开发、组件配置、平台本身的前端界面等。
P同学负责文件管理部分,主要是通过AST进行组件的生产、合并等。
过程很顺利,不到两个月,在一边做业务的同时,我们拿出了第一个版本。
低代码平台正式上线运行。
二、意外
按最初的预想,有了低代码平台,业务量可以突破瓶颈,业绩上去了,升职加薪不是梦。
但2022年上半年,市场陡然变冷,业务缩减,部门大裁员。
本来或许只需要裁掉小部分人,但因为有低代码平台,陆陆续续的,2021年招进来的前端几乎都裁掉了。这是始料未及的。
在这期间,我们三人组完成了第二阶段的开发。但并不值得庆贺,因为每个人都对未来不那么抱有信心了。
下半年的八月中旬,休假回来上班的第一天,就接到通知,我们可视化部门整个裁掉。除了我们三个,其他前端都走了。而我们被分到了不同的业务线,第三阶段的开发搁置。
业务线的前端团队,有自己的技术栈,有多年的技术沉淀,我似乎回到了刚开始工作那时候,每天都在复制粘贴中度过,做着毫无价值而且毫无意义的事。
这真是一个令人悲伤的故事。
三、再续
进入2023年,新的业务线也开始调整,产品功能和前端代码往标准化的方向靠拢。
但很可惜,我依然是一个搬砖的码农。
随着业务代码的调整,前后端进行了一轮优化。值此时机,低代码平台的第三阶段开发重新提上议程。
我和W同学,又开始了新的工作。
而P同学,已经受不了这种搬砖的工作,离职了。
2023年年中,第三阶段的开发完成。
标志着公司内部持续了一年多的低代码平台开发计划正式落下帷幕。
其实在最初的产品经理设想中,低代码平台是可以接入GIS数据,接入3D模型的。但很可惜,就连最初的那位产品经理,也已经走了。
这么多年以来,这是我亲手做的,最具价值、最有意义的工作。
四、结局
自从低代码平台的工作结束,我就投入到毫无波澜的业务线需求中。
每天处理几个老bug,写几个新bug。
安逸的久了,人就会麻木。
其实这种工作,根本就不需要一个有十年工作经验的前端来完成,更不需要聘用一个年薪二三十万的前端来负责。
这一点,我清楚,公司也清楚。
偶尔看下简历,但并没有合适的。
直到上周。
负责技术部的老总找到我。
降薪百分之三十。
我直接提出了辞职。
一周内走。
如果我不同意降薪,那是不是可以争取点什么呢?
或许真的能争取到什么。
但就是感觉很累。
其实从2023年开始,就感觉很累。
只想离开这个地方。
于是我走了。
有时候又想,如果一开始不做这个低代码平台,或许,我还是有些事做的。
毕竟,可视化部门虽然裁掉了,业务或多或少一直都有,只不过是交给低代码平台来实现。
这么说起来,我似乎是被自己优化掉的。
对吧?
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。