分享大纲
- 大型网站架构系列
- 分布式系统系列
- BAT 技术文学系列
- 架构设计系列
本次分享总结
一、大型网站架构系列
第一本:《大型网站技术架构:核心原理与案例分析》
这是本算是国内大型网站架构的经典之作,由阿里人李智慧创作,听名字就知道本书很有智慧。主要从大型网站架构的特点,架构目标(高性能,高可用,可伸缩等)基本理论讲起,并介绍了几个很有特色的案例。
之前群内分享的大型网站架构系列的基础理论大部分出自此书。
第二本:《大型网站系统与 Java 中间件实践》
同样出自阿里的技术牛人。此书对分布式系统的演进做了较好的介绍。对常用中间件(服务框架,数据访问层,消息中间件)做了比较深入的讲解。(原理到实践都有了)
第三本:《大型分布式网站架构设计与实践》,很抱歉本书也出自阿里系。
对面向服务的架构,分布式基础设施(缓存,持久化,消息系统,搜索引擎(lucence,solr)),互联网安全架构,系统稳定性,数据分析等做了较好的讲解。
第四本:《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,这样一年一年薪资不涨也基本看到了尽头。
因此做技术必须要做到架构师级别。(可能话有点慢),但是个人最近的感悟。只有做到架构级别,从一定的高度思考技术问题,才能不会被淘汰。
Leader-us<springcomingagain@qq.com> 20:18:01
专注技术,同时培养技术派的领导能力,经验越丰富,越需要在 IT 圈里培养知名度,参与开源或者很多技术获得
因此,我做管理后,又转到了技术。到现在基本了解如何去做一个架构师了。
到这个时候,发现应该去做管理。
呵呵~~ 因为个人的发展模式是技术 + 管理的模式发展。以下是架构,管理方面成长的知识参考。
架构方面:面向对象,设计模式,架构模式,分布式系统,业务架构(常用系统架构),具体技术广度和深度等;
管理方面:项目管理(PMP,PRINCE2),敏捷管理,流程规范(CMMI 等),通用管理知识等。
四、架构设计系列
第一本:《研磨设计模式》,这本书详细对 GOF 设计模式进行了讲解。
设计模式讲的比较细致,透彻。传说网上有研磨设计模式作者的视频。有的可以分享一下。
这是本人推荐的详细学习设计模式的第一本书。
像 HeadFirst 这类的就不说了。
大话设计模式也可以看下,不过入门可以,但深入研究就需要看别的了。
第二本:前几天给大家推荐过《面向对象葵花宝典》,对理解面向对象思想有一些帮助。对面向对象理解做了较到位的描述。
第三本:《.NET 应用架构设计:原则、模式与实践》,不过这本是 NET 写的。对常用的架构模式做了介绍。比如 N 层设计,业务层设计,逻辑层设计,服务层设计,数据层设计等。对了解各层的设计方法有不错的帮助。本人看这本书也至少三遍以上。
比如在服务设计中有一个幂等的模式,是分布式系统中较长用到的。
第四本:《Microsoft .NET 企业级应用架构设计》,与《NET 应用架构设计:原则、模式与实践》想对应的是本书也是从业务层,服务层,等进行架构模式的架构。讲解的方式有点不同。虽然是 NET 语言的,但是对 Java 或其他语言都有帮助。比如:假如一个人说 MVC 是设计模式,你就懂的 MVC 是架构模式。
第五本:最后,再给大家分享一本架构的书。原因是技术积累会成为类库,类库逐渐会变为框架。一个人架构设计的能力,很大程度体现在框架设计方面。因此,最后一本书是《架构探险:从零开始写 Java Web 框架》
本书从零开始,介绍了如何搭建一个 web 框架。bean 实现,aop 实现等。本书个人读了两遍,感觉对设计框架和封装模块有一定的帮助。