封面
版权信息
版权声明
推荐序1
推荐序2
前言
本书的结构
各章的结构
第1章 面向对象:让软件开发变轻松的技术
1.1 面向对象是软件开发的综合技术
1.2 以对象为中心编写软件的开发方法
1.3 从编程语言演化为综合技术
1.4 面向对象难的原因
1.5 原因之一:OOP结构复杂
1.6 原因之二:滥用比喻引起混乱
1.7 原因之三:面向对象的概念是抽象的
1.8 重点讲解“是什么”和“为什么”
1.9 本书的构成
第2章 似是而非:面向对象与现实世界
2.1 对照现实世界介绍面向对象
2.2 类指类型,实例指具体的物
2.3 多态让消息的发送方法变得通用
2.4 继承对共同点和不同点进行系统的分类和整理
2.5 使用比喻进行讲解容易造成混乱
2.6 面向对象和现实世界是似是而非的
2.7 明确定义为编程结构
2.8 软件并不会直接表示现实世界
2.9 与现实世界的相似增大了可能性
第3章 理解OOP:编程语言的历史
3.1 OOP的出现具有必然性
3.2 最初使用机器语言编写程序
3.3 编程语言的第一步是汇编语言
3.4 高级语言使程序更加接近人类语言
3.5 重视易懂性的结构化编程
3.6 提高子程序的独立性,强化可维护性
3.7 实现无GOTO编程的结构化语言
3.8 进化方向演变为重视可维护性和可重用性
3.9 没有解决全局变量问题和可重用性差的问题
深入学习的参考书
第4章 面向对象编程技术:去除冗余、进行整理
4.1 OOP具有结构化语言所没有的三种结构
4.2 OOP的结构会根据编程语言的不同而略有差异
4.3 三大要素之一:具有三种功能的类
4.4 类的功能之一:汇总
4.5 类的功能之二:隐藏
4.6 类的功能之三:创建很多个
4.7 实例变量是限定访问范围的全局变量
4.8 三大要素之二:实现调用端公用化的多态
4.9 三大要素之三:去除类的重复定义的继承
4.10 对三大要素的总结
4.11 通过嵌入类型使程序员的工作变轻松
4.12 将类作为类型使用
4.13 编程语言“退化”了吗
4.14 更先进的OOP结构
4.15 进化的OOP结构之一:包
4.16 进化的OOP结构之二:异常
4.17 进化的OOP结构之三:垃圾回收
4.18 对进化的OOP结构的总结
4.19 决心决定OOP的生死
第5章 理解内存结构:程序员的基本素养
5.1 理解OOP程序的运行机制
5.2 两种运行方式:编译器与解释器
5.3 解释、运行中间代码的虚拟机
5.4 CPU同时运行多个线程
5.5 使用静态区、堆区和栈区进行管理
5.6 OOP的特征在于内存的用法
5.7 每个类只加载一个类信息
5.8 每次创建实例都会使用堆区
5.9 在变量中存储实例的指针
5.10 复制存储实例的变量时要多加注意
5.11 多态让不同的类看起来一样
5.12 根据继承的信息类型的不同,内存配置也不同
5.13 孤立的实例由垃圾回收处理
深入学习的参考书
第6章 重用:OOP带来的软件重用和思想重用
6.1 OOP的优秀结构能够促进重用
6.2 类库是OOP的软件构件群
6.3 标准类库是语言规范的一部分
6.4 将Object类作为祖先类的继承结构
6.5 框架存在各种含义
6.6 框架是应用程序的半成品
6.7 世界上可重用的软件构件群
6.8 独立性较高的构件:组件
6.9 设计模式是优秀的设计思想集
6.10 设计模式是类库探险的路标
6.11 扩展到各个领域的思想的重用
6.12 通过类库和模式发现的重用的好处
深入学习的参考书
第7章 化为通用的归纳整理法的面向对象
7.1 软件不会直接表示现实世界
7.2 应用于集合论和职责分配
7.3 在上游工程中化为通用的归纳整理法
7.4 两种含义引起混乱
7.5 分为编程技术和归纳整理法进行思考
7.6 为何化为了通用的归纳整理法
第8章 UML:查看无形软件的工具
8.1 UML是表示软件功能和结构的图形的绘制方法
8.2 UML有13种图形
8.3 UML的使用方法大致分为三种
8.4 UML的使用方法之一:表示程序结构和动作
8.5 类图表示OOP程序的结构
8.6 使用时序图和通信图表示动作
8.7 UML的使用方法之二:表示归纳整理法的成果
8.8 使用类图表示根据集合论进行整理的结果
8.9 表示职责分配的时序图和通信图
8.10 UML的使用方法之三:表示非面向对象的信息
8.11 使用用例图表示交给计算机的工作
8.12 使用活动图表示工作流程
8.13 使用状态机图表示状态的变化
8.14 弥补自然语言和计算机语言缺点的“语言”
深入学习的参考书
第9章 建模:填补现实世界和软件之间的沟壑
9.1 现实世界和软件之间存在沟壑
9.2 计算机擅长固定工作和记忆工作
9.3 通过业务分析、需求定义和设计来填补沟壑
9.4 建模是顺利推进这三个阶段的工作的技术
9.5 应用程序不同,建模的内容也不一样
9.6 业务应用程序记录现实中的事情
9.7 对图书馆的借阅业务进行建模
9.8 使用用例图来表示图书馆业务
9.9 用概念模型表示图书馆系统的信息
9.10 在业务应用程序中,数据结构反映现实世界
9.11 嵌入式软件替代现实世界的工作
9.12 嵌入式软件中设备的研究开发很重要
9.13 使用状态机图表示全自动工作的情形
9.14 嵌入式软件一直执行单调的工作
9.15 建模蕴含着软件开发的乐趣
深入学习的参考书
第10章 面向对象设计:拟人化和职责分配
10.1 设计的目标范围很广
10.2 相比运行效率,现在更重视可维护性和可重用性
10.3 设计目标之一:去除重复
10.4 设计目标之二:提高构件的独立性
10.5 提高构件独立性的诀窍
10.6 设计目标之三:避免依赖关系发生循环
10.7 面向对象设计的“感觉”是拟人化和职责分配
10.8 进行了职责分配的软件创建的奇妙世界
深入学习的参考书
第11章 衍生:敏捷开发
11.1 仅靠技术和技术窍门,软件开发并不会成功
11.2 系统地汇总了作业步骤和成果的开发流程
11.3 限制修改的瀑布式开发流程
11.4 瀑布式开发流程的极限
11.5 灵活响应变化的迭代式开发流程
11.6 打破诸多限制的XP
11.7 确定团队工作推进方式的框架的Scrum
11.8 快速编写优秀软件的敏捷宣言
11.9 支持敏捷开发的实践
11.10 先编写测试代码,一边运行一边开发的测试驱动开发
11.11 在程序完成后改善运行代码的重构
11.12 经常进行系统整合的持续集成
11.13 实践敏捷宣言理念的方法
11.14 敏捷开发源于面向对象
11.15 不存在最好的开发流程
深入学习的参考书
第12章 熟练掌握面向对象
12.1 面向对象这一强大概念是原动力
12.2 时代追上了面向对象
12.3 面向对象的热潮不会结束
12.4 将面向对象作为工具熟练掌握
12.5 享受需要动脑的软件开发
深入学习的参考书
附章 函数式语言是怎样工作的
A.1 面向对象编程语言和函数式语言混合占据主流的时代
A.2 函数式语言的7个特征
A.3 特征1:使用函数编写程序
A.4 特征2:所有表达式都返回值
A.5 特征3:将函数作为值进行处理
A.6 特征4:可以灵活组合函数和参数
A.7 特征5:没有副作用
A.8 特征6:使用模式匹配和递归来编写循环处理
A.9 特征7:编译器自动进行类型推断
A.10 对7个特征的总结
A.11 函数式语言的分类
A.12 函数式语言的优势
A.13 函数式语言的课题
A.14 函数式语言和面向对象的关系
A.15 掌握函数式编程
深入学习的参考书
后记
致谢
看完了
更新时间:2023-06-20 18:08:02