在之前的文章介绍过全栈工程师的练就之路,《全栈工程师,练就之路:如何学,如何做》今天展开来看下,最近几年比较流行的后端开发技能,也看看还有哪些没有掌握的后端技能。
1. 编程语言
适合后端开发的编程语言,也是目前比较应用广泛的, Java、GO、Python、Rust 我推荐这4种,但也有node.js 和PHP、Kotlin这些(毕竟今天我主要讲主流和流行的后端技能)也有一些应用在使用,目前占比不大。
java后端开发尤其是Spring框架下还是被大量应用所使用,GO因其高并发性能,在微服务和高并发场景下广泛使用,python不仅在脚本使用,大量AI和机器学习类也广泛应用。rust在后端方面以安全和高性能著称,在后端、区块链应用也有巨大优势。
2. API相关开发
具备能对接口设计和开发的能力,能对业务进行抽象定义,把业务转为为数据结构和表结构的设计能力。
RESTful API ,设计清晰、易扩展的API接口
gRPC:适合高性能微服务通信,是开源的远程过程调用(RPC)框架
GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。
3. 数据库相关技能
关系型数据库:肯定是MySQL、以及PostgreSQL、Oracle等关系型数据库,具备理解SQL语法、查询优化和数据库设计核心技能。其他的NoSQL数据库:如MongoDB、Redis、Cassandra等,适合处理大规模数据、高并发读写。
4. 框架化应用技能
• Spring Boot/Cloud (Java):用于快速构建独立、生产相关Spring的应用,应用最广泛的框架
• Django/Flask (Python):一个全功能和轻量级的Web框架,适用于python开发
• Express (Node.js):简洁且强大的Web框架,也比较常用
5. 消息队列系统技能
RabbitMQ 其设计偏向于消息传递的可靠性和灵活性,RabbitMQ 以队列为中心,消息通过交换器(Exchange)发送到不同的队列。
Kafka 一个分布式流式处理平台,基于Zookeeper协调的分布式消息系统,可以实时发布、订阅、存储和处理数据流,适用于大规模数据处理和日志管理。
6.docker容器化技术
Docker 容器化技术,能够创建、管理和部署容器化应用,简化了应用环境配置问题,打包成为镜像。
Kubernetes 用于大规模容器编排和管理
7.代码管理和自动化部署类
Git命令后操作、GitHub、GitLab 的使用。
CI/CD工具,如Jenkins、GitLab CI,能够持续集成与交付。
自动化部署类,熟悉AWS、Azure、Google Cloud等云服务,这块其实有部分是和运维同事重叠的技术能力,了解即可。
8.架构、性能、安全类技能
这类技能要根据具体的编程语言、应用规模相结合在整体来做,并在日常中学习和锻炼的技能。
架构类,如何架构微服务、单体架构的区别与使用场景,具体开发中的设计模式应用,架构原则的遵循。
应用中性能的调优,数据库查询和缓存的优化,对组件安全方面合理选择,语言和框架安全类的日常关注、能从整体考虑系统的扩展、健壮性的掌控能力。
其他一些技能在后端开发中,日常问题的分析和定位能力,如何通过问题发现架构和设计的本质缺陷。
如何优化分层和系统设计降低应用耦合,如何通过上线前合理规划架构和设计,上线后的日志监测和报警、服务的自恢复、降级策略的制定。
写在最后
后端的技能也在不停迭代和更新,熟练运用现在比较流行的后端技术,清楚知道使用场景,并保持学习,从整体上来用合适的技术选择结合业务场景来确保后端服务的稳定,并保持自己在后端技术迭代升级。
PS: 也欢迎大家评论和交流~ 更多文章也可关注微信公号:良技漫谈