作为一个参与UML设计十多年经验的老程序员,想就这个问题谈几个点。
1,mda无法落地的原因是因为大部分的推动者并不是程序员,而是企业的中高层技术人员,这些人大部分已经脱离代码很多年,于是产生了这种实际上很好的构想,却没有意愿去实现每一个细节,于是使得很多细节无法变成现实,而这些人反正也不发愁生存问题,于是就一个接一个的走了下去。
当一个概念无法落实之后,就想起了一个新的概念,于是,一连串的概念炒作,给他们带来了更多的收益,而原本很务实的mda反而被程序员认为是一种只能用来吹牛的东西。
2,在我曾经的实践中,我在国内多个项目内实现了mda的方式,但是,使用起来总是遇到各种问题。
大约经过了五年多的时间以后,我确认,这些问题都是源自基础的不完善,比如,一个非常重要的基础就是代码库。
在mda中,模型无法关联有效代码,只能从架构层进行推演,于是无法给用户看到一个可用的结果,于是用户也慢慢觉得自己是被忽悠了。而实际上,架构加上真正完善的代码库组成,才能让mda真正落地。也就是说,我在mda实现设计以后,关联所有已经成型的代码库中的代码,然后将代码库中仍然没有的代码和一些算法级别实现的代码交给高级程序员和数学算法模型构建人员进行实现,代码库中有的代码在关联的时候是需要有一些调整的,主要是涉及到输入输出参数,异常和返回参数的处理问题,也就是对于代码库中的代码使用实现了一种类似黑盒的接口调用形式。
看到这里,很多人会有一种想法,那就是,印度的外包程序员还能活下去么?我的答案在十年前就明确了,代码库构建的完成,干掉的就是印度的这种低层次外包程序员,因为他们做的就是搬砖的工作,而不是搭建和设计的工作,这类工作迟早会被mda的工具所取代。
3,有人会问,为什么你不去做。
作为一个个人,实在是无能为力,我一直就是个程序员,没有想过自己要成为一个多牛的企业老板,而一个人的力量永远是不足的。
对于个人而言,首先要做的是生存,而不是创建这类工具给别人用。
不过,我现在所在的公司给了我推动我这些想法的机会,如果有兴趣,欢迎加盟。
我已经在推动企业级代码库的整体构建,同时包括全面的mda形态构建,只不过,我现在不提这个名词了。因为提了,下面的弟兄还是会认为我是在吹牛。
我们最快会在明年年中对全世界发布第一套免费的开源代码库,欢迎大家关注。
2017年04月11日补充:
我上次预计发布的东西,失败了,失败的原因还是因为企业的老板不懂,所以,很抱歉的在这里给大家做一个同步。
当然,我还会继续找机会,只是不知道什么时候才能实现。
道路是曲折漫长的,技术的道路尤其如此,毕竟是一个新的,还有很多属于探索性的东西,这是方法论范畴的内容,不是过程论范畴的内容,所以,希望不懂的同学不要说敏捷scrum之类的东西来和mda对比,这两者不属于同一子领域。