1.数据

生命周期长
需要数据迁移
体量大
需要设计合理的数据库模型
高并发
用户数量多、使用频率高

2.交互

界面种类多
需要多种表现形式
界面不花哨
主要突出分析结果
提示信息准确
需要仔细分析业务场景

3.业务逻辑

复杂
需要考虑很多特殊情况
易变
需要扩展性好的设计

4.集成

系统数量多
需要统一规划接口
技术种类多
需要跨平台技术来集成

1.职责分配

定义职责
使用接口描述
实现职责
实现接口的组件
履行职责
指定组件,调用接口
好处
分离关注点,可以有多个实现相互替换
缺点
变化会引发级联修改,更多的沟通成本

2.组织业务逻辑

领域模型
根据业务建立程序模型,独立描述核心业务
事务脚本
用户的一个业务场景,对应的一套业务操作序列,调用领域模型的接口

3.设计数据存储

行数据入口
表数据入口
数据映射器

4.设计交互方式

两步视图
领域数据 -> 表现数据 -> Html结果
控制器
接收请求 -> 调用业务逻辑 -> 做出响应

5.考虑分布策略

进程内
通信速度最快
跨进程
慢一个数量级
跨机器
再慢一个数量级

6.设计并发策略

乐观锁
冲突少;只在更新时加锁,检测到冲突就处理(合并、覆盖、舍弃)
悲观锁
冲突多;每次访问就加锁,只允许一个人操作

7.会话信息存储策略

少量数据,安全要求不高
客户端:Cookie / Url / HiddenField【小数据量、跨少量请求、不安全】
中量数据
服务器内存
服务器集群
第三方服务:AspNetStateServer / SqlServer

1.“我并不知道所有的答案,也不知道你的问题。应该用这些建议去推动你思考,而不是代替你去思考。最终决策的应该是你,最终享受乐趣或承担痛苦的也是你。”