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