代码精进之路 从码农到工匠

本书特色

[

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

]

内容简介

[

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

]

作者简介

[

张建飞,阿里巴巴集团高级技术专家,Java全球管理组织(JCP)执行委员会正式会员(Full Member)。2007年计算机工程硕士毕业后,先后在软件公司InfoSys与互联网公司eBay担任高级研发和技术专家的职务。2014年加入阿里巴巴,先后在1688、ICBU和零售通担任技术主管。 作者精通面向对象技术,有丰富的一线编码实战和架构经验。特别是在应用架构、领域建模和复杂度治理领域,自研了COLA框架。COLA自开源以来,已经被多个技术团队使用,解决了DDD落地和应用扩展问题,受到了普遍关注和一致好评。 作者提倡“工匠精神”,对于如何打造一个追求卓越、独具匠心的技术团队,如何量化考核工程师的技术贡献,都有着非常深入的思考和实践,并探索出一套切实可行的方法论。基于该方法论打造的“工匠平台”,在阿里巴巴内部被广泛使用,“工匠平台”丰富了对技术人员考察的维度,是除业务结果之外的从技术视角给技术人员“照镜子”的有效工具。

]

目录

第 一部分 技 艺第 1章 命名 / 31.1 命名的力量 / 31.2 命名其实很难 / 41.3 有意义的命名 / 51.3.1 变量名 / 51.3.2 函数名 / 51.3.3 类名 / 61.3.4 包名 / 71.3.5 模块名 / 71.4 保持一致性 / 71.4.1 每个概念一个词 / 81.4.2 使用对仗词 / 81.4.3 后置限定词 / 91.4.4 统一业务语言 / 101.4.5 统一技术语言 / 101.5 自明的代码 / 101.5.1 中间变量 / 111.5.2 设计模式语言 / 111.5.3 小心注释 / 121.6 命名工具 / 141.7 本章小结 / 15第 2章 规范 / 162.1 认知成本 / 162.2 混乱的代价 / 172.3 代码规范 / 182.3.1 代码格式 / 182.3.2 空行规范 / 192.3.3 命名规范 / 212.3.4 日志规范 / 222.3.5 异常规范 / 252.4 埋点规范 / 282.5 架构规范 / 302.6 防止破窗 / 302.7 本章小结 / 31第3章 函数 / 323.1 什么是函数 / 323.2 软件中的函数 / 333.3 封装判断 / 333.4 函数参数 / 343.5 短小的函数 / 353.6 职责单一 / 363.7 精简辅助代码 / 373.7.1 优化判空 / 373.7.2 优化缓存判断 / 383.7.3 优雅降级 / 393.8 组合函数模式 / 403.9 SLAP / 433.10 函数式编程 / 483.11 本章小结 / 49第4章 设计原则 / 514.1 SOLID概览 / 514.2 SRP / 524.3 OCP / 534.4 LSP / 544.4.1 警惕instanceof / 554.4.2 子类覆盖父类函数 / 554.5 ISP / 574.6 DIP / 584.7 DRY / 614.8 YAGNI / 614.9 Rule of Three / 624.10 KISS原则 / 624.11 POLA原则 / 634.12 本章小结 / 63第5章 设计模式 / 645.1 模式 / 645.2 GoF / 655.3 拦截器模式 / 695.4 插件模式 / 735.5 管道模式 / 755.5.1 链式管道 / 755.5.2 流处理 / 785.6 本章小结 / 79第6章 模型 / 816.1 什么是模型 / 816.1.1 物理模型 / 826.1.2 数学模型 / 826.1.3 概念模型 / 826.1.4 思维模型 / 836.1.5 模型不能代替现实 / 836.2 UML / 846.3 类图 / 856.3.1 类的UML表示法 / 866.3.2 类的关联关系 / 876.3.3 类的依赖关系 / 926.3.4 类的泛化关系 / 936.3.5 接口与实现关系 / 946.4 领域模型 / 956.5 敏捷建模 / 966.6 广义模型 / 976.6.1 C4模型 / 976.6.2 UI流程图 / 976.6.3 业务模型 / 986.7 本章小结 / 99第7章 DDD的精髓 / 1017.1 什么是DDD / 1017.2 初步体验DDD / 1027.3 数据驱动和领域驱动 / 1047.3.1 数据驱动 / 1047.3.2 领域驱动 / 1067.3.3 ORM / 1087.4 DDD的优势 / 1097.4.1 统一语言 / 1107.4.2 面向对象 / 1107.4.3 业务语义显性化 / 1117.4.4 分离业务逻辑和技术细节 / 1117.5 DDD的核心概念 / 1127.5.1 领域实体 / 1127.5.2 聚合根 / 1147.5.3 领域服务 / 1157.5.4 领域事件 / 1167.5.5 边界上下文 / 1177.6 领域建模方法 / 1187.6.1 用例分析法 / 1187.6.2 四色建模法 / 1217.7 模型演化 / 1277.8 为什么DDD饱受争议 / 1277.8.1 照搬概念 / 1287.8.2 抽象的灵活性 / 1287.8.3 领域层的边界 / 1287.9 本章小结 / 130第二部分 思 想第8章 抽象 / 1338.1 伟大的抽象 / 1338.2 到底什么是抽象 / 1348.3 抽象是OO的基础 / 1358.4 抽象的层次性 / 1368.5 如何进行抽象 / 1378.5.1 寻找共性 / 1378.5.2 提升抽象层次 / 1398.5.3 构筑金字塔 / 1428.6 如何提升抽象思维 / 1438.6.1 多阅读 / 1448.6.2 多总结 / 1448.6.3 领域建模训练 / 1458.7 本章小结 / 145第9章 分治 / 1469.1 分治算法 / 1469.1.1 归并排序 / 1479.1.2 二分搜索 / 1489.1.3 K选择问题 / 1499.2 函数分解 / 1509.3 写代码的两次创造 / 1509.3.1 第 一遍实现功能 / 1509.3.2 第二遍重构优化 / 1519.4 分治模式 / 1519.5 分层设计 / 1529.5.1 分层网络模型 / 1529.5.2 分层架构 / 1539.6 横切和竖切 / 1549.7 本章小结 / 155第 10章 技术人的素养 / 15610.1 不教条 / 15610.1.1 瀑布还是敏捷 / 15710.1.2 贫血还是充血 / 15810.1.3 单体还是分布式 / 15910.2 批判性思维 / 16110.3 成长型思维 / 16210.4 结构化思维 / 16310.4.1 如何落地新团队 / 16510.4.2 如何做晋升述职 / 16610.5 工具化思维 / 16710.6 好奇心 / 16910.7 记笔记 / 17010.8 有目标 / 17110.9 选择的自由 / 17210.10 平和的心态 / 17310.11 精进 / 17410.12 本章小结 / 174第 11章 技术Leader的修养 / 17511.1 技术氛围 / 17511.1.1 代码好坏味道 / 17611.1.2 技术分享 / 17611.1.3 CR周报 / 17711.1.4 读书会 / 17811.2 目标管理 / 17911.2.1 什么是OKR / 17911.2.2 SMART原则 / 18011.2.3 OKR设定 / 18111.3 技术规划 / 18211.3.1 当前问题 / 18211.3.2 技术领域 / 18311.3.3 业务领域 / 18311.3.4 团队特色 / 18311.4 推理阶梯 / 18411.5 Leader和Manager的区别 / 18511.6 视人为人 / 18611.7 本章小结 / 187第三部分 实 践第 12章 COLA架构 / 19112.1 软件架构 / 19112.2 典型的应用架构 / 19312.2.1 分层架构 / 19312.2.2 CQRS / 19512.2.3 六边形架构 / 19612.2.4 洋葱架构 / 19812.2.5 DDD / 19912.3 COLA架构设计 / 20012.3.1 分层设计 / 20012.3.2 扩展设计 / 20112.3.3 规范设计 / 20512.3.4 COLA Archetype / 20812.4 COLA测试 / 20912.4.1 单元测试 / 20912.4.2 集成测试 / 21012.4.3 ColaMock / 21012.5 COLA架构总览 / 21212.6 本章小结 / 214第 13章 工匠平台 / 21513.1 项目背景 / 21513.2 整理需求 / 21613.3 工匠Demo / 21713.4 使用COLA / 21813.4.1 安装COLA / 21813.4.2 搭建应用 / 21813.5 领域模型 / 21913.5.1 领域建模 / 21913.5.2 领域词汇表 / 22113.6 核心业务逻辑 / 22213.7 实现技术细节 / 22713.7.1 数据存储 / 22713.7.2 控制器 / 22813.8 测试 / 22913.8.1 单元测试 / 22913.8.2 集成测试 / 23013.8.3 回归测试 / 23113.9 本章小结 / 232

封面

代码精进之路 从码农到工匠

书名:代码精进之路 从码农到工匠

作者:张建飞著

页数:232页

定价:¥69.0

出版社:人民邮电出版社

出版日期:2020-01-01

ISBN:9787115521026

PDF电子书大小:146MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注