架构师培训笔记:

模块、组件划分,组件封装,多线程考虑,防火墙考虑(如只能单向通过,在架构的时候就需要考虑清楚)

需求,领域,分析,设计,实施等模型

保持架构的健壮和稳定性,让架构适应变化

严重问题:如何解耦呢?

扩展性(也包括硬件扩展),灵活性,

软件性能

可维护性

可伸缩性

高内聚,低耦合

针对主要需求的(20%)花掉80%的时间

设计目标(11个)

必须识别那些容易变更的需求

JS框架:

JQuery

EXT(重量级)

RIA架构:

FLEX

Silverlight

分布式应用

Load balance

宏观架构,平台,软件,系统,软件等的架构

微观架构,框架架构,流程架构等

解耦:持久数据层,消息机制框架

架构方式:

自顶向下(熟练架构师)

自底向上(开发人员代码会跟着重构)

收费的 ANTS分析插件

架构注意一个Context类,负责应用程序的构建和管理

注意编译状态和运行时状态区别,架构时候特别注意

实体数据对象,数据原生对象, 领域对象经过拆分,组合,转换处理的

命名空间将系统的和不同dll的命名空间用空行分开

命名空间的分隔:公司/项目/模块/工程/命名空间

研究一下数据缓存机制,内存数据的持久化和内存数据的并发操作,

1, 内存数据被修改,但持久失败

2, 内存数据同时被两个或多个现成修改

3, 脏数据问题:甲线程修改了一条记录,乙线程取了被修改的数据返回给客户,甲线程持久操作,但失败,那乙读脏数据了。

抽象不应该依赖细节,细节要依赖抽象

针对接口/抽象编程

如果一些类不叫稳定,或者以后基本不变,也不会衍生多个不同实现的子类,则不要设计成抽象结构,这样显得画蛇添足了。

10万条订单存储在内存(缓存服务器)是个什么概念?

缓存服务器中命中率算法,淘汰掉什么样的数据?

那其他各种单据难道都要存于缓存?硬件开销,是否是良好的架构,该架构实用于什么样的一个平台应用环境?

WinForm UI控件在添加删除数据库时候,可在之前和之后分别执行BeginUpdate()EndUpdate()

大型系统的session架构设计

云计算框架架构设计

ServerFarm 集合

RTI    RT Control(实时控制中心)动态部署服务到ServerFarm

事务补偿

业务原生特点,领域模型

GRASP模式

O/RMapping 设计思路

按照业务原生整合表,业务实体代表业务实际数据对象

业务实体间维护关系,关系1对多,避免多对多关系

对于事务处理,交由数据库来处理

发起事务:组装成数据库事务抛给数据库处理,在数据库处理返回后再处理DOL层中的实体对象

对于静态数据(查询数据),采用缓存机制进行持久化对象缓存

对于动态数据(尤其是频率比较高),采用延时加载机制

双向ORMapping,写一套数据更新的SQL,当前段业务组件更新实体数据,实时更新到数据库中

原文地址:https://www.cnblogs.com/sinxsoft/p/2116936.html