想当年,object-orientied红及全球,凡谈编程必须是面向对象的,面向对象就是解决软件设计问题的终极法宝。的确,面向对象在对于将复杂问题进行抽象化上,有很大优势,可以很好的实现软件模块化,通过public,private将接口封装好,通过继承将结构定义好,面对需求变化够flexible。
时过境迁,现在已经是分布式的时代了,一个单独的应用拿不上台面了,而更多基于message对应用进行定义,要求软件模块的无缝升级,模块的接口由function转为了message。这样以往将data封装到object内部,只能通过interface function操作内部数据的方法无可避免的lock contention问题,使其在scalablity上捉襟见肘,尤其是在多核时代,要向locality要并行,基于state的程序设计方法往往产生出来的就是无法适应多核时代的程序。
还好,有人已经在理论上证明 state-based = operation-based
新海贼时代来临了!
阅读(879) | 评论(0) | 转发(0) |