忘川彼岸|阿里十年架构师:以宏观的角度给大家整理出13条后端需要的知识

站在运筹帷幄的角度来看 , 一名厉害的 Java 后端程序员都需要懂得哪些知识呢?我想 , 这也是很多读者迫切想知道的一个问题 , 因为如果不站在一个宏观的角度的话 , 所有学过的知识点都是零散的 , 就感觉像一只迷路的小鹿 , 跌跌撞撞的 , 总感觉欠点火候 , 对吧?
怎么把知识点串联起来 , 形成知识图谱或者知识体系 , 就显得非常重要了 。 接下来 , 我根据这些年磨破滚打的一些经验 , 给大家简单科普一下 , 如果有漏掉的内容 , 希望读者朋友们在留言区指出来 。
1)MVC 框架:MVC 模式是软件工程中的一种软件架构模式 , 可以把软件系统分为三个基本部分:

  • 模型(Model) , 编写程序应有的功能(实现算法等等)、进行数据管理和数据库设计 ,。
  • 视图(View) , 界面设计人员进行图形界面设计 。
  • 控制器(Controller) , 负责转发请求 , 对请求进行处理 。
比较知名的 MVC 框架有 SpringMVC , 是一种基于请求驱动类型的轻量级 Web 框架 , 目的是帮助我们后端程序员简化开发 。
我个人喜欢的还有一个更轻量级的 JFinal , 国人开发的 , 基于 Java 语言的极速 WEB + ORM 框架 , 其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful , 小型项目我都会选择使用 JFinal , 很方便 。
【忘川彼岸|阿里十年架构师:以宏观的角度给大家整理出13条后端需要的知识】2)IoC 框架:可实现依赖注入/控制反转的框架 , Spring 框架就是为此而生的 。
3)ORM 框架:对象关系映射(Object Relational Mapping)是通过使用描述对象和数据库之间映射的元数据 , 将面向对象语言程序中的对象自动持久化到关系数据库中 。
MyBatis 是目前最流行的 ORM 框架 , 能够屏蔽底层的数据库操作细节 , 减少大量的模板代码 , 并且能够支持分布式特性 。
为了在服务层面统一解决分库分表、读写分离、故障恢复等问题 , 就需要一种数据库中间件 , MyCat 是最知名的一种 。
MyCat 是基于 Java 语言编写的数据库中间件 , 是一个实现了 MySQL 协议的服务器 , 前端用户可以把它看作是一个数据库代理 , 用 MySQL 客户端工具和命令行访问 , 后端可以用 MySQL 原生协议与多个 MySQL 服务器通信 , 也可以用 JDBC 协议与大多数主流数据库服务器通信 , 其核心功能是分库分表 , 配合数据库的主从模式还可实现读写分离 , 非常强大 。
4)缓存框架:缓存通常用来解决热点数据的访问问题 , 可以提高数据的查询效率 , 尤其是在高并发的服务中 , 将持久层的数据加载到缓存中 , 可以避免数据库被大量请求击垮 。 使用频率最高的缓存框架就是 Redis , 没有之一 , Memcached 相对来说也比较常用 。
Redis 是互联网技术领域中使用最广泛的缓存中间件 , 它是 Remote DictionaryService 三个单词中加粗字母的组合 。 你别说 , 组合起来后念着挺自然的 。
Redis 以超高的性能、完美的文档、简洁的源码著称 , 国内外很多大型互联网公司都在用 , 比如说阿里、腾讯、GitHub、Stack Overflow 等等 。 它的版本更新非常的快 , 功能也越来越强大 , 最初只是用来作为缓存数据库 , 现在已经可以用它来实现消息队列了 。
可以这么说吧 , 掌握 Redis 已经变成了一项 Java 后端程序员必须具备的基础技能 。
5)数据库:绝大多数的业务数据都需要持久化存储到数据库中 , 主流的关系型数据库有 MySQL 和 Oracle 。
MySQL 和 Oracle 现在都隶属于甲骨文公司 , 这家公司的产品很牛逼 , CEO 拉里埃尔森也很牛逼 , 和史蒂夫乔布斯是铁哥们 。 Oracle 相对 MySQL 更沉重一些 , 属于企业级应用 。 而 MySQL 是开源的 , 性能又给力 , 所以近些年来市场占用率已经飙升到了第一位 , 甩开 Oracle 两条街 。


推荐阅读