本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
书名: | 架构师的自我修炼:技术、架构和未来|8079921 |
图书定价: | 89元 |
图书作者: | 李智慧 |
出版社: | 机械工业出版社 |
出版日期: | 2021/4/16 0:00:00 |
ISBN号: | 9787111679363 |
开本: | 16开 |
页数: | 313 |
版次: | 1-1 |
作者简介 |
李智慧 著:李智慧,曾担任方正、NEC、阿里巴巴、Intel架构师,也曾担任宅米、WiFi****CTO,目前任同程旅行交通首席架构师;曾设计、开发过Web服务器防火墙、分布式NoSQL系统、大数据仓库引擎、反应式编程框架等基础设施软件,也曾领导设计过多个日活用户为千万级的互联网系统架构。 |
内容简介 |
本书共38章,分四个部分。 部分是架构师的基础知识修炼。软件的基础知识原理主要是操作系统、数据结构、数据库原理等,书中会从常见的问题入手,直达这些基础技术本质的原理,并覆盖这些基础技术的关键技术点,帮助读者理解这些基础技术原理和日常开发工作的关联关系,对这些基础技术有一个全新的认知。 第二部分是架构师的程序设计修炼。讲述如何设计一个强大灵活、易复用、易维护的软件,在这个过程中,应该依赖哪些工具和方法,遵循哪些原则和思想,使用哪些模式和手段。 第三部分是架构师的架构方法修炼。围绕目前主要的互联网分布式架构以及大数据、物联网架构分析这些架构背后的原理,详解它们都遵循了怎样的驱动力和设计思想,以及如何通过这些技术实现系统的高可用和高性能。 第四部分是架构师的思维修炼。软件开发是一个实践性很强的活动,如果只是学习技术,那就是在纸上谈兵。只有将知识技能应用到工作实践中,才能真正体会到技术的关键点在哪里。如何在工作中处理好各种关系,得到充分的授权和信任,在工作中实践自己的技术思想,并为公司创造更多的价值,使自己的技术成长和职业发展进入互相促进的正向通道,也是架构师需要修炼与提升的。 |
目录 |
前言 *部分 架构师的基础知识修炼 第1章 操作系统原理:程序是如何运行和崩溃的2 1.1 程序是如何运行起来的2 1.2 一台计算机如何同时处理数以百计的任务4 1.3 系统为什么会变慢,为什么会崩溃5 1.4 小结7 第2章 数据结构原理:Hash表的时间复杂度为什么是O(1)8 2.1 数组的结构8 2.2 链表的结构9 2.3 Hash表的结构10 2.4 栈的结构12 2.5 队列的结构13 2.6 树的结构14 2.7 小结14 第3章 Java虚拟机原理:JVM为什么被称为机器16 3.1 JVM的构造17 3.2 JVM的垃圾回收19 3.3 Web应用程序在JVM中的执行过程22 3.4 小结24 第4章 网络编程原理:一个字符的互联网之旅25 4.1 DNS域名解析原理26 4.2 CDN27 4.3 HTTP的结构28 4.4 TCP的结构29 4.5 链路层负载均衡原理32 4.6 小结33 第5章 文件系统原理:用1分钟遍历一个100TB的文件34 5.1 硬盘结构原理35 5.2 文件系统原理36 5.3 RAID硬盘阵列原理37 5.4 分布式文件系统架构原理39 5.5 小结40 第6章 数据库原理:SQL为什么要预编译42 6.1 数据库架构与SQL执行过程43 6.2 使用PrepareStatement执行SQL的好处45 6.3 数据库文件存储与索引工作原理46 6.4 小结48 第7章 编程语言原理:面向对象编程是编程的终极形态吗49 7.1 软件编程的远古时代49 7.2 机器与汇编语言时代51 7.3 高级编程语言时代51 7.4 面向对象编程时代52 7.5 编程语言的未来53 7.6 小结54 第二部分 架构师的程序设计修炼 第8章 软件设计的方法论:软件为什么要建模56 8.1 什么是软件建模57 8.2 4+1视图模型58 8.3 UML建模59 8.4 小结60 第9章 软件设计实践:使用UML完成一个设计文档61 9.1 用类图设计对象模型61 9.2 用序列图描述系统调用62 9.3 用组件图进行模块设计63 9.4 用部署图描述系统物理架构64 9.5 使用用例图进行需求分析65 9.6 用状态图描述对象状态变迁66 9.7 用活动图描述调用流程66 9.8 使用合适的UML模型构建一个软件设计文档67 9.9 软件架构设计文档示例模板68 9.10 小结74 第10章 软件设计的目的:糟糕的程序差在哪里75 10.1 糟糕的设计有多糟糕76 10.2 一个设计“腐坏”的例子77 10.3 解决之道78 10.4 小结80 第11章 软件设计的开闭原则:不修改代码却能实现需求变更81 11.1 什么是开闭原则81 11.2 一个违反开闭原则的例子82 11.3 使用策略模式实现开闭原则84 11.4 使用适配器模式实现开闭原则85 11.5 使用观察者模式实现开闭原则86 11.6 使用模板方法模式实现开闭原则88 11.7 小结89 第12章 软件设计的依赖倒置原则:不依赖代码却可以复用它的功能91 12.1 依赖倒置原则91 12.2 依赖倒置的关键是接口所有权的倒置93 12.3 使用依赖倒置来实现高层模块复用94 12.4 小结96 第13章 软件设计的里氏替换原则:正方形可以继承长方形吗97 13.1 里氏替换原则98 13.2 一个违反里氏替换原则的例子99 13.3 正方形可以继承长方形吗100 13.4 子类不能比父类更严格101 13.5 小结102 第14章 软件设计的单一职责原则:一个类文件打开后*好不要超过一屏104 14.1 单一职责原则107 14.2 一个违反单一职责原则的例子107 14.3 从Web应用架构演进看单一职责原则108 14.4 小结110 第15章 软件设计的接口隔离原则:如何对类的调用者隐藏类的公有方法112 15.1 接口隔离原则113 15.2 一个使用接口隔离原则优化的例子114 15.3 接口隔离原则在迭代器设计模式中的应用117 15.4 小结117 第16章 设计模式基础:不会灵活应用设计模式,就没有掌握面向对象编程119 16.1 面向对象编程的本质是多态119 16.2 设计模式的精髓是对多态的使用121 16.3 小结123 第17章 设计模式应用:编程框架中的设计模式125 17.1 什么是框架125 17.2 Web容器中的设计模式127 17.3 JUnit中的设计模式129 17.4 小结132 第18章 反应式编程框架设计:如何使程序调用不阻塞等待,立即响应133 18.1 反应式编程135 18.2 反应式编程框架Flower的基本原理135 18.3 反应式编程框架Flower的设计方法138 18.4 反应式编程框架Flower的落地效果140 18.5 小结141 第19章 组件设计原则:组件的边界在哪里143 19.1 组件内聚原则144 19.2 组件耦合原则145 19.3 小结147 第20章 领域驱动设计:35岁的程序员应该写什么样的代码148 20.1 领域模型模式149 20.2 领域驱动设计151 20.3 小结154 第三部分 架构师的架构方法修炼 第21章 分布式架构:如何应对高并发的用户请求156 21.1 垂直伸缩与水平伸缩157 21.2 互联网分布式架构演化157 21.3 小结163 第22章 缓存架构:减少不必要的计算165 22.1 通读缓存166 22.2 旁路缓存168 22.3 缓存注意事项171 22.4 小结173 第23章 异步架构:避免互相依赖的系统间耦合174 23.1 使用消息队列实现异步架构175 23.2 消息队列异步架构的好处178 23.3 小结180 第24章 负载均衡架构:用10行代码实现一个负载均衡服务181 24.1 HTTP重定向负载均衡181 24.2 DNS负载均衡183 24.3 反向代理负载均衡184 24.4 IP负载均衡184 24.5 数据链路层负载均衡186 24.6 小结187 第25章 数据存储架构:改善系统的数据存储能力188 25.1 数据库主从复制188 25.2 数据库分片190 25.3 关系数据库的混合部署193 25.4 NoSQL数据库196 25.5 小结197 第26章 搜索引擎架构:瞬间完成海量数据检索199 26.1 搜索引擎倒排索引199 26.2 搜索引擎结果排序202 26.3 小结205 第27章 微服务架构:微服务究竟是“灵丹”还是“毒药”206 27.1 单体架构的困难和挑战206 27.2 微服务框架原理208 27.3 微服务架构的落地实践210 27.4 小结211 第28章 高性能架构:除了代码,还可以在哪些地方优化性能212 28.1 性能指标212 28.2 性能测试213 28.3 性能优化215 28.4 小结219 第29章 高可用架构:淘宝应用升级时,为什么没有停机220 29.1 高可用的度量221 29.2 高可用的架构222 29.3 小结225 第30章 安全性架构:为什么说用户密码泄露是程序员的问题227 30.1 数据加密与解密227 30.2 HTTP攻击与防护230 30.3 小结233 第31章 大数据架构:思想和原理234 31.1 HDFS分布式文件存储架构235 31.2 MapReduce大数据计算架构236 31.3 Hive大数据仓库架构238 31.4 Spark快速大数据计算架构240 31.5 大数据流计算架构242 31.6 小结242 第32章 AI与物联网架构:从智能引擎到物联网平台243 32.1 大数... |
编辑推荐 |
凝聚资深架构专家多年实践经验,全面展示架构师进阶修炼之路 从操作系统到数据结构的基础知识修炼 从设计原则到设计模式的程序设计修炼 从高性能到高可用的架构方法修炼 从自我成长到人际沟通的思维方式修炼 |