后端开发学习路径

本文详细介绍了后端开发的流程和技术栈,包括编程语言、开发工具、开发框架、数据库与存储、中间件、操作系统、应用部署和运维监控等方面。强调了在后端开发中,需求分析、抽象建模、系统设计的重要性,同时探讨了数据设计、非功能性设计(如稳定性、可测试性)以及服务端开发全景,适合后端开发工程师、产品经理、测试开发工程师等阅读。
摘要由CSDN通过智能技术生成

1.前言

后端开发,也称为服务端开发,其涉及的面非常广,特别是在阿里、腾讯、字节这类动辄十亿级用户、亿级 DAU 的头部企业的核心业务场景中,后端开发充满挑战。然而,在市面上,后端开发相关的书籍大都聚焦于解读某种编程语言、中间件、开发框架或编程思想,缺乏基于互联网后端开发实践,体系化介绍后端开发的书籍。一系列因素,导致后端开发长期以来被误解为 Java 开发、Go 开发之类的“某编程语言开发”,或者被简单地定义为“编写运行于服务器的程序”。


2.后端开发的一般流程

软件开发一般是以项目为单位进行,从后端开发的视角看,一个软件项目从提出需求到落地,通常要经历需求评审、系统设计、开发、联调、测试、上线等诸多环节,如图 1 所示。
在这里插入图片描述

图1 互联网行业软件项目流程

作为核心岗位的后端开发,仅仅具备“开发运行于服务器端的程序”的能力是远远不足以胜任的。在头部互联网企业对该岗位的职责定义中,普遍要求服务端开发工程师具备业务分析、代码编写、架构设计、技术攻关、团队协作、文档编写、系统维护等综合能力。阅读至此,读者可能会认为如此高要求完全是“内卷”的结果,但从笔者的工作经验来看,这些能力其实也是服务端开发的不同阶段所需的,具体而言,服务端开发可分拆为需求分析、抽象建模、系统设计、数据设计、非功能性设计、编码实现及发布运维等阶段,每个阶段都需要相应的能力作为支撑,其中核心流程如图 2 所示。

在这里插入图片描述

图2 服务端开发核心流程

3.后端开发技术栈

正如前文提及的那样,现阶段的后端开发,早已不再是过去简单地围绕着数据库编排 CRUD(Create、Retrieve、Update、Delete)服务。很多时候,后端应用的第一行代码尚未写就,工程师便需要与产品、运营、法务等人员和网络、中间件、操作系统、数据、算法、运维、安全等技术体系打交道,互联网企业对工程师的要求越来越高。

单从技术栈来看,后端开发涉及编程语言、开发工具、开发框架、数据库与存储技术、中间件、操作系统、应用部署、运维监控等知识体系。

3.1 编程语言

后端开发,编程是最基本的能力。目前,全球已经投入使用的编程语言超过 50 种,其中多数可用于后端开发,但术业有专攻,不同语言的流行度和学习成本不一样,各自的特性也有较大差异。在选择开发语言时,可以参考 国内大厂的主流编程语言。

序号 企业 服务端主流编程语言
1 阿里巴巴 Java
2 腾讯 C++,Go
3 百度 PHP,Python
4 字节跳动 Go,Java,Python
5 蚂蚁集团 Java,C++
6 网易 C++
7 京东 Java
8 美团 Java,Go
9 微软 C++

3.2 开发工具

工欲善其事,必先利其器。从事后端开发,选择称手的工具很重要。常用的开发工具包括集成开发环境、代码管理工具及建模工具。

3.2.1 集成开发环境

集成开发环境(Integrated Development Environment,IDE)是指用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套件。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio 系列,JetBrains 的 IDEs 系列等。IDE 可以独立运行,也可以和其他程序并用。在此推荐两种:

  • VSCode: 全称Visual Studio Code,是由微软开发的一款功能强大的现代化轻量级IDE,社区版免费,通过它强大的插件扩展能力,VSCode几乎支持所有主流语言(C++、Java、Go、Python等)的项目开发。
  • JetBrains: 是一家捷克的软件开发公司,该公司出品了支持Java、C++、Python、Go等主流编程语言的系列知名IDE,堪称IDE界集大成者。其中最具代表性的是IntelliJ IDEA,在业界被公认为最好的Java IDE。
3.2.2 代码管理利器 Git

在实践中,一个软件项目通常由多名工程师协作完成,工程师各自开发自己所负责部分的同时,还需兼顾整个项目。由几个人协同开发的小项目尚可通过人力管理来应对,但几十人、几百人协作的项目呢?如果没有一个强大的工具支撑,那将无疑是人力“黑洞”,著名的版本控制软件 Git 便是在这种背景下诞生的。

3.2.3 建模利器 Visual Paradigm

为了提升设计环节的沟通效率,在较大的项目中,业界一般采用建模利器 Visual Paradigm 辅助。Visual Paradigm是一款UML建模工具,可以支持多种图表类型,比如:类图、用例图、序列图、状态机设计图、动态图、组件图、部署图、对象图、交互概述图、支持使用事件案例流、生成事件案例流序列图、需求管理、需求图、文本分析等。

3.3 开发框架

框架是实现了某应用领域通用功能的底层服务。使用这种框架的软件开发者可以在通用功能已经实现的基础上开始具体的系统开发。框架提供了所有应用期望的默认行为的类集合。具体的应用通过重写子类或组装对象来支持应用专用的行为。通俗地说,框架是完

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值