IT技术博客

IT技术博客,精选各种精华文章供您阅读,是您学习各种IT技术的博客优选之地

步步为营 .NET 代码重构学习笔记 五、移动函数和移动值域(Move Method And Move Field)

Move Method 概述 程序中,有个函数与其所驻class之外的另一个class进行更多交流,调用后者或被后者调用 动机(Motivation) 如果一个class有太多行为,或如果一个class与另一个class有太多合作而形成高度耦合(highly coupled),我们就会搬移函数。通过这种手段,我们可以使系统中的classes更简单,这些classes最终也将更干净利落地实现

QWrap Selector解密之三:matchSelector

QWrap Selector解密之三:matchSelectorw3c的selector-api2标准已经提供了matchSelector的相关条文:http://dev.w3.org/2006/webapi/selectors-api2/#matchtesting module dom { [Supplemental] interface Element { bool

步步为营 .NET 代码重构学习笔记 四、分解函数和替换算法(Replace Method And Substitute Algorithm)

Replace Method with Method Object 概述 将这个函数放进一个单独对象中,如此一来局部变量就成了对象内的值域(field),然后你可以在同一个对象中将这个大型函数分解为数个小型函数. 动机(Motivation) 小型函数优美动人,只要将相对独立的代码从大型函数中提炼出来,就可以大在提高代码的可读性. 示例 public int Gamma(

奔三了,悲催的IT职业生涯仍然没找到方向

今天看到朋友QQ签名是:没有目标注定不会有成就。 想到自己这么多年的IT打工经历不禁怅然若失 惆怅不已,自己正是没有目标才白混了这么多年。   回想从1998年接触电脑,2000年开始喜欢做个人主页那时候的个人主页主要是以炫耀JS为主,找几张自觉酷酷的图片写几句外加一堆JS特效就堆砌成一个个静态页面了。不记得哪年起有了网页三剑客,于是学了点FLASH更是迫不及待地应用到自己个人主页上

我也要学C语言-第五章:编码(1)-"补码"

原码:     因为CPU只能做加法,于是人们想到了用这样的办法来实现减法: 1 - 1 = 1 + (-1)这样的话:二进制就是(00000001)原 + (10000001)原 = (10000010)原 = -2 /*原码的二进制最高位0表示正,1表示负*/   这样做显然结果是不正确的。不正确的原因是在进行加减运算时需要同时考虑数的符号和幅值这两个因素!!!而且,这样做还会带来两个0的

aria初探(一)

之前在学习和工作当中碰到的一些有关无障碍的学习心得,比较杂,做一下小结。   (1)tabIndex:   当使用键盘时,tabindex是个关键因素,它用来定位html元素。        tabindex有三个值:0 ,-1, 以及X(X里32767是界点,稍后说明)     &nbs

WP7 Isolated Storage详解(5)-通过XmlSerializer读写XML文件

首先创建一个Windows Phone 7项目,然后在MainPage.xaml.cs(或其他页面文件)中引入命名空间: using System.Xml; using System.Xml.Serialization; using System.IO.IsolatedStorage; using System.IO; 提示:你需要在项目中添加System.Xml.Serialization引用。

打造轻量级的实体类数据容器

    这里有三个关键词:轻量级,实体类,数据容器,还有一个潜在的关键词:通用。这几个名词之间有什么联系呢?     一般来说,操作实体类往往伴随着一个实体类集合,而这些集合就是实体类的容器,在这里我将“容器”视作一个比集合更广泛的概念,例如Entity Framework做了一个重量级的容器ObjectConte

《.NET4.0 面向对象编程漫谈》读书笔记 ——第10章 异步编程模式

第10章 异步编程模式 【摘要】:异步编程充分利用多线程技术带来的好处,而不需要程序员了解多线程开发中的复杂细节。本章讲述了基于IAsyncResult的异步模式、基于事件的异步模式。   第1节    程序的同步执行和异步执行 1、同步概念:若在代码中调用了一个方法,需要等待此方法所有的代码执行完毕之后,才能回到原来的地方执行下一行代码,这种程序运行方式称

【5月28日.广州】Windows Phone 7技术沙龙邀请函

Windows Phone 7技术沙龙 尊敬的各位同仁:  

《inside the cpp object model》 阶段性阅读总结(4)

第四章 函数的语义 章前阅读 c++支持,静态,非静态函数成员,虚函数,不同的函数调用,会产生不同的效果。 第一节 不同种类的成员调用 非静态成员函数。在挑选函数实例的时候,是没有花费的,这个是通过内部的转换,将成员函数变为非成员函数而实现的。包括以下三步:参数表中添加this指针,函数体内成员变量增加this指针,重写函数为外部函数并进行名字分解。 名字分解。成员函数的名字被改为唯一

《模式——工程化实现及扩展》(设计模式C# 版)《桥模式 Bridge》——“自我检验"

转自:《模式——工程化实现及扩展》(设计模式C# 版) http://www.cnblogs.com/callwangxiang/   1、              项目中,依赖关系主线和旁支的关系如图所示,请根据本章介绍

项目安装包制作

以前没有动手做过安装包,所以第一次做还是费了不少劲,最近在网上也查看了很多资料,这里也想总结一下。 (1)新建安装项目setup1,填写名称和位置: (2)在解决方案中右键点击项目选择“视图->文件系统”: (3)选择应用程序文件夹,右键“添加->文件”,添加安装所需要的可执行文件、图片、dll文件等。 (4)在应用程序文件夹的文件

对一个估计撑不了多久的项目的抱怨

说明:此文为抱怨文。并不是项目毫无可取之处,只是先一发心中闷气,再回头慢慢总结。但不保证有下文。  项目概况 甲方:A公司 乙方:本人所在公司 (称B公司) 项目:X项目是A公司外包到B公司的电子商务项目。 人物:A公司M先生,X项目组,主管、G、Q、P成员   项目状况        X项目当

ActiveSupport 源码探索 -- aliasing

前言 ActiveSupport 是 Ruby on Rails 的主要模块之一。它通过 hack 一些 Ruby 的内建类来提供一些通用方法,它还自定义了一些有用的通用功能模块,如 memoize,callback等。研究 ActiveSupport,是因为它在 Rails 的诸多模块中相对底层,依赖较少,而且元编程技巧处处可见。作为第一篇文章,我这次选择分析 ActiveSupport的 al

深入剖析WCF的认证机制(2): 认证与凭证[下篇]

在《上篇》中,我们谈到了常用的认证方式:用户名/密码认证和Windows认证。在下篇中,我们着重来介绍另外一种重要的凭证类型:X.509证书,以及针对X.509证书的认证方式。不过为了让读者能够真正地全面地了解X.509证书,我们需要先了解一些关于非对称密码学的背景知识。 目录 一、非对称密码学(Asymmetric Cryptography)   &

原创:c#多线程读写锁

在c#中使用多线程同步是一个头痛的问题,比较经常用的是lock(object){}这种方法,但是这种方法在读多写少的时候比较浪费资源,当然c#也提供了一种读写锁,我这里只是提供一个原创读写锁的类的源代码,该类的主要目的是允许多个线程同时读,而仅允许一个线程写,而用lock是不论读写都只能一个线程运行的 有兴趣的可以看看讨论讨论,以下是源代码: public sealed class Mu

编程艺术之美,代码也玩穿越

在印刷行业信息化实践中,总是能遇到各种极富挑战性的需求,将我们推向疯癫的边缘。 最近要求实现版位预估算法,按照实际的组版规则进行计算。接过分析建模,抽象出如下的算法模型:    /*     *计算是否存在值X1,X2,...,Xm,使等式成立 m*X1+(m-1)*X2+(m-3)*X3+...+Xm=E     *

《项目百态:深入理解软件项目行为模式》:一本写作比较随便的项目经验集

这本书是人民邮电的图灵IT人文系列之一。今年3月出的。上amazon.com上查,英文原版是2008年出的。是六位作者拼出来的。其中两位作者是IT名著《人件》的作者。 书中列举了86个软件项目相关的所谓模式。我感觉都是经验之谈。非常值得IT从业人员阅读。不过也有非常明显的缺陷。就是严重缺乏归类整理的工作。书中的86个模式,涉及到软件开发项目的方方面面,维度、粒度有许多差异,甚至模式之间的行文风格都

软件体系结构:二维分层、真正的模块化和疯狂的“统一开放平台”

先引出几个问题。首先,对于分层,如何来分层?仅仅纵向分层是否够用了?什么是“二维分层”呢?一提到模块化,很多人会说“我们的系统就是基于模块化来构建”,稍微一多问,要么和分层差不多,要么就说我们是基于一个又一个的dll文件来实现模块化的,那应该怎样才算模块化呢?“统一开放平台”怎么回事? 关于“二维分层”