后端开发怎么搞,一张图讲清楚
软件的后端开发是相对于前端而言,以 Web 程序为例,在服务器端运行的程序我们大致称之为后端,而在用户的浏览器端运行的界面,大致可以称之为前端。
近日,Roadmap社区发布了后端工程师(Backend Developer)技术全貌图,下面我们一边看图一边讲解
img
网络
Internet 以及 HTTP 访问原理,域名,CDN加速,浏览器工作原理以及主机托管是必备的网络知识。
前端
HTML+CSS+JavaScript 虽不能熟练使用,但必须知晓其中的原理,否则根本无法与前端工程师有效的沟通,更不用说协作开发了。
后端程序是运行在服务器的操作系统中,如果不能驾驭操作系统,那么出现问题的时候就无法形成有效的边界去寻找解决方案,更重要的时候,后端的性能与操作系统的密不可分、
作为优秀的后端工程师,你需要掌握的操作系统知识包括:进程、进程通信、SSH、Shell、线程、CPU工作原理、计算机的冯诺依曼结构等硬核知识要点。
WebServer
WebServer 是运行后台的中枢,包括:Apache, Nginx, Tomcat, HAProxy 等
当今开发领域,需要掌握的数据库包括:
缓存
主要以CDN技术为代表
API
API 从某种程度来说,相当于一种服务化的数据库。包括:REST, JSON, SOAP 等主流技术
开发语言
开发语言是“青菜萝卜,各有所爱”,以Tiobe 2021年1月发布开发语言编程指数,可见各种语言的热度:
img
安全方面的学习要点包括:HTTPS, MD5加密等
高级进阶
以上的知识已经足够我们学习和实践好几年了,但是我们立志成为顶尖高手仍然不够。如果你从事的项目架构复杂,访问量巨大,可能还需学习如下的知识。
搜索
面向大数据时代,我们必须掌握:Elasticsearch, Solr等检索技术。
MQ
RabbitMQ,Kafka 等消息队列技术,可以帮我们重复实现异步并发处理。
GraphQL
面向异构数据源集成式开发中,GraphQL 可以将数据库进行统一的建模,汇总在一种数据缓存池中,大大提升开发的效率。
DevOps
后端开发者专注于技术实现,仍然不能解决现实世界的困境。在实现一个项目的过程中,资源是极其有限的,人力是极其紧张的,效率的提示是永无止境的。
与此同时,项目的推进100%是协作的,一个人就能完成一个软件作品的时代已经一去不复返。
在这些复杂因素制约下,后端开发者还需要掌握:
版本与协作开发
软件产品有什么周期,从开发过程到维护过程,软件具有上千个版本,持续迭代,生生不息。 流行的版本管理工具包括:Git, GitHub, SVN 等
部署构建
Docker, Jenkins, Github Action, Ansible 等自动化构建与部署技术
体系思想
介绍完各种技术和工具,我们再次有实践上升到理论,理论的技术底座包括:
持续学习
即使你掌握以上列举的所有技术,也并不能让您一劳永逸的处于终点,因为世界是变化的,学习是终身的。
###
暂无评论内容