后端开发怎么搞,一张图讲清楚

开源 Jan 16, 2021

软件的后端开发是相对于前端而言,以 Web 程序为例,在服务器端运行的程序我们大致称之为后端,而在用户的浏览器端运行的界面,大致可以称之为前端。

近日,Roadmap社区发布了后端工程师(Backend Developer)技术全貌图,下面我们一边看图一边讲解

网络

Internet 以及 HTTP 访问原理,域名,CDN加速,浏览器工作原理以及主机托管是必备的网络知识。

前端

HTML+CSS+JavaScript 虽不能熟练使用,但必须知晓其中的原理,否则根本无法与前端工程师有效的沟通,更不用说协作开发了。

操作系统

后端程序是运行在服务器的操作系统中,如果不能驾驭操作系统,那么出现问题的时候就无法形成有效的边界去寻找解决方案,更重要的时候,后端的性能与操作系统的密不可分、

作为优秀的后端工程师,你需要掌握的操作系统知识包括:进程、进程通信、SSH、Shell、线程、CPU工作原理、计算机的冯诺依曼结构等硬核知识要点。

WebServer

WebServer 是运行后台的中枢,包括:Apache, Nginx, Tomcat, HAProxy 等

数据库

当今开发领域,需要掌握的数据库包括:

  • 关系型数据库:MySQL, SQLServer, Oracle Database, PostgreSQL, MariaDB等
  • NoSQL 数据库:MongoDB, RethinkDB, CouchDB, DynamoDB等
  • 缓存数据库:Memcached, Redis等
  • 图数据库:Neo4j等

缓存

主要以CDN技术为代表

API

API 从某种程度来说,相当于一种服务化的数据库。包括:REST, JSON, SOAP 等主流技术

开发语言

开发语言是“青菜萝卜,各有所爱”,以Tiobe 2021年1月发布开发语言编程指数,可见各种语言的热度:

安全

安全方面的学习要点包括:HTTPS, MD5加密等

高级进阶

以上的知识已经足够我们学习和实践好几年了,但是我们立志成为顶尖高手仍然不够。如果你从事的项目架构复杂,访问量巨大,可能还需学习如下的知识。

搜索

面向大数据时代,我们必须掌握:Elasticsearch, Solr等检索技术。

MQ

RabbitMQ,Kafka 等消息队列技术,可以帮我们重复实现异步并发处理。

GraphQL

面向异构数据源集成式开发中,GraphQL 可以将数据库进行统一的建模,汇总在一种数据缓存池中,大大提升开发的效率。

DevOps

后端开发者专注于技术实现,仍然不能解决现实世界的困境。在实现一个项目的过程中,资源是极其有限的,人力是极其紧张的,效率的提示是永无止境的。

与此同时,项目的推进100%是协作的,一个人就能完成一个软件作品的时代已经一去不复返。

在这些复杂因素制约下,后端开发者还需要掌握:

版本与协作开发

软件产品有什么周期,从开发过程到维护过程,软件具有上千个版本,持续迭代,生生不息。
流行的版本管理工具包括:Git, GitHub, SVN 等

部署构建

Docker, Jenkins, Github Action, Ansible 等自动化构建与部署技术

体系思想

介绍完各种技术和工具,我们再次有实践上升到理论,理论的技术底座包括:

  • 设计模式
  • 数据结构
  • 算法

持续学习

即使你掌握以上列举的所有技术,也并不能让您一劳永逸的处于终点,因为世界是变化的,学习是终身的。

标签