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

开源 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 等自动化构建与部署技术

体系思想

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

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

持续学习

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

标签

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.