MVC3+EF4.1学习系列(八)-----利用Repository and Unit of Work重构项目
文章索引和简介
项目最基础的东西已经结束了,但是现在我们的项目还不健全 不利于测试 重复性代码多 层与层之间耦合性高 不利于扩展等问题.今天的这章 主要就是解决这些问题的。再解决这些问题时,自己也产生了很多疑问,理解的也并不是很透彻 ,希望我的疑问能在这里得到解答~~
http://cyqdata.cn/cnblogs/article-detail-42563
小鸡和代码重构[1]:看代码重构感想
最近在看代码重构,感觉很有意思所以想记录下,坐在去公司的公交车上,眯着眼睛想着最近一些时间关于自己与代码重构的一些故事。
希望看完自己的笔记之后,你对代码重构有新的认识。1.软件是有生命的,所以你的代码也是有生命的。
从你开始写第一行代码开始的时候,就要想好以后怎么去维护她,直到你的BOSS说这个系统我们不要了,OK,那么你的代码这
http://cyqdata.cn/cnblogs/article-detail-41194
创业是一种重构
——记译言、东西网创始人赵嘉敏
记者/常政
不满足于按部就班的职场生涯和可预见的人生轨迹,34岁的Oracle工程师、美国南加州大学运筹学博士赵嘉敏想创业了却又不知道该做什么……千万别以为我在跟你讲述一则千篇一律的“宅男程序员跨越职业迷途”的故事。仅凭赵嘉敏对创业的理解便凸显出某种异化:他觉得创业并非是对过去的颠覆
http://cyqdata.cn/cnblogs/article-detail-40415
利用AOP重构代码
AOP是什么? AOP是OOP的延续,Aspect Oriented Programming的缩写,即面向方面编程。AOP是GoF设计模式的延续,设计模式追求的是调用者和被调用者之间的解耦,AOP也是这种目标的一 种实现。 案例:在应用程序中,我们经常会对某一段程序做异常处理,或者是把一个方法的调用所消耗的时间体现在日志中,如果我们对每个方法都写具体的实现,我想并不是一件轻松的事情。对
http://cyqdata.cn/cnblogs/article-detail-40003
养成重构的习惯有多重要
身为一个维护人员,我每天的工作就是研究产品的代码,修正各种bug,或者添加各种新功能。Kent Beck在《重构》一书中使用了一个隐喻,“坏味道(bad smell)”。用这个隐喻来形容我目前的处境,那就是我正在粪坑里挣扎。这里充斥着“Copy/Past/Modify”而来的代码。为了实现一个功能而随心所欲添加的成员变量。长达一两千行的函数。几万行的
http://cyqdata.cn/cnblogs/article-detail-39903
步步为营 .NET 代码重构学习笔记系列总结
历时一个多月的时间,代码重构系列终于写完了,代码的坏味道大家一看都不会陌生,绝对是在我们的编程中如影随形的,现在把相应的重构方法和设计模式总结出来,以供大家参考.因为不论是重构还是应用设计模式,一切的目的都是为了软件构架的“优雅”,而不是炫耀技术。
步步为营 .NET 代码重构学习笔记系列
步步为营 .NET 代码重构学习笔记 一、为何要代码重构
步步为营 .NET 代码
http://cyqdata.cn/cnblogs/article-detail-39417
步步为营 .NET 代码重构学习笔记 十四
一、Form Templlate Method(塑造模板函数) 动机(Motivation) 有一些subclasses,其中相应的某些函数以相同顺序执行类似的措施,但各措施实际上有所不同。将各个措施分别放进独立函数中,并保持它们都有相同的签名式(signature),于是原函数也就变得相同了。然后将原函数上移至baseclass。 示例 public abstract class Site
http://cyqdata.cn/cnblogs/article-detail-39382
步步为营 .NET 代码重构学习笔记 十三
一、Replace Exception with Test(以测试取代异常) 动机(Motivation) 面对一个[调用者可预先加以检查]的条件,你抛出了一个异常。修改调用者,使它在调用函数之前先做检查。 示例 private Dictionary<int, string> _values;
public double GetValueFor
http://cyqdata.cn/cnblogs/article-detail-39304
步步为营 .NET 代码重构学习笔记 十二
步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一、为何要代码重构 步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method) 步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method) 步步为营 .NET 代码重构学习笔记 四、临时变量(Temporary Variable) 步步为营 .NET 代
http://cyqdata.cn/cnblogs/article-detail-38960
步步为营 .NET 代码重构学习 十一
步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一、为何要代码重构 步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method) 步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method) 步步为营 .NET 代码重构学习笔记 四、临时变量(Temporary Variable) 步步为营 .NET 代码重构学习
http://cyqdata.cn/cnblogs/article-detail-38908
步步为营 .NET 代码重构学习笔记 十
步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一、为何要代码重构 步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method) 步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method) 步步为营 .NET 代码重构学习笔记 四、临时变量(Temporary Variable) 步步为营 .NET 代码重构学习
http://cyqdata.cn/cnblogs/article-detail-38820
步步为营 .NET 代码重构学习笔记 九
步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一、为何要代码重构 步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method) 步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method) 步步为营 .NET 代码重构学习笔记 四、临时变量(Temporary Variable) 步步为营 .NET 代码重构学习
http://cyqdata.cn/cnblogs/article-detail-38684
步步为营 .NET 代码重构学习笔记 七
一、Introduce Foreign Method(引入外加函数) 动机(Motivation) 在client class 中建立一个函数,并以一个server class实体作为第一引数(argument)。 示例 DateTime newStart = DateTime.Now.AddDays(1);
改为
public Date
http://cyqdata.cn/cnblogs/article-detail-38600
重构之美之一方法的长度
我曾经在一次演讲中,问过听众这样一个问题:“一个方法的理想行数最多不超过多少行?”如果问一千个人,或许会有一千条答案吧。
这是一个见仁见智的问题。在《软件开发沉思录》一书中,ThoughtWorks的技术负责人Jeff Bay认为:“一个常见的原则是将方法的行数控制在5行之内……”很多人对此感到不可思议。窃以为,关键不
http://cyqdata.cn/cnblogs/article-detail-38548
重构之美之一引入工厂方法支持扩展
在开发框架时,若要支持扩展性,引入工厂方法或许会成为神来之笔。例如,在QueryWrapper类的addResource()方法中,需要创建一个IndexWriter对象。
public class QueryWrapper { public final void addResource(RequestContext context) { log(”Add
http://cyqdata.cn/cnblogs/article-detail-38493
重构之美之一利用多态重构为带参方法
我在阅读遗留代码时,经常发现存在这样一种情形。在一个类中存在两个方法,它们做了相似的工作,区别仅在于方法内部某些对象的类型。例如:
public class WorkSheet{ private void fillHeader() { Header header = createHeader(); for (String title:h
http://cyqdata.cn/cnblogs/article-detail-38313
重构之美之一避免复制与粘贴
在开发过程中,当你发现代码可以Copy-paste时,就意味着代码出现了重复。这是一种典型的反模式。William J.Brown等在著作AntiPatterns-Refactoring Software,Architecture, and Projects in Crisis(即《反模式——危机中软件、架构和项目的重构》)中认为这种形式的复用让开发的代码行数量虚假地增加,
http://cyqdata.cn/cnblogs/article-detail-38247
步步为营 .NET 代码重构学习笔记 五、移动函数和移动值域(Move Method And Move Field)
Move Method 概述 程序中,有个函数与其所驻class之外的另一个class进行更多交流,调用后者或被后者调用 动机(Motivation) 如果一个class有太多行为,或如果一个class与另一个class有太多合作而形成高度耦合(highly coupled),我们就会搬移函数。通过这种手段,我们可以使系统中的classes更简单,这些classes最终也将更干净利落地实现
http://cyqdata.cn/cnblogs/article-detail-37996
步步为营 .NET 代码重构学习笔记 四、分解函数和替换算法(Replace Method And Substitute Algorithm)
Replace Method with Method Object 概述 将这个函数放进一个单独对象中,如此一来局部变量就成了对象内的值域(field),然后你可以在同一个对象中将这个大型函数分解为数个小型函数. 动机(Motivation) 小型函数优美动人,只要将相对独立的代码从大型函数中提炼出来,就可以大在提高代码的可读性. 示例 public int Gamma(
http://cyqdata.cn/cnblogs/article-detail-37994
软件开发-重构
重构是对软件内部结构的一种调整,目的是在不改变软件之可察性前提下,提高其可理解性,降低其修改成本。关于重构的至理明言如下:
任何一个傻瓜都能写出计算器可以理解的代码,唯有写出人类容易理解的代码,才是优秀的程序员;
事不过三,三则重构;
当你接获bug提报,请先撰写一个单元测试来揭发这个bug;
当你感觉需要撰写注释,请先尝试重构,试着让所有的注释变得多余;
当你发现自己需要为程序增加一个特性,
http://cyqdata.cn/cnblogs/article-detail-37634