所谓3层是:业务,IT实现,交互
心目中的未来软件应该是传统行业的服务者,而且未来软件应该是交互性很好的。所以基于这两个愿望,假想出了未来软件的3层结构。或者说是软件的3大件。
为什么要单独分出业务?
原因之一是因为同一行业的各种服务软件中需要共用大量相同的概念和业务规则,我们需要有一个共通的业务语言。原因之二是IT行业的技术发展很快,从服务器到具体的编码技术,业务本身作为传统行业的核心财富应该相对固定不变,超脱于IT的纷争之外。
为什么要单独分出交互?
因为我相信Allan Cooper的话,而且我相信软件本来就不应该单单由IT行业的人来完成,应该包括比程序员更有艺术感觉,对人类观感更有把握能力的人。所以我觉得交互应该从IT实现中独立出来。
那么IT实现是什么?
IT实现就是现在意义上的软件,只是它不再是把业务和交互混杂在IT相关的技术之中。IT从业人员,也就是我们这些程序员集中精力处理和机器的关系,把业务和交互实现出来。
这就是我心目中的未来软件,或许需要用上已经有些发臭的名词——MDA。