白话讲山寨SOA,少一些迷惑、多一些理解,你的程序架构SOA了吗?
2009-09-15 11:13 通用C#系统架构 阅读(10952) 评论(121) 编辑 收藏 举报
开场白:
我也在不断反省自己,不管我说得对错,总会有一大批人来打击我,原因很简单“我自傲、我自大”。你其实什么人都可以得罪,但是千万不能得罪小人,小人会咬着你不放,例如会有一大堆无聊的小人,会过来回复你,言语上打击你,心灵上打击、若你没有一定的心理承受能力,你都会想跳楼自杀,还好我有一个坚强的心,大家都谦虚了,都什么都不讲,也不自信了,真的也就没意思了,程序员世界也会少几分有趣、少几分娱乐。演戏的都是戏子,娱乐大家的,写文章的其实也差不多的,娱乐大家。
其实在早在上个世纪末,1999年就听别人忽悠xml有多少神奇,当时就搞不明白XML到底能怎么样?后来几年还买了很多书,Java的.NET的,看得也云里雾里,到底这玩意儿能干啥?现在想想啊,炒作还真能忽悠人啊,至少忽悠了5年以上都有了,后来才明白,xml文件,就类似配置文件,你可以用程序读写配置文件,用起来方便一些,可以用.net读取,也可以用java读取,有相对标准的格式而已,也真的不是什么万能的东西,做程序的,还是得照样写程序,不是用了XML就能怎么样了。
正文:
前几年别人忽悠SOA的概念,我也听得云里雾里,平时自己想研究的东西就很多,自己想写的程序也很多,平时手上的工作任务也很多,就根本没精力去研究新技术,我上周末走访了杭州的一家IT软件开发团队,他们虽然用的是ASP.NET但是写程序的思维完全是PHP、ASP那套思路,连服务器控件都用得比较少,而且还是有接近10个人的开发队伍,开发了好几年,你说他们虽然用了ASP.NET但是还在用ASP的思维在写程序,所以我觉得并不是人人什么都懂大家的精力很多时候都是有限的。
SOA是什么?虽然我个人已经理解了SOA是什么,但是我还是想把自己的成果分享给那些不知道SOA到底是什么的朋友。我们打个比方,我去手机店购买手机,我是一个消费者,我想购买手机是一个需求,我可以去选择很多手机店,这些手机店就是服务的提供者,而且我们的接口是能对上,我不可能到服装店去购买手机吧?俗话讲的话,就是供需的接口需要对上。
手机店,有很多前台服务员,也有仓库保管员,我会向前台咨询手机的功能、性能、价格、款式等,前台是给我提供服务的,我们确定好手机后,我到收银台付款,前台会从仓库保管员那里提取手机,交给我。
这时候,我们可以想,手机是个模型,就是物品,手机自己是不会移动,不会有动作,他只是个物品,没有自己的控制动作,再讲俗点儿手机是不会把自己删除了、添加了、更新了。是由仓库保管员对手机进行操作的,我们也不是自己到手机店的仓库里直接把手机拿过来了,是要通过 我购买手机- 前台服务员 - 仓库保管员 - 手机,的顺序最终拿到了手机。
写程序也跟购买手机的流程相似,你直接到仓库去拿手机,是最简单,工作量最少,最直接见效的,但是这个属于不按套路出牌,不按规矩来的行为。为什么购买手机的流程还要这么复杂,也有它存在的道理,所以我们写程序也一样,符合SOA的理念,你的程序的健壮性、可扩展性、可维护性会更强一些,虽然编码设计的工作量是大了很多。
附简易图如下: 你想购买牛B手机,不能直接到仓库里去拿,那很容易被警察抓走了,怀疑你是偷手机。
总结:
并不是把好的理念讲得云里雾里是水平,要讲得很简单连门外汉父母都能听懂,这就是大师的水平了,其实很多人的手机都是能把手机自己给删除了,其实这样的程序并不是运行性能差、开发效率低,是属于不按套路出牌的那种,并不见得SOA了开发效率就提高了,很可能是开发的工作量更大了、代码的量也更大了,亲身体会感言。
来杭州已经第2个年头了,还在宁波工作时有一年春节花了3个月时间,把所有的程序都调整为符合SOA的理念,感觉不错,有道理,看着也舒服,后来维护改进也方便了。其实由于历史原因等,很多公司的程序并不能严格符合SOA的理念的,理论总是理想化的,实践是残酷的,还是那句话能抓老鼠就是好猫。
忽悠技术人员,你可以用云里雾里,忽悠其他行业的大老板,你就得给他讲出他能理解的道理来,这样人家才肯出钱,你把他忽悠得云里雾里,只有少数老板会乱烧钱,多数都不认可的,用通俗的道理,让他认可你容易接到大订单。
导读:
疯狂.NET架构通用权限后台管理工具演示版2.0下载
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 如何控制用户显示的菜单权限
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 在页面中的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 操作权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 角色权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 数据集权限
我也在不断反省自己,不管我说得对错,总会有一大批人来打击我,原因很简单“我自傲、我自大”。你其实什么人都可以得罪,但是千万不能得罪小人,小人会咬着你不放,例如会有一大堆无聊的小人,会过来回复你,言语上打击你,心灵上打击、若你没有一定的心理承受能力,你都会想跳楼自杀,还好我有一个坚强的心,大家都谦虚了,都什么都不讲,也不自信了,真的也就没意思了,程序员世界也会少几分有趣、少几分娱乐。演戏的都是戏子,娱乐大家的,写文章的其实也差不多的,娱乐大家。
其实在早在上个世纪末,1999年就听别人忽悠xml有多少神奇,当时就搞不明白XML到底能怎么样?后来几年还买了很多书,Java的.NET的,看得也云里雾里,到底这玩意儿能干啥?现在想想啊,炒作还真能忽悠人啊,至少忽悠了5年以上都有了,后来才明白,xml文件,就类似配置文件,你可以用程序读写配置文件,用起来方便一些,可以用.net读取,也可以用java读取,有相对标准的格式而已,也真的不是什么万能的东西,做程序的,还是得照样写程序,不是用了XML就能怎么样了。
正文:
前几年别人忽悠SOA的概念,我也听得云里雾里,平时自己想研究的东西就很多,自己想写的程序也很多,平时手上的工作任务也很多,就根本没精力去研究新技术,我上周末走访了杭州的一家IT软件开发团队,他们虽然用的是ASP.NET但是写程序的思维完全是PHP、ASP那套思路,连服务器控件都用得比较少,而且还是有接近10个人的开发队伍,开发了好几年,你说他们虽然用了ASP.NET但是还在用ASP的思维在写程序,所以我觉得并不是人人什么都懂大家的精力很多时候都是有限的。
SOA是什么?虽然我个人已经理解了SOA是什么,但是我还是想把自己的成果分享给那些不知道SOA到底是什么的朋友。我们打个比方,我去手机店购买手机,我是一个消费者,我想购买手机是一个需求,我可以去选择很多手机店,这些手机店就是服务的提供者,而且我们的接口是能对上,我不可能到服装店去购买手机吧?俗话讲的话,就是供需的接口需要对上。
手机店,有很多前台服务员,也有仓库保管员,我会向前台咨询手机的功能、性能、价格、款式等,前台是给我提供服务的,我们确定好手机后,我到收银台付款,前台会从仓库保管员那里提取手机,交给我。
这时候,我们可以想,手机是个模型,就是物品,手机自己是不会移动,不会有动作,他只是个物品,没有自己的控制动作,再讲俗点儿手机是不会把自己删除了、添加了、更新了。是由仓库保管员对手机进行操作的,我们也不是自己到手机店的仓库里直接把手机拿过来了,是要通过 我购买手机- 前台服务员 - 仓库保管员 - 手机,的顺序最终拿到了手机。
写程序也跟购买手机的流程相似,你直接到仓库去拿手机,是最简单,工作量最少,最直接见效的,但是这个属于不按套路出牌,不按规矩来的行为。为什么购买手机的流程还要这么复杂,也有它存在的道理,所以我们写程序也一样,符合SOA的理念,你的程序的健壮性、可扩展性、可维护性会更强一些,虽然编码设计的工作量是大了很多。
附简易图如下: 你想购买牛B手机,不能直接到仓库里去拿,那很容易被警察抓走了,怀疑你是偷手机。
总结:
并不是把好的理念讲得云里雾里是水平,要讲得很简单连门外汉父母都能听懂,这就是大师的水平了,其实很多人的手机都是能把手机自己给删除了,其实这样的程序并不是运行性能差、开发效率低,是属于不按套路出牌的那种,并不见得SOA了开发效率就提高了,很可能是开发的工作量更大了、代码的量也更大了,亲身体会感言。
来杭州已经第2个年头了,还在宁波工作时有一年春节花了3个月时间,把所有的程序都调整为符合SOA的理念,感觉不错,有道理,看着也舒服,后来维护改进也方便了。其实由于历史原因等,很多公司的程序并不能严格符合SOA的理念的,理论总是理想化的,实践是残酷的,还是那句话能抓老鼠就是好猫。
忽悠技术人员,你可以用云里雾里,忽悠其他行业的大老板,你就得给他讲出他能理解的道理来,这样人家才肯出钱,你把他忽悠得云里雾里,只有少数老板会乱烧钱,多数都不认可的,用通俗的道理,让他认可你容易接到大订单。
导读:
疯狂.NET架构通用权限后台管理工具演示版2.0下载
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 如何控制用户显示的菜单权限
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 在页面中的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 操作权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 角色权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 数据集权限
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。