后端入门
考虑到读者的学习心态和接受程度,本博客会随考核过程进行逐步更新,防止部分人为图进度造成根基不稳
合适的知识应该放到合适的时候再讲
什么是后端
在说明后端的职责之前,我们先来讲讲前端都要干些什么:
- 向后端发出请求,接收后端数据
- 将数据展示给用户,让用户看到和操作网页
当请求最后到达服务器,服务器的程序会按照后端编写的逻辑处理数据,和数据库交互,最后将结果返回给前端
可以用一个图来简单描述一下前后端在一个淘宝用户从下单到完成过程中分别干的事
sequenceDiagram participant 用户 participant 前端网页 participant 后端服务 participant 数据库 用户->>前端网页: 选择商品并下单 前端网页->>后端服务: 发送下单请求 activate 后端服务 后端服务->>后端服务: 验证用户身份和库存 后端服务->>数据库: 更新库存信息 activate 数据库 数据库-->>后端服务: 返回库存更新结果 deactivate 数据库 后端服务-->>前端网页: 返回下单结果 deactivate 后端服务 前端网页->>用户: 显示下单结果 用户->>前端网页: 完成支付 前端网页->>后端服务: 发送支付请求 activate 后端服务 后端服务->>后端服务: 验证支付信息和库存 后端服务->>数据库: 更新库存信息和订单状态 activate 数据库 数据库-->>后端服务: 返回库存更新结果和订单状态 deactivate 数据库 后端服务-->>前端网页: 返回支付结果和订单状态 deactivate 后端服务 前端网页->>用户: 显示支付结果和订单状态
当然,这只是个简单的演示,在实际生产中,后端可能还要考虑:
- 并发处理:使用并发处理技术来提高系统的并发能力,同时处理多个用户的下单和支付请求,提高系统的吞吐量。
- 缓存优化:使用缓存技术来缓存商品的库存信息,减少对数据库的访问,提高系统的响应速度和性能。
- 异步处理:使用消息队列等异步处理机制,将库存更新和订单状态更新等耗时的操作异步处理,提高系统的响应速度和稳定性。
- 负载均衡:使用负载均衡技术将请求分发到多个后端服务器上,实现负载均衡,提高系统的可扩展性和容错性。
- ……
Web后端用什么语言
Java
- 广泛应用和成熟生态系统:Java是一种广泛应用的编程语言,拥有庞大的开发者社区和成熟的生态系统。这意味着有大量的开发资源、框架、库和工具可用,可以加快开发速度并提高开发效率。
- 跨平台性:Java具有跨平台性,这意味着编写的Java代码可以在不同的操作系统上运行,如Windows、Linux和Mac等。这种跨平台性使得Java后端应用程序可以在多个环境中部署和运行,提供了更大的灵活性和可扩展性。
- 强大的性能和可伸缩性:Java具有优秀的性能和可伸缩性,特别适用于处理大规模的数据和高并发的情况。Java的虚拟机(JVM)和优化技术使得Java应用程序能够高效地执行,并且可以通过水平和垂直扩展来满足不断增长的需求。
- 面向对象编程(OOP):Java是一种面向对象的编程语言,它提供了丰富的面向对象特性和概念,如封装、继承和多态等。这使得Java代码更易于理解、维护和扩展,并且可以促进团队协作和代码重用。
- 丰富的库和框架支持:Java拥有大量的开源库和框架,如Spring、Hibernate和Apache Commons等。这些库和框架提供了丰富的功能和工具,可以简化开发过程,提高代码质量,并提供了许多可靠的解决方案。
- 安全性和可靠性:Java具有强大的安全性和可靠性特性。Java的安全模型和内置的安全机制可以帮助开发人员编写安全的应用程序,并提供对数据和网络的保护。此外,Java的严格类型检查和异常处理机制可以减少错误和异常情况的发生,提高应用程序的可靠性。
C++
因为C++
语言效率高,所以大多用于游戏服务器,但由于复杂、繁琐,代码维护成本高,开发效率相对低,所以在Web后端中占比较少
Go
Go
是一种相对较新的编程语言,轻量、快速、易于学习,但相对生态没有Java
丰富。现在大多是一些Python转Go或者进行后端重构的大公司使用,比如知乎、字节跳动……
笔者个人也对Go语言进行过小小尝试,最后发现还是更喜欢Java,因为开发体验实在是太爽了…
Java学习路线
请注意,本文所有提供的教程与链接仅供参考
没有哪个教程是绝对完美的,盲目信从和全盘接受是不可取的。请批判式学习,多多实践
可以根据自己的学习情况和接收程度,自行寻找更适合自己的教程和学习方式
第一阶段:JavaSE
JavaSE是Java语言的基础,在这个过程中,你应该重点掌握:
- Java的基础语法、流程控制与方法、数组
- 面向对象编程的三大特性:封装、继承、多态
- 异常、常用类、集合、IO流
- 反射
你可以选择了解的知识有
- 并发与多线程、注解
- JVM(Java虚拟机)
参考教程
⬇️该教程网络通信部分有兴趣可以看,不做强制要求⬇️
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 OrionLi's Blog!