随笔分类 - 重构
摘要:Hyper-V1:创建和管理虚拟机 Hyper-V2:向VM增加虚拟硬盘 Hyper-V3:虚拟机的配置 使用Hyper-V创建虚拟机 Hyper-v 安装CentOS 7 (其他虚拟机一样参考)
阅读全文
摘要:条件逻辑可能十分复杂 decompose conditional:将一个复杂的条件逻辑分成若干个小块。使得“分支逻辑”、“操作细节”分离 consolidate conditional expression:代码中多处测试有相同结果 consolidate duplicate conditional
阅读全文
摘要:doc 介绍 分类&&典型应用 中文文档 使用
阅读全文
摘要:原理 官网 doc cube介绍 安装 案例 企业级特性 Apache Kylin 1.5的新功能和架构改变 Java API 通过java代码对kylin进行cube build kylin从入门到实战:实际案例:创建project;添加数据源;创建model;创建cube;查询
阅读全文
摘要:DOC 参考链接 BsonValue和子类 BsonValue是一种代表BsonType的虚拟类。它是BsonType枚举类的凝聚子类。 ·可以使用public构造函数生成BsonValue子类 ·使用静态create函数生成 ·Use a static property of a subclass
阅读全文
摘要:相关链接 优点: 可以统一处理所有页面的异常,对所有需要返回json数据的异常,都用同样的方法throw new DVMException()。页面展示,controller的错误处理方式一样 节省编码时间,不用针对每一个controller编写错误json throw new DVMExcepti
阅读全文
摘要:对象应该直接访问其中的数据,还是通过访问函数来访问? 通常选择“直接访问”方式,任何时候进行这项重构(self encapsulate field)都是很简单的 replace value with object:将“哑”数据变成善表达的对象 change value to reference:有太
阅读全文
摘要:接口IIocHelper定义 实现IocHelper定义 单例模式获取IocHelper对象 Global.asax.cs的Application_Start()中使用: 其他类:
阅读全文
摘要:protected void Session_Start(object sender, EventArgs e) { #if DEBUG //debug 登陆默认设置 #endif } protected void Application_BeginRequest(object sender, EventA...
阅读全文
摘要:应用1:webconfig.cs中设置 应用二:Global.asax.cs ApiExceptionLogger.cs: logger:可以使用NLog实现
阅读全文
摘要:对象设计过程中,“决定把责任放在哪儿”,即使不是最重要的事儿,也是最重要的事情之一 move field=》move method简单的移动对象行为 类往往因为承担过多的责任而变得臃肿不堪。extract class 将一部分责任分离出去。 一个类变得太“不负责任”,inline class将其融入
阅读全文
摘要:1.注重设计概念,注意重用。 2.分阶段、及时的沟通。确保与业务需求的一致性。最小化避免需求理解的差异 3.邮件回复:给出确认、答复、处理进度、处理方式 立即回应:解决or如何解决or何时可以解决 重点:需求相关的,注重效率 跨部门沟通,注重结果。给出结果 4.大数据处理: 部分失败的问题:环节拆解
阅读全文
摘要:避免一个接口一个方法 接口太多,难以维护 需要以服务为边界,不要以数据库模型来定义边界 对于给出提示的废弃的方法,不要使用,应找出替代方法 不要使用using (var context = new FileManagerEntities()) 无法mock数据,不易单元测试 应从工厂中取数据 赋值优化 CopyTo() 类的继承 避免硬编码,多用抽象的方法、服务来实现 异常处理,...
阅读全文
摘要:问题源于:long method 包含太多信息,而信息又被函数错综复杂的逻辑掩盖,不易鉴别。 解决: extract method:一段代码提取出来,放进一个单独函数中 最大困难:处理局部遍历。临时变量则是其中一个主要的困难源头 解决: repalce temp with query:去掉所有可去掉
阅读全文
摘要:1.寻找引用点 盲目查找、替换,出错机会高。不同类中使用相同的函数名称;同一个类中使用名称相同、签名不同的函数。 直接删除旧的部分,让编译器帮你找出引用点。好处:编译器会找到所有引用点。 问题: 被删除部分在继承体系张声明不止一次,编译器也会被迷惑(覆写多次的函数)。如果在一个继承体系中,先利用文本
阅读全文
摘要:编写优良的测试程序,可以极大提高编程速度,即使不进行重构也一样。 自测试代码的价值: 程序员花时间最多的是用来调试:修复错误通常是比较快的,找出错误却是恶梦一场;当修好一个错误,总会有另一个错误出现,而且要花很久的时间才可以注意得到,又要花费大把时间去寻找 类应该包含自己的测试代码。每个类都应该有一
阅读全文
摘要:1.重复代码 一个以上地点看到相同的程序结构 同一个类的两个函数含有相同的表达式 两个互为兄弟的子类内含有相同表达式:分别提炼代码,推入超类。不完全相同的,将相似部分和差异部分分割 两个毫不相关的类:考虑方法提取、继承 2.过长函数 活的好,活的长 “间接层”所能带来的全部利益:解释能力、共享能力、
阅读全文
摘要:定义: 调整软件内部结构 前提:不改变软件可观察行为 易理解性,易修改 高效、受控的代码整理技术 作用: 改进软件设计: 修正程序的腐败 消除重复代码,便于未来修改 使软件更容易理解: 核心:准确说出我所要的 早期重构:擦掉窗户上的污垢,使你看的更远 帮助找到bug: 帮助更有效地写出强健的代码 提
阅读全文