展开全部

主编推荐语

本书涵盖的内容从规范、设计原则、技术人员素养,到用于使代码保持灵活性且易于扩展的各种心得。

内容简介

本书共有13章内容,主要分为技艺部分、思想部分和实践部分。技艺部分详细介绍了编程技巧和方法论,并配以详尽的代码案例,有助于读者提高编写代码的能力,优化代码质量。思想部分主要包括抽象能力、分治思想,以及程序员应该具备的素养等内容。实践部分主要介绍了常见的应用架构模式,以及COLA架构的设计原理。

目录

  • 版权信息
  • 内容提要
  • 序一
  • 序二
  • 前言
  • 资源与支持
  • 彩图
  • 第一部分 技艺
  • 第1章 命名
  • 1.1 命名的力量
  • 1.2 命名其实很难
  • 1.3 有意义的命名
  • 1.4 保持一致性
  • 1.5 自明的代码
  • 1.6 命名工具
  • 1.7 本章小结
  • 第2章 规范
  • 2.1 认知成本
  • 2.2 混乱的代价
  • 2.3 代码规范
  • 2.4 埋点规范
  • 2.5 架构规范
  • 2.6 防止破窗
  • 2.7 本章小结
  • 第3章 函数
  • 3.1 什么是函数
  • 3.2 软件中的函数
  • 3.3 封装判断
  • 3.4 函数参数
  • 3.5 短小的函数
  • 3.6 职责单一
  • 3.7 精简辅助代码
  • 3.8 组合函数模式
  • 3.9 SLAP
  • 3.10 函数式编程
  • 3.11 本章小结
  • 第4章 设计原则
  • 4.1 SOLID概览
  • 4.2 SRP
  • 4.3 OCP
  • 4.4 LSP
  • 4.5 ISP
  • 4.6 DIP
  • 4.7 DRY
  • 4.8 YAGNI
  • 4.9 Rule of Three
  • 4.10 KISS原则
  • 4.11 POLA原则
  • 4.12 本章小结
  • 第5章 设计模式
  • 5.1 模式
  • 5.2 GoF
  • 5.3 拦截器模式
  • 5.4 插件模式
  • 5.5 管道模式
  • 5.6 本章小结
  • 第6章 模型
  • 6.1 什么是模型
  • 6.2 UML
  • 6.3 类图
  • 6.4 领域模型
  • 6.5 敏捷建模
  • 6.6 广义模型
  • 6.7 本章小结
  • 第7章 DDD的精髓
  • 7.1 什么是DDD
  • 7.2 初步体验DDD
  • 7.3 数据驱动和领域驱动
  • 7.4 DDD的优势
  • 7.5 DDD的核心概念
  • 7.6 领域建模方法
  • 7.7 模型演化
  • 7.8 为什么DDD饱受争议
  • 7.9 本章小结
  • 第二部分 思想
  • 第8章 抽象
  • 8.1 伟大的抽象
  • 8.2 到底什么是抽象
  • 8.3 抽象是OO的基础
  • 8.4 抽象的层次性
  • 8.5 如何进行抽象
  • 8.6 如何提升抽象思维
  • 8.7 本章小结
  • 第9章 分治
  • 9.1 分治算法
  • 9.2 函数分解
  • 9.3 写代码的两次创造
  • 9.4 分治模式
  • 9.5 分层设计
  • 9.6 横切和竖切
  • 9.7 本章小结
  • 第10章 技术人的素养
  • 10.1 不教条
  • 10.2 批判性思维
  • 10.3 成长型思维
  • 10.4 结构化思维
  • 10.5 工具化思维
  • 10.6 好奇心
  • 10.7 记笔记
  • 10.8 有目标
  • 10.9 选择的自由
  • 10.10 平和的心态
  • 10.11 精进
  • 10.12 本章小结
  • 第11章 技术Leader的修养
  • 11.1 技术氛围
  • 11.2 目标管理
  • 11.3 技术规划
  • 11.4 推理阶梯
  • 11.5 Leader和Manager的区别
  • 11.6 视人为人
  • 11.7 本章小结
  • 第三部分 实践
  • 第12章 COLA架构
  • 12.1 软件架构
  • 12.2 典型的应用架构
  • 12.3 COLA架构设计
  • 12.4 COLA测试
  • 12.5 COLA架构总览
  • 12.6 本章小结
  • 第13章 工匠平台
  • 13.1 项目背景
  • 13.2 整理需求
  • 13.3 工匠Demo
  • 13.4 使用COLA
  • 13.5 领域模型
  • 13.6 核心业务逻辑
  • 13.7 实现技术细节
  • 13.8 测试
  • 13.9 本章小结
展开全部

评分及书评

4.4
22个评分
  • 用户头像
    给这本书评了
    5.0
    代码精进之路,就是一个抽象和分治的过程

    书中在第九章着重讲到了两种思想:抽象和分治。事实上,这两种思想贯穿了全书。下面就试着从这两个方面,来谈一些感想。先说 "分治"" 分治 "就是把大问题拆解成小问题,然后逐个击破,最终将问题解决。就软件实现而言,其复杂度可以分成三个方面:业务复杂度、技术复杂度、组织复杂度。业务复杂度,再进行拆解,可以归因为业务流程的复杂性,以及业务概念的不统一。(1)对于业务流程的复杂性,需要进行流程梳理和分解,通过流程建模,来达成对流程的统一认知。(2)而对于概念的不统一,需要对业务领域进行归纳,并在此基础上统一语言和概念,并且在实践中根据实际情况不断迭代完善。技术复杂度,来源于规范的缺乏,及技术认知的不统一。(1)就技术规范而言,可以拆解为命名习惯、函数写法、函数抽象、建模语言、代码风格等。(2)而技术认知,涉及到对不同设计原则的充分理解、对不同涉及模式的融汇贯通、对建模方法的理解并形成相应的架构意识。组织复杂度,涉及到自己、团队、周遭。(1)关于自己,要保持好奇和良知、不断学习、磨炼思维、持续精进。(2)关于团队,要建设良好的技术氛围,让团队有的目标感,以至于形成团队特有的技术特色,构建差异化的竞争力。(3)关于周遭,需要去理解企业的战略和文化,理解不同团队的目标和工作方式,跟大家一起去合作共赢。再说" 抽象 "抽象就是" 从具体中抽离出来 "。首先,软件是对于现实的抽象。越是复杂的问题,需要考虑的因素越多,对抽象能力的要求越高。而能否给一个变量、一个函数、一个对象找到一个好的名字,是这种抽象能力的一个具体体现。取名是对事物的界定,好的名字需要直白表达出事物的本质,这需要对问题有深入理解,需要对相关的信息有充分消化。第二,设计原则是对共性经验的抽象;设计模式是对共性思维的抽象。(1)遵循前人总结的设计原则,可以设计出更易于扩展、易于维护的软件,避免再次掉进那些前人已经发现的坑。(2)而设计模式针对类似的问题,将有共性的代码结构抽象出来,以便随时调用,提高编码效率,改善编码可靠性。第三,框架是对规范的抽象。如何让大家对通用的架构达成共识,并通过遵守一些共性的规范而相互协作?软件世界的应对方式是提供一个" 框架 ":通过对通行架构的抽象,并提供相应的工具和规范约束,让软件世界中能在更大的范围内产生协同。喜欢这种基于实战经验总结而出的书。其中有自己大量的体味和感悟,但是又不拘泥细枝末节,有足够的总结和提炼。可读性很高!

      转发
      评论
      用户头像
      给这本书评了
      5.0
      有启发

      结构清晰,定位精准的一本好书。看完之后很多心得和方法能立即拿来改善编码质量,提升应用架构能力,码农轻松变工匠。

        转发
        评论
        用户头像
        给这本书评了
        5.0
        全面的应用架构设计

        本书是描述应用架构设计的,其中,有设计思想、方法论,还是实践框架 cola,是一本比较全面的讲清楚设计是什么,价值点,怎么做的书

          转发
          评论
        • 查看全部6条书评

        出版方

        人民邮电出版社

        人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。