发现斯坦福对于冠名“太”拿手。
明明讲的是编程技术,硬是可以把它冠名为如“编程方法论”或“抽象编程”这样的课程并且获得大量的欢迎与掌声。
这可能就是美国特色吧。。。在美国混,讲究的是演技而不是实力。如奥巴马,斯瓦辛格。。。。。。
传统的需求分析要求用户说“清楚”他们到底要什么。
那不现实。
需求是抽象的。一切都是抽象。 从来就没有人能说明白任何东西。
所以一种真正好的编程方法肯定是一种彻底承认并接受了“抽象”的编程方法。
这里说的抽象不是指斯坦福那种抽象。因为斯坦福那种抽象只是在编程技术里面打转。它仍然是在以编程的方式讨论编程。
但是编程不只是为了编程。编程是为了完成任务!
从任务的角度,编程最大的责任便是如何把用户大脑中的抽象概念保留下来。也就是如何在系统中形式化用户大脑中的不管多么“抽象”的概念。而用户大脑中是不存在如数据抽象,行为抽象这样的概念的。
用户不这么思考。
用户的思考模式是这样的。如:
金融,银行,投资,理财,收益,咨询,回报,利率,货币,市场,公司,财产,资产,负债,义务,责任,政策,政府,法律,法规,行政,止损,止盈,股票,债券,盈利,亏损,进入市场,退出市场。。。。。
面向对象的价值在于,它具有表达全部概念的能力。不管它有多么抽象。
真的吗?
。。。
因为好象第一个词就有困难。因为没有办法将它归类为任何“对象”。 硬要把它设计为对象,那肯定也是有问题的。但它也不是一个过程。它是一个领域。虽说面向对象是用来进行领域建模的一个很好的工具,但它却没有办法承载“领域”本身这个语义!
如果将这个词进一步扩展就更麻烦。如“金融业”,“金融学”,“金融圈”,“金融史”。。。
可以这么想:它不是对象,所以我不用表达它。因为世界是由对象组成的,不是由行业组成的。
它当然很难了,不然怎么说抽象编程是个很大的挑战呢?
麻烦。。。
借用一句被曲解的苦语:书山有路勤为径,学海无涯苦作舟!
革命尚未成功,同志仍需努力。。。这世界就从来没有也永远不会有已经得到完成的学问。因此,如果说知识是一种手段还不如说求知是一种生活!