前端圈的过度设计正在毁掉你

最近看到个事儿,挺唏嘘的。

让几个 8 年经验的资深前端手写个原生 JS 弹窗,结果你猜怎么着?
手抖。

写不出来。

不是他们菜,是肌肉记忆被篡改了。

脑子里全是 npm install,全是 import Modal from 'antd',全是那些比裹脚布还长的 Redux 样板代码。

一旦拔掉网线,删掉 node_modules,这一身武功当场废了一半。

这哪怕不是全部,也绝对是咱这行现在的通病。


数据的残酷真相与熵增命运

我看过 HTTP Archive 的一个数据,特别吓人:过去 10 年,移动端页面的 JS 体积暴涨了 328%

这意味着啥?

意味着你刚买的 iPhone 16 Pro,打开个网页还是会发烫。

意味着首屏加载慢得像蜗牛。

更逗的是,这种复杂度根本不是业务带来的。
是软件熵增及其背后的那点小心思。

大家都知道,代码行数每增加 10%,缺陷率就指数级上升。因为人脑的认知带宽就那么点儿,层级一多,神仙也晕。

所以,我们现在是在用指数级的代码,去解决线性的业务问题。

这买卖,亏大了。


所谓"价值",往往是被制造出来的困难

说句得罪人的大实话。

当我们在那捣鼓 Next.js、GraphQL、Micro-Frontends 这些高大上的词儿时,心里真的全是为了业务好?

拉倒吧。

隐隐约约的,谁心里还没点小九九:

"这架构整上去,年底 PPT 好看啊。"

"这流程弄复杂点,显得技术含量高,跳槽能多要 50% 薪水。"

这就是传说中的 RDD (Resume Driven Development,简历驱动开发)

也不全怪兄弟们,KPI 就在那摆着。
主管只看你"引入了什么新技术",不看你"省了多少服务器成本"。

这种考核机制下,谁简单谁吃亏。

为了证明自己牛 X,我们硬是把简单的逻辑搞成了九曲十八弯。

你看这种代码,熟不熟悉:

typescript 复制代码
// 🔴 RDD 风格:仅仅是为了切换一个开关
// 你需要创建 action.ts, reducer.ts, types.ts, store.ts...
// 还要写一堆 interface...
dispatch({ type: 'TOGGLE_MODAL', payload: { id: 'promo', visible: true } });

// 🟢 正常人风格:
const [isOpen, setIsOpen] = useState(false);

这就是在用公司的钱,给自己镀金。

甚至可以说,这就是职业失职。


800MB 的 Hello World

7 年前,写网页多简单啊。

建个 .html,写点标签,双击打开,齐活。

html 复制代码
<!-- 2018: 简单纯粹 -->
<div id="app">Hello</div>
<script>
  document.getElementById('app').innerText = 'World';
</script>

现在呢?

好家伙。

配环境、填 tsconfig 的坑、修 eslint 的红线、等 npm install 下载半个互联网。

等你终于能写第一行代码了,灵感早凉透了。

看看咱那 node_modules,有时候真像个垃圾场。

为了用个 isNumber 引入整个 lodash

为了画个圆角按钮,引入 2MB 的 UI 库。

这就好比下楼买包烟,你非得穿一套防爆服。

路人看你觉得挺专业,其实心里在想:这人是不是傻。


工具没错,错的是场景

我不是说 Next.js 不好。

你要是做 Amazon 那种级别的电商,要极致 SEO,那它是神器。

你要是有 1000 个前端维护一个后台,那微前端也是刚需。

你要是做企业级网关,Axios 的拦截器也是必须的。

但问题是,你团队几个人?
你日活几个?

就三五个人,服务公司内部几十个运营,你非要整套核弹发射系统?
瑞士军刀能解决的事,别上重武器。

关于封装这事儿,我也想吐槽两句。

封装是为了隐藏复杂度,不是为了隐藏逻辑。

现在很多项目,过度封装到了"不可理喻"的程度:

javascript 复制代码
// 🔴 过度封装:
// 所有的请求必须走这个黑盒,美其名曰"统一管理"
// 结果想加个 Header 都得改源码
import request from '@/utils/request'; 

// 🟢 适度抽象:
// 简单点,说话的方式简单点
const simpleFetch = (url, opts) => fetch(url, { ...defaultOpts, ...opts });

炸蚊子用核弹。

蚊子没死,先把自己炸飞了。💥


撕掉伪装,回归本质

别卷那些虚头巴脑的工具了。

AI 时代,写这种模板代码 Copilot 比你快一百倍。

真正的护城河是啥?

是你一眼能看透业务本质,然后选个最"抠门"、最"省事"的方案把事儿平了的能力。

是你敢在所有人都喊着上 Redux 的时候,淡定地说一句:"这就一个页面,Context 够了。"

是你敢在大家都推崇 SSR 的时候,说:"静态托管就行,省钱。"

我们得稍微停一停了。

重新审视下代码库,里面有多少是为了技术而技术?

是不是忘了其实软件工程就一句话:Keep It Simple, Stupid (KISS)。

技术是螺旋上升的。

繁复之后,必是极简。

甚至不需要知道是哪一年。
只需要知道:技术是用来解决问题的,不是拿来炫技的。


最后想问大伙一句:

你的团队里有没有那种"为了用新技术而用新技术"的神操作?

或者,你有没有过那种"用最笨的办法搞定最难的问题"的爽快经历?
评论区聊聊,让大家避避坑,也打打气。

相关推荐
mCell6 小时前
如何零成本搭建个人站点
前端·程序员·github
mCell7 小时前
为什么 Memo Code 先做 CLI:以及终端输入框到底有多难搞
前端·设计模式·agent
恋猫de小郭7 小时前
AI 在提高你工作效率的同时,也一直在增加你的疲惫和焦虑
前端·人工智能·ai编程
少云清7 小时前
【安全测试】2_客户端脚本安全测试 _XSS和CSRF
前端·xss·csrf
银烛木7 小时前
黑马程序员前端h5+css3
前端·css·css3
m0_607076607 小时前
CSS3 转换,快手前端面试经验,隔壁都馋哭了
前端·面试·css3
听海边涛声7 小时前
CSS3 图片模糊处理
前端·css·css3
IT、木易7 小时前
css3 backdrop-filter 在移动端 Safari 上导致渲染性能急剧下降的优化方案有哪些?
前端·css3·safari
0思必得08 小时前
[Web自动化] Selenium无头模式
前端·爬虫·selenium·自动化·web自动化
anOnion8 小时前
构建无障碍组件之Dialog Pattern
前端·html·交互设计