文档结构  
翻译进度:已翻译     翻译赏金:0 元 (?)    ¥ 我要打赏
参与翻译: toypipi (11)

软件应用程序就像冰山一样。

用户只看到应用程序的一小部分,然而 - 在大多数情况下,应用程序的大部分保持不可见。 这就是难以捉摸和神秘莫测的“后端”。

在Web开发的章节中,我们主要讨论Web开发,因为它涉及最终用户的直接互动 - 我们可以称之为“前端Web开发”。

在最重要的应用程序中,比起用户界面代码,还有更多的非用户界面代码。

复杂系统在后台运行各种各样的使它们正常工作的逻辑。

第 1 段(可获 1.18 积分)

需要存储和检索数据,需要遵循业务逻辑和规则,并且需要计算结果。

所有这一切都发生在幕后。

后端开发人员是使这些功能实现的开发人员。

究竟什么是“后端开发”?

从本章的目的出发,我认为后端开发是指任何类型的不涉及创建生成用户界面的代码的开发

这可能包括后端Web开发,但它也可能涉及编写API,创建库或使用没有用户界面,甚至是科学编程系统的系统组件。

第 2 段(可获 1.36 积分)

在现实中,即使前端开发获得了大部分的荣耀,世界上存在的大多数代码(可能是最有用的代码)是从来不会被最终用户看到的。

简单地说:后端开发只是编写那些看不到的代码。

后端开发人员做什么?

后端开发人员做的事情可能有很大差异,具体取决于他们正在处理的应用程序的大小和范围。

我有很多工作,我是一个后端开发人员,从事应用程序中的业务逻辑开发,并从前端获取和检索数据。

第 3 段(可获 1.29 积分)

在Web开发世界中,大多数后端开发人员都关注自己正在构建并使用的应用程序背后的实际逻辑。

通常,前端开发人员将构建一个用户界面,后端开发人员将编写代码,使其工作。

例如,前端开发人员可以在应用程序中创建一个界面,使用按钮来获取客户的数据。

后端开发人员可能会通过确定为适当的客户从数据库中提取哪些数据并将其传回到前端(在那里最终显示),来编写使该按钮工作的代码。

第 4 段(可获 1.29 积分)

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

他可能参与构建框架或系统的架构,以使其更容易编程。

后端开发人员往往花更多的时间实现算法和解决前端开发人员的问题

我一直喜欢后端开发工作,因为觉得它更像是一个挑战。

这不是说前端开发人员不曾解决困难的问题,但通常前端开发工作更多是关于创建用户界面并使其连接,而不是实现使应用程序工作的实际业务逻辑。

第 5 段(可获 1.55 积分)

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

虽然前端开发人员需要知道一组用于创建用户界面的工具,但后端开发人员通常有一套完全不同的工具和技能,需要通过这些工具和技能有效地完成他们的工作。

后端开发人员需要的一个重要技能是与SQL和数据库相关。

大多数后端系统连接到某种数据库,该数据库存储应用程序的数据。

后端开发人员通常需要从数据库或其他数据源写入,读取和处理数据,因此拥有SQL等技能非常重要。

第 6 段(可获 1.28 积分)

后端开发人员(至少对于Web开发而言)还需要擅长他们正在使用的技术堆栈的服务器端语言。

例如,虽然前端Web开发人员可能专注于HTML,CSS和JavaScript,后端开发人员可能需要更多地了解PHP Web框架,Ruby on Rails,ASP.NET MVC或者其他服务器端 web开发框架用于构建应用程序。

最后,我想说,后端开发人员需要更多地了解应用程序架构,因为大多数情况下,后端开发人员将要构建应用程序的架构和内部设计。

第 7 段(可获 1.35 积分)

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

如果你喜欢设计应用程序的基础架构,实现算法和逻辑,以及使用数据,你可能会享受作为后端开发人员的工作。

关于全栈开发人员?

我想到为全栈开发人员贡献一整章内容,但我认为,由于我们已经涵盖了Web开发和后端开发,那么在这里谈论全栈开发将会变得非常容易,因为全栈开发只涉及一个既进行前端开发又进行后端开发的开发人员。

第 8 段(可获 1.45 积分)

实际上,全栈开发包括处理系统的所有组件和层,或软件开发堆栈。 它甚至可能涉及了了解服务器硬件和体系结构,或者被认为是“开发运营(dev ops)”。

今天,越来越多的软件开发职位正在寻找能够进行全栈开发的开发人员,因为比起让一个开发人员在前端工作而另一个开发人员专门在后端工作来说,能够使用整个技术栈的软件开发人员更有价值。

第 9 段(可获 1.11 积分)

一些原因是越来越多的应用程序模糊了前端和后端开发之间的界限。

许多流行的JavaScript框架(如Angular)允许您在系统的用户界面部分中大量创建可以被视为业务逻辑的代码。

此外,随着越来越多的团队采用敏捷方法,每个程序员被要求不只在他们的专业领域工作,因为比起个人来说更倾向于将任务分配给一个团队。

虽然我认为能够成为一个全栈开发人员是有用的,你应该有足够的知识来了解软件的每一个级别发生了什么 - 我不认为“专攻” 成为一个全栈开发人员是个好主意,因为它并不是一个专业化。

第 10 段(可获 1.8 积分)

基本上,你的目标应该是获得你将要使用的最常见的技术栈的广泛知识,但你应该选择一到两个主要的专业,并深入了解它们。

所有软件开发人员应该知道如何创建用户界面,他们使用的框架的基础知识,如何从应用程序中存储和检索数据库中的数据,甚至需要了解基础设施如何支持软件,但他们不应该试图成为所有这些领域的专家,因为所有这些领域都相当大并且在不断增长中。

最好的是拥有技术堆栈中的通用知识,然后拥有某几个领域的专业知识。

然后,你仍然可以称之为“全栈”,但实际上,你会对一个团队更有用。

第 11 段(可获 1.8 积分)

文章评论