新書推薦:
《
不被定义的年龄:积极年龄观让我们更快乐、健康、长寿
》
售價:NT$
352.0
《
南方谈话:邓小平在1992
》
售價:NT$
367.0
《
纷纭万端 : 近代中国的思想与社会
》
售價:NT$
500.0
《
中国古代文体形态研究(第四版)(中华当代学术著作辑要)
》
售價:NT$
765.0
《
朋党之争与北宋政治·大学问
》
售價:NT$
454.0
《
甲骨文丛书·波斯的中古时代(1040-1797年)
》
售價:NT$
403.0
《
以爱为名的支配
》
售價:NT$
286.0
《
台风天(大吴作品,每一种生活都有被看见的意义)
》
售價:NT$
245.0
編輯推薦:
1.本书为热门计算机图书《程序是怎样跑起来的》《网络是怎样连接的》同系列作品2.图文结合,深入讲解面向对象的方方面面,将文字具象化3.语言通俗,内容丰富,计算机小白也能看得懂4.特设“编程往事”“对象的另一面”专栏,了解更多编程内容,让学习更加生动有趣5.新增“当今的OOP”专栏,介绍Java、Python等当今流行的编程语言,与编程热门接轨,更快掌握编程新动向
內容簡介:
本书以图配文的形式,直观易懂地介绍了面向对象的全貌及其包含的各项技术,包括面向对象编程、框架、设计模式、UML、建模、面向对象设计和敏捷开发方法等。对于各项技术是如何使用的(How),书中只进行简要的说明,而重点介绍这些技术是什么(What),以及为什么需要这些技术(Why)。另外,“编程往事”专栏介绍了作者年轻时的一些经历;“对象的另一面”专栏以与正文不同的视角讲解面向对象这一概念普及的背景和原因,通俗有趣;“当今的OOP”专栏介绍了Java、Python、Ruby、JavaScript等当今流行的编程语言的最新动向。
關於作者:
平泽章(作者)从使用大型机的金融系统到使用微机的控制系统,系统开发经验丰富。曾从事技术咨询工作,2001年至今就职于日本UL System公司。著有《UML建模教程》,是Working Effectively With Legace Code、Refactoring:Improving the Design of Existing Code日文版译者之一。侯振龙(译者)管理科学与工程专业硕士,日语一级,软件开发工程师,具有十年以上对日软件开发经验,现就职于某日本独资企业。
目錄 :
第 1章 面向对象:让软件开发变轻松的技术 11.1 面向对象是软件开发的综合技术 31.2 以对象为中心编写软件的开发方法 41.3 从编程语言演化为综合技术 41.4 面向对象难的原因 51.5 原因之一:OOP结构复杂 61.6 原因之二:滥用比喻引起混乱 61.7 原因之三:面向对象的概念是抽象的 71.8 重点讲解“是什么”和“为什么” 91.9 本书的构成 9专栏 当的OOP易上手、有深度的Python 11第 2章 似是而非:面向对象与现实世界 132.1 对照现实世界介绍面向对象 152.2 类指类型,实例指具体的物 152.3 多态让消息的发送方法变得通用 172.4 继承对共同点和不同点进行系统的分类和整理 202.5 使用比喻进行讲解容易造成混乱 222.6 面向对象和现实世界是似是而非的 222.7 明确定义为编程结构 232.8 软件并不会直接表示现实世界 242.9 与现实世界的相似增大了可能性 24专栏 对象的另一面成为潮词的面向对象 25第3章 理解OOP:编程语言的历史 273.1 OOP的出现具有必然性 293.2 最初使用机器语言编写程序 293.3 编程语言的第 一步是汇编语言 303.4 高级语言使程序更加接近人类语言 313.5 重视易懂性的结构化编程 323.6 提高子程序的独立性,强化可维护性 333.7 实现无 GOTO编程的结构化语言 363.8 进化方向演变为重视可维护性和可重用性 373.9 没有解决全局变量问题和可重用性差的问题 39专栏 编程往事COBOL编译器的“鸡和蛋”问题 43第4章 面向对象编程技术:去除冗余、进行整理 454.1 OOP具有结构化语言所没有的三种结构 474.2 OOP的结构会根据编程语言的不同而略有差异 494.3 三大要素之一:具有三种功能的类 494.4 类的功能之一:汇总 504.5 类的功能之二:隐藏 534.6 类的功能之三:创建很多个 564.7 实例变量是限定访问范围的全局变量 594.8 三大要素之二:实现调用端公用化的多态 614.9 三大要素之三:去除类的重复定义的继承 654.10 对三大要素的总结 674.11 通过嵌入类型使程序员的工作变轻松 684.12 将类作为类型使用 694.13 编程语言“退化”了吗 724.14 更先进的OOP结构 724.15 进化的OOP结构之一:包 724.16 进化的OOP结构之二:异常 744.17 进化的OOP结构之三:垃圾回收 764.18 对进化的 OOP结构的总结 784.19 决心决定OOP的生死 79专栏 当今的OOP从网页工具进化而来的PHP 81第5章 理解内存结构:程序员的基本素养 835.1 理解OOP程序的运行机制 855.2 两种运行方式:编译器与解释器 855.3 解释、运行中间代码的虚拟机 885.4 CPU 同时运行多个线程 895.5 使用静态区、堆区和栈区进行管理 915.6 OOP 的特征在于内存的用法 945.7 每个类只加载一个类信息 955.8 每次创建实例都会使用堆区 965.9 在变量中存储实例的指针 975.10 复制存储实例的变量时要多加注意 995.11 多态让不同的类看起来一样 1035.12 根据继承的信息类型的不同,内存配置也不同 1055.13 孤立的实例由垃圾回收处理 107专栏 编程往事OOP中dump看起来很费劲? 113第6章 重用:OOP带来的软件重用和思想重用 1156.1 OOP的优秀结构能够促进重用 1176.2 类库是OOP的软件构件群 1186.3 标准类库是语言规范的一部分 1206.4 将Object类作为祖先类的继承结构 1206.5 框架存在各种含义 1216.6 框架是应用程序的半成品 1226.7 世界上可重用的软件构件群 1246.8 独立性较高的构件:组件 1246.9 设计模式是优秀的设计思想集 1256.10 设计模式是类库探险的路标 1286.11 扩展到各个领域的思想的重用 1296.12 通过类库和模式发现的重用的好处 130专栏 当今的OOP因Rails框架而走红的Ruby 133第7章 化为通用的归纳整理法的面向对象 1357.1 软件不会直接表示现实世界 1377.2 应用于集合论和职责分配 1397.3 在上游工程中化为通用的归纳整理法 1427.4 两种含义引起混乱 1427.5 分为编程技术和归纳整理法进行思考 1437.6 为何化为了通用的归纳整理法 144专栏 对象的另一面语言在先,还是概念在先? 145第8章 UML:查看无形软件的工具 1478.1 UML是表示软件功能和结构的图形的绘制方法 1498.2 UML有13种图形 1508.3 UML的使用方法大致分为三种 1528.4 UML的使用方法之一:表示程序结构和动作 1538.5 类图表示OOP程序的结构 1538.6 使用时序图和通信图表示动作 1568.7 UML的使用方法之二:表示归纳整理法的成果 1588.8 使用类图表示根据集合论进行整理的结果 1598.9 表示职责分配的时序图和通信图 1628.10 UML的使用方法之三:表示非面向对象的信息 1658.11 使用用例图表示交给计算机的工作 1658.12 使用活动图表示工作流程 1668.13 使用状态机图表示状态的变化 1678.14 弥补自然语言和计算机语言缺点的“语言” 168第9章 建模:填补现实世界和软件之间的沟壑 1739.1 现实世界和软件之间存在沟壑 1759.2 计算机擅长固定工作和记忆工作 1769.3 通过业务分析、需求定义和设计来填补沟壑 1779.4 建模是顺利推进这三个阶段的工作的技术 1789.5 应用程序不同,建模的内容也不一样 1799.6 业务应用程序记录现实中的事情 1809.7 对图书馆的借阅业务进行建模 1819.8 使用用例图来表示图书馆业务 1839.9 用概念模型表示图书馆系统的信息 1859.10 在业务应用程序中,数据结构反映现实世界 1869.11 嵌入式软件替代现实世界的工作 1889.12 嵌入式软件中设备的研究开发很重要 1899.13 使用状态机图表示全自动工作的情形 1919.14 嵌入式软件一直执行单调的工作 1929.15 建模蕴含着软件开发的乐趣 192第 10章 面向对象设计:拟人化和职责分配 19510.1 设计的目标范围很广 19710.2 相比运行效率,现在更重视可维护性和可重用性 19810.3 设计目标之一:去除重复 19910.4 设计目标之二:提高构件的独立性 20010.5 提高构件独立性的诀窍 20210.6 设计目标之三:避免依赖关系发生循环 20310.7 面向对象设计的“感觉”是拟人化和职责分配 20510.8 进行了职责分配的软件创建的奇妙世界 206专栏 当今的OOP执行时不受类约束的JavaScript 210 第 11章衍生:敏捷开发 21311.1 仅靠技术和技术窍门,软件开发并不会成功 21511.2 系统地汇总了作业步骤和成果的开发流程 21611.3 限制修改的瀑布式开发流程 21611.4 瀑布式开发流程的极限 21711.5 灵活响应变化的迭代式开发流程 21811.6 打破诸多限制的 XP 21911.7 确定团队工作推进方式的框架的Scrum 22111.8 快速编写优秀软件的敏捷宣言 22211.9 支持敏捷开发的实践 22311.10 先编写测试代码,一边运行一边开发的测试驱动开发 22411.11 在程序完成后改善运行代码的重构 22511.12 经常进行系统整合的持续集成 22711.13 实践敏捷宣言理念的方法 22711.14 敏捷开发源于面向对象 22811.15 不存在最好的开发流程 229专栏 编程往事过去不被允许的XP 233第 12章 熟练掌握面向对象 23512.1 面向对象这一强大概念是原动力 23712.2 时代追上了面向对象 23812.3 面向对象的热潮不会结束 23912.4 将面向对象作为工具熟练掌握 24012.5 享受需要动脑的软件开发 241附章 函数式语言是怎样工作的 243A.1 面向对象编程语言和函数式语言混合占据主流的时代 245A.2 函数式语言的7个特征 246A.3 特征1:使用函数编写程序 246A.4 特征2:所有表达式都返回值 248A.5 特征3:将函数作为值进行处理 252A.6 特征4:可以灵活组合函数和参数 254A.7 特征5:没有副作用 259A.8 特征6:使用模式匹配和递归来编写循环处理 264A.9 特征7:编译器自动进行类型推断 268A.10 对7个特征的总结 272A.11 函数式语言的分类 273A.12 函数式语言的优势 274A.13 函数式语言的课题 275A.14 函数式语言和面向对象的关系 275A.15 掌握函数式编程 277专栏 当今的OOP打造了函数式语言的箱庭的Java 279后记 281致谢 282