”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 前端悄然普遍的贬值

前端悄然普遍的贬值

发布于2024-11-07
浏览:363

The quiet, pervasive devaluation of frontend

前提

以下是对 Josh Collinsworth 精彩文章的回应,您可以在这里找到。

我决定通过引用他在文章中提出的每一条摘要引用来构建此内容,并以我的观点回应每一条引用。

因此,本文应被视为一系列表明个人观点的想法。在报告的 12 条引用中,我发现自己同意 ✅ 8,不同意 ❌ 3,并且对 没有意见? 1

[TL;DR] 我总体上同意作者的意见和他的观点,尽管在某些情况下文章所创造的扭曲观点导致我不同意某些陈述。在我看来,对偏见的分析造成了作者对发展世界同样多的偏见。

我觉得我看到前端实践的普遍减少。几乎在我所看到的所有地方,我都注意到它的重要性被最小化,它的挑战也被忽视。

✅ 我完全同意这个说法。

前端长期以来被认为是后端的“小兄弟”,这是一个错误。前端是最终用户看到并与之交互的应用程序的一部分,因此是产品成功的基础。它的重要性不可低估,但这种情况经常发生,我自己有时认为我作为前端开发人员的工作“不如”我在后端所做的事情。

为什么会出现这种情况?从我的角度来看,我相信这是因为在过去的十年中,前端开发的世界已经被框架和库入侵,这些框架和库使每个人的工作变得更简单、更容易访问。这导致解决了许多过去出现的问题,导致前端开发变得“更简单”。这导致前端开发人员的角色被贬低,他们通常被视为“代码猴子”。然而,简单并不意味着容易,前端开发人员经常被要求解决复杂的问题并做出重要的决定,正是因为他或她不再被期望解决框架已经解决的“简单”问题,而是以新颖和创新的方式丰富用户体验。

就像 CSS 存在于某种奇怪的量子态一样;不知何故,既太复杂而无法使用,又太简单而无法认真对待,同时发生。

✅ 在这里,我也同意。

CSS 是 Web 开发领域中最被低估和贬值的语言之一。 CSS 是一种强大而复杂的语言,它允许您创建复杂而详细的用户界面。然而,与正常的代码编写方式相距甚远,其特定的语法和操作逻辑往往导致其难以掌握和使用。 CSS 是一门需要时间和奉献精神才能掌握的语言,CSS-in-JS 运动所发生的事情是一个明显的例子,说明社区如何试图通过创建一个不存在的问题来解决这个问题。新的语言,同时还为已经非常复杂的语言添加抽象。

在许多方面,CSS 对用户体验的影响比任何其他语言都大,而这往往直接影响成功。那么,为什么它的作用如此被贬低呢?

✅ 我同意。

正如前面引用中提到的,我认为CSS的问题是由于它的操作逻辑和特定的语法造成的。问题在于,与 JavaScript 相比,它通常被视为一种“第二”语言,而实际上它本身就是一种语言,有其规则和特性,并且需要与编程相当的学习时间。 CSS是一门强大而复杂的语言,其作用不可低估。

大多数情况下,实际上没有人说前端不那么重要,或者不那么真实,或者你不需要那么聪明才能做到这一点。但这似乎常常是暗示的。

✅ 我部分同意。

说实话,我认为这个主题比作者说的要明确得多。事实上,我经常发现自己不得不与那些认为前端与后端相比是“次要”工作的人争论,他们认为前端开发人员不应该是程序员,而应该是支持那些真正从事后端工作的人。当他们问我的角色是什么时,我总是回答全栈,因为在我的训练和成长中有各种各样不同的元素,硬币的两面对我来说都很重要。

我相信社区需要采取更多措施来消除这种心态。前端开发人员在各方面都是专业人士,他的工作是产品成功的基础。

前端开发人员需要在不断发展的工具的支持下解决复杂的问题(这大大增加了认知负荷),并做出直接影响用户体验的重要决策,这是成功产品的堡垒。

在某种程度上,我们的产出是艺术性的,而艺术性的东西有着悠久而传奇的历史,仅仅因为它们看起来简单而有趣而被悲惨地贬值。

✅ 我同意。

缺乏对角色和责任的理解在我们的行业中起着根本作用。前端开发人员经常被视为“艺术家”、“创意人员”,他的工作被贬低,因为它不像后端开发人员那样“技术性”。这是两个方面的错误。

首先,决定应用程序设计的往往不是前端开发人员,而是设计师(UX、UI,随你怎么称呼)。前端开发人员需要将设计转化为代码,并以高效、高性能的方式进行。这需要技术技能和特定知识,这远远超出了简单地编写代码的范围。

其次,正如上面已经提到的,前端开发人员的职责通常远远超出了简单地编写代码。如果我修改后端应用程序中的代码,自动测试很可能会比我更早地注意到任何回归。如果我修改前端应用程序中的代码,很可能注意到任何回归的唯一方法是手动测试应用程序或等待最终客户的报告*。这使得前端开发人员的工作比人们想象的更加复杂和艰巨。更不用说大量的业务逻辑状态管理——两者都迅速涌入前端——这使得该角色与业务越来越融合。

*注意:我很清楚端到端测试的存在,但它们的实现比传统的自动测试复杂得多,成本也高得多,而且由于其随机性和外部条件,它们的可靠性经常受到质疑。

该语言意味着界面与软件分离,而不是软件的实际部分。

?对此没有意见。

这里提到的是一个悖论,在我们的行业中,开发人员工程师之间似乎存在差异,并且必须显示为更多东西。我对这个问题没有意见,但我同意现在标题和横幅的泛滥只会让我们每个人实际所做的事情变得更加混乱。

编写 CSS 似乎很像在会议中做笔记,其中隐含着性别歧视,并且贬低了记录者在会议中的重要性。

✅ 我同意。

正如本文前面已经提到的,我同意 CSS 和整个前端世界的错误贬值。此外,在文章的这一部分中,提到了我们行业中存在的沙文主义,虽然我从未直接认识到它,但我了解它的现实性和严重性。我们的行业仍然常常是对女性充满敌意的环境,我相信社区需要采取更多措施来消除这种心态。

就好像支持过去、现在和未来所有可能的设备、操作系统、屏幕尺寸、浏览器、用户偏好和界面这一几乎不可能的工作是如此简单,我们自己发明了所有的复杂性,只是因为我们感到无聊。

✅ 我同意这句话的内在含义。

当今世界的复杂性使得前端开发者的角色比以往任何时候都更加复杂,当前端笑话和妙语变成偏见时,很容易陷入贬低前端工人工作价值的陷阱。

是的,作为一个团队,我们对新事物感到兴奋。但这为什么不能让我们感到好奇、适应或好奇呢?为什么我们不因学习的乐趣而受到赞扬,反而因拒绝留在原地而受到诽谤?

❌这个我不太同意。

尽管前端世界的发展确实(如前所述)导致了思想、工具和方法的激增,但闪亮对象综合症是一个真实且普遍的问题,尤其是在前端社区。这并不意味着你不应该有好奇心或适应能力,而是你经常陷入采用新技术的陷阱,而没有充分了解其利弊,也没有评估它们是否真的有必要。

如果我们的技能就像胶带一样有价值,可以掩盖组织缺陷的裂缝,那么为什么它们在导致这些缺陷的规划和决策过程中没有价值,而我们有可能阻止它们呢?

✅ 完全同意。

确切地说,作为软件架构师(或技术主管,或负责架构的人员),必须让团队的每个成员参与架构选择 - 尽管拥有最终决定权并最终对他们负责 - 以及决策- 导致创建应用程序或其一部分的制作过程应该涉及团队的每个成员,包括前端开发人员。那些已经这样做了足够长时间的人可能能够发现其他人看不到的用户体验或设计中的差距,并且让他们参与决策过程可以带来更好的用户体验和成功的产品。

前端工具在推销自己时就好像前端是没人想做的事情,而且没有人应该关心任何不必要的事情。

❌你可以清楚地看到随着帖子的发展,挫败感越来越大,但在这种情况下我只能不同意。

前端工具的营销——正如 Josh 所定义的那样——从来没有轻视或试图简化开发人员的挑战,除了一些罕见的例外。这些工具越来越多地致力于使前端开发人员的工作更简单、更高效,但绝不平庸,而且方向保持不变是正确的。我们的承诺永远不是让前端开发人员成为代码猴子,而是让他专注于真正重要的事情:创造成功的用户体验以及对业务和周围世界的影响。后端世界也是如此,工具的发展使开发人员能够专注于产品,而不是技术选择或配置问题。

最后,让我们记住,开发者关系的世界近年来已经以结构化的方式发展,一些公司的任何失误都不应该被视为常态。

似乎没有人再认为前端是产品的关键部分了;他们只认为它是产品到达时的漂亮盒子。

❌在这里,唉,我也不同意乔希的观点。

前端是产品的基本组成部分,其重要性不可低估,但这并不意味着您必须沉迷于复杂性和抽象性。前端开发已经足够复杂,不需要超复杂的设计或深奥的架构,而且正如后端世界一样,标准化,如果在充分了解事实的情况下完成,可以让我们不增加不必要的认知负担并专注于其他方面产品的。

版本声明 本文转载于:https://dev.to/cadienvan/the-quiet-pervasive-devaluation-of-frontend-26h7?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 情感人工智能和人工智能陪伴:人类与技术关系的未来
    情感人工智能和人工智能陪伴:人类与技术关系的未来
    情感人工智能和人工智能陪伴:人类与技术关系的未来 人工智能(AI)不再只是数据分析或自动化的工具。随着情感人工智能的进步,机器不再只是功能助手,而是演变成情感伴侣。利用情商 (EI) 的人工智能陪伴正在改变我们与技术互动的方式,提供情感支持,减少孤独感,甚至增强心理健康。但这些人工智能伴侣在复制人类...
    编程 发布于2024-11-07
  • ## Go 中的空接口:什么时候它们是个好主意?
    ## Go 中的空接口:什么时候它们是个好主意?
    Go 中空接口的最佳实践:注意事项和用例在 Go 中,空接口(interface{})是一个强大的工具,它允许抽象不同类型。然而,它们的使用引发了关于最佳实践以及何时适合使用它们的问题。空接口的缺点引起的一个担忧是类型安全性的损失。使用空接口时,编译器无法在编译时强制执行类型检查,从而导致潜在的运行...
    编程 发布于2024-11-07
  • Tailwindcss 不是 Bootstrap 也不是 Materialize
    Tailwindcss 不是 Bootstrap 也不是 Materialize
    Tailwind CSS 席卷了 Web 开发世界?️,但对其本质的误解仍然存在。在最近的一次设计系统规划讨论中,当一位同事随意将 Tailwind CSS 与 Bootstrap 和 Materialise 进行比较时,我差点没喝茶☕(对不起,我不喝咖啡)。这个令人震惊的发现就像发现我的猫认为自己...
    编程 发布于2024-11-07
  • 星期三链接 - 第 8 版
    星期三链接 - 第 8 版
    Java 23 已经到来,它带来了大量的变化! (35 分钟)? https://foojay.io/today/java-23-has-arrived-and-it-brings-a-truckload-of-changes/ Java 23 中的模式、instanceof 和 switch 中的...
    编程 发布于2024-11-07
  • 在 Fedora 24 服务器和工作站上使用 MariaDB 和 PHP/PHP-FPM 设置 Nginx
    在 Fedora 24 服务器和工作站上使用 MariaDB 和 PHP/PHP-FPM 设置 Nginx
    托管网站和在线应用程序需要设置 Web 服务器基础设施。在本文中,我们将尝试使用 MariaDB 和 PHP/PHP-FPM 了解在 Fedora 24 服务器和工作站上设置 Nginx。这种组合创建了一个强大的堆栈来管理数据库和呈现动态内容。这里介绍的主要概念可以应用于 Fedora 或其他 Li...
    编程 发布于2024-11-07
  • 使用 React Hooks 和事件监听器时,为什么状态控制台日志显示错误信息?
    使用 React Hooks 和事件监听器时,为什么状态控制台日志显示错误信息?
    事件监听器和React Hooks问题:使用React hooks和事件监听器时,状态控制台日志显示不正确的信息。 问题描述考虑提供的CodeSandbox: https://codesandbox.io/s/lrxw1wr97m。当您单击“添加卡”按钮两次,然后单击第一张卡中的“Button1”时...
    编程 发布于2024-11-07
  • 如何用Javascript实现IFRAME加载完成时的回调?
    如何用Javascript实现IFRAME加载完成时的回调?
    使用 Javascript 回调加载 Iframe要在 IFRAME 完成加载时执行回调,请按照以下步骤操作:创建 IFRAME 和加载处理程序创建 IFRAME以编程方式:var iFrameObj = document.createElement('IFRAME'); iFrameObj.src...
    编程 发布于2024-11-07
  • 如何管理部署到子文件夹的 MVC 应用程序的 URL 修改?
    如何管理部署到子文件夹的 MVC 应用程序的 URL 修改?
    了解应用程序子文件夹的 URL 修改在开发部署到子文件夹的 MVC 应用程序时,必须适应应用程序子文件夹的更改基本网址。这可确保 JavaScript 引用和 URL 在本地和部署环境中正常运行。确定应用程序根的解决方案要确定根 URL 并相应地修改 JavaScript,有两种方法:简单方法:利用...
    编程 发布于2024-11-07
  • 如何将具有已知和未知键/值对的 JSON 解析为 Go 结构?
    如何将具有已知和未知键/值对的 JSON 解析为 Go 结构?
    使用任意键/值对解组 JSON 到结构问题如何解析具有已知和未知键/值对的 JSON 字符串进入 Go 结构体?未知字段可以具有任何名称和值类型(字符串、布尔、float64 或 int)。解决方案使用已知字段和未知字段的映射切片创建一个结构体:type Message struct { K...
    编程 发布于2024-11-07
  • [Go][Excelize] 确定单元格值是否有删除线
    [Go][Excelize] 确定单元格值是否有删除线
    简介 我想确定单元格的值是否有删除线。 确定单元格的值是否有删除线 要确定单元格的值是否有删除线,我必须通过两种方式获取单元格样式。 如果只有单元格的某些值被删除,如“A1”,我应该从“excelize.RichTextRun”获取单元格样式。 如果单元格中的所有值...
    编程 发布于2024-11-07
  • php:与进程的并发。角与 shmop 的进程间通信
    php:与进程的并发。角与 shmop 的进程间通信
    php isn't the sort of language where developers usually think about things like memory. we just sort of sling around variables and functions and let t...
    编程 发布于2024-11-07
  • Kotlin vs. Java:Android 开发终极指南 4
    Kotlin vs. Java:Android 开发终极指南 4
    说到 Android 开发,争论最多的话题之一是 Kotlin 和 Java 之间的选择。两者都是功能强大的语言,各有优缺点,并且决策可以显着影响开发过程和最终产品。本博客将深入探讨 Kotlin 和 Java 的细微差别,从各个方面对它们进行比较,以帮助您决定哪种语言最适合您的 Android 开...
    编程 发布于2024-11-07
  • 使用 Spring Boot 构建您的第一个微服务系统:初学者指南
    使用 Spring Boot 构建您的第一个微服务系统:初学者指南
    Introduction In this guide, we'll walk through the creation of a simple yet comprehensive microservices system using Spring Boot. We will cov...
    编程 发布于2024-11-07
  • POST 请求能否触发后退按钮确认警报以及如何抑制它们?
    POST 请求能否触发后退按钮确认警报以及如何抑制它们?
    防止按后退按钮时出现 POST 确认警报通过 Web 表单提交大量参数时,经常使用 POST 请求而不是获取。但是,当用户在页面显示后单击“后退”按钮时,Firefox 会显示确认警报。此警报警告 Firefox 将重新发送可能会重复先前操作的信息,例如搜索或订单确认。虽然此行为可能旨在防止意外重复...
    编程 发布于2024-11-07
  • 用 PHP 创建一个简单的页面路由器
    用 PHP 创建一个简单的页面路由器
    创建文件 首先,我们将创建index.php、router.php和.htaccess文件。 将所有请求重定向到.htaccess 中的index.php RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f Re...
    编程 发布于2024-11-07

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3