关于模式语言

在亚历山大的模式语言这本书中,作者这样说道:每一个充满活力的完整的社会都有它自己独特而清晰的模式语言。那么在每一个软件项目所对应的目标社会群体,也应该有一个自己独特的模式语言。那么软件开发工作的目标应该是发掘出该社会群体的独特的模式语言,方能反映出该社会群体的本质,保证该软件项目有足够的生命力。而设计模式是软件开发人员开发软件所使用的模式语言。设计模式和目标系统所对应的社会群体所使用的模式语言之间的关系,请大家讨论。

同意 顶

亚历山大总结出建筑的模式语言,我觉得并不是偶然的。建筑的目标非常的单纯:给人以栖居之所(宗教建筑的对象也是人,只不过是神话的人)。正因为其目的的单纯,其规律也就非常的明显。要考虑到人与建筑的接口,建筑与建筑的接口,建筑与自然界的接口等等。由此总结出来了建筑的模式语言。亚历山大的思维方式无疑给了人们认识事物的一个新的视角,不经意的为软件开发推开了一个新的窗子,让我们看到了新的风景。软件开发相比建筑而言,其目的并不单纯,是随项目的变化而变化的。比如对金融行业和对教育行业,其目的都不同,要直接总结出一个统一的模式语言是不太现实的。但是对某一个行业而言,比如针对金融行业而言,总结出一个金融行业的模式语言是可能的,而且应该成为我们现阶段的工作。所以,我觉得软件开发的首要原则是挖掘出目标社群的模式语言,单纯的提设计模式,从这个角度看没有太多的意义。目前软件开发中的设计模式,是在各种不同的软件中通用的,无任是在教育行业还是金融行业的目标系统中都可以使用。使用软件开发的设计模式(还不能称作模式语言)描述目标系统,能行吗?我觉得不是太可行,至少目前不太可行,这可能也是目前的项目不总是成功的原因吧。最理想的方式是使用目标社群的模式语言来思考目标系统,这样的系统应该是最稳健的。想要得出软件开发的模式语言,必须要先总结出各个行业的模式语言,再在这些模式语言之上进行抽象,或许可以得出一个可以描述各种软件开发的模式语言,描述软件系统。看来还有很长的路要走。