<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[nabila的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/nabila</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; nabila]]></copyright><item><title><![CDATA[使用Expression进行查询拼接]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/8137169</link><guid>https://blog.youkuaiyun.com/nabila/article/details/8137169</guid><author>nabila</author><pubDate>Thu, 01 Nov 2012 16:01:07 +0800</pubDate><description><![CDATA[当我们使用lambda表达式进行查询的时候，查询的条件能进行动态拼接么？
答案是可以

    public static class DynamicLinqExpressions
     {
 
         public static Expression> True() { return f => true; }
         public static Expression]]></description><category></category></item><item><title><![CDATA[C#中的泛型，与java。C++中泛型的区别]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/8133245</link><guid>https://blog.youkuaiyun.com/nabila/article/details/8133245</guid><author>nabila</author><pubDate>Wed, 31 Oct 2012 16:43:58 +0800</pubDate><description><![CDATA[原著 ：Bill Venners、Bruce Eckel  2004.2.26
原文 ：http://www.artima.com/intv/generics.html 
翻译 ：lover_P

[人物介绍]

    Anders Hejlsberg ， 微软著名工程师，带领他的小组设计了C#（读作：C-Sharp）程序设计语言。Hejlsberg第一次登上软件界历史舞台是在80年]]></description><category></category></item><item><title><![CDATA[XAML综述]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/8078177</link><guid>https://blog.youkuaiyun.com/nabila/article/details/8078177</guid><author>nabila</author><pubDate>Tue, 16 Oct 2012 17:35:38 +0800</pubDate><description><![CDATA[XAML 简化了为 .NET Framework 编程模型创建 UI 的过程。您可以在声明性 XAML 标记中创建可见的 UI 元素，然后使用代码隐藏文件（通过分部类定义与标记相连接）将 UI 定义与运行时逻辑相分离。在 XAML 中混合代码和标记的功能很重要，因为 XML 本身是声明性的，不会为流控制真正建议一个模型。基于 XML 的声明性语言非常直观，可以为用户（尤其是具有 Web 设计和技术]]></description><category></category></item><item><title><![CDATA[精通Javascript 之 继承]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7951792</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7951792</guid><author>nabila</author><pubDate>Thu, 06 Sep 2012 17:22:42 +0800</pubDate><description><![CDATA[原型式继承
 原型式继承类似于一种单继承，它利用prototype属性，prototype可以整个复制一个对象，但是它不会从其他原型或者构造函数中继承属性，而属性都是从实际对象那里继承过来的。
        //创建Person的构造函数
         function Person(name) {
             this.name = name;
         }]]></description><category></category></item><item><title><![CDATA[精通Javascript 之 上下文对象]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7950059</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7950059</guid><author>nabila</author><pubDate>Thu, 06 Sep 2012 11:27:45 +0800</pubDate><description><![CDATA[理解上下文对象是理解JS面向对象的基础。上下文对象是通过this变量体现的，这个变量永远指向当前代码所处的对象中，全局变量其实是window对象的属性。看一个上下文对象操作的简单的例子：//*********************************************************
 //在上下文对象内使用函数并将其上下文对象切换为另一个变量
 //*************]]></description><category></category></item><item><title><![CDATA[精通Javascript 之 作用域和闭包]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7950043</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7950043</guid><author>nabila</author><pubDate>Thu, 06 Sep 2012 11:26:21 +0800</pubDate><description><![CDATA[JS里作用域是由函数划分的，而不是由块（while、if和for）划分。函数可以直接读取全局变量，但是外部无法直接访问函数内部的变量。
闭包的意思是内层的函数可以引用存在于包围它的函数内的变量，即使外层函数的执行已经终止。闭包之于JS是非常重要的概念。
假设说有这么一个例子：


function f1(){
 　　　　n=999;//声明了一个全局变量
 　　}
 　　f1();]]></description><category></category></item><item><title><![CDATA[精通Javascript 之 函数重载]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7950039</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7950039</guid><author>nabila</author><pubDate>Thu, 06 Sep 2012 11:24:18 +0800</pubDate><description><![CDATA[重载是面向对象中常用的功能。虽然JS不直接支持函数重载，但是可以通过很多方式来实现函数重载。JS的每个函数都带有一个仅在这个函数范围内作用的变量称为参数argument，它是一个包含所有传给函数的参数的维数组，它并非真正意义上的数组，它不能被修改，但可以访问其中的元素及属性。
通过下面这个例子来直观的了解一下：

    
         //发送一条消息的函数
         func]]></description><category></category></item><item><title><![CDATA[精通Javascript之引用]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7950020</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7950020</guid><author>nabila</author><pubDate>Thu, 06 Sep 2012 11:23:12 +0800</pubDate><description><![CDATA[精通Javascript这本书涵盖了JS的基本概念和通用方法，有时间的话学习一下还是很不错的。
先来看一下JS的引用。总体来说javascript引用的特点和C#的类似。具体值像int这样的是没有引用概念的，引用是作用在object、Array这种数据类型上。有兴趣的可以执行一下下面的代码看看结果：    
         var item = 1;
         var itemRef]]></description><category></category></item><item><title><![CDATA[Factory模式]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7904196</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7904196</guid><author>nabila</author><pubDate>Fri, 24 Aug 2012 15:28:36 +0800</pubDate><description><![CDATA[Factory模式解决了一个什么问题呢？
所谓设计模式是在遵循五大原则的情况下总结出来的编程经验。在不同的编程经验下对设计模式的理解总会有所不同。
Factory模式降低了类对于具体类的依赖，遵循了依赖倒置原则，同时也符合了开放封闭原则。而且如果这个具体类是高度易变的情况下，使用factory模式还是非常有用的。
有例为证：
类SomeApp依赖于接口Shape。类SomeApp完全通过接]]></description><category></category></item><item><title><![CDATA[Null Object模式]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7903678</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7903678</guid><author>nabila</author><pubDate>Fri, 24 Aug 2012 13:43:00 +0800</pubDate><description><![CDATA[第一次听说这个模式，这个模式看起来好像很简单，但是实际用起来还是有点不太容易理解。
我们在代码里经常会进行null检查，这种检查是易出错的，假设我们在代码里对null的情况也需要作出响应，Null Object模式就显示出它的优点。
可以看一下这个例子：
Employee e = DB.GetEmployee("Bob");
if (e != null && e.IsTimeToPay(t]]></description><category></category></item><item><title><![CDATA[Singleton模式和Monostate模式]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7903674</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7903674</guid><author>nabila</author><pubDate>Fri, 24 Aug 2012 13:42:20 +0800</pubDate><description><![CDATA[Singleton模式和Monostate模式都是强制对象单一性的模式。有时会认为强制对象单一性的机制似乎是多余的，但是如果这种机制是轻量级的，那么传达意图带来的收益就会胜过实施这些机制的代价。
Singleton模式最常见的用法如下，使用私有构造函数，一个静态变量，以及一个静态方法对实例化进行控制和限制。如果想保证线程安全，可以再加上lock。
    public class Single]]></description><category></category></item><item><title><![CDATA[Facade模式和Mediator模式]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7903667</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7903667</guid><author>nabila</author><pubDate>Fri, 24 Aug 2012 13:41:52 +0800</pubDate><description><![CDATA[Facade模式和Mediator模式
Facade（外观）模式为子系统中的各类（或结构与方法）提供一个简明一致的界面，隐藏子系统的复杂性，使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面。Facade模式经常用来隔离数据库和应用程序，如下图：


Mediator模式是用一个中介对象来封装一系列关于对象交互行为。为何使用Mediator？各个对象之间的交互操作非常多。]]></description><category></category></item><item><title><![CDATA[Template Method模式和Strategy模式]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7903655</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7903655</guid><author>nabila</author><pubDate>Fri, 24 Aug 2012 13:41:06 +0800</pubDate><description><![CDATA[Template Method模式和Strategy模式都可以分离通用的算法和具体的上下文，所解决的问题是类似的，但是实现的方法不同，一个是用的继承，一个是用的委托。
我们先来看一下Template 的结构图:


Template Method模式实际上就是利用面向对象中多态的概念实现算法实现细节和高层接口的松耦合。Template Method模式展示了面向对象编程中诸多经典重用形式中]]></description><category></category></item><item><title><![CDATA[Command模式]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7903650</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7903650</guid><author>nabila</author><pubDate>Fri, 24 Aug 2012 13:39:53 +0800</pubDate><description><![CDATA[Command模式是一个简单而又非常有用的模式。Command模式解除了系统逻辑和实际执行命令部分之间的耦合。Command模式常见的用法是创建和执行事务，比如一般的增删改查等动作。
Active Object模式是实现多线程控制的一个古老的技术。考虑一下以下的代码：
ActiveObjectEngine类维护了一个Command对象的链表。
    public class ActiveO]]></description><category></category></item><item><title><![CDATA[敏捷开发思考]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7871649</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7871649</guid><author>nabila</author><pubDate>Thu, 16 Aug 2012 09:01:15 +0800</pubDate><description><![CDATA[敏捷开发确实是一个非常不错的开发模式，但是它有太多难以实现的地方。首先就是对开发人员的要求太高。几乎要求每个项目的开发人员都要了解项目架构，熟知各种设计模式原则，有丰富编码经验。这一点很难做到。
对于我这菜鸟来说，看敏捷开发最大的收获就是知道了软件是怎样腐化的，在这里面我看到了自己前一段时间编程的影子。原来虽然知道自己写的代码质量是不高的，但是并不能从客观上把握到底哪里写的不符合标准，这本书里详]]></description><category></category></item><item><title><![CDATA[C#性能优化总结]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7850761</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7850761</guid><author>nabila</author><pubDate>Fri, 10 Aug 2012 11:20:38 +0800</pubDate><description><![CDATA[1. C#语言方面 

1.1 垃圾回收 
垃圾回收解放了手工管理对象的工作，提高了程序的健壮性，但副作用就是程序代码可能对于对象创建变得随意。 
1.1.1 避免不必要的对象创建 
由于垃圾回收的代价较高，所以C#程序开发要遵循的一个基本原则就是避免不必要的对象创建。以下列举一些常见的情形。 
1.1.1.1 避免循环创建对象 ★ 
如果对象并不会随每次循环而改变状态，那么在循环中]]></description><category></category></item><item><title><![CDATA[从纽约创业公司的崛起观察科技产业变革规律]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7850436</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7850436</guid><author>nabila</author><pubDate>Fri, 10 Aug 2012 10:33:34 +0800</pubDate><description><![CDATA[今年早些时候，有朋友介绍我和一位在纽约市的VC吃了顿饭。当时这个合伙人颇为兴奋地和我们分享了一个消息：纽约首次超过波士顿成为美国第二大科技创业城市，仅次于硅谷。他解释这个现象原因的时候说道：“现在的科技创业和以前不一样了，图书出版、广告、媒体和时尚行业都位于纽约。这些是科技和互联网正在重塑和改变的主要行业。IT产业刚开始的时候发家的都是做网络设备和硬件这些基础设施的公司，不过现在信息革命蔓延到了媒]]></description><category></category></item><item><title><![CDATA[处理器体系结构]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7834646</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7834646</guid><author>nabila</author><pubDate>Mon, 06 Aug 2012 11:30:20 +0800</pubDate><description><![CDATA[看过《深入理解计算机系统》第四章“处理器体系结构”，发现上当，跟编程序基本上没有关系，就介绍了处理器大概是怎么工作的，碰到一些特殊情况怎么处理。仅算是了解了吧。在此列出这一章的提纲。
我们要知道处理器是流水线结构的，对于六个阶段：取址、译码、执行、访存、写回、更新，每个阶段都不会出现空挡。
什么情况下会出现空挡呢？其一指令间存在数据冒险，其二出现异常，其三函数返回指令，其四分支预测错误，等等。]]></description><category></category></item><item><title><![CDATA[用汇编的眼光看C++（之 总结篇）]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7819656</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7819656</guid><author>nabila</author><pubDate>Wed, 01 Aug 2012 18:10:01 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/feixiaoxing/article/details/6998116 


【 声明：版权所有，欢迎转载，请勿用于商业用途。  联系信箱：feixiaoxing @163.com】




    早在八月份的时候，就陆陆续续写了二十多篇用汇编语言看C++的博客内容。在此为了做一个概括，也为了朋友们看起来更方便，我们利用这么一篇博客对所有]]></description><category></category></item><item><title><![CDATA[程序的机器级表示（二）]]></title><link>https://blog.youkuaiyun.com/nabila/article/details/7803424</link><guid>https://blog.youkuaiyun.com/nabila/article/details/7803424</guid><author>nabila</author><pubDate>Mon, 30 Jul 2012 20:02:23 +0800</pubDate><description><![CDATA[程序的机器级表示
数据传送指令
将数据从一个位置复制到另一个位置的指令是最频繁使用的指令。

 
算术逻辑指令

 
控制指令
目的：
         条件语句、循环语句和分支语句，要求有条件的进行，根据数据测试的结果来决定操作执行的顺序。机器代码提供两种基本的低级机制来实现有条件的行为：测试数据值，然后根据测试的结果来改变控制流或者数据流
控制指令-条件码
CPU维护着]]></description><category></category></item></channel></rss>