修炼技术
- 程序设计语言。许多语言都可以用于后端开发,比较流行的是Java和Go。例如我所使用的就是Go语言,也曾经使用过Java。此外,由于后端开发中经常需要和数据库打交道,所以作为后端开发者,还需要懂SQL语言(如果使用了NoSQL的话,也需要懂NoSQL数据库的语言);
- 数据库。数据库作为一种简单易用的持久化机制,可以让用户的信息不因为断电等故障而丢失,Web应用开发中经常需要用到数据库,甚至许多简单的Web应用本质上都只是“数据库的可视化系统”,也因为绝大多数简单的业务逻辑本质上都只是对数据库的增删改查(即CRUD);
- 框架、库和解决方案。想要高效率地开发Web应用,框架、库和解决方案是必不可少的,比如MVC框架、ORM框架、RPC框架、微服务开发框架、云基础设施(如ServiceMesh、容器编排工具等)、运行时环境/容器(如Docker)、消息队列(MessageQueue,MQ)、日志收集和分析工具等;这部分有一些框架是可以跨语言通用的,比如gRPC(RPC框架)、Isti(ServiceMesh),也有一些是某种语言专用的,如SpringCloud(微服务开发工具,JVM技术栈专用)、Gin(MVC框架,Go语言专用);
- 架构和指导思想。架构是后端开发中非常重要的一部分,作为一名后端开发者需要了解常见的架构,如三层架构、SOA、微服务架构、六边形架构等,还需要了解常用于后端开发中的指导思想,如设计模式、MVC模式、DDD、CQRS/ES等;
- 包管理工具/项目管理工具。因为后端开发中经常要用到各种框架和库,所以用于管理这些框架和库的管理工具是非常重要的。每一门语言都有自己的包管理工具,如Java的Maven,Go语言的gomod等;
- 基础知识。不管是前端开发还是后端开发,都需要对操作系统、计算机网络、数据结构等基础知识有一定了解,还需要了解对应语言的编码规范、重构等知识,这可以帮助你理解框架和库,也能帮助你写出更高质量的代码;
- 开发方法。实际上这个也可以说是属于指导思想的一部分,包括CI/CD、敏捷开发、DevOps等;
- .版本管理工具。最常用的是Git。