前端开发者是真正的开发者吗?

前端开发者是真正的开发者吗?

原文:https://medium.com/hackernoon/are-front-end-developers-real-developers-bb4df8fa6237

我想现在你已经阅读了 2016 年学习 JavaScript 的*,并且看了一下 JavaScript 的状态*本文不会在 2016 年探讨 JavaScript 的复杂性;相反,它将概述 2016 年成为前端开发人员意味着什么,以及为什么前端开发人员是真正的开发人员。**

在我开始之前,我会很快让你知道我是全职的前端开发人员;然而,我经常被期望处理公司过多的后端开发;这让我很好地理解了这两个职业之间的相似之处和不同之处,并对这两个领域的内容有了相当深刻的了解。

我想澄清的是,我并不是想挑起一场激烈的战争,或者暗示前端开发比后端开发更困难。如果有的话,我想传达为什么我认为在 2016 年 11 月,就所需的技术和技能而言,前端开发应被视为与后端开发同等的职业。

作为一名前端开发人员,我发现在社区中有一种普遍的偏见,即后端开发被认为是两者中的佼佼者,而前端开发实际上是那些不会开发后端的人更容易的选择;在极端的情况下,我甚至经历过后端开发人员称前端开发不是真正的开发。五六年前,当 web 页面本质上是静态的,响应性 web 开发不存在,单页面应用程序是未来的挫折时,这可能是真的。但现在不是五六年前,而是 2016 年,前端开发比以往任何时候都更复杂,为了证明这一点,我将概述前端开发人员在日常开发周期中面临的一些更具技术性的任务。根据我的经验,与后端开发相比,这些任务使前端开发成为一个合格的竞争对手。

**前置处理器/编译器 往往当人们想到前端的时候首先想到的是 HTML/CSS/JavaScript,没错;这些最终是构成前端的语言。然而,今天你很少会发现这些语言是以原始形式使用的,相反,开发人员选择使用预处理器、工具,这些工具允许开发人员编写更紧凑的代码,然后将其编译成原始形式。这些工具通常为开发人员提供更好的性能,但是由于到处都有大量不同的预处理程序(Jade/Haml/Slim/Sass/Less/Stylus/coffee script/TypeScript/Babel/等等),要跟上变得越来越困难。**

**构建工具 编写生产级代码时,需要满足很多前提条件。这些包括缩小的 CSS、丑陋的 JavaScript 和图像优化等等。这些先决条件有助于提高最终用户的 Google 页面速度和站点加载速度。以上所有的先决条件都可以用 gulp 或 webpack 这样的工具自动完成;然而,这两种工具都需要大量的设置和对每个工具工作原理的深入理解(尤其是 webpack)。**

**框架期望 在过去的一年中,他们越来越重视并期望使用前端框架。基于以上两点,许多前端框架鼓励使用 ES6 JavaScript。这通常是通过一个叫做 babel 的预处理/编译工具来实现的,babel 通常是通过一个像 webpack 这样的构建工具来实现的。前端框架在许多方面为前端开发带来了一致性和结构,这也是我认为前端开发人员应该被视为真正的开发人员的主要原因之一。这是因为前端框架通常实现高级的编程概念,如 MVC 模型,这有助于开发人员在处理大规模应用程序时将代码调整为更易于管理的组件。这方面的另一个例子是最近社区内对功能风格编程的吸收;这与其说是一个*结构概念,不如说是一种编程风格。如果你对这样的例子感兴趣,可以看看 RxJSRamda 或者我最喜欢的 elm 。***

**行业发展和饱和 前端社区正在蓬勃发展,因此每隔一天就会有新的框架问世。现有工具的新实现每周都会发布,比以前的工具更好或更快或更快,如果您不能立即领会,在社区的眼中,您将很快被认为是过时的。这意味着你不仅要在一个饱和的生态系统中工作,还要深入了解这个饱和的生态系统,以便保持相关性。****

bug 与调整 我非常羡慕我的后端开发同事的一件事是,客户对他们的工作意见很少。这是因为在大多数情况下,当实现后端功能时,它要么工作,做客户想要的,要么不工作;没有中间环节。前端开发是完全不同的故事。我可以从给定的 PSD、PDF 等中开发出客户期望的东西…但是一旦它在浏览器中可用,我经常会收到类似于“…我们能不能把它变小一点…”…也许如果我们把这里的背景变暗一点…,它可以继续下去。当然也有我弄错的时候,这是一个我需要修复的 bug,但在大多数情况下,我发现这更适合归类为调整,完全取决于客户的意见。

测试和部署 这是我最想谈论的一点,因为我认为这是任何网站开发生命周期中最容易被忽视的一点。 每个人都必须测试他们的代码,这只是编程的一部分,然而我想强调一下这两种不同职业之间可以达到的自动化水平。根据我的经验,大多数后端代码可以以自动化的方式进行测试,而大部分前端代码可以自动测试,总有需要手动操作,无论是在 5 个以上的浏览器上手动点击大约 20 个页面,还是查看 100 个浏览器堆栈图像,都需要有人在某个时候确保一切正常。除此之外,还有数以千计的设备和分辨率,你的网站需要使用所有这些设备和分辨率。大多数人不完全理解这意味着什么;在大多数后端情况下,开发人员被期望为一个环境(服务器)编写代码,所以这意味着一旦代码工作了,就结束了。前端开发人员通常在他们喜欢的浏览器中编写和测试他们的代码,然后不得不在其他浏览器中进行测试。我写的代码可以在 Chrome、IE 和 Safari 中完美运行,却发现在 Firefox 中表现不佳,需要完全重写。一旦代码被重写,它就需要被重新测试,现在这听起来可能相当小,但是想象一下,如果每次你进行更新,你都必须重新经历这个过程,并且你测试的每个浏览器都可能意味着重写,这很快就开始对即使是最好的开发人员产生影响。

现在你知道了,虽然前端和后端开发之间的精确比较可能是不可能的,但鉴于这两个领域之间的差异,我确实相信前端开发在过去四年中已经取得了很大的进步,并且在这两个行业中都工作过,我认为就整体技术和所需的技能而言,它应该与后端开发平起平坐。我也希望看到社区团结起来,克服前端开发人员在某种程度上是第二梯队开发人员的污名,给予他们真正应得的欣赏和尊重;来吧,让我们分享爱。

****

黑客中午是黑客如何开始他们的下午。我们是 @AMI 家庭的一员。我们现在接受投稿,并乐意讨论广告&赞助机会。

如果你喜欢这个故事,我们推荐你阅读我们的最新科技故事趋势科技故事。直到下一次,不要把世界的现实想当然!


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除