本书总结了如下4个方面的内容。 一是架构师的基础知识修炼:软件的基础知识原理主要是操作系统、数据结构、数据库原理等,书中会从一个常见的问题入手,直达这些基础技术最本质的原理,并覆盖这些基础技术的主要关键技术点。二是架构师的程序设计修炼:讲述如何设计一个强大灵活,易复用,易维护的软件。在这个过程中,应该依赖哪些工具和方法,遵循哪些原则和思想,使用哪些模式和手段。三是架构师的架构方法修炼:围绕目前主要的互联网分布式架构以及大数据、物联网架构,分析这些架构背后的原理,它们都遵循了怎样的驱动力和设计思想,有哪些看似不同的技术其实原理是一样的,以及如何通过这些技术实现系统的高可用和高性能。四是架构师的思维修炼:软件开发是一个实践性很强的活动,只有将知识技能应用到工作实践中,才能真正体会到技术的关键点在哪里。本部分指导读者在工作中实践自己的技术思想,为公司创造更多的价值,得到更多的晋升和发挥空间,使自己的技术成长和职业发展进入互相促进的正向通道。         
         
             
             部分  架构师的基础知识修炼
  章  操作系统原理:程序是如何运行和崩溃的
    1.1  程序是如何运行起来的
    1.2  一台计算机如何同时处理数以百计的任务
    1.3  系统为什么会变慢,为什么会崩溃
    1.4  小结
  第2章  数据结构原理:Hash表的时间复杂度为什么是O(1)
    2.1  数组的结构
    2.2  链表的结构
    2.3  Hash表的结构
    2.4  栈的结构
    2.5  队列的结构
    2.6  树的结构
    2.7  小结
  第3章  Java虚拟机原理:JVM为什么被称为机器
    3.1  JVM的构造
    3.2  JVM的垃圾回收
    3.3  Web应用程序在JVM中的执行过程
    3.4  小结
  第4章  网络编程原理:一个字符的互联网之旅
    4.1  DNS域名解析原理
    4.2  CDN
    4.3  HTTP的结构
    4.4  TCP的结构
    4.5  链路层负载均衡原理
    4.6  小结
  第5章  文件系统原理:用1分钟遍历一个100TB的文件
    5.1  硬盘结构原理
    5.2  文件系统原理
    5.3  RAID硬盘阵列原理
    5.4  分布式文件系统架构原理
    5.5  小结
  第6章  数据库原理:SQL为什么要预编译
    6.1  数据库架构与SQL执行过程
    6.2  使用PrepareStatement执行SQL的好处
    6.3  数据库文件存储与索引工作原理
    6.4  小结
  第7章  编程语言原理:面向对象编程是编程的终极形态吗
    7.1  软件编程的远古时代
    7.2  机器与汇编语言时代
    7.3  不错编程语言时代
    7.4  面向对象编程时代
    7.5  编程语言的未来
    7.6  小结
第二部分  架构师的程序设计修炼
  第8章  软件设计的方法论:软件为什么要建模
    8.1  什么是软件建模
    8.2  4+1视图模型
    8.3  UML建模
    8.4  小结
  ……
第三部分  架构师的架构方法修炼
第四部分  架构师的思维修炼
附录A  软件开发技术的性原理
附录B  我的架构师成长之路
附录C  无处不在的架构之美
附录D  软件架构师之道
         
         
             
             李智慧,曾担任方正、NEC、阿里巴巴、Intel架构师,也曾担任宅米、WiFi多能钥匙CTO,目前任同程旅行交通首席架构师;曾设计、开发过Web服务器防火墙、分布式NoSQL系统、大数据仓库引擎、反应式编程框架等基础设施软件,也曾领导设计过多个日活用户为千万级的互联网系统架构。