什么是后端开发?

什么是后端开发?

软件应用程序就像冰山同样。用户看到的只是应用程序的一部分——在大多数状况下——应用程序的最大部分是看不到的。这就是使人难以捉摸又神秘的“后端”。html

在Web开发的篇章中,咱们主要讨论Web开发,由于它涉及与最终用户的直接互动——咱们能够称之为“前端Web开发”。前端

在大多数应用中,非用户接口代码比用户接口代码多得多。复杂系统是在后台发生的各类使其工做的逻辑。程序员

咱们须要存储和检索数据,须要遵循业务逻辑和规则,而且须要对结果进行预测。全部这一切都发生在幕后。算法

后端开发人员是这样的开发人员。数据库

后端开发到底是什么?编程

这篇文章的目的在于,我将会考虑后端开发是一种不涉及建立生成用户界面的开发。这可能包括后端Web开发,可能也涉及编写API,建立库或和没有用户界面或甚至科学编程系统的系统组件一块儿工做。后端

  

在现实中,即便前端开发得到了大部分的荣耀,可是世界上存在的大多数代码(能够说是最有用的代码)是最终用户历来不会看到的后端代码。服务器

简单来讲,后端开发就是开发人员编写的不能直接看到的代码。架构

后端开发人员作什么?框架

根据正在处理的应用程序的大小和范围,后端开发人员要作的事情有很大的不一样。在我是一个后端开发人员时,我作了不少工做,工做于应用程序中的业务逻辑,以及从前端提取和检索数据。

在Web开发世界中,大多数后端开发人员从事于构建他们正在工做的应用程序背后的实际逻辑。

一般,前端开发人员构建用户界面,然后端开发人员编写代码,使其工做。

例如,前端开发人员在应用程序中建立一个界面,上面有一个按钮,按下按钮来获取客户的数据。

后端开发人员写可以使得按钮工做的代码,经过指出从数据库中提取哪些数据并将其传回到前端(并最终显示在那里)。

后端开发人员也可能会大量参与系统架构,决定如何组织系统的逻辑,以便可以正常维护和运行。

他可能会参与构建框架或系统架构,以便于更容易编写程序。后端开发人员比前端开发人员花费更多的时间在实现算法和解决问题上。

我一直都很喜欢后端开发工做,由于它更像一个挑战。

这并非说前端开发人员不解决难题,但一般前端开发工做更多的是关于建立用户界面和与之相关的内容,而不是实现实际的业务逻辑,使应用程序工做。

后端开发的主要技术和技能

前端开发人员须要知道一系列用于建立用户界面的工具,然后端开发人员一般使用的是一套彻底不一样的工具和技能,以便于高效地完成他们的工做。

后端开发人员所需的一个重要技能与SQL和数据库有关。大多数后端系统须要链接到存储应用程序数据的数据库。

  

后端开发人员一般的工做是从数据库或其余数据源写入、读取和处理数据,所以拥有SQL等技能会很是重要。后端开发人员——至少对于Web开发——也须要擅长他们正在使用的技术栈的服务器端语言。

例如,虽然前端Web开发人员更多地专一于HTML,CSS和Java,然后端开发人员须要更多地了解PHP Web框架,Ruby on Rails,ASP.NET MVC或任何正用于构建应用程序的服务器端Web开发框架。

最后,我想说,后端开发人员须要更多地了解应用程序架构,由于大多数状况下,后端开发人员须要去构建应用程序的体系结构和内部设计。

一个好的后端开发人员得知道如何使用各类框架和库,如何将它们集成到应用程序中,以及如何构建代码和业务逻辑,用一种使系统更易于维护的方式。

若是你喜欢设计应用程序的基础设施,实现算法和逻辑,以及工做于数据,那么你可能会喜欢成为一名后端开发人员。

关于全栈开发人员?

我曾想为全栈开发人员另起一篇文章,但后来想到,既然已经涵盖了Web开发和后端开发,那么延伸开去谈论全栈开发更为理所固然,由于全栈开发恰好涉及了前端和后端开发。

  

实际上,全栈开发包括处理系统或软件开发堆栈的全部组件和层。它甚至可能涉及了解服务器硬件和架构,或者被认为是DevOps。

今天,愈来愈多的软件开发职位在寻找可以进行全栈开发的开发人员,由于对于软件开发人员来讲可以工做于涉及的整个技术栈是颇有价值的,而不是将前端开发与后端开发兵分两路。

一部分缘由是如今愈来愈多的应用程序模糊了前端和后端开发之间的界限。

许多流行的Java框架,如Angular,容许你在系统的用户界面部分中建立能够被视为业务逻辑的大部份内容。

此外,随着愈来愈多的团队采用敏捷方法,个体程序员被要求不只仅能工做于他们的专业领域,由于任务被分配给团队远超过我的。

我认为成为一个全栈开发人员是有用的——而且你应该充分了解软件的每一个层次发生了什么——但我不认为“专业化”全栈开发人员是顶好的主意,由于这不是一个专业领域。

基本上,你应该专一于获取你可能会用到的最多见的技术栈的普遍知识,但你应该选择一个或两个主要的专业,而后朝着选择的方向真正地去深刻钻研。

全部软件开发人员都应该知道如何建立用户界面,所使用的框架的基础,如何从应用程序中存储和检索数据库中的数据,甚至了解基础设施如何支持软件,他们不须要成为全部全部这些领域的专家,由于这些领域不但至关大并且在不断扩大。

具有技术堆栈中通用和有效的全部知识或一些领域中的专业化知识或许要好得多。

而后,你仍然能够称本身为“全栈”,但实际上,对于团队而言,你这样的人才更加有用得多。

译文连接:http://www.codeceo.com/article/what-is-backend-development.html

英文原文:What Is Back-End Development?

翻译做者:码农网– 小峰

相关文章
相关标签/搜索