做前端真累:写给其他职能看的前端述职 (吐槽)

2021-12-29 09:06:58 +08:00
 revalue
年终总结又到了,一年里什么都没做,都在和恶心的逻辑撕咬搏杀,如此也没有什么技术提升。拖延症无心应对年终总结。回想过往,想出了这篇东西。打工人总结 2 个字就是“心累”。那么前端累在哪里呢,让我们带着轻松愉快的心情,一起来回顾一下:

1 逻辑不正交。数据和样式布局必须在页面上通过耦合以实现。我不是单说 css ,而 js 你也负有责任。web 页面的排版布局的本质就是遵照依靠耦合关系,牵一发则动全身。(所以目前被广泛使用的布局排版套路都是很简单的,比如 flex 一把梭,套多一层元素绝对定位一把梭)。其次,css 的逻辑也不是基于正交的法则的,调节样式需要综合几个样式的知识和特性,调个居中需要磨半天。

2 整合数据流逻辑恶心。分别从 A 、B 、C 等各处接口大乱斗大杂烩取到数据,格式各异千奇百怪是常态,一顿数据格式处理,糅合。(有数据格式洁癖的不要做前端。)格式基本上都是后端定义,各个后端格式不一致或者格式不好用,都到前端这里整合。前端 app 代码里面数据流乱如麻,字段的有无也是乱如麻,页面效果还要保持洁净,能做前端的都是些什么神仙。数据到达的时间也是要有讲究做处理的,不然数据没法用。开发一些大型应用,整合数据、数据流恶心是难以避免的。

3 大型应用的联动功能。一个地方的数据变了,其他地方联动显示数据。虽然说花多点时间是绝对没有技术难度实现的,但是就是恶心费时间啊。我滴妈呀。多组件数据联动。带 checkbox 的树形图父子联动。带 checkbox 的多选的树形图联动,外加根据业务逻辑联动勾选,外加重写为懒加载的勾选联动,还有些这个表格项展开里面也需要联动的。乱如麻。麻了麻了。

4 难封装,自暴自弃,没什么领域积累。封装通常是程序员的基本素质嘛。而实际上前端很多东西是不如后端和数据库规规整整,想封装其实是封装不了的,甚至被封装反噬。这才是真正的“代码分布式”啊:代码到处分布。改一个需求不就搜索字段改半天了嘛。封装东西,需要处理的不单指是数据,而是数据样式的混合体。很多工作量是没有办法通过封装绕过去的。前端是最末端,业务逻辑没法封装啊,都被外界打破封装的可能性,没封装的话自己搜代码一个个改呗。


5 页面逻辑难以文档描述,对项目可维护度造成威胁。看前端“吹了这么久页面集成单元测试,而没有几家是实际做成的”,就知道了,这种东西耗费大量人力物力,收益很浅。页面逻辑难以文档描述,接手一个代码,理解起来特别困难,页面逻辑放飞自我。单元测试,可欲不可求。心中敬仰的永远是不可逾越的屎山。

6 业界没什么进步和积累沉淀。不断重复历史,没意思。某些厂拿出所谓的“积累沉淀”出来开源,笑死,都是自用的来强硬开源,不推广怎么有 kpi 呢,心知肚明轮子只够用那两三年,抓住时间机会晋升,实用性的确是呵呵。更新换代一次又重复一次历史。

7 兼容性问题。略。够你玩半天了。其实这也是大头。

8 多端多能。各个客户端开发职能归于前端范畴,还要保持各端样式一致性。各大公司开发自己的样式组件库,vue2 来一套,vue3 来一套,react 来一套,别提多恶心了,但是无可避免。这不得组个大团队?不断重复历史,没意思,请问一大群人搞这一两年有啥进步吗。多端开发其实每个都够一个人十年研究吃一壶的,很不幸过 5 年你这个端会不会被时代抛弃都是未知定论。这也导致了没什么领域积累:当你开发一个东西解决某个业务问题,人家开发框架的窜得比你还勤快,赶紧适配人家的框架吧,star 数正在往下掉了。


前端能吃到的甜头:

语法新特性是一马当先快速推广的。有编译器在,语法飞速更新换代。

启动代码应用编译调试起来,是相对比运行起来较快的。

git 代码协作相对于其他职能还是比较和谐的。

和前端妹纸四手联弹,指点江山,不错不错。
10265 次点击
所在节点    前端开发
89 条回复
revalue
2021-12-29 15:53:45 +08:00
> iOS 及 Android 原生开发已经这么没排面了吗?
@KeyboardManAnAn
@Otho
@macha 术业有专攻,移动端开发个人不懂啊。仅发表个人知道的领域
d873139022
2021-12-29 15:56:36 +08:00
@jeffrey921 啊,为啥,老哥。可以说下原因嘛
Chad0000
2021-12-29 16:07:19 +08:00
@JudyHal #25
“tech lead 大部分都是前端”

何以得出?我已肉翻,在外面做后端的时候前端都挂在我名下。我后面发展就是 teach lead ,经理都是让我而不是其他前端人员去干这个职位。
lap510200
2021-12-29 16:38:21 +08:00
再累也没有我这种全干工程师累
xilixjd
2021-12-29 16:42:41 +08:00
总结的非常好,给大家泼一盆冷水,大厂前端这些东西都少不了,而且跟中小厂前端相比没啥区别,甚至因为某些原因更加恶心
kop1989
2021-12-29 17:19:10 +08:00
@KeyboardManAnAn #55
@Otho #51

仅从这个话题讨论来讲,移动端、桌面端和 web 前端面临的问题其实都是相仿的。只是程度依照各自的生态各有不同。
所以个人理解这里面的前端很大程度上可以理解为“所有的 UI 展示领域的技术”。
en20
2021-12-29 17:49:03 +08:00
“代码分布式” 真的笑 yue 了,现在接手公司一个支付项目,各种活动页揉在一起,单页超过 2000 行的就有 6 个,产品还要往里面加东西
vance123
2021-12-29 18:15:16 +08:00
@kop1989 我觉得 C/S 架构中所有跑在 Client 上的代码都属于前端
1016
2021-12-29 18:44:46 +08:00
呆过大厂的人 也说过大厂的代码也是屎堆屎
Dragonphy
2021-12-29 20:12:55 +08:00
老哥说的大部分我都深有体会😅
Actrace
2021-12-29 21:05:25 +08:00
楼主你可能喜欢这个
https://github.com/tmplink/tmpUI
jones2000
2021-12-29 21:58:31 +08:00
没有技术含量的体力活留给年轻人去做。 做点有深度的东西不就行了。
AlexaZhou
2021-12-29 22:18:20 +08:00
想想可以 四手联弹,其他好像也能忍 哈哈
liandi1990
2021-12-29 22:58:37 +08:00
很正常,我们后端述职还要写给用户看

而且他们的打分几乎决定了我们能不能晋升(比主管的打分权重要高)
micean
2021-12-29 23:08:51 +08:00
关于第 2 点
我已经准备在新项目里让后端开发人员来写接口的 JS 代码了,减少前后端沟通问题和前端开发压力,让前端专注在 UI&UX 上,到时候看看效果如何
shidaibenyi
2021-12-30 00:00:30 +08:00
后端除了 curd 还可能需要做的 1.服务部署.2 数据清洗.3 应急响应.4.编写技术文档.5.架构抽象.6.高并发问题.7.安全相关.还有乱七八糟的比如服务器证书更新.还有现在都开始上 k8s 了,容器编排容器部署这一大块,近几年不学也会被淘汰的.
wukongkong
2021-12-30 07:29:41 +08:00
@snoopyhai 请教下 习惯了 pxtorem 这个 tailwind 可以处理么,学了下,好像很多都是直接 rem ,没法精细化
chengxy
2021-12-30 08:41:19 +08:00

同意楼主说的代码洁癖者别碰前端,否则就会像这样做一些无意义的事。
shilianmlxg
2021-12-30 08:56:42 +08:00
@snoopyhai 大佬 tailwind 你是用默认的还是自己 diy 的呢。会不会考虑 rem 的情况呢。有什么好看的教程吗
snoopyhai
2021-12-30 09:10:50 +08:00
@wukongkong tailwind 都是 rem ,vscode 装插件后,可以看到 rem2px 后的值。缺少的数值可以在 tailwind.config.js 文件自定义( px/4=key ,px/4/4=rem ),例如:
width: {
2.5: '0.625rem', // 10px
12.5: '3.125rem' // 50px
},

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/825010

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX