【程序员都喜欢重构代码,但领导不喜欢【让编程再次伟大#45】-哔哩哔哩】 https://b23.tv/c0qZqqm

晚上刷到 BV1phatzmESV 这个视频,有感而发

改界面

从这件事开始说起吧,让我第一次明显的感受到工作与日常敲代码的区别。

收到个任务,把多个数据管理页面修改个位置,合并到 "设置" 界面中。

这几个界面都是左侧为滚动栏,右侧为地图+具体item的数据。合并后的效果是滚动栏中就可以切换数据管理页,用来代替原本多个下拉菜单的功能。

这几个组件/页面都有很明显的共同特性和区别,都有左侧滚动栏展示item表,右侧有地图,地图下面也有共有的具体数据项,以及几个特殊的属性表格。

重构

接到任务后我想的就是重构,原本多个path合并为单个管理地址页。抽出共有的左侧滚动栏,地图,共有的具体数据项。只需要留一块单独写有区别的组件。

开始写就后悔了,发现这个工作量比想象中的大很多。

  • 页面编写时间跨度大,基础逻辑都有区别,样式写法也很不同

  • 接口有变更,好几个页面的类似接口处理逻辑都不同

  • 地图需要额外处理,原本不共用,部分资源没考虑过销毁的情况

搓了半天,算是把样式框架写完了。光拆出滚动栏单个对象的样式都改了好久...

再接着写数据获取逻辑...直接又写了2*页面数个组件,组件数越来越膨胀...期间我在想这样做有没有必要,时间够不够。想了想把代码写好是值得的,写页面就是耗时间,正常。

写了大半天,下午同事来问了两次进度,我都不确定,因为我只知道这样写工作量确实大。后面同事又来问了下,提到了老板当天就要😵这下悬着的心终于死了,只能直接从原本的页面上改了。

工作

为了完成工作而敲代码。放弃重构代码时突然有这种感受

放弃重构后,我发现事情变得简单很多...

在每个页面都加上其它页面的菜单,点击直接跳转对应页面。由于vue2的优化,有很多相似组件,跳转也没多大违和感...

半个小时就搞完了,主要时间就在处理 标题-滚动区域-多个标题 的样式效果...

不想说话了

任务2

过了几天,这几个界面又有个新改动,原本地图下面可能有1个或2个表格,现在第二个表格全删掉,改为新的一个关联信息。这下4块内容基本都一致,更适合重构了...

想了想还是算了,这几个页面也不是我写的,具体功能和逻辑都没搞清,懒得继续重构了。

但是这个新增的表格必须要复用了。单独写了个mixin,把第二个表格删掉。没有第二个表格的修改样式,腾出空间,顺便把几个组件的样式差异给抹平了。给每个组件加上type字段用于区分,然后都混入新的表格mixin,完工。(后面界面来来回回改了好几回)

Bug

又是怀念重构的一天

过了几天,突然听同事说有权限问题,不同用户能看到的页面不同...原本相当于调用api加载菜单项,并且router拦截,没在白名单的地址无法访问。

然而新写的设置界面假装是单页面,实际每个页面独立,标题直接写死的...这些想恢复原有功能需要修改多个组件...用正则替换改了半天终于行了...

任务3

后面老板和后端同事激烈讨论了下,权限又换了种新处理方式...原有的接口可能要删...

于是直接注释掉了调用该方法的代码,菜单表数组写死全部的界面,直接over了

第二天发现...其它界面出了问题,有个页面会读上面接口的保存的store数据来动态渲染数据项...我直接注掉了,没获取菜单/权限数据,这个界面直接空白了...改了下又恢复调上面的接口了。

又是想要重构的一天,重构后至少能做到高内聚,修改这些问题不要重复改多个组件。但想要重构却要付出远高于上面3个任务的工作量...🥶

工作后几乎没写过自己的代码了,原本想要找Python的工作但找不到,面到个前端的工作就去做了。现在感觉有点不值得,并不是不想写前端,而是现在的工作内容/工资/能力提升感觉都不太行,要想办法改变下了。

之前在群聊里看一个大佬和多个大佬在汴京,讨论语言之间的优缺点(python和前端语言),讨论到最后就是经典的结果了,python群python占优了。当时前端大佬说了一句,当找不到python工作而前端收留了你的时候,xxxx(忘了是什么了,但也不是什么坏话)

当时看到这个就在想,我找不到Python工作的话,第二想法就是前端了。现在果然是前端收留了我😥