为了定义这个角色,我们必须清除所有不属于前端开发职责范围的角色。 例如,Web 开发人员的角色不应与前端开发混淆:前者构建应用程序,而后者构建用户体验。 还有其他例子包括前端设计师、网络工程师、后端网络开发人员等。
为了区分这些角色,我们可以考虑以下四个标准:
开发者范围
如果我们假设前端的主要环境是浏览器,那么 PHP 或 C# 开发人员的工作属于这个环境呢? PHP 就是一个很好的例子,它运行在服务器上,但最终仍然将数据传递到用户界面(即浏览器)。 和PHP都是不需要编译的脚本语言。 那么PHP开发人员是前端开发人员还是后端开发人员?
等工具允许开发人员利用 HTML、CSS 并构建跨平台桌面应用程序。 类似的工具包括 Adobe,它可以将编写的 HTML 页面编译为本机移动应用程序。 这本质上允许中级前端开发人员构建和发布移动或桌面应用程序。 那么是否意味着应用程序开发也属于前端开发人员的职责呢?
随着 Node 的出现,后端和前端之间的界限变得越来越模糊,前端开发人员通常需要了解 Node 及其附带的包。 这些明明是后端技术,为什么要把它们加入到前端工作的规范中呢?
在我们标准化这个角色之前,我们必须就前端开发人员的范围达成一致。 在我看来,这个范围仅限于主要在浏览器中运行的应用程序和用户界面,并且这个角色应该与构建服务器端功能无关。
语言选择
我们需要考虑的第二个标准可能是开发人员选择的编程语言。 你可以用C#这样的语言来构建网站的基础设施,这就带来了与上面相同的问题:我们可以将PHP和C#视为前端语言吗?
下面的招聘信息要求开发人员了解 PHP 技能,而另一个则要求开发人员了解。
比较最后两个“前端开发人员”职位所需的技能
随着JS等流行框架开始支持JS,很多原来用PHP可以实现的功能现在也可以用它来实现。 上述职位之一需要掌握语言,这带来了只有 Java 等语言才有的静态类型。 那么在考虑前端语言或框架时,我们应该在哪里划出这条分界线呢?
如果我们排除 PHP、C#、Java 等,那么哪个框架或库属于这个角色的范围? 例如,Vue 是在网络上构建交互性的完美工具,但大多数前端开发人员学习 Vue 可能会更好。
另一方面,像 React 这样的库要求开发人员学习原本与前端无关的概念:设置和编译、部署过程、理解高阶组件,并且只是为了好玩你可能需要了解 Redux 中的状态管理。 这份技术清单将会变得越来越长。 虽然这些库都使用语言,但它们带来的想法往往有很大不同。
许多后端开发人员告诉我,他们发现 CSS 非常困难,我也同意 CSS 很困难。 我们可以原谅后端开发人员不懂CSS和交互性,那么为什么我们期望前端开发人员掌握后端技术呢?
最终我们应该问的问题是:前端开发人员应该开发功能组件还是数据驱动组件? 在我看来,这个角色在语言选择上只能选择HTML、CSS和(仅限于前端库)。 它主要负责构建交互组件或Web项目,并在必要时可以使用服务数据。
技术水平
前端开发人员什么时候成为全栈开发人员或Web开发人员?
您可以通过考虑类别和语言选择来轻松区分这一点。 全栈开发人员是既了解前端又了解后端的开发人员(意味着可以处理多个领域)。 Web 开发人员是能够利用多种框架、库和语言来构建丰富的数据驱动应用程序的开发人员。 大多数前端开发人员很可能从中级前端开发角色晋升为高级全栈开发人员、工程师等角色。
那么,根据我们迄今为止对角色的定义,是否有可能晋升为高级前端开发人员? 我的论点是肯定的。 只要看看 ( ) 上的获奖网站,您就会同意,如果您想实现这种级别的交互性,您必须对 DOM 和 DOM 的操作有很好的理解。 这样前端开发也可以专注于学习构建交互功能的库(如HTML、WebGL等),而不是把时间浪费在与前端开发背道而驰的后端库或框架上。
其他专业知识
我们需要考虑的最后一个因素:前端开发角色带来的所有额外要求。 我认为“行李”这个词很恰当,因为这些要求往往以特殊的方式混合在一起。
一个很好的例子是(这是上面职位发布中的要求)。 数据库管理或者架构曾经本身就是一个角色,那么为什么我们现在把这些技术视为前端开发最重要的技术呢?
另一个例子是上面截图中列出的图形设计要求。 就我个人而言,我非常同意开发人员需要了解设计,但是将其视为前端开发中最重要的技术,是否意味着该角色被想象为其他东西,例如前端设计师或全栈设计师?
当考虑所有这些知识带来的额外责任时,我们不禁要问自己,将这些责任混合在一起是否只会使该领域变得更加复杂。 如果今天我决定在我的公司引入 React,那么下一个接替我的开发人员也必须了解 React。 然后,如果这位新开发人员决定加入 Redux……您知道会发生什么吗? 更糟糕的是,无论公司使用什么技术,公司都会继续雇用前端开发人员,因为部门需要这样的角色。
因此,权力伴随着责任,最终是我们开发者对我们使用的技术负责。 考虑一下技术堆栈变更对运营的影响,并了解您可能会延续现有的问题。
定义角色
到目前为止,我们已经讨论了前端开发人员的含义,我们可以总结以下职位描述:
前端开发人员负责使用 HTML、CSS 并构建交互式用户界面或 Web 体验。
简单来说:前端开发不需要了解函数式编程,也不需要了解SSL的具体技术细节。 这并不是说他们不应该学习这些概念,但至少不应该对他们抱有这样的期望。
我认为,通过帮助下一代前端开发人员理解前端开发的含义,共同努力解决开发社区内对这些角色的困惑非常重要。
本文完全是根据我个人的经历和观点来写的,欢迎大家在评论区发表自己的看法。
原来的: