架构整洁之道

架构整洁之道

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

对于每一位软件研发从业人员,无论从事的是具体编码实现、架构设计,还是软件研发管理,《架构整洁之道》都是不可或缺的。

内容简介

本书是创造“Clean神话”的Bob大叔在架构领域的登峰之作,围绕“架构整洁”这一重要导向,系统地剖析其缘起、内涵及应用场景,涵盖软件研发完整过程及所有核心架构模式。

本书分为6部分,第1部分纲领性地提出软件架构设计的终极目标,描述软件架构设计的重点与模式;第2~4部分从软件开发中三个基础编程范式的定义和特征出发,进一步描述函数、组件、服务设计与实现的定律,以及它们是如何有效构建软件系统的整体架构的;第5部分从整洁架构的定义开始,详细阐述软件架构设计过程中涉及的方方面面,包括划分内部组件边界、应用常见设计模式、避开错误、降低成本、处理特殊情况等,并以实战案例将内容有机整合起来;第6部分讲述具体实现细节;附录则透过作者数十年的软件从业经历再次印证《架构整洁之道》的观点。

作者简介

作者Robert C. Martin,软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report前主编,被后辈程序员尊称为“Bob大叔”。20世纪7 0年代初成为职业程序员,后创办Object Mentor公司并任总裁。Martin还是一名多产的作家,到今已发表数百篇文章、论文和博客文章。除本书外,还著有《代码整洁之道》《敏捷软件开发:原则、模式和实践》《UML:Java程序员指南》等。他创办了cleancoders.com网站,专为软件开发人员提供教育视频。

章节目录

版权信息

内容简介

推荐序一

推荐序二 久远的教诲,古老的智慧

序言

前言

致谢

关于作者

关于技术审校者

第1部分 概述

第1章 设计与架构究竟是什么

目标是什么

案例分析

本章小结

第2章 两个价值维度

行为价值

架构价值

哪个价值维度更重要

艾森豪威尔矩阵

为好的软件架构而持续斗争

第2部分 从基础构件开始:编程范式

第3章 编程范式总览

结构化编程

面向对象编程

函数式编程

仅供思考

本章小结

第4章 结构化编程

可推导性

goto是有害的

功能性降解拆分

形式化证明没有发生

科学来救场

测试

本章小结

第5章 面向对象编程

封装

继承

多态

本章小结

第6章 函数式编程

整数平方

不可变性与软件架构

可变性的隔离

事件溯源

本章小结

第3部分 设计原则

第7章 SRP:单一职责原则

反面案例2:代码合并

解决方案

本章小结

第8章 OCP:开闭原则

思想实验

依赖方向的控制

信息隐藏

本章小结

第9章 LSP:里氏替换原则

继承的使用指导

正方形/长方形问题

LSP与软件架构

违反LSP的案例

本章小结

第10章 ISP:接口隔离原则

ISP与编程语言

ISP与软件架构

本章小结

第11章 DIP:依赖反转原则

稳定的抽象层

工厂模式

具体实现组件

本章小结

第4部分 组件构建原则

第12章 组件

组件发展史

重定位技术

链接器

本章小结

第13章 组件聚合

复用/发布等同原则

共同闭包原则

共同复用原则

组件聚合张力图

本章小结

第14章 组件耦合

无依赖环原则

自上而下的设计

稳定依赖原则

稳定抽象原则

本章小结

第5部分 软件架构

第15章 什么是软件架构

开发(Development)

部署(Deployment)

运行(Operation)

维护(Maintenance)

保持可选项

设备无关性

垃圾邮件

物理地址寻址

本章小结

第16章 独立性

用例

运行

开发

部署

保留可选项

按层解耦

用例的解耦

解耦的模式

开发的独立性

部署的独立性

重复

再谈解耦模式

本章小结

第17章 划分边界

几个悲伤的故事

FitNesse

应在何时、何处画这些线

输入和输出怎么办

插件式架构

插件式架构的好处

本章小结

第18章 边界剖析

跨边界调用

令人生畏的单体结构

部署层次的组件

线程

本地进程

服务

本章小结

第19章 策略与层次

层次(Level)

本章小结

第20章 业务逻辑

业务实体

用例

请求和响应模型

本章小结

第21章 尖叫的软件架构

架构设计的主题

架构设计的核心目标

那Web呢

框架是工具而不是生活信条

可测试的架构设计

本章小结

第22章 整洁架构

依赖关系规则

一个常见的应用场景

本章小结

第23章 展示器和谦卑对象

谦卑对象模式

展示器与视图

测试与架构

数据库网关

数据映射器

服务监听器

本章小结

第24章 不完全边界

省掉最后一步

单向边界

门户模式

本章小结

第25章 层次与边界

基于文本的冒险游戏:Hunt The Wumpus

可否采用整洁架构

交汇数据流

数据流的分割

本章小结

第26章 Main组件

最细节化的部分

本章小结

第27章 服务:宏观与微观

面向服务的架构

服务所带来的好处

运送猫咪的难题

对象化是救星

基于组件的服务

横跨型变更

本章小结

第28章 测试边界

测试也是一种系统组件

可测试性设计

测试专用API

本章小结

第29章 整洁的嵌入式架构

“程序适用测试”测试

目标硬件瓶颈

本章小结

第6部分 实现细节

第30章 数据库只是实现细节

关系型数据库

为什么数据库系统如此流行

假设磁盘不存在会怎样

实现细节

但性能怎么办呢

一段轶事

本章小结

第31章 Web是实现细节

无尽的钟摆

总结一下

本章小结

第32章 应用程序框架是实现细节

框架作者

单向婚姻

风险

解决方案

不得不接受的依赖

本章小结

第33章 案例分析:视频销售网站

产品

用例分析

组件架构

依赖关系管理

本章小结

第34章 拾遗

按层封装

按功能封装

端口和适配器

按组件封装

具体实现细节中的陷阱

组织形式与封装的区别

其他的解耦合模式

本章小结:本书拾遗

后序

附录A 架构设计考古

工会财务记账系统

激光切割

铝压铸监控

4-TEL

维护中心计算机(SAC)

C语言

BOSS

pCCU

DLU/DRU

VRS

电子前台

修理工派遣系统

Clear Communications公司

ROSE

系统架构师注册考试

小结

架构整洁之道是2018年由电子工业出版社出版,作者[美]RobertC.Martin。

得书感谢您对《架构整洁之道》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
移动应用设计与开发(项目式)(微课版) 电子书
系统阐述移动App设计、开发、测试、发布的全流程。
Python高手修炼之道:数据处理与机器学习实战 电子书
适读人群 :1.没有编程知识的新手 不同于一般的基础语法讲解教程,本书并未将Python 开发限定于某个集成开发工具(IDE)中,而是采用交互式编程的方式来强化读者对语言特性的理解,帮助新手读者真正理解Python 语言和Python 编程。2.从未接触过Python 语言,但了解一点编程知识的初学者 本书通过对基础知识高度的提炼和概括,以避免初学者陷入低级且冗长的细节知识点而心生懈怠;同时,本书为初学者规划了从初级到高级的编程技能提升路线图。3.具有一定基础的Python 程序员 本书可以作为案头工具书来使用。本书从基础语法、基本技能讲起,涵盖了科学计算、数据处理、机器学习等领域,示例代码涉及30 余个模块的使用。 构建从Python入门到数据分析到机器学习的路线图,入门有章可循; 1.讲解独到,常见盲点趣解析 作者基于多年的经验积累,善于总结概括初学Python过程中的误区。 2.内容全面,常用工具全涵盖 书中介绍的Python工具包覆盖Numpy、Matplotlib、Pandas、SciPy、Scikit-Learn,方便读者拓展实用技能、掌握工作利器。 3.拓展训练,重点知识有强化 语感训练100题、Python内置函数(类)手册、从新手到高手的100个模块,强化知识点的掌握。 4.代码完整,随时动手可复现 本书提供了完整、可验证的代码,方便读者动手练习并强化理解。
持续交付2.0:业务引领的DevOps精要 电子书
世界级互联网公司软件交付工作原则与方法解析 作者在持续交付领域多年实践经验的精华总结 《持续交付:发布可靠软件的系统方法》作者作序推荐! 国内知名互联网公司多位管理者与领域专家合力倾情推荐! 持续交付2.0不只是关于软件的交付模型,而是从业务问题出发,关注业务假设验证速度的双环业务模型。只有从业务目标出发的持续交付实践才有强大的创造力和生命力! 书中指出,持续交付2.0双环模型高速运转的三个支柱分别是组织机制、软件架构和软件交付基础设施,同时给出了提升价值探索环以及快速验证环运转速度的多种可行方法。 本书还为我们呈现了在企业内部改善持续交付2.0能力所需遵循的基本原则,包括组织文化建设、软件系统架构、业务协作、配置管理、构建集成、自动化测试、发布与监控七大板块,并指出各领域实践关键点,以及多种可实操性方法。同时,通过3个完整的实践案例过程分析,说明每个企业或团队都必须从自己的业务目标出发,根据自己的实际情况,制定自己的改善路线。
透视C#核心技术:系统架构及移动端开发 电子书
本书采用循序渐进的方式讲解C#及其在电商、ERP及手机APP方面的开发技术。
微信小程序开发图解案例教程:附精讲视频 电子书
一本书快书入门微信小程序。