|
|
摘要:名词化 : 名词容易管理分类, 列表, 编辑添加, 删除; 可用, 禁止开始, 停止, 继续复制, 粘帖, 发送查看状态Undo, 回滚范围 Scope哪些在范围内, 哪些在范围外共享/私用数据空间性能: IO, 集合(大量元素)如何同步集合?
阅读全文
摘要:前台UI和后台数据库之间传递参数, 用强类型好呢? 还是用弱类型好呢?强类型的好处:参数名称, 类型在代码中定义的很清楚, 前台和后台有一个成文的协议有IDE的帮助, 参数名字自动补全强类型的坏处:修改不方便, 至少要修改参数定义文件, 前台文件, 后台文件弱类型的好处和坏处和强类型正好相反,前台和后台之间的协议只是口头上的.不过, 可用单元测试来保证前台和后台遵守相同的参数协议
阅读全文
摘要:无状态对象用于处理逻辑, 而不是持有数据把数据从一个有状态对象处理后传输到另一个有状态对象属性和字段都是临时的, 不共享, 无需持久化使用时随时创建, 随时丢弃有状态对象持用数据共享需要持久化保持内部数据一致版本, 身份, 值比较, HashCode数据访问: 遍历, 查找, 排序数据变化事件
阅读全文
摘要:分清内部行为还是外部行为.如果某行为依赖的数据只在对象内部, 不依赖对象外部任何数据, 就是内部行为, 应该变成本对象的一个方法.反之就是外部行为, 应该放到其他类中.举例:保存Save: 这个行为把对象的数据保存到存储媒介中. 这是一个外部行为, 因为依赖于存储媒介,(比如文件).
阅读全文
摘要:用户思维中的对象和程序对象的映射 对象名称文本资源ID, 用于给用户一个可读的名称对象描述文本资源ID, 用于给用户一个可读的描述类型(程序使用)值<=>文本转换ToString(), FromString(str), 供用户编辑该对象的值; 用于文本序列化实体对象和数据库表.列的映射二次映射:用户思维和程序对象的映射, 接口和实现的映射
阅读全文
摘要:看到版上这么多人不厌其烦的讨论Singleton模式, 忍不住想说两句. 虽然Singleton用起来方便但负面作用也是很明显的.最大的两个副作用就是: Singleton隐藏了依赖, 在单元测试时无法动态替换. 如果单例对象启动很慢的话, 那单元测试就很费时了.模糊了'唯一性'的范围. Singleton宣称对象是单例, 却疏忽了一个前提, 那就是单例的范围. 我们说'唯一', 一定要指明是在那...
阅读全文
摘要:业务为核心, 用业务来驱动UI和底层实现. 一个UserCase包括: UI, UserAction, SystemAction, Exception
阅读全文
摘要:所谓编写软件, 就是把实现一种算法. 应该尽可能的抽象. 包括: 对输入要抽象 对输出要抽象 不要输出成文件, 要输出成流 对依赖要抽象 数据层平台 展现层平台
阅读全文
摘要:创建: 分配内存, 向操作系统请求资源(对象自己管理销毁时释放) 配置依赖: 与其他对象产生联系 使用 解除依赖 销毁 : 释放资源 对于纯粹的内存对象(不使用操作系统资源), 步骤4,5可以由垃圾回收器自动完成
阅读全文
摘要:首先必须为对象定义一个边界, 包括: 空间边界, 时间边界 在边界内的, 对象间互相传递引用. 如果要跨越边界, 则必须进行数据拷贝. 数据对象: 纯粹以交互为目的.特点:易复制, 可序列化, 结构简单, 可能有ID. 和它关联的对象也都是数据对象. 需要实现: Equals, HashCode, CompareTo, IComparable等方法或者接口.拷贝:分3种, 第一种, 完全拷贝, 所有数据包括ID等都复制一份.主要用于在不同数据边界间传输时调用. 第二种, 部分拷贝(或者内容拷贝).主要用于2个不同数据对象之间的拷贝, ID等身份信息不拷贝.第三种, 结构拷贝. 只拷贝内部对象的
阅读全文
摘要:科学指的是数据结构和算法, 计算理论 - 理论层面 技术主要包括: 编程语言, 操作系统等等具体的技术 - 技术层面 工程包括: 软件架构, 开发文档, 项目管理, 各种测试等等 - 管理层面 语录: 软件总有bug, 没有人知道会在什么地方; 软件总是会变化的, 但谁也不知道哪些地方会变化 没有人能够一次性写出没有bug的代码 写程序就是一个不停改错的过程. 那么, 首先, 在写程序之前,...
阅读全文
摘要:数据空间 计算机经常做的一件事情就是把数据从一个空间传输到另一个空间中去. 比如: 从硬盘到内存, 从内存到显存. 在内存中, 数据也经常从内核空间复制到用户空间, 从一个进程复制到另一进程. 那么首先要做的就是, 定义空间. 数据空间代表了数据的存储方式. 每个空间必须有唯一的地址. 映射 映射表示如何把数据从一个数据空间传输到另一个数据空间. 映射定义的是规则, 需要的参数是数据空间的地址....
阅读全文
摘要:Readable 可读性好, 包括: 命名规范, 注释详细 Testable 可以单独测试 Traceable 出问题后, 可以被追踪到, 需要做好: logging ==================================================== 如何让程序模块Traceable, 让开发者或者维护者知道该模块在整个系统...
阅读全文
摘要:Web将会更多使用SL, Flash来提高用户体验 和用户交互, 支持拖放, 绘图等 美观(透明, 渐变) 动画 视频
阅读全文
摘要:挑选数据源 from join 过滤结果集 where 分组 group by 聚合函数计算 比如max 过滤分组 having 计算所有表达式 排序 order by 挑选结果列 select
阅读全文
摘要:至少从如下角度考虑: 需求 变化 比如:把方法参数封装成类 以数据为中心 程序=数据+算法 数据, 代表了某种结果. 无论是中间结果还是最终结果, 都是用数据来表示和存储. 算法, 其最终结果也是某种格式的数据. 高内聚: 所有的方法都必须围绕对象的属性或者字段, 任何需要第3方组件的方法都不应该成为这个类的方法, 需要...
阅读全文
摘要:业务数据分析 是否持久化 读频率 高 普通 低 写频率 高 普通 低 安全性 是否需要验证, 加密 竞争条件 访问时是否需要加锁, 防止竞争条件 是否可配置
阅读全文
摘要:业务逻辑分类 查询逻辑从若干表得到结果集 可能join多个表 查询条件where可能非常复杂 列处理, 比如:列相加 行处理, 比如:排序, 分组, 合并 约束逻辑输入数据的约束 约束依赖, 比如 : 支出不能超过总收入, 总收入就是约束依赖 流程逻辑完成某个业务的步骤流程 流程上下文(当前哪个步骤, 各个步骤的临时数据) 步骤的前提 下一步骤的跳转条件 循环 事务 错误处理 可能的依赖关...
阅读全文
摘要:业务层 不考虑任何和UI相关的部分 不考虑任何和存储相关的部分 关注业务流程 关注组件和组件之间的依赖与合作 UI层 关注和用户交互 关注展现 考虑用户的Culture 数据访问层 关注性能
阅读全文
摘要:目标: 管理项目中的数据库脚本 需求: 脚本版本管理 维护脚本执行顺序 创建表 按表分类依次创建: Enum表, 比如: 所有国家代码表, 民族代码表. 这些表不依赖其他表 基本实体表, 比如 : 员工信息表. 这些表是基础的实体 其他表, 依赖以上表的其他表 创建每个表的顺序 用Create Table创建表 添加约束(自身的) 添加外键约束 插入静态初始数据(比如...
阅读全文
|