本篇主要提供架构师的自我修炼:技术、架构和未来 李智慧 38项技能 操作系统 数据结构 数据库原理 物联网架构电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com
内容简介
本书共38章,分四个部分。第 一部分是架构师的基础知识修炼。软件的基础知识原理主要是操作系统、数据结构、数据库原理等,书中会从常见的问题入手,直达这些基础技术本质的原理,并覆盖这些基础技术的关键技术点,帮助读者理解这些基础技术原理和日常开发工作的关联关系,对这些基础技术有一个全新的认知。*二部分是架构师的程序设计修炼。讲述如何设计一个强大灵活、易复用、易维护的软件,在这个过程中,应该依赖哪些工具和方法,遵循哪些原则和思想,使用哪些模式和手段。第三部分是架构师的架构方法修炼。围绕目前主要的互联网分布式架构以及大数据、物联网架构分析这些架构背后的原理,详解它们都遵循了怎样的驱动力和设计思想,以及如何通过这些技术实现系统的高可用和高性能。第四部分是架构师的思维修炼。软件开发是一个实践性很强的活动,如果只是学习技术,那就是在纸上谈兵。只有将知识技能应用到工作实践中,才能真正体会到技术的关键点在哪里。如何在工作中处理好各种关系,得到充分的授权和信任,在工作中实践自己的技术思想,并为公司创造更多的价值,使自己的技术成长和职业发展进入互相促进的正向通道,也是架构师需要修炼与提升的。
目录
前言*一部分 架构师的基础知识修炼*1章 操作系统原理:程序是如何运行和崩溃的 21.1 程序是如何运行起来的 21.2 一台计算机如何同时处理数以百计的任务 41.3 系统为什么会变慢,为什么会崩溃 51.4 小结 7*2章 数据结构原理:Hash表的时间复杂度为什么是O(1) 82.1 数组的结构 82.2 链表的结构 92.3 Hash表的结构 102.4 栈的结构 122.5 队列的结构 132.6 树的结构 142.7 小结 14第3章 Java虚拟机原理:JVM为什么被称为机器 163.1 JVM的构造 173.2 JVM的垃圾回收 193.3 Web应用程序在JVM中的执行过程 223.4 小结 24第4章 网络编程原理:一个字符的互联网之旅 254.1 DNS域名解析原理 264.2 CDN 274.3 HTTP的结构 284.4 TCP的结构 294.5 链路层负载均衡原理 324.6 小结 33第5章 文件系统原理:用1分钟遍历一个100TB的文件 345.1 硬盘结构原理 355.2 文件系统原理 365.3 RAID硬盘阵列原理 375.4 分布式文件系统架构原理 395.5 小结 40第6章 数据库原理:SQL为什么要预编译 426.1 数据库架构与SQL执行过程 436.2 使用PrepareStatement执行SQL的好处 456.3 数据库文件存储与索引工作原理 466.4 小结 48第7章 编程语言原理:面向对象编程是编程的终*形态吗 497.1 软件编程的远古时代 497.2 机器与汇编语言时代 517.3 *级编程语言时代 517.4 面向对象编程时代 527.5 编程语言的未来 537.6 小结 54*二部分 架构师的程序设计修炼第8章 软件设计的方法论:软件为什么要建模 568.1 什么是软件建模 578.2 4+1视图模型 588.3 UML建模 598.4 小结 60第9章 软件设计实践:使用UML完成一个设计文档 619.1 用类图设计对象模型 619.2 用序列图描述系统调用 629.3 用组件图进行模块设计 639.4 用部署图描述系统物理架构 649.5 使用用例图进行需求分析 659.6 用状态图描述对象状态变迁 669.7 用活动图描述调用流程 669.8 使用合适的UML模型构建一个软件设计文档 679.9 软件架构设计文档示例模板 689.10 小结 74*10章 软件设计的目的:糟糕的程序差在哪里 7510.1 糟糕的设计有多糟糕 7610.2 一个设计“腐坏”的例子 7710.3 解决之道 7810.4 小结 80*11章 软件设计的开闭原则:不修改代码却能实现需求变更 8111.1 什么是开闭原则 8111.2 一个违反开闭原则的例子 8211.3 使用策略模式实现开闭原则 8411.4 使用适配器模式实现开闭原则 8511.5 使用观察者模式实现开闭原则 8611.6 使用模板方法模式实现开闭原则 8811.7 小结 89*12章 软件设计的依赖倒置原则:不依赖代码却可以复用它的功能 9112.1 依赖倒置原则 9112.2 依赖倒置的关键是接口所有权的倒置 9312.3 使用依赖倒置来实现高层模块复用 9412.4 小结 96*13章 软件设计的里氏替换原则:正方形可以继承长方形吗 9713.1 里氏替换原则 9813.2 一个违反里氏替换原则的例子 9913.3 正方形可以继承长方形吗 10013.4 子类不能比父类更严格 10113.5 小结 102*14章 软件设计的单一职责原则:一个类文件打开后*好不要超过一屏 10414.1 单一职责原则 10714.2 一个违反单一职责原则的例子 10714.3 从Web应用架构演进看单一职责原则 10814.4 小结 110*15章 软件设计的接口隔离原则:如何对类的调用者隐藏类的公有方法 11215.1 接口隔离原则 11315.2 一个使用接口隔离原则优化的例子 11415.3 接口隔离原则在迭代器设计模式中的应用 11715.4 小结 117*16章 设计模式基础:不会灵活应用设计模式,就没有掌握面向对象编程 11916.1 面向对象编程的本质是多态 11916.2 设计模式的精髓是对多态的使用 12116.3 小结 123*17章 设计模式应用:编程框架中的设计模式 12517.1 什么是框架 12517.2 Web容器中的设计模式 12717.3 JUnit中的设计模式 12917.4 小结 132*18章 反应式编程框架设计:如何使程序调用不阻塞等待,立即响应 13318.1 反应式编程 13518.2 反应式编程框架Flower的基本原理 13518.3 反应式编程框架Flower的设计方法 13818.4 反应式编程框架Flower的落地效果 14018.5 小结 141*19章 组件设计原则:组件的边界在哪里 14319.1 组件内聚原则 14419.2 组件耦合原则 14519.3 小结 147*20章 领域驱动设计:35岁的程序员应该写什么样的代码 14820.1 领域模型模式 14920.2 领域驱动设计 15120.3 小结 154第三部分 架构师的架构方法修炼*21章 分布式架构:如何应对高并发的用户请求 15621.1 垂直伸缩与水平伸缩 15721.2 互联网分布式架构演化 15721.3 小结 163*22章 缓存架构:减少不必要的计算 16522.1 通读缓存 16622.2 旁路缓存 16822.3 缓存注意事项 17122.4 小结 173*23章 异步架构:避免互相依赖的系统间耦合 17423.1 使用消息队列实现异步架构 17523.2 消息队列异步架构的好处 17823.3 小结 180*24章 负载均衡架构:用10行代码实现一个负载均衡服务 18124.1 HTTP重定向负载均衡 18124.2 DNS负载均衡 18324.3 反向代理负载均衡 18424.4 IP负载均衡 18424.5 数据链路层负载均衡 18624.6 小结 187*25章 数据存储架构:改善系统的数据存储能力 18825.1 数据库主从复制 18825.2 数据库分片 19025.3 关系数据库的混合部署 19325.4 NoSQL数据库 19625.5 小结 197*26章 搜索引擎架构:瞬间完成海量数据检索 19926.1 搜索引擎倒排索引 19926.2 搜索引擎结果排序 20226.3 小结 205*27章 微服务架构:微服务究@是“灵丹”还是“毒药” 20627.1 单体架构的困难和挑战 20627.2 微服务框架原理 20827.3 微服务架构的落地实践 21027.4 小结 211*28章 高性能架构:除了代码,还可以在哪些地方优化性能 21228.1 性能指标 21228.2 性能测试 21328.3 性能优化 21528.4 小结 219*29章 高可用架构:淘宝应用升级时,为什么没有停机 22029.1 高可用的度量 22129.2 高可用的架构 22229.3 小结 225第30章 安全性架构:为什么说用户密码泄露是程序员的问题 22730.1 数据加密与解密 22730.2 HTTP攻击与防护 23030.3 小结 233第31章 大数据架构:思想和原理 23431.1 HDFS分布式文件存储架构 23531.2 MapReduce大数据计算架构 23631.3 Hive大数据仓库架构 23831.4 Spark快速大数据计算架构 24031.5 大数据流计算架构 24231.6 小结 242第32章 AI与物联网架构:从智能引擎到物联网平台 24332.1 大数据平台架构 24432.2 智能推荐算法 24532.3 物联网大数据架构 24932.4 小结 250第33章 区块链技术架构:区块链到底能做什么 25133.1 比特币与区块链原理 25133.2 联盟链与区块链的企业级应用 25533.3 小结 257第四部分 架构师的思维修炼第34章 技术修炼之道:同样工作十几年,为什么有的人成为*深架构师,有的人失业 26034.1 德雷福斯模型 26134.2 如何在工作中成长 26334.3 小结 264第35章 技术进阶之道:你和世界上顶*的程序员差几个等级 26535.1 软件技术的生态江湖与等级体系 26535.2 技术进阶之捷径 26735.3 小结 269第36章 技术落地之道:你真的知道自己要解决的问题是什么吗 27036.1 确定会议真正要解决的问题是什么 27136.2 不需要去解决别人的问题,提醒他问题的存在即可 27236.3 去解决那些被人们习以为常而忽略了的问题 27336.4 小结 273第37章 技术沟通之道:如何解决问题 27537.1 让有能力解决问题的人感受到问题的存在 27537.2 “直言有讳” 27637.3 想解决一个大家都不关注的问题,可以等问题变得更糟 27737.4 如果不填老师想要的答案,你就得不了分 27837.5 小结 278第38章 技术管理之道:真的要转管理吗 28038.1 彼得定律 28138.2 用目标驱动 28238.3 小结 283附录A 软件开发技术的*一性原理 284附录B 我的架构师成长之路 287附录C 无处不在的架构之美 293附录D 软件架构师之道 298
社会出版社
¥8.99
领秀天丽图书专营店
木垛图书旗舰店
天津美术出版社