编程范型详解

programmingLanguage

在上一篇文章 《再谈榔头和钉子》,提到了设计模式和编程范型,相较于设计模式,编程范型往往和语言本身强相关,一种特定的语言,只适用于一种或者几种编程范型。它类似于一种编程风格,也决定了程序员是如何去认识程序的结构、交互和执行的。编程范型是程序员大脑中在设计编码阶段预先考虑到的内容,但是相较于满街跑的设计模式,这个过程往往下意识地被忽略。另外,如果你现在在思考编程范型的时候,脑海里只有“ 面向对象” 和“ 面向过程” 这两者跳出来,那可能是真的被糟糕的面向对象教材毒害太深了。

在维基百科的编程范型页面右侧,有一个相对比较完整的列表:

[……]阅读全文

看透面向对象的复用技术

1 本文翻译自 这篇文章 ,这篇文章写于 1998 年,作者是 Scott Ambler,真的挺久远了。看看上个世纪末的时候,程序员的视角和观点。

想从面向对象复用技术中真正获益,你就必须理解不同种类的复用,并且自如地在不同场合下使用它们。

  • 可复用资源
  • 业务对象根源

复用性是面向对象技术带来的很棒的潜在好处之一。遗憾的是,很多情况下这个好处并不能真正兑现。原因在于复用并不是毫无代价的,它并不是你使用面向对象开发工具的时候就能轻而易举得到的。相反,它是你为了成功而努力工作得来的。首先要知道的是,这个世界上有比代码复用多得多的可复用的东西。代码复用只不过是最基本的一种形式而已。当然,你不要

[……]阅读全文

CSS 也面向对象

css 最初接触到面向对象的 CSS 还是因为项目中的 CSS 已经超过八千行,缺乏约束和管理,在近期或者是不远的将来,有迫切的要求需要重构。在前端重构中,除了 JavaScript 重构,不妨再看一看 CSS 面向对象和模块化,这给我的工作提供了非常好的思路。

首先,我要说的是,在这个概念翻飞的年代里,固执地追求某些概念和涵义,并不能带来更优秀的设计和更高的生产力,面向对象是一种思路,或者说是一种方法论,给 CSS 重构带来一些启示,这就足够了,没有必要去纠结 OO CSS 的定义和严谨性。

我们的 CSS 代码遇到了什么问题?

重用性差,看着一个 CSS 的名称,很难说出哪些模块可能引用到了它,这个 CSS 是用作网页的哪些部分

[……]阅读全文

如何思考面向对象

Robert Martin 在学习了面向对象的语言,比如 Java、Python 和 Ruby 之后,看起来每个人都觉得自己在进行面向对象的编码。但是如果你仔细审视一下代码,你就会发现还是无意识地使用了很多过程语句。

静态方法

静态方法是最天然的过程方法,它和面向对象没有一点关系。好吧,我已经听见质疑的尖叫了,那么,我就来给你解释一下为什么。首先我们可以达成一个共识,全局变量和全局状态是魔鬼。如果你觉得前面说的静态方法的话会没什么可争论的,那好,我认为静态方法就应该返回一个常量,因为没有全局状态量(时间和随机数,这些都是全局状态量,所以不能算进去的,对象必须有不同的实例,但是对象图的连线是一致的)。

这就意味着静态方法要做什么

[……]阅读全文

back to top