前端角色和职责
前端角色和职责
原文:https://medium.com/hackernoon/front-end-roles-and-responsibilities-6ee8654f1649

Cue Iron Man by Black Sabbath
在过去十年左右的时间里,网络前端的工作有了很大的发展。我反复面临的一个挑战是帮助人们了解我擅长的网络工作领域。这似乎是一个相当常见的主题,因为如果你做一点网络调查,就会开始觉得我们甚至不能很好地表达我们对自己做了什么,更不用说随后对任何高于它的人的解释了。
最近,我很幸运地为定义角色和像我这样的人在工作中的位置做出了贡献。我希望,记录我的一点点研究,或者可以作为其他人在试图提出类似呼吁以定义他们公司内的新角色时可以参考的资源,或者可以帮助那些与我目前处境相似的人:不得不戴太多帽子,感觉有更好的解决方案。
我在这里试图回答的问题是:
我们应该如何称呼这个角色的人?
他们的职责应该是什么?
顺便说一句,我刚刚读完布拉德·弗罗斯特的原子设计,它为我目前的努力提供了一点灵感。
首先,职位。职称可能很难,这就是为什么我想先解决它们。虽然我完全理解网络专业人员的职称很难确定,但它们确实有意义(就像单词一样),随后人们会根据它们来推断意义。我拥有图形设计学位,并且在大学里花了整整一学期的时间学习 Adobe Director(网络学位还不是一件真正的“事情”)。就像布拉德·弗罗斯特一样,我一生中从未上过计算机科学的课程。在我的职业生涯中,我的职称经历了转变(每次转变都是在同一个雇主那里,每个逗号分隔雇主),从网页设计师到网页营销经理(我很快离职),从网页设计师到网页开发人员,从高级前端网页开发人员到高级开发人员(注意“前端”和“网页”的神秘离职),从 UI 开发人员到 UI 工程师。
如果你留心的话,你会注意到我的工作头衔不断从更接近设计的起点向计算机科学的一端过渡的趋势。我不确定这是因为我是一个 6 英尺 3 英寸高的白人男性(我们都知道我们这个行业的性别偏见),还是因为工资水平偏向于“开发人员”,所以随着我在这个行业中获得经验,我不得不朝着这个方向前进,只是为了在职业阶梯上向上爬。不管是什么原因,结果是人们通常想把我归类为更技术性的人,因为局外人的假设倾向于把所有“网络技术”都归为一类。
这是一个常见的主题,其他人在解释这个主题方面做得比我好。这里有几个。
布拉德·弗罗斯特在他关于前端设计的文章中做了很好的概述:
前端设计师(也可能是 UI 开发人员、客户端开发人员、UI 工程师、设计工程师、前端架构师、设计师/开发人员、原型设计师、独角兽或 Bo Jackson)生活在两个世界之间的炼狱中。
Jonathan Snook 在他关于设计工程的文章中把这个过程中的一个全新步骤定义为“设计实现”:
当我们检查开发过程时,有三个阶段:“设计”、“设计实现”和“应用程序开发”。
也许我发现的讨论我们的角色这些年来如何变化的最清晰的帖子来自于 Matthew Gertner 关于前端开发人员定义变化的帖子。以下是一些很棒的摘录:
现在,单页面应用程序已经将许多过去发生在后端层的工作推到了浏览器中,UX 到 jQuery 的人们突然被要求做核心软件工程。
这个世界仍然需要开发人员能够综合客户需求,与图形设计人员合作,并在越来越复杂的 CSS 标准中导航,以制作出华丽、响应迅速且功能强大的用户界面。
真正的问题是认为浏览器中运行的任何代码都是前端代码。现在显然不再是这样了。要么我们找到另一个术语来描述 UX 到 jQuery 的人群,要么我们重新定义“前端”的含义。
最后一句话尤为重要,因为不可否认的是,浏览器中运行的代码是前端和后端代码的混合体。Jeremy Keith 在他关于角动量的文章中描述 Angular 更接近于原生 SDK:
嗯,是的,技术上 Angular 是一个前端框架,但概念上和哲学上它更像一个后端框架(实际上,我认为它在概念上最接近一个原生 SDK 更类似于编写 iOS 或 Android 应用程序,而其他人则把它比作 ASP.NET。
杰克·阿奇博尔德在他题为的文章中也提出了一个很好的观点,如果我们停滞不前,我们就会倒退:
没有人能成为全网的专家。外科医生不是所有外科手术的专家,科学家不是所有科学领域的专家,网站开发者也不是所有网站开发领域的专家。
总而言之,在设计和开发团队之间有一个角色,在前端 web 开发中有更多专业化的空间。网络本身只存在了几十年。没有足够的时间让我们认识到,也没有足够的时间让我们反思专业化是必要的这一事实。你不会要求古生物学家给你提供半人马座阿尔法星的详细描述。类似地,你不会想到在你计划进行心脏手术的那天,用一个足科医生代替你的外科医生。由此可见,我们也不应该让一个非常擅长将设计原型转化为功能性响应网站的人跳进去,为一个通过可观察对象调用 REST 后端的服务编写一些逻辑。
接下来,根据这项研究和我的经验,前端的职责似乎分为三个不同的领域:
前端实现(响应式 web 设计、模块化/可扩展 CSS、UI 框架、生活方式指南、渐进式增强&可访问性、动画和前端性能)。
应用开发 (JavaScript 框架、JavaScript 预处理程序、代码质量、流程自动化、测试)。
前端操作(构建工具、部署、速度:(app、测试、构建、部署)、监控错误/日志和稳定性)。
虽然标题本身仍在开发中(我对其他人的经验很感兴趣),但角色本身是相当清晰的。奇怪的是,我放在“前端实现”桶中的所有东西似乎都与 Brad Frost 认为的原子设计中总体设计系统的一部分相吻合,并且是具有设计背景的人的角色。在我看来,应用程序开发相当于“JavaScript 开发人员”的同义词,是具有计算机科学背景并有前端经验的个人的角色。前端运营工程最初是由 Alex Sexton 在 2013 年定义的,前端运营工作最适合有运营管理背景的个人。
此外,Micah Godbolt 将前端架构定义为我概述的所有三个领域中的感人部分。我还没看过他的书(但很快就会了!),但是我觉得“前端架构师”这个术语可能非常有用,尽管如果我们根据个人的背景稍微细化一下职责的话。
因此,从事前端实现的人是坐在设计师和工程师之间的人,他从事设计实现(不是设计,也不是应用程序开发),并且能够与设计团队一起创建反映客户需求和设计团队意图的用户界面。这个人也对生产应用程序开发团队所使用的框架有足够的了解,可以推荐他们在当前的 JS 框架中实现他们的工作。他们可以将最佳实践纳入生活方式指南,在设计和开发过程中被视为一等公民。我的一部分真的希望这个角色的头衔是“前端刽子手”。
这可能是一种“视情况而定”的情况,因为职位和他们所在的团队在很大程度上取决于你的特定团队的结构。希望这篇文章能阐明职责之间的区别,以及前端最低限度要求个人专注于这些特定领域的界限。我的倾向是,可能会有更多的微调专业化来。



