`
0428loveyu
  • 浏览: 30867 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

《冒号课堂 编程范式与OOP思想》 - 书摘精要

 
阅读更多
(P5)
学会不如会学,会学不如会用,会用不如被用;

学会(知其所然) —— 掌握一些具体编程知识的初级程序员;

会学(知所以然) —— 能快速而深刻地理解技术并举一反三的程序员;

会用(人为我用) —— 能将所学灵活运用到实际编程设计之中的高级程序员;

被用(我为人用) —— 能设计出广为人用的应用程序(Application)、库(Library)、工具包(Toolkit)、框架(Framework)等的系统分析师和架构师;

(P5) 计算机专家 —— 发明出主流的设计模式、算法、语言乃至理论;

(P6) 知识之上是思想,思想之上是精神;

(P8) SGML - Standard, Generalized, Markup, Language;

(P11)
好的语言就是合适编程者和解决对象的语言;

计算机语言按其发展历程通常分为5代:机器语言、汇编语言、高级语言、面向问题语言、人工智能语言;

(P16)
得形而忘意,无异舍本逐末,
得意而忘形,方能游刃有余;

编程范式 (Programming Paradigm)

(P21)
大多数软件开发是以金钱而不是技术为中心的;

设计模式是软件的战术思想,架构是软件的战略决策;

(P40) 软件设计最重要的并不是编程语言,甚至也不是编程范式,而是抽象思维;

(P41) 与其说OOP更具重用性,不如说更具易用性;

(P51)
泛型编程 (Generic Programming) —— 将算法与其作用的数据分离,并将后者尽可能泛化,最大限度地实现算法重用;

STL - Standard Template Library;

(P66) 如果真想成为优秀的程序员,一定要尽可能地读原文书籍、文章和文档;

(P67) 对程序员来说,英语也是一门计算机语言,而且是必修的语言;

(P104)
同样的思想用在整体系统的结构设计上,则称为架构模式;用在局部模块的细节实现上,则称为设计模式;用在引导编程实践上,则称为编程范式;

设计模式有时被称为微架构(Micro Architecture)模式;

(P121) 编程水平的提升之道是:在实战中演练招法,在招法中领会心法,心法反过来提升招法,进而提高实战水平,如此循环往复呈螺旋式上升过程。正所谓熟能生巧,巧能生通;

(P124)
无论干哪一行,要想胜任愉快,离不开四样东西:才能、兴趣、方法和努力;
没有才能则难以胜任,
没有兴趣则难以愉快。
没有方法则事倍功半,
没有努力则一事无成;

(P134) 动态语言秉承的一个理念是:优化人的时间而不是机器的时间;

(P138) 无知与偏见总是相辅相成的;

(P141) 对一个程序员而言,编程语言乃立身之本;

(P192) 接口是纲,实现是目。纲若不举,目无以张;

(P199) 抽象 —— 尤其是数据抽象 —— 才是OOP的核心和起源;

(P214) 封装 —— 准确地说是信息隐藏 —— 则是将非本质、容易变化的部分隐藏起来;

(P218) 严格遵循开闭原则的软件,不应该修改老代码,只能增加新代码;

(P224) 一般不建议继承非抽象类,因而protected的意义就不大了;

(P243)
接口继承的作用不是为了让继承者重用被继承者的代码,而是为了在合适的场合被调用;

接口继承不是为了代码重用,而是为了代码被重用;

(P267) 提倡接口继承,慎用实现继承;

(P293)
具体类型是创建对象的模板,
抽象类型是创建类型的模板;

抽象数据类型的核心是数据抽象,
抽象类型的核心是多态抽象;

(P294) 合成的基础类只能是具体类型,不能是抽象类型;

(P297) 具体实例永远是为抽象思想服务的;

(P303) 抽象不是目的而是手段;

(P304)
具体类描述对象,重在实现;
抽象类描述规范,重在接口;

(P318) 多掌握一门语言,便多一扇领悟之门,多一条贯通之道;

(P334) 在早期的UML草案中,“合成”被(Grady Booch)称为Aggregation by Value,“聚合”被称为Aggregation by Reference;

(P337) 从关联(has-a关系)到聚合(owns-a关系),再到合成(contains-a关系),耦合度逐步加大;

(P364)
耦合度 低 --> 高:
[提倡]:
无耦合 (no coupling)
消息耦合 (message coupling)
数据耦合 (data coupling)
[限制]:
印记耦合 (stamp coupling)
控制耦合 (control coupling)
外部耦合 (external coupling)
[避免]:
公共耦合 (common coupling)
内聚耦合 (content coupling)

内聚度 高 --> 低:
[提倡]:
功能内聚 (functional cohesion)
信息内聚 (informational cohesion)
[限制]:
顺序内聚 (sequential cohesion)
通信内聚 (communicational cohesion)
过程内聚 (procedural cohesion)
[避免]:
时间内聚 (temporal cohesion)
逻辑内聚 (logical cohesion)
偶然内聚 (coincidental cohesion)

(P373) ISP(接口隔离原则)主张:不应强迫客户依赖那些它们不用的方法,多个专用的接口比单纯一个总接口好;

(P381) S-O-L-I-D 类级设计原则:
单一职责原则 (SRP - Single Responsibility Principle) —— 一个类应当只有一个变更的理由;
开闭原则 (OCP - Open-Closed Principle) —— 软件实体应对扩展开放,对修改封闭;
里氏代换原则 (LSP - Liskov Substitution Principle) —— 子类型必须能替代超类型;
接口隔离原则 (ISP - Interface Segregation Principle) —— 不应强迫客户依赖那些它们不用的方法;
依赖反转原则 (DIP - Dependency Inversion Principle) —— 抽象不应依赖细节,细节应当依赖抽象;

(P382) 包级设计原则:
发布重用等价原则 (REP - Release-Reuse Equivalency Principle) —— 重用的粒度即是发布的粒度;
共同闭包原则 (CCP - Common Closure Principle) —— 同在一个包中的类应对同类变化封闭;
共同重用原则 (CRP - Common Reuse Principle) —— 同在一个包中的类一起被重用;
无环依赖原则 (ADP - Acyclic Dependencies Principle) —— 在包的依赖图中不允许有环存在;
稳定依赖原则 (SDP - Stable Dependencies Principle) —— 朝着稳定的方向依赖;
稳定抽象原则 (SAP - Stable Abstractions Principle) —— 一个包的抽象度应与其稳定度相当;

(P404) C#中的 namespace 是逻辑包,assembly 是物理包;

(P438) 命令式OOP的一个弱点是:一个对象必须在获得另一个对象的标识后才能向其发送信息。这使得两个交流的对象在类型、个体和时间上发生了耦合;

(P441) 广度影响深度;

(P443) 设计原则高于设计模式,设计模式源于设计原则;
分享到:
评论

相关推荐

    冒号课堂:编程范式与OOP思想 PDF

    《冒号课堂:编程范式与OOP思想》是一本深入探讨编程理论和技术的书籍,主要聚焦于编程范式和面向对象编程(Object-Oriented Programming, OOP)的概念。编程范式是编写程序的不同方式,它定义了如何组织代码、处理...

    冒号课堂——编程范式与OOP思想

    冒号课堂的“编程范式与OOP思想”课程深入浅出地讲解了这些概念,帮助学习者理解不同的编程范式,特别是掌握OOP的核心原则和实践技巧。通过阅读提供的PDF文件,你可以获得丰富的理论知识和实际应用示例,进一步提升...

    冒号课堂-mobi,azw3,pdf

    在《冒号课堂编程范式与OOP思想》这本书中,作者深入浅出地讲解了编程的基础概念和OOP的核心理念。编程范式是理解编程语言结构和设计方式的关键,它包括过程化编程、函数式编程、面向对象编程等多种模式。其中,OOP...

    冒号课堂:编程范式与OOP思想

    《冒号课堂》以课堂对话的形式,借六位师生之口讲述编程要义。上篇对编程范式作了入门性的介绍,并对一些流行的编程语言进行了简评;下篇侧重阐发软件设计思想,其中在范式上以OOP为主,在语言上以C++、Java和C#为主...

    冒号课堂编程范式与OOP思想.azw3

    本书是以编程范式和抽象机制为主线阐述编程设计思想的图书。它以编程语言为形、以编程范式为神、以抽象机制为本,采用课堂对话的形式讲述编程要义,深入浅出、寓教于乐。其中编程范式以OOP为重点,编程语言以C++、...

    冒号课堂-编程范式与OOP思想

    冒号课堂-编程范式与OOP思想 mobi kindle

    编程范式与OOP思想

    冒号课堂:编程范式与OOP思想

    《冒号课堂——编程范式与OOP思想》电子书.txt

    根据提供的文件信息,本文将对《冒号课堂——编程范式与OOP思想》电子书进行深入解析,重点探讨编程范式与面向对象编程(Object-Oriented Programming, OOP)的相关概念及其在实际开发中的应用。 ### 编程范式与OOP...

    冒号课堂(完整版) part1

    冒号课堂 完整版 分卷一 是完整版的 不是1.98M版本的 由于文件太大 只能分卷上传

    Java 第一阶段建立编程思想 【零钱通(OOP)】---- 代码

    Java 第一阶段建立编程思想 【零钱通(OOP)】---- 代码 Java 第一阶段建立编程思想 【零钱通(OOP)】---- 代码 Java 第一阶段建立编程思想 【零钱通(OOP)】---- 代码 Java 第一阶段建立编程思想 【零钱通(OOP)...

    冒号课堂 jdm 注释版

    本书是以编程范式和抽象机制为主线阐述编程设计思想的图书。它以编程语言为形、以编程范式为神、以抽象机制为本,采用课堂对话的形式讲述编程要义,深入浅出、寓教于乐。其中编程范式以OOP为重点,编程语言以C++、...

    C OOp-intro.pdf C++ OOP2-ex.cpp 面向对象Part.pdf

    面向对象编程(Object-Oriented Programming,简称OOP)是C++语言中的核心特性,它是一种编程范式,强调程序数据结构与程序控制结构的结合,以提高代码的可重用性和可维护性。在本文件集合中,我们可以通过三个文件...

Global site tag (gtag.js) - Google Analytics