最近看自己的博客,发现那篇“关于框架的胡言乱语(上)”一直没有下篇,心里实在惭愧。从小我就有虎头蛇尾的坏毛病,这么大了,竟然还没有改过来。我再续个狗尾(不敢说续貂,充其也是狗尾续狗皮),也算是给自己有个交待。之所以把标题改成“关于架构的胡言乱语(下)”,是因为我个人觉得,框架市场的火爆,完全是因为架构设计思想在作祟,所以我就一并胡说一下吧。
架构设计在前几年也算是相当流行,以至于程序员们都不好意思说自己是程序员了,削尖了脑袋想挤进架构设计的行列。最常听到女孩这样埋怨他的程序员男友:你咋还是软件工程师咧,你看人家老蒋,都成了系统架构师了。
我今天想说的观点是:架构设计在国内软件行业,还是处于相当尴尬的境地。
之所以会有这样的结果,是因为国内大多数的软件公司是在做项目开发的,而不是做软件开发的。(这个观点并不新鲜,很多人很早就都提到过)。也就是说,因为是项目开发,所以客户处于一个强势地位,而架构更多的是开发人员的东西(就类似于我以前说过的:跨平台只是程序员在意淫而已,永远上不了台面的)。良好的架构设计能提高开发效率、增加灵活性和可扩展性,这都没错,可是这些东西客户关心吗?客户想要什么?说白了就是:用一元钱,雇10个程序员,干一年,做出一千个模块。
成型的软件商品就象卖肉,张三卖6块钱一斤,李四卖5.8元,虽然他们卖的肉来自不同的两只猪,但只要都是屁股上的那一块,营养与味道应该都差不多吧,所以客户选择李四。做项目就象卖鞋垫,张大妈手工纳的,一天才做一双,卖十元。李大姐用机器做,一天可以做10双,只能买个1元钱,而且客户还都涌向张大妈的小店,这就是项目。
这就是我们的消费观念,没有办法。老板花钱雇你,希望看到你天天在coding,客户也花钱请你,更希望你能天天加班coding,他们可不喜欢看你每天躺在沙发上闭着眼睛思考问题,或者在电脑里画出一堆一堆的圈圈和条条,还用一种不屑地口气说:这叫设计。
客户是一方面的原因,作坊式的开发模式也是另一个原因。
国内的软件公司大多是小作坊式的,就算是神码东软这些所谓的大公司,也充其量不过是一条开了很多小作坊的大街而已(如果各个项目组之间不能Share Top,其实大公司也就是作坊扎堆,成不了大工厂)。
作坊式的团队模式,决定了软件开发仍是手艺活。程序员只是一些手工艺人,大家凑到一块,雕琢一些摆设,间或也有几件传世的精品,但这并不是因为引入了什么成功的设计模式,靠得仍是工匠们的手艺。在这个行业里,有掌柜,有师傅,也有学徒,就是没有软件蓝领。因为蓝领是一种社会分工,学徒却是人生的一个阶段,这是完全的两嘛事,如果学徒不能升级为师傅,他只能被淘汰。
因此,架构师(架构设计)+软件工人(编码),这种组合在我们的软件行业里暂时是无法实现的。
话说回来,我上面所说的,有个大前提,就是“当前”。
毕竟架构设计是软件业的未来,是我们的方向。这一点我是不敢妄自菲薄的。