【架构设计】之前传——变态的用户需求
咚咚咚咚,“架构设计”系列开始啦~~~《X战警》有前传《金刚狼》,我这里也些个前传——变态的用户需求。原型来源于我所做的项目。
宇宙真理:唯一不变的就是变化。
架构设计就是应对不断变化的变化,将变化带来的影响降至最低的。这也是GOF写《设计模式》的初衷。
下面就让我们来看看用户提出了哪些变态的需求:
1. 使用WPF来设计界面,并且有可能转移到Siverlight。哦,一个CS的,一个BS的,咋转换?重做么?需要想一想了。
2. 安装程序后,用户可以手动更改XAML,设置自己喜欢的样式。Oh, my god. 程序发布之后,用户还可以改界面?!CS啊,虽然Office提供 "黑、蓝“2种主题供我们选择,但从来没有让用户可以手动更改主题的细节的!!!这,真是个难题。
3. 支持多国语言,特别是阿拉伯。Do you know?阿拉伯界面可是从右到做的,天,我的布局咋办?
4. 支持智能升级。需要下载更新的dll和资源文件,并替换本地。挺麻烦的,你怎么知道哪些文件需要更新呢?
5. 支持各种分辨率,并且提供 横/竖 2种布局。Oh, my god. 你用过IPhone和黑莓么?如果你把手机正着拿,是横着的布局,如果倾斜90度,就自动切换到竖的布局。天啊,真能异想天开,自动 横竖 屏?难题难题。光布局都头大了……
6. 可插拔系统,支持模块切割,发布时根据用户买的协议进行模块分配。就是说,我们开发10个功能模块,A用户买了5个,就打包给他那5个模块;B用户买了10个,就打包给他10个。以后A用户有钱了,再买1个,就利用自动升级系统多给他一个模块。天~~够难为我们了。还有有复杂的权限管理呢。
7. 嵌入ArcGIS地图(Silverlight制作),并且给用户提供天气预报,路况信息,最短路径,GPS导航等等功能。这,用户是不是科幻片看多了?
8. 与公司其他各种平台交互,Php, J2EE等等,连接公司几乎所有的公共系统。额……这也太智能了吧?
9. 支持Atom等上网本,支持Windows 7 or Windows Mobile 7系统。支持是能支持,可未来谁知道啊……
10. 内嵌即时通讯平台,2个用户直接可以直接通过程序沟通。晕,不是有MSN嘛,搞什么啊。
11. 支持离线提交数据。也就是说,用户可能处于非连接状态,此时的操作,需要在连接之后自动传输给服务器处理。汗,这可需要同步了……
12. 支持文件存储信息和数据库存储信息,以及其他各种存储形式。汗,偶们的DAO,至少有2个了。
13. 大量的动画特效。这个,高难度。
14. 少数界面需要实现3D效果。3D?还没玩过呢。
15. 业务流程变化频繁,支持用户自定义流程。唉……频繁啊,什么时候工资也频繁变化一下。
其他细节还有一些,最主要的是,80%的功能就给我们不到1年的时间实现,天,不加班肯定做不完,业务上光数据库表都800多张……那个复杂啊……囧。
这用户的需求够变态吧?完全是科幻片嘛~~~虽然看起来很酷,可真正实现起来就不那么酷了……是苦!!!
咋办?如果是你,你该如何进行架构设计?