作者 | Beau Beauchamp
译者 | 弯月
出品 | CSDN(ID:CSDNnews)

我知道写这篇文章会拉仇恨,但是,有些话不吐不快。总要有人将许多经验丰富的软件工程师一段时间以来一直在思考的问题说出来。

我在北美的一些大公司工作了 20 多年,一直是一名开发人员。最近几年,我一直在观察 UI 的迭代,我发现如今的 UI 变得越来越糟。具体来说,我指的是一些流行的技术,我以为那些 JS 和 CSS 框架只会在新手人群中风靡一时,然而如今就连一些经验丰富的工程师也开始“沦陷”,我以为他们会更明白其中的利害关系。
使用这些框架的文化就像滚雪球一样,比如 Angular,人人都陷入代码地狱,看不到尽头,不知道这种荒谬的做法何时才能停止。

每天我都会收到猎头的邮件,无论何种规模的公司都在竞相寻找经验丰富的 Angular 4、5、6、7、8、10、12的开发人员,还要求开发人员拥有至少 5 年此类我们称之为“顶尖”UI 的构建与维护经验。

这不是“顶尖”的 UI,而是一团糟。

几年前,我曾面试过一家公司,在面试期间,他们告诉我他们打算放弃所有的 UI 框架,然后就用最简单的 ECMA(JavaScript)编写 UI。当时我很惊讶,但也很好奇。

现在,我们都知道他们为什么要这么做了。

保持愚蠢 - 简单

著名的 KISS 原则指的是 Keep It Simple, Stupid(保持简单,愚蠢),但我不喜欢说某个人很愚蠢,所以我调换了一下顺序。最新版本的 Angular 已经完全丢失了 KISS 原则。它不再只是一个 UI 框架,还是一个后端服务。如今 UI 开发人员不仅需要编写 HTML 模板,而且还需要编写后端代码。有人会说,这是好事!但实际情况并非如此。

Angular 有一些“很酷的”功能,如果你想编写有效而又美观的 UI,或者想打造专业的用户体验,则这些功能完全派不上用场。

单页应用程序已经过时。这类应用不仅难以维护,而且会对依赖 UI 变化的分析和搜索引擎爬虫造成严重破坏。

虽然我们有解决这些问题的方法,但问题就在于此!本来你根本不必编写代码来模仿 Web 原有的工作方式!

对 UI 编译器说不

另一个流行的技术已经存在一段时间,但我仍然觉得有必要摆脱这些技术,那就是 SASS(软件即服务)和 Less。老实说,我喜欢这些 CSS 框架提供的代码组织形式。但我不喜欢 mixins,它们需要经过编译才能运行。

我不明白为什么浏览器不支持 SCSS,将其作为 CSS 代码的标准方式,但这是另一个话题。

这些 CSS 伪语言最大的问题在于,它们并不能节省我们的时间,而且使用和学习的难度都不小。归根结底,它们的初衷都是为了编写漂亮、整洁、目标明确的 CSS 代码,但是,我们每个人编写的原生代码本来就能达到这些要求。
如果你想使用 Sass 或 Less,并在自己的开发环境中预编译它们,那我无话可说。但是我们永远不应该将这些文件放入 CI/CD 流水线,然后在部署期间进行编译。

任何其他 JavaScript 库或框架也应当遵循这一原则,因为它们最终都会编译为普通的ECMA。

添加到 CI/CD 流水线中的每一个步骤都会导致本应非常简单的部署过程变得复杂和膨胀。我们应该寻找方法来减少流程中的步骤,而不能因为“Jenkins”允许这样做,就越积累越多。

Angular导致 UI 膨胀

我是 UI 纯粹主义者,但 UI 的当前状态不是“顶尖”,而是乱作一团。我知道Google 的员工很无聊,他们想做点什么,但是 Angular 和其他类似的框架非但没有让 UI 变得越来越简单,而且还在破坏 UI 的简单性。

关键在于,我们根本不需要一个臃肿的框架来编写整洁、优雅的 UI 或构建一个有效的 UX。我们可以使用任何后端提供的原生模板引擎,根本没必要使用难以理解且无法调试的编译 JS,而且还会导致前端膨胀。

Angular 导致很多公司白白损失大量资金

归根结底,框架应该降低编程的难度,而不是反过来加大难度。这些框架应该通过易用性为公司节省资金,而不是白白损失大量资金。

然而,这种不幸的事情正在发生,而且 Angular 的运行成本也很高。

不幸的是,Angular(以及其他 UI 框架)导致很多公司白白耗费了大量资金,用于培训和重新培训员工学习和重新学习每年都在不断变化的框架新版本。虽然 Angular 承诺所有新版本都将向后兼容,但每当出现下一个“非常酷”的新组件时,一切都会发生变化,而 UI 也只会越来越复杂。

如果你正在服务于多家企业,而他们使用了不同的 UI 框架,那只能自求多福了。你不仅需要学习和了解 12 种不同风格的 Angular,还需要了解 Vue 和React 的各种版本,一些新手程序员在 4 年前入职这些公司,如今他们已经离开,要开始破坏其他人的技术栈了。

是时候将 Angular(和其他框架)作为失败的实验统统扔到垃圾堆了。

用什么取代 Angular?

答案很简单,我们什么都不需要。我们应该彻底摆脱 Angular。然后就编写简单、易于使用和理解的 JavaScript。

我不反对使用 jQuery 之类的开源库,或者其他 UI 组件,或者 Bootstrap 之类的 CSS 框架。你只需要一两行代码就可以引用这些框架,它们确实能够减轻开发人员的负担!

但是,需要 Node.js 才能运行的框架,比如 Tailwind,或者由于维护人员年复一年地不断更新,开发人员需要不断地培训和再培训才能使用的框架,我只想问,这些框架除了让你花更多钱,还有什么好处?用起来“超爽”吗?

Angular最大的问题就在于对开发人员的工作毫无好处,这会让公司损失数千甚至数万美元。如果你们是全球 500 强企业,不在乎每年花费数百万美元维护、更新、培训和浪费时间,那就寻找有经验的开发人员来支持这样的框架吧。

我看到很多公司迫切地需要 UI 工程师,但他们总是要求开发人员拥有 3~5 年的 Angular 经验。这太不合理了。我可以使用纯 JS 在更短的时间内构建优雅、功能齐全的 UI,而且还没有 Angular 前端和后端的种种复杂性。

JavaScript 的目的只有一个,而且能够在现代 UI 的复杂性和在 DOM 中保持优雅的简单性之间提供了完美的契合和平衡。

如果使用纯 JS 编写的代码在生产中出现问题,则只需几秒就能通过任何浏览器的开发工具找到问题,而且还不需要安装或包含另一层膨胀来告诉我如何调试已编译的代码。

总结

编写代码的关键就在于其简单性。然而,作为现代工程师,我们几乎完全忽视了这种简单性。面对科技巨头或大学发布的闪闪发亮的新技术,我们不自觉地也开始追求“最顶尖”的技术潮流,完全迷失了自我。
Google或任何一所大学都不会在乎你要为开发人员花多少钱。是时候让 CTO 来负责技术栈。放弃时尚的新技术,让我们所有人都回归简单、便于维护、美观的理性 UI。

图片
网友评论

对此,众多网友的看法不一:

评论1

也不能一概而论吧。毕竟还有 Typescript 之类的框架,比编写单纯的 JS 方便多了,确实减轻了开发人员的负担。
使用纯 JS 编写简单、可维护的代码……可能吗?

评论2

这不是 Angular 的问题,也不是 JavaScript 的问题,或者技术的问题。
开发人员需要不断学习,如果你的代码一团糟,那不是框架的错。无论是否使用框架,也无论使用哪种框架,能否编写出简单、优雅的代码,始终取决于个人。
取决于你的个人能力和技术水平。
那么,你怎么看?

参考链接:

  • https://javascript.plainenglish.io/enough-why-its-time-to-rip-out-angular-7d831802c8a2

Angular 导致公司损失数十亿美元!相关推荐

  1. 开源激荡 30 年:从免费社区到价值数十亿美元公司

    开源起始于边缘活动,活跃于社区,30 年来一路进化,无数的企业在开源项目的基础上拔地而起,今天,开源商业已经迎来了最好的发展机会. 演讲 | Peter Levine,A16Z Partner Edi ...

  2. 软银投资工业软件公司OSIsoft 价值数十亿美元

    6月1日消息,据国外媒体报道,软银集团于当地时间周三表示,将收购OSIsoft的少数股权. OSIsoft是一家私人控股的工业软件制造商,其软件可用于管理工厂.OSIsoft是所谓的"物联网 ...

  3. ChatGPT 的背后:OpenAI 创始人Sam Altman如何用微软的数十亿美元打造了全球最热门技术...

    内容来自 MoPaaS 编者按: ChatGPT产生的影响还在继续,ChatGPT 以及其创造者 OpenAI 背后的故事却鲜为人知.OpenAI 是怎样偏离其初心坚持商业化?凭什么 Altman可以 ...

  4. mysql注入实例获取答案_本文实例讲述了MySQL解决SQL注入的另类方法。分享给大家供大家参考,具体如下:问题解读我觉得,这个问题每年带来的成本可以高达数十亿美元了。本文就来谈谈,...

    本文实例讲述了MySQL解决SQL注入的另类方法.分享给大家供大家参考,具体如下: 问题解读 我觉得,这个问题每年带来的成本可以高达数十亿美元了.本文就来谈谈,假定我们有如下 SQL 模板语句: se ...

  5. 一个致命的 Redis 命令,导致公司损失 400 万

    转载自  一个致命的 Redis 命令,导致公司损失 400 万 最近安全事故濒发啊,前几天发生了<顺丰高级运维工程师的删库事件>,今天又看到了 PHP 工程师在线执行了 Redis 危险 ...

  6. 英国将强制互联网公司遏制外国政府发布假信息,违法者或被罚款数十亿美元...

    NEW 关注Tech逆向思维视频号 最新视频→[人工智能打算毁灭人类?] 7月5日消息,英国计划对即将出台的全新网络安全法进行修正,强制社交媒体和搜索引擎等应用程序的所有者遏制"外国发布的虚 ...

  7. 唯链瞄准数十亿美元中国宠物食品可追溯性市场

    上海2021年8月13日 /美通社/ -- 面对全球疫情带来的整体市场低迷,中国宠物食品行业却逆势显著增长.2020年估值为10.82亿美元,预计到2026年将达到14.749亿美元.尽管中国的宠物食 ...

  8. 国委派在华产权专员 谋求数十亿美元利益

    出处:PConline 导语:谁将站在盗版CD和数十亿美元的损失之间?Mark Cohen-美国的新任驻华"知识产权专员".但这不是一个人的任务. 本周一开始,好莱坞在北京将有一名 ...

  9. 谷歌为成为苹果默认搜索引擎支付数十亿美元 谈判耗时四个月

    [TechWeb]6月11日消息,据国外媒体报道,谷歌向苹果支付了数十亿美元,以便让其成为iPhone和Mac电脑中的Safari浏览器的默认搜索引擎. 这样的交易不会在一夜之间达成,苹果前总法律顾问 ...

最新文章

  1. 外网无法ip访问服务器解决方法 (原)
  2. Apache Shiro和Spring Security的详细对比
  3. C算法编程题(一)扑克牌发牌
  4. linux svn配置教程,linux svn搭建及配置
  5. 使用gridlayout布局后,因某些原因又删除,并整理目录结构时,Unable to resolve target 'android-7'
  6. 太阳系八大行星碰撞的视频_火星的身世:从太阳系的起源说起
  7. python远程登录并执行命令_Python - 远程SSH执行命令
  8. @WebFilter注解
  9. webview java调用js_android WebView java与js相互调用
  10. 小米回应造车传闻;饿了么就春节“套路”骑手活动致歉;Go 1.16 正式发布 | 极客头条...
  11. mysql count null_一个不可思议的MySQL慢查分析与解决
  12. android wakelock权限,android - 当我使用PowerManager.WakeLock与AlaramManager android时的权限异常 - 堆栈内存溢出...
  13. java下载文件未能加载资源_Java Web start – 无法加载资源
  14. python第三方插件登录网易音乐_基于 Python3 的网易云音乐下载器(支持嵌入专辑封面等 ID3-Tags 信息)...
  15. Android Expandable List View
  16. i.MX6ULL驱动开发 | 10 - 修改LCD驱动点亮LCD显示小企鹅logo
  17. WPF界面设计工具---Blend学习(一)
  18. AWS Route53里使用Godady注册的域名
  19. DSP28335入门教程:寄存器手册的下载
  20. mysql主从配置duxi_配置MySQL主从复制(一主一从)

热门文章

  1. c/c++教程 - 1.10 结构体 使用typedef定义struct结构体 结构体数组 结构体指针 结构体嵌套 结构体做函数参数 结构体const
  2. leetcode162. Find Peak Element
  3. 解决 Flex模块切换后导致对象转换失败 注册信息丢失
  4. 不借助第三个变量进行两个变量的换位输出
  5. IT职场人生系列之十三:技术?管理?业务?
  6. 分布式系列九: kafka
  7. Day3-Spring的事务管理、Spring框架的JDBC模板
  8. python_83_random_应用验证码
  9. 两种查找bapi的方法
  10. openstack neutron(tap、qvb、qvo详解)(转)