什么是后端开发?后端能做什么?全栈工程师又是什么?
软件应用程序就像冰山一样。用户看到的只是应用程序的一部分——在大多数情况下——应用程序的最大部分是看不到的。这就是令人难以捉摸又神秘的“后端”。
在Web开发的篇章中,我们主要讨论Web开发,因为它涉及与最终用户的直接互动——我们可以称之为“前端Web开发”。
在大多数应用中,非用户接口代码比用户接口代码多得多。复杂系统是在后台发生的各种使其工作的逻辑。
我们需要存储和检索数据,需要遵循业务逻辑和规则,并且需要对结果进行预测。所有这一切都发生在幕后。
后端开发人员是这样的开发人员。
后端开发究竟是什么?
这篇文章的目的在于,我将会考虑后端开发是一种不涉及创建生成用户界面的开发。这可能包括后端Web开发,可能也涉及编写API,创建库或和没有用户界面或甚至科学编程系统的系统组件一起工作。
在现实中,即使前端开发获得了大部分的荣耀,但是世界上存在的大多数代码(可以说是最有用的代码)是最终用户从来不会看到的后端代码。
简单来说,后端开发就是开发人员编写的不能直接看到的代码。
后端开发人员做什么?
根据正在处理的应用程序的大小和范围,后端开发人员要做的事情有很大的不同。在我是一个后端开发人员时,我做了很多工作,工作于应用程序中的业务逻辑,以及从前端提取和检索数据。
在Web开发世界中,大多数后端开发人员从事于构建他们正在工作的应用程序背后的实际逻辑。
通常,前端开发人员构建用户界面,而后端开发人员编写代码,使其工作。
例如,前端开发人员在应用程序中创建一个界面,上面有一个按钮,按下按钮来获取客户的数据。
后端开发人员写可使得按钮工作的代码,通过指出从数据库中提取哪些数据并将其传回到前端(并最终显示在那里)。
后端开发人员也可能会大量参与系统架构,决定如何组织系统的逻辑,以便能够正常维护和运行。
他可能会参与构建框架或系统架构,以便于更容易编写程序。后端开发人员比前端开发人员花费更多的时间在实现算法和解决问题上。
我一直都很喜欢后端开发工作,因为它更像一个挑战。
这并不是说前端开发人员不解决难题,但通常前端开发工作更多的是关于创建用户界面和与之相关的内容,而不是实现实际的业务逻辑,使应用程序工作。
后端开发的主要技术和技能
前端开发人员需要知道一系列用于创建用户界面的工具,而后端开发人员通常使用的是一套完全不同的工具和技能,以便于高效地完成他们的工作。
后端开发人员所需的一个重要技能与SQL和数据库有关。大多数后端系统需要连接到存储应用程序数据的数据库。
后端开发人员通常的工作是从数据库或其他数据源写入、读取和处理数据,因此拥有SQL等技能会非常重要。后端开发人员——至少对于Web开发——也需要擅长他们正在使用的技术栈的服务器端语言。
例如,虽然前端Web开发人员更多地专注于HTML,CSS和JavaScript,而后端开发人员需要更多地了解PHP Web框架,Ruby on Rails,ASP.NET MVC或任何正用于构建应用程序的服务器端Web开发框架。
最后,我想说,后端开发人员需要更多地了解应用程序架构,因为大多数情况下,后端开发人员需要去构建应用程序的体系结构和内部设计。
一个好的后端开发人员得知道如何使用各种框架和库,如何将它们集成到应用程序中,以及如何构建代码和业务逻辑,用一种使系统更易于维护的方式。
如果你喜欢设计应用程序的基础设施,实现算法和逻辑,以及工作于数据,那么你可能会喜欢成为一名后端开发人员。
关于全栈开发人员?
我曾想为全栈开发人员另起一篇文章,但后来想到,既然已经涵盖了Web开发和后端开发,那么延伸开去谈论全栈开发更为理所当然,因为全栈开发刚好涉及了前端和后端开发。
实际上,全栈开发包括处理系统或软件开发堆栈的所有组件和层。它甚至可能涉及了解服务器硬件和架构,或者被认为是DevOps。
今天,越来越多的软件开发职位在寻找能够进行全栈开发的开发人员,因为对于软件开发人员来说能够工作于涉及的整个技术栈是很有价值的,而不是将前端开发与后端开发兵分两路。
一部分原因是现在越来越多的应用程序模糊了前端和后端开发之间的界限。
许多流行的JavaScript框架,如Angular,允许你在系统的用户界面部分中创建可以被视为业务逻辑的大部分内容。
此外,随着越来越多的团队采用敏捷方法,个体程序员被要求不仅仅能工作于他们的专业领域,因为任务被分配给团队远超过个人。
我认为成为一个全栈开发人员是有用的——并且你应该充分了解软件的每个层次发生了什么——但我不认为“专业化”全栈开发人员是顶好的主意,因为这不是一个专业领域。
基本上,你应该专注于获取你可能会用到的最常见的技术栈的广泛知识,但你应该选择一个或两个主要的专业,然后朝着选择的方向真正地去深入钻研。
所有软件开发人员都应该知道如何创建用户界面,所使用的框架的基础,如何从应用程序中存储和检索数据库中的数据,甚至了解基础设施如何支持软件,他们不需要成为所有所有这些领域的专家,因为这些领域不但相当大而且在不断扩大。
具备技术堆栈中通用和有效的所有知识或一些领域中的专业化知识或许要好得多。
然后,你仍然可以称自己为“全栈”,但实际上,对于团队而言,你这样的人才更加有用得多。
最后,不管你是转行也好,初学也罢,进阶也可,如果你想学编程~
【值得关注】我的 C/C++编程学习交流俱乐部!【点击进入】
问题答疑,学习交流,技术探讨,还有超多编程资源大全,零基础的视频也超棒~
什么是后端开发?后端能做什么?全栈工程师又是什么?相关推荐
- 开年福利!微服务前后端开发手册,打造完美全栈工程师
企业技能要求 现在企业通常要求程序员既要有实战技能,也要内功扎实,对于新项目可以快速上手,熟悉底层原理后还应后劲十足,因此在笔试和面试时结合底层知识.实战应用.设计思维三方面进行考查.针对这3个方面的 ...
- 做个全栈工程师真的好吗?
全栈工程师是什么意思?用大白话讲就是万金油,什么都会,无所不能,是全能型的人才,就是你前端.后端.数据库.服务器等等什么都会! 万金油指人或物在任何情况下都能起到作用,有无所不能的意思,此时为褒义. ...
- 小程序云开发:菜鸟也能全栈做产品
我想独立实现一个全栈产品为什么这么难 日常生活中,我们会使用很多软件产品.在使用这些产品的时候,我们看得见的东西称为"前端界面"如一个输入框.一个按钮,点击按钮之后发生的一切看不见 ...
- 全栈工程师实战:从 0 开发云笔记
专栏亮点 无死角全栈开发:数据库设计.服务端开发.Web 前端开发,三大板块,无死角学习,弥补你的技能短板: 真实项目实战:基于真实项目的实战开发,即学即用,不再迷茫: 规范化开发流程:每个功能,都严 ...
- Java应用开发全栈工程师
Java应用开发全栈工程师 1.全栈工程师 全栈工程师大家可能都知道,就是包括web前端,web后端,手机应用开发都有了解,而且都可以上手做的工程师. 2.Java全栈工程师 Java全栈工程师一般情 ...
- 什么是全栈工程师,为什么全栈开发用Python,Python web全栈开发到底有多高薪?
我们经常听到全栈工程师这个词语.那么很多小伙伴还是不明所以,什么是全栈工程师?为什么全栈开发用Python?Python web全栈开发到底有多高薪? 一.什么是Python web全栈工程师? 全栈 ...
- 什么是python全栈开发_什么是python全栈
全栈即指的是全栈工程师,指掌握多种技能,并能利用多种技能独立完成产品的人.就是与这项技能有关的都会,都能够独立的完成. 全栈只是个概念,也分很多种类.真正的全栈工程师涵盖了web开发.DBA .爬虫 ...
- python 全栈开发是什么意思_python全栈要学什么
IT行业,技术要比学历.年龄.从业经验更为重要,技术水平直接决定就业薪资,想要学好python,首先要先了解精通Python语言基础.Python web开发.Python爬虫.Python数据分析这 ...
- 大龄开发者究竟该何去何从?2019年Python全栈工程师,都是开发人员改怎么转向高收入?
是继续做技术还是"强迫"自己转型做管理? 作者 | Petr Zemek 译者 | 弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: 很多人因为喜欢 ...
- 全栈工程师开发(8个阶段)
仅索引层面调优手段: 1.1.设计阶段调优 1.根据业务增量需求,采取基于日期模板创建索引,通过 roll over API 滚动索 引: 2.使用别名进行索引管理: 3.每天凌晨定时对索引做 for ...
最新文章
- .net学习之委托和事件
- 协方差公式性质证明过程_论文推荐 | 刘志平:等价条件平差模型的方差-协方差分量最小二乘估计方法...
- java实现红包要多少钱_java实现红包的分配算法
- 可以自动撑起的html样式,好好玩:CSS3抖动样式CSS Shake让你的网页酷炫起来
- python二级简书_12月4日,总结发现杯,备战python二级
- ArcGis Server开发Web GIS新手体验(二)
- 求解组合问题的一个迭代算法
- 推荐阅读-Docker实现原理之Namespace,CGroup
- JavaScript中的标识符(附:关键字表)
- 小乌龟解决反向线上代码冲突
- websphere一直安装部署_构建独立部署系统,从部署规范开始
- 孙玄:分布式系统选主怎么玩
- 火狐浏览器 + 插件scrapbook 制作仿站工具
- ThinkPHP5实验室预约管理系统
- 单层感知器python_深度学习之单层感知器(一)
- java 文件传输 分块传输
- vb安装过程中 ntvdm.exe[9696]中发生未处理的win32异常 vb代写
- torch中的inplace操作问题解决方法
- Linux_cJSON--数据封装与解析
- hooper篮球意思_这些篮球术语都什么意思?
热门文章
- 超星作业文件解压和自动命名脚本
- Android 8.1 DisplayPowerController(三) 亮度调节
- 【U8+】修改或删除凭证提示此分录两清
- aws lambda_借助AWS Elastic Beanstalk轻松进行Spring Boot部署
- ggplot去掉背景网格线和更改为白色背景
- YOLOv3在Intel Realsense上的Python实现(未实现)
- gromacs 安装_GROMACS安装专述
- 【C++】pcl中的简单点云可视化
- 中国肠衣产业调研与投资方向研究报告(2022版)
- RS-232接口标准(串口)