Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

为什么有一些Angular开发人员再也不想用它了? #444

Open
JounQin opened this issue Nov 26, 2023 · 0 comments
Open

为什么有一些Angular开发人员再也不想用它了? #444

JounQin opened this issue Nov 26, 2023 · 0 comments

Comments

@JounQin
Copy link
Owner

JounQin commented Nov 26, 2023

我们从 angular.js 一直跟到现在的 Angular v17 了,在后面的很长时间大概率也还会继续用下去。

但是新项目肯定不用了。(手动狗头)


为什么?

因为 Angular 是自己成一个体系的,它对外是封闭的,它一直也标榜自己是平台,企业级框架。

从根本上它的设计哲学就决定了周边不会像 React/Vue 等那样百花齐放。当然对于这一点每个人各有所好,而『恰巧』很多人不喜欢这样的哲学(当然也有很多人喜欢),但是这就造成了 Angular 的工作岗位在国内并不多,可能大家都需要 React/Vue 来刷 KPI 吧~

而工作岗位的缺失(Angular 拥趸当然可以认为是招聘者的没有技术品味)就导致了这样的技术对相关就业人员的吸引力不足,新手工程师觉得那么多设计模式、规范太麻烦了,没有一把梭哈得痛快,高级的工程师可能已经掌握并长期使用了其他技术栈,完全没有必要和动力去调整。

本质上,各个框架解决的是类似的前端工程问题,而一个项目初代人员的品味决定了他会选择什么样的框架,在没有本质改变的情况下,你让任何项目去主动换框架都是不现实的,公司也不可能给你这个时间和资源,那么就各大框架其实只有吸引新的项目去使用的份儿了。

可是,由于国内 Angular 相关从业者的缺失这就造成了负责新项目的人有很大概率用 React/Vue 更多,或者像我们,招人招不到会 Angular 或者愿意换技术栈的人。我个人并不排斥换技术栈,我也是从 Vue 转到 Angular/React 的,对我来说,跳过框架的本质都一样,大家都是用技术为业务服务。

还是那句话,目前的各个框架对项目并没有本质的区别,现在已经不是从 jQuery 换个框架到 React 就能实现开发体验、用户体验、维护成本等多方面全方位提升的年代了,所以框架之间的蚕食是非常缓慢的。

回到问题,为什么我们新项目不用 Angular 了?

  1. 招不到人,不接受反驳
  2. jsx 虚拟 DOM 的灵活性完爆 template,不接受反驳
  3. 太重,有的项目项目从零开始的时候很小,不需要那么复杂(Angular 新的 standalone 模式解决了一部分过重的问题),往后迭代也不可能换框架了,不接受反驳
  4. 还是太重,导致写单元测试不够方便,接受反驳,你可以认为我写测试的水平太差
  5. 我们有个项目上游是 Backstage,只能用 React,不接受反驳
  6. 由于上面的项目都是用 React,招人也好招,后面就继续用 React,继续招写 React 的人(我个人项目会优先 Vue),同时公司对 React 技术栈也有了一些积累,不接受反驳
  7. 垃圾的 HMR 体验,不接受反驳

以上就是我对目前国内 Angular 现状的一些小思考,当然国外的情况我完全不了解,就不瞎猜了。

另外我比较讨厌的一点是,有些人一看到有人说你用的啥啥啥不好,就已经预设立场对立起来了,愿意聊就友好沟通,不愿意就直接划走,谢谢。

你杠就是你对。


本文首发于 知乎专栏 - 1stG 全栈之路

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant