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

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 代码协作相对于其他职能还是比较和谐的。

和前端妹纸四手联弹,指点江山,不错不错。
10257 次点击
所在节点    前端开发
89 条回复
fiypig
2021-12-29 09:52:25 +08:00
我不知道是哪类前端,我写过后端以后在写前端,感觉简单多,只要给我蓝湖,基本上都好处理
lizhesystem
2021-12-29 09:55:12 +08:00
后端更接近业务的实现,对业务的整体把控比前端更全面,技术是服务业务的,学好业务我觉得更重要,特别是中小公司,后端发展的慢,积累,踩坑等一些技术的生命周期更久。

我司根本没前端部门,领导都是后端出身,前端都是一些后端学几天 VUE 拉过来开始做,导致写出来的项目可想而知😓,唉 一言难尽。。。

没办法,打不过就加入他们吧。。
3dwelcome
2021-12-29 09:56:53 +08:00
@murmur

前端又不只开发移动端 APP ,flutter 做 web 目前还非常不完善。

自渲染早在 flash 时代就火过一次,可还是打不过浏览器的原生组件。

ReactNative 和 flutter ,谁能笑到最后,还不知道呢。
murmur
2021-12-29 09:57:52 +08:00
@3dwelcome 我也是 rn 的粉丝,我也坚信语言复用不造语言轮子才是正道,无奈 rn 版本至今还是 0.x ,我也知道版本号战争没意义,但是的确人家这么说戳心窝
JudyHal
2021-12-29 10:14:48 +08:00
最关键是前端很复杂,但是却深受歧视,得不到应有的尊重,在国外 TechLead 大部分都是前端,国外的后端基本都是数据库操作而已,业务逻辑什么的都在前端。所以用户体验非常好。
revalue
2021-12-29 10:20:00 +08:00
>"国外的后端基本都是数据库操作而已“

@JudyHal 这话说得也不太对。其实后端的集成化和沉淀还没有发展到这个地步
DOLLOR
2021-12-29 10:23:32 +08:00
前端基本就是程序员鄙视链的最底层,外行眼里是娱乐圈,内行眼里是疯狂卷。
DOLLOR
2021-12-29 10:27:26 +08:00
@DOLLOR 每当有人跟我说想转前端的时候,我就跟他说,你要做好成为同行鄙视链最底层的心理准备。
cmdOptionKana
2021-12-29 10:28:25 +08:00
换个角度,前端曾经被鄙视为切图仔,现在地位已经提高了很多,后端曾经也经历过忙乱的阶段,现在后端的大量业务被移到前端,前端虽然累但是生机勃勃,后端虽然变轻松但也逐渐被鄙视为 crud boy 。
P233
2021-12-29 10:29:48 +08:00
@3dwelcome

"前端最大的问题,应该不是如何把功能实现出来,而是复杂应用中,如何把日益膨胀的代码库给维护好。"

就是这样!
Mirage09
2021-12-29 10:32:05 +08:00
@JudyHal
当你的言论蠢得恰到好处,以至于不确定你是认真还是反串.jpg

别的不说,求求你在发表高论之前先去见见世面好不好
lizhesystem
2021-12-29 10:36:08 +08:00
@cmdOptionKana 是的,我特别讨厌大量业务移到前端,我觉得前端主要是来渲染交互,但是现在很多后端偷懒,很多不应该让前端处理的数据交给前端,前端代码能不膨胀臃肿么,
koor
2021-12-29 10:36:11 +08:00
前端开发的一大半时间都在写样式调样式,面试的时候却对这部分一笔带过几乎不考察,对跳槽不够友好
cmdOptionKana
2021-12-29 10:39:13 +08:00
@lizhesystem 但这不是一个乌托邦世界,理论上怎么好不重要,这是资本世界,重要的是成本低利润高。
d873139022
2021-12-29 11:07:03 +08:00
默默说句,测试的地位更低
loveyu
2021-12-29 11:08:38 +08:00
前端认为后端不懂 react 的好,前端不懂 vue 的好
sologgfun
2021-12-29 11:30:18 +08:00
不同公司前端的重要程度不一样,不过一般情况下前端地位还是偏边缘的
xsm1890
2021-12-29 11:39:43 +08:00
说句话,别骂我。公司的前端能力好点的就两三个,其他都是水货。
kensoz
2021-12-29 12:02:36 +08:00
我一直在思考前端封装的意义,
封装与否在页面上一样显示,
不封装轻度封装到处复制,虽然不好但是爽,快
封装了需求一改,还不如不封装
dinjufen
2021-12-29 13:00:53 +08:00
我就是转行入的前端,看完这么多评论感觉又要转行了...

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

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

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

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

© 2021 V2EX