前后端都一样,工程化是对的,过度工程化可能就不对……

2023-03-30 11:25:57 +08:00
 HiCode

过去十年移动互联网大发展,产生了巨量前、后端需求,推动前、后端技术走工程化的路线。

工程化是对的,但是前端目前的工程化方向可能有点偏了,以致于频繁调整路线——最终表现就是前端工程师们觉得自己需要不停的学习新知识。

实际上,前端“以频繁学习新知识为荣”是一种“大聪明”的表现,就好比一个学渣总是写错作业,却以重写作业为荣。

市场繁荣期已经过去,近期频繁出现前端求职困难——当然后端也好不到哪里去。

未来,剩下的前端们会因为人力有限,开始将前端工程化过程中“繁杂无效”的部分剔除,回归到“技术服务项目”路线上来,而不是继续以前那种“技术服务工程化”的路线。

嗯,我是前端,也是后端,纯纯外包仔。

顺便推荐一下我的项目: https://github.com/dongnanyanhai/vue-web-loader-2

这个项目本质上算是对前端工程化的一种吸收和反对,前端生态非常丰富,是可以好好利用的,但前端开发的流程还在改进中,需要暂时避开。

最后强调一点,前端帅哥很多,非常多!

6839 次点击
所在节点    程序员
76 条回复
ma836323493
2023-03-30 11:31:00 +08:00
大道至简
HiCode
2023-03-30 11:31:34 +08:00
另外,工程化在提高开发效率的同时,也弱化了人在项目中的作用。

一个项目如果高度工程化,那么程序员就没办法像医生、律师那样越老越值钱,而是会像汽车厂的技术工,被年轻人和机器人随意代替。
kop1989smurf
2023-03-30 11:32:58 +08:00
软件架构 overkill 应该是近 10 年来一直存在的问题。

一是很多软件公司承受不了业务扩展后的重构,不如就那业界最优解一把梭。又稳定,成功率又高,参考资料还多。
二是随着硬件性能的提高,复杂架构的弊端逐渐变得不明显。同时快速迭代的互联网公司兴起,导致对于员工的可替代性、标准化要求非常高。所以复杂架构就越来越变成必然。

btw:楼主这个项目的思路挺有意思。有点行为艺术的意味在里面。
iyiluo
2023-03-30 11:36:10 +08:00
不知道现在前端还用不用 npm ,几年前去维护一个前端,那个 npm 下载的依赖真的多
lanlanye
2023-03-30 11:38:14 +08:00
工程化的目的是降低参与者自己的认知负载,我觉得这是必然要做的,至于用什么方式做,做到什么程度……那还是要人根据实际情况来决定的,也许没有标准答案。
lvsijun
2023-03-30 11:39:12 +08:00
最后一句表示苟同
jay435990054
2023-03-30 11:40:45 +08:00
@HiCode 雀食 主要还是人在内卷
weixind
2023-03-30 11:43:59 +08:00
可以了解下前端工程化的各部分是为了解决哪些问题。只能说现在前端工程化还有很长的路要走。哪有过度工程化。拿最基础的包管理举个例子,npm 、yarn 、pnpm 几年时间各自更新的多个大版本,是因为一直迭代出新的更好的解决方案。而不是“大聪明”的表现。
新手学习过程中可以 script 标签引用 min.js 。可是生产环境的性能优化和兼容性怎么处理呢。
weixind
2023-03-30 11:46:26 +08:00
@iyiluo 包管理器 npm 自身迭代了几个大版本,后续也有 yarn 、pnpm 新的解决方案。就是因为之前的 npm 太垃圾了。前端生态看上去更热闹一方面是人多,一方面是很多解决方案并没有迭代到最优解。
uni
2023-03-30 12:47:54 +08:00
我现在在用 python 写后端,感觉真的原始,难用,无时无刻不在怀念着前端的良好体验
debuggerx
2023-03-30 12:54:16 +08:00
需求是多样且多变的,对某些简单项目来说“过度工程化”,对某些复杂项目却是“工程化不足”,没法简单下定论的。
总的来说,前端项目需求是越来越复杂的,工程化的探索和进步就是为了适应这样的变化。
CEBBCAT
2023-03-30 13:08:02 +08:00
「入乡随俗」「清官难断家务事」「家家有本难念的经」

那个帖子的楼主之所以被喷是因为以一个门外汉的水准去吐槽前端领域,显然没说这话的资格。

如果站在前端工程师的角度去剖析前端何以至今,那么不管是唱衰还是叫好,总不会被骂成这个样子。

回到这个帖子,我似乎没看剖析在哪里,更多的好像是认准了“前端过度工程化”的基调,然后扯到“大聪明”,“求职困难”上。

也许可以举个例子,如果能从开发效率、架构设计需要,软件工程实现上来分析,那么想必会很有干货。
EscYezi
2023-03-30 13:30:06 +08:00
看了下楼主的项目,不用 nodejs 的话如何管理依赖呢?现在有太多资源托管在 npm 上了
HiCode
2023-03-30 14:05:58 +08:00
@EscYezi 手动复制引用代码。没有包管理,例如想用 vant ,直接在 html 文件里面加上:

<!-- 引入样式文件 -->
<link rel="stylesheet" href="https://unpkg.com/vant@2.12/lib/index.css" />
<script src="https://unpkg.com/vant@2.12/lib/vant.min.js"></script>
HiCode
2023-03-30 14:06:38 +08:00
@CEBBCAT 我自信表达的逻辑还是比较清楚的,你看不懂的话,我也不强求。
HiCode
2023-03-30 14:11:33 +08:00
@weixind 我不是反对前端迭代优化。我说的大聪明,是指那些没搞清楚前端频繁迭代原因,反而“以频繁学习新知识为荣”的前端从业者。
HiCode
2023-03-30 14:12:33 +08:00
@iyiluo 现在只会更多,随便一个前端项目,安装好依赖后都是上 G 空间,十几万以上的项目文件。
bhbhxy
2023-03-30 14:25:49 +08:00
@ma836323493 所谓大道至简就是纸上谈兵。把大象关进冰箱要几步:打开冰箱门,把大象关进去,关冰箱门。但在实际操作中你要考虑大象从哪里来,要用什么设备运输,一路上大象吃什么,冰箱要多大尺寸,需要多少材料来造,如何选择更省钱等等一系列问题。而工程化及各种工具就是为了各个场景应运而生。
poorAshenOne
2023-03-30 14:27:34 +08:00
看到最后一句...
靓仔. 爆照我就给你点 star
Mutoo
2023-03-30 14:43:18 +08:00
前端之所以变化快是为了应付变化的需求,以及变化的环境。由浏览器或操作系统的迭代升级都会影响前端。简单讲,前端是在多变的客户端环境下进行开发,后端是在稳定的服务端环境下进行开发。前者非常不可控,后者相对可控。更别提多跨平台跨浏览器的需求了,这些都是后端不需要考虑的。不学新东西几乎不可能,除非操作系统和浏览器不再升级了,屏幕分辨率不再变大了,设计趋势也不再更新了。

再者,所有的新框架都是为了更好的应付更加复杂的变化而存在的,哪怕是最早的 jQuery ,他的口号与是 write less do more ,解决了很多跨浏览器的兼容问题。后来 backbone 引入了 mvc 以及双向数据绑定。React-Flux 提出了单向数据流,减轻了开发者的心智负担,再后来 Vue 引入了 reactivty 让数据响应更加直觉化。

就不提其它的工具链( bundler ,linter ,testing )哪一次新的东西被提出来不都是进步么!这有什么好喷的。

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

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

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

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

© 2021 V2EX