
没有最好的架构只有最合适的架构。循证架构是《Expert One-on-One J2EE Development without EJB》一书中推崇的架构思路用俺们的话说就是摸着石头过河找最适合自己的架构。俺现在soho大活不多小活不断。我的工作具备以下特点1 根本没摸清楚需求的时间。需求都是从原型到Demo到版本1到版本2探索出来的。经常需求变化非常大因此必须以敏捷方法为基础2 一般没多少数据需要存储顶多百万级3 需要极度的压榨开发效率。一个工作10天完成和20天完成那收益前者就是后者的两倍。在上面1-3驱动下俺摸索出的架构见下图myarch从下往上简单说说1 数据库db4o。谁用谁知道哈哈爽。什么ORMSQLDataSet统统是过眼云烟了。一切都是普通对象。数据库几乎是0设计。数据接入也非常非常的简单。2 Db4o之上得有一个逻辑层来应付需求变化。这一层主要就是各种实体对象需要良好的设计否则应付不了需求的变化。这一块我一般要设计比较完备的event体系便于后期修改与组合。3 服务层主要是RIA应用需要。如果是Winform程序不用这一层。4 UI逻辑层最开始没弄这一层最后鉴于在界面那一块太耗时间就加了这么一层。这一层主要是a) 对于单个控件将控件的常用操作逻辑封装成扩展方法例子 Winform程序中的Invoke方法使用起来很烦人涉及到多个线程还要判断多次 IsHandleCreated true经常忘记导致bug。于是需要将它封装成扩展方法。代码如下Codeb) 对于多个控件使用Mediator模式将多个控件之间的组合抽象出Mediator类方便重用。这一点我最开始是用户控件方式进行封装结果发现太不灵活最后改用Mediator再配合扩展方法开发速度biubiubiu的就上去了。5 UIHtml是万恶之源能不用就不用。可以选择的话我主要用Winform, FlexSL作为前端。纯Web开发是不碰了市面上做Web开发的太多不趟这个混水了。以上架构视项目而定。如果项目的数据部分比较关键我现在还是保守的在用关系数据库。虽然db4o已经那么多年了还是得保守一点用。如果能完全按上面五点去做那开发简直和在空中飞翔一样爽。btw. 如果一切都OO起来写程序真是享受象写诗一样……