网页和应用程序是复杂的,按钮和图片只不过是冰山一角。按照这样的复杂程度,我们需要人工来处理,但前端程序员和后端程序员的职务分别是什么?
开发的多层次
无论你是使用网站或者是ios应用程序,所有的开发环境都使用相同的模式——那就是前端开发和后端开发。
这界线是模糊的,尤其是当 Javascript 和 serverless 世界的兴起。当开发工具开始结合在一起时,我们会开始怀疑自己算不算是全栈开发者。
但我们不是全栈程序员
虽然我们都想被称为全栈开发者,但我们并不是。以我个人来说,我发现自己在后端的开发比较有效率,但这并不是我的强项,我更喜欢建立使用者页面( UI )。
当然也有些人跟我相反,他们的强项是在应用的后端构建 API 同时也能建立使用者页面,但可能是比较像原型设计以展示应用设计的那种。
就算你是个全栈开发者,但这并不代表没有职责的分支。
前端工程师 vs 后端工程师
它们的区别是什么?
什么是前端开发?
应用程序的前端通常是指显示使用者界面的图层,当中包括所有的静态网页如 HTML 和 CSS 到 React 所构建的使用者界面。
传统的前端开发是什么样的?
目前统治前端网页的程序语言是 Javascript ,但并不完全只依赖一个程序语言就可以的。若需要在网页内增加一些互动,就需要使用如 PHP 和 Template Toolkit(Perl)的服务器模板的程序语言渲染网页前端页面。
这种方式广泛的应用在用户自行建立的框架或如 Wordpress 这样使用 PHP 来驱使广大的开发者社群使用这个工具来开发网站。
它的运作方式是这些模板可以在运行时直接从服务器获取资料。当浏览器从服务器请求网页资料时,模板所需的资料和应用的逻辑都会在那个时候获取。
一些传统的前端工具包括:
但时间久了之后, 当 Javascript 变得越来越成熟和浏览器的强化,我们就能够建立更多、更快、互动性更强的使用者体验。
目前的前端开发是什么样的?
目前使用 Javascript 的网页和应用程序建立 UI 的框架如 React,Vue,和 Angular 越来越常见。这些工具提供了开发者能够重复使用的复杂 UI 软件的功能。
当浏览器缓冲页面时,该页面会先接受一个起始的 HTML 文件当中包括 script 标签里所包含的 Javascript 文档(就跟之前的一样)。不同的是当 Javascript 运行时,它会自动从浏览器与外部的 API 连接,更新页面之后就像一个普通的静态网页从起始的 HTML 文件中获取这样。
它就像是使用更多的步骤建立一个网页...
虽然看起来步骤变多了,但通常能够提供更快速的缓存和渲染,因此提供了更优质的开发体验。因为在初始请求页面时的资料减少和缓冲优先的排序,所以能够提供更好的使用者体验。
一些常用和广受欢迎的前端开发工具包括:
但是这些 API,无论是我们付费或者是自行建立的都需要建立在 某些地方。这就是所谓的后端。
什么是后端开发?
后端是程序逻辑发生的地方。这可以是非常复杂,比如管理电子商务公司的收入或者只是简单的用户资料。
传统的后端开发是什么样的?
传统的应用程序后端通常使用服务器编程语言如 PHP 或 Ruby。这个方法是需要一个服务器来运行复杂的运动算的,所以才会使用服务器能够明白的语言。
所以对服务器的请求,后端会执行所有的程序,当然也包括前端的渲染。通过使用框架或者自行定义的结构,后端能够接受请求,通过请求执行相对应的逻辑,然后提供前端所需要显示的资料。
后端给前端的 500 Internal Server Error
一些传统的后端开发工具包括:
目前的后端开发是什么样的?
目前后端的开发和之前并没有太大的变化,除了有新的编码格式,就是我们经常能够看见的后端透过 HTTP 请求提供资料给 API 而不是直接透过前端工程师所建立的模板。
因为基础并没有太大的变化,当我们开放存有敏感资料的 API 给大众时会带来复杂且难处理的安全隐患。
但服务器的运行也有了不同。之前,我们需要在我们自己的服务器运行 Python 代码(当然现在也可以),但现在我们可以使用如 AWS Lambda 的工具来简化我们的代码。
可是 serverless 并不是真正不需要服务器的意思,而是转化成为了一种服务,开发者能够不需要担心服务器维护的情况下进行开发工作,只需要专注在编码本身的运行就行了。 一些常用和广受欢迎的后端开发工具包括:
模糊地带
透过 Node.js 的 Javascript 开发者能够使用自己喜欢的浏览器语言执行与服务器语言相同的任务。
不停止地想象能够在服务器写 JS 代码
虽然并不是所有人都是以 Javascript 作为服务器语言,当它的确能够简化整个程序只使用同一种语言。这重写了前端和后端的游戏规则。
但它也开始进入一个完整的生态圈,就是现在我们会看到系统的 API 就建立在 前端的隔壁 这跟传统的格式一样。
前端 vs 后端
无论前端或后端,总是会有区分的界限。所有互动的 UI 不论是在服务器或浏览器运行的,都属于前端。而那些使前端的逻辑发生和资料来源,不论是某公司提供的服务或者是自定义的结构,都是后端。
不论你喜欢搭建使用者界面或者建立后台逻辑,都有不少的资源让你开始。