学习是技术人员成长的基础, 本次分享 20 本技术方面的书籍, 这些书不是每一本都是经典, 但是每一本都有其特点. 以下 20 本大部分本人都看过, 因此推荐给大家.(本次推荐的 20 本只是一个参考, 比如像 Head First,Java 编程思想等经典书籍是大家都知道, 因此不在推荐之列)
本次分享大纲
大型网站架构系列
分布式系统系列
BAT 技术文学系列
架构设计系列
本次分享总结
一, 大型网站架构系列
第一本:《大型网站技术架构: 核心原理与案例分析》
这是本算是国内大型网站架构的经典之作, 由阿里人李智慧创作, 听名字就知道本书很有智慧. 主要从大型网站架构的特点, 架构目标 (高性能, 高可用, 可伸缩等) 基本理论讲起, 并介绍了几个很有特色的案例.
之前群内分享的大型网站架构系列的基础理论大部分出自此书.
第二本:《大型网站系统与 Java 中间件实践》
同样出自阿里的技术牛人. 此书对分布式系统的演进做了较好的介绍. 对常用中间件 (服务框架, 数据访问层, 消息中间件) 做了比较深入的讲解.(原理到实践都有了)
第三本:《大型分布式网站架构设计与实践》, 很抱歉本书也出自阿里系.
对面向服务的架构, 分布式基础设施(缓存, 持久化, 消息系统, 搜索引擎(lucence,Solr)), 互联网安全架构, 系统稳定性, 数据分析等做了较好的讲解.
以上三本书, 都出自阿里系, 有理论有实践, 如果要学到知识, 还需要多读, 多想, 多实践. 比如第一本, 个人看了至少 5 遍以上. 其他两天也在三遍左右.
第四本:《web 信息架构 -- 设计大型网站》
可以较系统的建立网站信息架构设计的思想. 对思考如何设计一个大型网站比较有帮助.
信息架构, 注意这几个词所涉及的知识.
第五本:《高性能网站建设》, 对 Web 前端架构做了非常好的讲解.
注意此处的前端不只是 JS,CSS,html, 是指业务逻辑层之前的部分. 包括缓存, DNS 等.
第六本:《实用负载均衡技术: 网站性能优化攻略》, 本书较详细的介绍了负载均衡, 缓存代理等知识, 对系统了解负载均衡技术有帮助.
第七本:《高性能电子商务平台构建: 架构, 设计与开发》, 本书可以作为功能架构参考, 因为他讲的是国内一个开源商城的架构. 一方面作者可能是为了推广他的开源商城, 因此建议初学者或者想了解此开源系统的人学习. 不建议所有人学习.
第八本《高性能网站构建实战》, 建议运维人员可以参考. 里面介绍了 LVS+KeepAlived 实现高可用集群, 高性能负载均衡器 HAProxy, 经久不衰的 Squid, 高性能缓存服务器 Varnish,Ngnix 等. 里面有大量的安装脚本, 因此建议运维或想了解如何部署的参考学习.
以上是分享的八本关于大型网站架构的书籍.
二, 分布式系统系列
第一本:《从 Paxos 到 Zookeeper: 分布式一致性原理与实践》, 这一本是 Leader-us 老师推荐的. 对于了解分布式和 Zookeeper 很有帮助. 内容有一致性协议, 2PC,3PC,Paxos 算法, Paxos 的工程实践, Zookeeper 的安装使用, ZooKeeper 的典型应用场景等. 本书也出自阿里系.
第二本:《ZeroC Ice 权威指南》, 作者是我们群内的 S 级资深架构师 Leader-us 老师所著.
对于学习 Zeroc Ice 很有帮助. Zeroc Ice 是与 dubbo 类似的一套框架. 可以实现 RPC 和服务治理.
关于更多 ZeroC Ice 知识, 可以咨询 Leader-us.
第三本:《Kubernetes 权威指南: 从 Docker 到 Kubernetes 实践全接触》是介绍 Docker 和 Kubernetes 比较不错的一本书. 作者也有我们的 Leader-us 老师.
第四本:《大规模分布式存储系统: 原理解析与架构实战》, 对了解分布式存储有一定的帮助.
从单机存储到分布式存储, 事务, 并发控制等. 对常用的分布式存储系统, 键值系统, 表格系统, 分布式数据库等有较好介绍. 理论和实践都有, 如果自己没实际去思考去做, 都可以归为理论.
分布式系统, 大数据方面了这次就不介绍了. 感兴趣的可以后台私信回复 "架构" 加入进来互相探讨.
三, BAT 技术系列
推荐三本技术文学类书籍. 第一本是《淘宝技术这十年》, 第二本是《京东技术解密》, 第三本是《华为研发》
第一本:《淘宝技术这十年》个人看了至少三遍以上. 生动形象的介绍了淘宝从小到大的技术发展历程. 对思考技术发展有较好的帮助
第二本:《京东技术解密》, 可以作为参考吧, 本人买了一本, 但还没详细看. 总体来看,《淘宝技术这十年》质量和内容上更好一些.
第三本:《华为研发》本人几年前看的是第一版, 现在又第二版了. 此书对华为技术的发展和管理变革有一定了解, 从而指导自己对技术管理进行一些改进.
小插曲: 谈一下技术和管理在个人发展中的看法.
人工作有十年了, 做过几年技术也做过几年管理. 在个人的经历中, 对技术和管理有一些不同的看法.
首先, 做几年技术后发现希望做管理, 做管理后发现想做技术. 经过思考发现是自己对技术和管理认识不足, 知识掌握不对.
比如技术如果不能提高到架构师级别, 就只能 code, 这样一年一年薪资不涨也基本看到了尽头.
因此做技术必须要做到架构师级别.(可能话有点慢), 但是个人最近的感悟. 只有做到架构级别, 从一定的高度思考技术问题, 才能不会被淘汰.
专注技术, 同时培养技术派的领导能力, 经验越丰富, 越需要在 IT 圈里培养知名度, 参与开源或者很多技术获得
因此, 我做管理后, 又转到了技术. 到现在基本了解如何去做一个架构师了.
到这个时候, 发现应该去做管理.
因为个人的发展模式是技术 + 管理的模式发展. 以下是架构, 管理方面成长的知识参考.
架构方面: 面向对象, 设计模式, 架构模式, 分布式系统, 业务架构(常用系统架构), 具体技术广度和深度等;
管理方面: 项目管理(PMP,PRINCE2), 敏捷管理, 流程规范(CMMI 等), 通用管理知识等.
四, 架构设计系列
第一本:《研磨设计模式》, 这本书详细对 GOF 设计模式进行了讲解.
设计模式讲的比较细致, 透彻. 传说网上有研磨设计模式作者的视频. 有的可以分享一下.
这是本人推荐的详细学习设计模式的第一本书.
像 HeadFirst 这类的就不说了.
大话设计模式也可以看下, 不过入门可以, 但深入研究就需要看别的了.
第二本:《面向对象葵花宝典》, 对理解面向对象思想有一些帮助. 对面向对象理解做了较到位的描述.
第三本:《.NET 应用架构设计: 原则, 模式与实践》, 不过这本是 NET 写的. 对常用的架构模式做了介绍. 比如 N 层设计, 业务层设计, 逻辑层设计, 服务层设计, 数据层设计等. 对了解各层的设计方法有不错的帮助. 本人看这本书也至少三遍以上.
比如在服务设计中有一个幂等的模式, 是分布式系统中较长用到的.
第四本:《Microsoft .NET 企业级应用架构设计》, 与《NET 应用架构设计: 原则, 模式与实践》想对应的是本书也是从业务层, 服务层, 等进行架构模式的架构. 讲解的方式有点不同. 虽然是 NET 语言的, 但是对 Java 或其他语言都有帮助. 比如: 假如一个人说 MVC 是设计模式, 你就懂的 MVC 是架构模式.
第五本: 最后, 再给大家分享一本架构的书. 原因是技术积累会成为类库, 类库逐渐会变为框架. 一个人架构设计的能力, 很大程度体现在框架设计方面. 因此, 最后一本书是《架构探险: 从零开始写 Java Web 框架》
本书从零开始, 介绍了如何搭建一个 Web 框架. bean 实现, aop 实现等. 本书个人读了两遍, 感觉对设计框架和封装模块有一定的帮助.
五, 本次分享总结
以上是本次的分享, 考虑到分享一些书籍可能对大家帮助更大, 希望对大家有帮助, 分享的书籍大部分是个人看过的, 可能不是最好的, 但每一本都有亮点. 这次分享出来, 供大家学习参考.
还有其他的就不一一发出来了. 下面就是小编的一位架构师朋友整理了将近一个月才完成的, 整理不易, 有需要的朋友可以点个赞,'获取整理出来的 Java 架构师核心资料.
资料获取方式: 点击下方链接 Java 程序员进阶学习秘籍
来源: http://www.jianshu.com/p/459b19c37254