10 子夜__

尚未进行身份认证

听着民谣,喝着啤酒。但求随风,无谓空实。

等级
博文 19
排名 8w+

[重构]Primitive Obsession

PrimitiveObsession(基本类型偏执)偏执这个词实在是有点难懂。百度百科传送门定义:Coding的时候总喜欢用基本类型,而不喜欢用对象。影响:增加扩展和修改的复杂性。来看两个函数。Primitive:publicvoidMethod(stringid,stringname,stringaddress){

2012-11-29 21:20:54

[重构]Long Method

Long Method(过长函数)定义:函数太长,逻辑混乱,临时变量太多等。。影响:可读性差,引起其它坏味道导致维护成本高。目标:分解。增强可读性。有个很有趣的例子:问:要把大象装冰箱里分几步?答:分三步。。这个其实很有条理性,想要完成一件事情,把这件事情分成一小步一小步去做。为什么呢?“不积跬步,难以至千里。”好像有点歪楼了。。下面看来看看这个函数。

2012-10-22 19:09:19

[重构]Feature Envy

Feature Envy(依恋情结)官方的:函数对某个类的兴趣高过对自己所处类的兴趣。影响:数据和行为不在一处,修改不可控。目标:将数据和操作数据的行为包装在一起。Demo:媒婆、一小伙、一小姑娘场景一:函数的全部数据都来自于另外一个类媒婆、小伙先出场publicclassBoy{publicstringName{

2012-09-02 16:47:18

[重构]Duplicated code

DuplicatedCode(重复代码)影响:程序中到处都是相同结构的表达式。若想修改此表达式,需要修改多个地方。目标:相同表达式合并成一起,避免多处修改。降低修改成本。下面是常见的几种。如果有没涉及到的DuplicatedCode欢迎补充。1、同一个类有相同的表达式。Demo:一个DepartmentControllerpublicclass

2012-08-29 18:31:33

[IOC] StructureMap的疑惑。

大家好。  StructureMap的一些简单应用(基本用法、自动装配、生命周期、延迟加载)。Q:什么是IoC  IoC:InversionofControl。中文名:控制反转。是一种思想、一种模式。控制权被反转。例子:企业经理有一批商品要存入仓库,但是现在没有仓库,所以需要找一个仓库,然后将商品存入。场景A:经理去找一座仓库。=>找仓库的控制权一直

2012-06-12 01:34:14

那些年我不知道的TDD(三)

大家好:上一篇我剩下的To-Do-List:猜测数字输入验证生成答案输入次数输出猜测结果今天争取全部搞定。现在我们Guesser、生成答案、输入验证都有了。把它们组装成一起摇身一变成一个Game!用一个类把这些职责单一的小模块组合起来。我暂且称它为GameManager.分析剩下的需求。(1)输入6次GameOver.(2)输入合法数

2012-05-26 12:11:08

那些年我不知道的TDD(二)

大家好: 今天的TDD练习又开始了。回头看看上一次留下的任务。To-Do-List:猜测数字输入验证生成答案输入次数输出猜测结果今天我们把输入验证和随机生成答案搞定。新建ValidationTest文件。分析需求:(1)不重复。(2)4位(3)数字。(4)不为空。按照我们分析出来的4个明确点我们开始写CASE。

2012-05-26 11:18:28

那些年我不知道的TDD(一)

TDD今儿接到一需求如下:比如一个给定的数字2975,让你去猜。6次机会。如果第一次输入2509,系统会提示1A2B:其中数字“2”位置猜对&&数字也猜对。称为1A,而“9”和“5”数字猜对了但是位置没有猜对。称为2B。。如果输入2975那么就是4个数字都猜对了并且位置也是对的系统提示4A0B。民间俗称猜数字游戏:百度百科传送门:http://baike.baidu.com/view/3

2012-05-26 11:17:53

NHibernate Inverse

什么是inverse?通过inverse的设置来决定是由哪端来维护对象之间的关系的  双向many-to-oneEmployee.hbm.xml<hibernate-mappingxmlns="urn:nhibernate-mapping-2.2"namespace="ZiyeNhi.Entities"assembly="ZiyeNhi.

2012-03-17 16:26:03

动态菜单(三)

同学们看了菜单一菜单二有没有什么特殊的感觉。是不是太简单了。   现在我们结合第一篇文章来做个练习。   没事的时候会经常找一些好看的UI,留着自己以后做项目的时候用。比如easyui、EXTJS啊这些。无意中发现了一个国产的框架。那么今天咱也支持国产一把。   传送门DWZ框架。感觉还不错上个图大家看看。         效果还

2011-05-09 10:18:00

动态菜单(二)

这天都能感冒,悲剧。上次写到一半一个Ctrl+C浏览器崩溃了。沉重的被打击了。。  上次我们说的是输出html组成动态菜单。同学们有没有改成递归的形式?没有改的同学就是不喜欢学习的同学。  这次我们来个Repeater嵌套Repeater组成的二级菜单.典型的应用一个Iframe,左边是菜单,右边是内容。有上下LOGO先上个图看看效果.  还算可以吧这东西做简单的系统可

2011-05-09 01:14:00

动态菜单(一)

相信大家做网页的时候都会用到菜单。最近在CSDN上答题的时候,问动态菜单的还是比较多。这次就整3个动态菜单给同学们玩玩。方便刚入门的小鸟速度掌握。  正所谓天下文章大家抄,抄来抄去有提高.去百度一个JS+CSS菜单。CSS菜单  效果还算一般。我们把它抄袭下来以后留用.    先来看看HTML 导航菜单body,td,th{f

2011-05-08 23:00:00

Spring.NET 解析 WebService

今天又继续对Spring进行学习,其中一环便是利用Spring来解耦VS的WebService。先让大家看看VS创建的WebService项目。[WebService]publicclassHelloWorldService{[WebMethod]publicstringHelloWorld(){

2011-02-20 14:25:00

jQgrid....20110124

快过年了,给大家拜个早年.做了个jQgrid的DEMO。哈哈。  主要运用MVC和jQgrid(后期会加上Nhibernate以及spring.Net)环境 W-XPSP3+VS2008SP1+Oracle.准备工作:下载:1、jquery.jqGrid-3.8.1.zip;2、jquery-ui-1.8.6.custom2.zip;(这个样式可随便下

2011-01-24 16:12:00

jqGrid 属性说明

<br/>1.0colModel:  要呈现字段的属性设置<br/>1.1align:定义数据相对单元格的对齐方式.string left<br/>1.2datefmt:日期格式,   string Y-m-d<br/>1.3editable:定义字段是否可编辑boolean false<br/>1.4defval:搜索字段的默认值,(只用于自定义搜索)string empty<br/>1.5edittype:该字段控件类型

2010-12-27 17:47:00

.net的性能优化

前段时间,由于学习网的访问速度比较慢,所以研究了下如何优化asp.net的程序,在网上查了很多资料,最后总结了以下经验:一、SqlDataRead和Dataset的选择Sqldataread优点:读取数据非常快。如果对返回的数据不需做大量处理的情况下,建议使用SqlDataReader,其性能要比datset好很多。缺点:直到数据读完才可close掉于数据库的连接(SqlDataReader读数据是快速向前的。SqlDataReader类提供了一种读取从SQLServer数据库检索的只进数据流的

2010-11-17 15:32:00

ASP.NET缓存

一:ASP.NET中缓存分类,共3种页面输出缓存、页面片段缓存、页面数据缓存二:页面输出缓存     可以使用页面输出缓存来提高WEB站点的性能。可以缓存页面的输出并且把缓存起来的拷贝发送出去以响应浏览器的请求,而不是每次在请求页面时执行页面。    例:你的站点包括一个从数据库表检索出来的显示产品信息的页面。默认情况下,每次用户访问产品页面时,都必须执行该页面并且从数据库检索数据。但如果启用页面输出缓存,这个页面就只执行一次,并且只从数据库检索一次数据。这就意味着减轻了WEB应用程序和数据库服务

2010-11-17 15:23:00

IEnumerable接口

     在LINQ中,数据源和查询结果实际上都是IEnumerable或IQueryable类型对象,所以可以通过使用普通对象的形式(调用方法、使用属性等)对数据源进行查询或使用查询结果数据。IEnumerable接口IEnumerable泛型接口支持在制定数据集合上进行迭代操作。它定义了一组扩展方法,用来对数据集合中的元素进行遍历、过滤、排序、搜索等操作。在LINQ中,数据源实际上是实现了接口IEnumerable的类,通过select子句返回的查询结果页是一个实现了IEnumerable的类。在.N

2010-11-16 10:12:00

Textbox选择JS日历

下午整理资料发现一个JS日历<!--//====================================================参数设定部分=======================================================varbMoveable=true; //设置日历是否可以拖动var_VersionInfo="Versi

2010-06-13 01:53:00
奖章
  • 红花
    红花
    子板块内专家分月排名榜第一
  • 黄花
    黄花
    子板块内专家分月排名榜第二
  • 蓝花
    蓝花
    子板块内专家分月排名榜第三
  • 金牌
    金牌
    总榜技术专家分月排行榜第一
  • 银牌
    银牌
    总榜技术专家分月排行榜第二
  • 状元
    状元
    总榜技术专家分年内排名榜第一
  • 微软mvp
    微软mvp
    授予通过CSDN博客平台积极分享微软相关技术知识和专业技能,并做出突出贡献的用户。