自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(297)
  • 收藏
  • 关注

转载 领域驱动设计系列文章(3)——有选择性的使用领域驱动设计

本系列的第一篇博文抛砖引玉,大谈领域驱动设计的优势,这里笔者还是希望以客观的态度,谈谈领域驱动设计的缺点及其不适合使用的场景,以让读者可以有选择性的使用领域驱动设计。 我们知道,没有最好,只有最合适,设计也是一样。因此,所谓设计,就是以你和你的团队的知识、经验和智慧,全面充分的考虑各种内外因素后,在你们的设计方案中作出合理的选择的过程。而这些影响你们选择的因素主要有...

2019-04-30 05:55:00 257

转载 领域驱动设计系列文章(1)——通过现实例子显示领域驱动设计的威力

曾经参与过系统维护或是在现有系统中进行迭代开发的软件工程师们,你们是否有过这样的痛苦经历:当需要修改一个Bug的时候,面对一个类中成百上千行的代码,没有注释,千奇百怪的方法和变量名字,层层嵌套的方法调用,混乱不堪的结构,不要说准确找到Bug所在的位置,就是要清晰知道一段代码究竟是做了什么也非常困难,最终,改对了一个Bug,却多冒出N个新Bug;同样的情况,当你拿到一份新的需求,需要在现有...

2019-04-30 05:53:00 190

转载 RabbitMQ

http://www.cnblogs.com/PatrickLiu/tag/RabbitMQ/ http://langyu.iteye.com/blog/759663/ 转载于:https://www.cnblogs.com/qixuejia/p/9450965.html

2018-08-10 12:33:00 187

转载 Redis与Memcached的区别

Redis与Memcached的区别 传统MySQL+ Memcached架构遇到的问题   实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的" /> Redis与Memcached的区别 - CSDN博客 Redis与Memcached的区别 ...

2017-11-17 17:26:00 153

转载 memcached源码分析-----slab内存分配器

温馨提示:本文用到了一些可以在启动memcached设置的全局变量。关于这些全局变量的含义可以参考《memcached启动参数详解》。对于这些全局变量,处理方式就像《如何阅读memcached源代码》所说的那样直接取其默认值。 slab内存池分配器: slab简介: memcached使用了一个叫slab的内存分配方法,有关sla...

2017-11-17 16:04:00 133

转载 C# Finalize和Dispose的区别

一:总结 1、Finalize方法(C#中是析构函数,以下称析构函数)是用于释放非托管资源的,而托管资源会由GC自动回收。所以,我们也可以这样来区分 托管和非托管资源。所有会由GC自动回收的资源,就是托管的资源,而不能由GC自动回收的资源,就是非托管资源。在我们的类中直接使用非托管资源的情况很 少,所以基本上不用我们写析构函数。 2、大部分的非托管资源会给系统带来很多负面影响,例如数据...

2017-11-17 09:41:00 188

转载 [IoC容器Unity]第四回:使用范例

1.引言  前面几个章节介绍了Unity的基本使用,主要分为程序和配置文件两种方法的使用,可以参考一下链接, [IoC容器Unity]第一回:Unity预览 [IoC容器Unity]第二回:Lifetime Managers生命周期 [IoC容器Unity]第三回:依赖注入 本节作为结束篇,将介绍一下在项目中如何应用Unity。    2.范例 Unity应用广泛,...

2017-11-15 18:40:00 77

转载 [IoC容器Unity]第三回:依赖注入

1.引言 上节介绍了,Unity的Lifetime Managers生命周期,Unity具体实现依赖注入包含构造函数注入、属性注入、方法注入,所谓注入相当赋值,下面一个一个来介绍。 2.构造函数注入 Unity利用Resolve方法解析一个对象,都是调用注册类型的构造函数来初始化的,初始化时,Unity能够控制初始化的值,当然,我们要给Unity提供足够的原料,要不然也是巧妇难无米...

2017-11-15 18:38:00 117

转载 [IoC容器Unity]第二回:Lifetime Managers生命周期

1.引言 Unity的生命周期是注册的类型对象的生命周期,而Unity默认情况下会自动帮我们维护好这些对象的生命周期,我们也可以显示配置对象的生命周期,Unity将按照配置自动管理,非常方便,下面就介绍一下 Unity中内置的生命周期管理器。 2.Lifetime Managers生命周期管理 准备以下类关系,用于演示 有2个接口类:IClass(班级接口)和ISubject...

2017-11-15 18:37:00 101

转载 [IoC容器Unity]第一回:Unity预览

1.引言 高内聚,低耦合成为一个OO架构设计的一个参考标准。高内聚是一个模块或者一个类中成员跟这个模块或者类的关系尽量高,低耦合是不同模块或者不同类之间关系尽量简单。 拿咱国家举例来说,假如你是中国人。 高内聚:就是说你跟中国亲,关系好,国家会保护你。 低内聚:就是说你跟中国的关系不好,那还怎么混,改天就要批斗你,你就是个问题源。 低耦合:就是说你跟日本的关系非常正常,非常简单...

2017-11-15 18:36:00 85

转载 SQL Server 索引的自动维护 <第十三篇>

  在有大量事务的数据库中,表和索引随着时间的推移而碎片化。因此,为了增进性能,应该定期检查表和索引的碎片,并对具有大量碎片的进行整理。   1、确定当前数据库中所有需要分析碎片的表。   2、确定所有表和索引的碎片。   3、考虑一下因素以确定需要进行碎片整理的表和索引。   高的碎片水平-avg_fragmentation_in_percent大于20%;   不是非常...

2017-11-13 09:59:00 95

转载 SQL Server 索引的图形界面操作 <第十二篇>

一、索引的图形界面操作   SQL Server非常强大的就是图形界面操作。关于索引方面也一样那么强大,很多操作比如说重建索引啊,查看各种统计信息啊,都能够通过图形界面快速查看和操作,下面来看看SQL Server索引方面的GUI操作。                            二、索引统计信息的图形界面操作    ...

2017-11-13 09:58:00 107

转载 SQL Server 索引 之 书签查找 <第十一篇>

一、书签查找的概念   书签可以帮助SQL Server快速从非聚集索引条目导向到对应的行,其实这东西几句话我就能说明白。   如果表有聚集索引(区段结构),那么书签就是从非聚集索引找到聚集索引后,利用聚集索引定位到数据。此处的书签就是聚集索引。如果表没有聚集索引(堆结构)。那么扫描非聚集索引后,通过RID定位到数据,那么此处书签就是RID。   所谓的书签查找,就是通过聚集索引,...

2017-11-13 09:58:00 64

转载 SQL Server索引 - 索引(物化)视图 <第九篇>

一、索引视图基本概念   索引视图实际上是一种将一组唯一值“物化”为群集索引形式的视图,所为物化就是几乎和表一样,其数据也是会存储一份的(会占用硬盘空间,但是查询速度快,例如可以将count(),sum()等值设在索引视图中)。其优点是它在提取视图背后的信息方面提供了一个非常快的查找方法。在第一个索引(必须是针对一组唯一值的聚集索引)之后,通过使用来自第一个索引的聚集键作为参考点,SQ...

2017-11-13 09:57:00 76

转载 SQL Serverf 索引 - 索引压缩 、附加特性 <第十篇>

一、索引压缩   数据和索引压缩在SQL Server2008被引入。压缩一个索引意味着将在一个页面中获得更多的关键字信息。这可以造成重大的性能改进,因为存储索引需要的页面和索引级别更少。因为索引中的键值被压缩和解压缩,也将造成CPU和内存的开销,所以这并不是适合所有索引的方案。   默认情况下,索引将不会被压缩。必须明确地在创建索引时要求索引被压缩。有两种压缩类型:行级压缩和页面级...

2017-11-13 09:57:00 71

转载 SQL Server索引 - 聚集索引、非聚集索引、非聚集唯一索引 <第八篇>

聚集索引、非聚集索引、非聚集唯一索引   我们都知道建立适当的索引能够提高查询速度,优化查询。先说明一下,无论是聚集索引还是非聚集索引都是B树结构。   聚集索引默认与主键相匹配,在设置主键时,SQL Server会默认在主键列创建聚集索引。但是可以手动更改为在任意一个列创建聚集索引,然后在另一个字段或多个字段上定义主键。这时主键将会被作为一个唯一的非聚集索引(唯一索引)被创建。...

2017-11-13 09:56:00 159

转载 SQL Server索引 - 非聚集索引 <第七篇>

一、非聚集索引维护   非聚集索引的行定位器值保持相同的聚集索引值,即使该聚集索引列物理上重新定位后,也是如此。   为了优化这个维护开销,SQL Server添加一个指向旧数据页的指针,以在页面分割之后指向新的数据页面,而不是更新所有相关非聚集索引的行定位器。这样,虽然降低了非聚集索引的维护开销,但是增加了从非聚集索引行到数据行的导航开销,因为添加了一个旧数据页面和信数据页面之间的...

2017-11-13 09:51:00 75

转载 SQL Server - 聚集索引 <第六篇>

  聚集索引的叶子页存储的就是表的数据。因此,表行物理上按照聚集索引列排序,因为表数据只能有一种物理顺序,所以一个表只能有一个聚集索引。   当我们创建主键约束时,如果不存在聚集索引并且该索引没有被明确指定为非聚集索引,SQL Server会自动将其创建为唯一的聚集索引,这并不是说主键列就一定是聚集索引,这只是默认行为而已。   示例,建表时通过指定主键为非聚集索引使主键列不为聚集列...

2017-11-13 09:50:00 85

转载 SQL Server索引设计 <第五篇>

  SQL Server索引的设计主要考虑因素如下:   检查WHERE条件和连接条件列;   使用窄索引;   检查列的选择性;   检查列的数据类型;   考虑列顺序;   考虑索引类型(聚集索引OR非聚集索引); 一、检查WHERE条件列和链接条件列   当一个查询提交到SQL Server时,查询优化器尝试为查询中引用的所有表查找最佳的数据访问机制。下面列出查询优...

2017-11-13 09:49:00 65

转载 SQL Server索引语法 <第四篇>

  从CREATE开始   通过显式的CREATE INDEX命令   在创建约束时作为隐含的对象   随约束创建的隐含索引   当向表中添加如下两种约束之一时,就会创建隐含索引。   主键约束(聚集索引)   唯一约束(唯一索引) 一、CREATE INDEX语法   CREATE INDEX语句所做的事情与其听上去一样-用于在指定表或视图上基于声明的列...

2017-11-13 09:48:00 73

转载 SQL Server索引的维护 - 索引碎片、填充因子 <第三篇>

  实际上,索引的维护主要包括以下两个方面:   页拆分   碎片   这两个问题都和页密度有关,虽然两者的表现形式在本质上有所区别,但是故障排除工具是一样的,因为处理是相同的。   对于非常小的表(比64KB小得多),一个区中的页面可能属于多余一个的索引或表---这被称为混合区。如果数据库中有太多的小表,混合区帮助SQL Server节约磁盘空间。   随着表(或索引...

2017-11-13 09:47:00 76

转载 SQL Server 非聚集索引的覆盖,连接,交叉和过滤 <第二篇>

  在SQL Server中,非聚集索引其实可以看做是一个含有聚集索引的表,但相对实际的表来说,非聚集索引中所存储的表的列数要少得多,一般就是索引列,聚集键(或RID)。非聚集索引仅仅包含源表中的非聚集索引的列和指向实际物理表的指针。 一、非聚集索引之INCLUDE   非聚集索引其实可以看做一个含有聚集索引的列表,当这个非聚集索引中包含了查询所需要的所有信息的时候,则就不再需要去查...

2017-11-13 09:46:00 62

转载 Web API系列(三) 异常处理

在上一篇教程中我为大家介绍了Web API中Filter的开发使用,其中讲到ExceptionFilter时留了一个坑:ExceptionFilter只能截获并处理Action执行过程中发生的异常,在Action执行过程之外如果出现异常,ExceptionFilter是无能为力的。 这些异常包括:   1、 Controller构造方法中出现的异常 ...

2017-11-10 17:57:00 73

转载 WEB API 系列(二) Filter的使用以及执行顺序

  在WEB Api中,引入了面向切面编程(AOP)的思想,在某些特定的位置可以插入特定的Filter进行过程拦截处理。引入了这一机制可以更好地践行DRY(Don’t Repeat Yourself)思想,通过Filter能统一地对一些通用逻辑进行处理,如:权限校验、参数加解密、参数校验等方面我们都可以利用这一特性进行统一处理,今天我们来介绍Filter的开发、使用以及讨论他们的执行顺序...

2017-11-10 17:56:00 74

转载 WEB API系列(一):WEB API的适用场景、第一个实例

在我前一篇博客中已经给各位简单介绍了HTTP协议与RestFul API的关系,以及一些基本的HTTP协议知识,在这些知识的铺垫下,今天,我们一起来讨论一下WEB API的适用场景,然后写我们第一个WEB API接口,并演示如何对其进行简单调用。 很多人都很迷惑,既然有了WCF为什么还要有WEB API?WEB API会不会取代WCF? 就我...

2017-11-10 17:55:00 83

转载 WebAPI前置知识:HTTP与RestfulAPI

对HTTP协议的基本了解是能理解并使用RestFul风格API的基础,在了解了这些基础之后,使用各种RestFul的开发框架才能得心应手。我一开始使用WebApi的时候就因为对这些知识缺乏了解,觉得用起来各种不顺手,直到熟悉了这些HTTP的知识后,使用WebApi开发起来才觉得得心应手,我的理解里,RestFul风格的API即是对HTTP协议良好支持,实现HTTP完整语...

2017-11-10 17:54:00 55

转载 asp.net web api

http://www.cnblogs.com/jin-yuan/tag/ASP.NET%20Web%20API/ http://www.cnblogs.com/UliiAn/archive/2016/04.html 转载于:https://www.cnblogs.com/qixuejia/p/7806398.html

2017-11-09 15:46:00 36

转载 C#多线程和线程池

1、概念  1.0 线程的和进程的关系以及优缺点   windows系统是一个多线程的操作系统。一个程序至少有一个进程,一个进程至少有一个线程。进程是线程的容器,一个C#客户端程序开始于一个单独的线程,CLR(公共语言运行库)为该进程创建了一个线程,该线程称为主线程。例如当我们创建一个C#控制台程序,程序的入口是Main()函数,Main()函数是始于一个主线程的。它的功能主要 是...

2017-11-08 18:47:00 63

转载 异步、多线程、任务、并行编程:选择合适的多线程模型

本篇概述: @FCL4.0中已经存在的线程模型,以及它们之间异同点; @多线程编程模型的选择。 1:异步、多线程、任务、并行的本质 这四个概念对应在CLR中的本质,本质都是多线程。 异步,简单的讲就是BeginInvoke、EndInvoke模式,它在CLR内部线程池进行管理; 多线程,体现在C#中,可以由类型Thread发起。也可以由ThreadPool发起。前者不...

2017-11-08 16:46:00 47

转载 走进AngularJs(二) ng模板中常用指令的使用方式

  通过使用模板,我们可以把model和controller中的数据组装起来呈现给浏览器,还可以通过数据绑定,实时更新视图,让我们的页面变成动态的。ng的模板真是让我爱不释手。学习ng道路还很漫长,从模板开始入手是个不错方式,因为这部分内容相对简单好理解,而且是视图层的东西,大家都喜欢可以立马看得见的东西嘛。本篇我将搜罗模板中的常用指令一一测试,了解其使用方法,有点像背单词的感觉,...

2017-09-07 09:17:00 49

转载 走进AngularJs(一)angular基本概念的认识与实战

一、前言   前端技术的发展是如此之快,各种优秀技术、优秀框架的出现简直让人目不暇接,作为一名业界新秀,紧跟时代潮流,学习掌握新知识自然是不敢怠慢。当听到AngularJs这个名字并知道是google在维护它时,便一直在关注,看到其在国外已经十分火热,可是国内的使用情况却有不小的差距,参考文献/网络文章也很匮乏。朝思暮想良久,决定深入学习angular,并写系列博客,一方面作为自...

2017-09-06 12:16:00 91

转载 AngularJS快速入门

http://www.cnblogs.com/lvdabao/tag/AngularJs/ http://www.cnblogs.com/jaxu/p/4483761.html 转载于:https://www.cnblogs.com/qixuejia/p/7478331.html

2017-09-06 07:56:00 39

转载 线性表,线性表和链表的区别

存储类别 顺序存储结构单链表 存储分配方式 用一段连续的存储单元依次存储线性表的数据元素 采用链式存储结构,用一组任意的存储单元存放线性表的元素 时间性能 查找O(1)、插入和删除O(n) 查找O(n)、插入和删除O(1) 空间性能 需要预分配存储空间,分大了浪费,小了容易发生上溢 不需要分配存储空间,只要有就可以分配,元素个数不受...

2017-08-31 11:04:00 61

转载 LINQ之路16:LINQ Operators之集合运算符、Zip操作符、转换方法、生成器方法

本篇将是关于LINQ Operators的最后一篇,包括:集合运算符(Set Operators)、Zip操作符、转换方法(Conversion Methods)、生成器方法(Generation Methods)。集合运算符用语对两个sequence进行操作;Zip运算符同步遍历两个sequence(像一个拉链一样),返回的sequence基于在每一个元素对上应用lambda表达式...

2017-08-05 08:15:00 84

转载 LINQ之路15:LINQ Operators之元素运算符、集合方法、量词方法

本篇继续LINQ Operators的介绍,包括元素运算符/Element Operators、集合方法/Aggregation、量词/Quantifiers Methods。元素运算符从一个sequence当中获取单个元素;集合方法对sequence进行统计/汇总并返回当个标量值;量词方法用于判断sequence是否满足特定条件并返回bool值。 元素运算符/Element Op...

2017-08-05 08:14:00 66

转载 LINQ之路14:LINQ Operators之排序和分组(Ordering and Grouping)

本篇继续LINQ Operators的介绍,这里要讨论的是LINQ中的排序和分组功能。LINQ的排序操作符有:OrderBy, OrderByDescending, ThenBy, 和ThenByDescending,他们返回input sequence的排序版本。分组操作符GroupBy把一个平展的输入sequence进行分组存放到输出sequence中。 排序/Ordering...

2017-08-05 08:13:00 75

转载 LINQ之路13:LINQ Operators之连接(Joining)

Joining IEnumerable<TOuter>, IEnumerable<TInner>→IEnumerable<TResult> Operator 说明 SQL语义 Join 应用一种查询策略来匹配两个集合中的元素,产生一个平展的结果集 INNER JOIN ...

2017-08-05 07:56:00 83

转载 LINQ之路12:LINQ Operators之数据转换(Projecting)

本篇继续LINQ Operators的学习,这里我们讨论的是数据转换的两种方式:Select和SelectMany,看似简单常用的两种运算符,却也大有讲究。我们会在本篇详细介绍他们的使用方式和适用的场景,以及它们对于各种连接(Join)的支持方式。 数据转换(Projecting) IEnumerable<TSource> → IEnumerable<TResu...

2017-08-05 07:55:00 61

转载 LINQ之路11:LINQ Operators之过滤(Filtering)

在本系列博客前面的篇章中,已经对LINQ的作用、C# 3.0为LINQ提供的新特性,还有几种典型的LINQ技术:LINQ to Objects、LINQ to SQL、Entity Framework进行了比较详细的介绍,至此,我们应该了解了各种LINQ技术之间的联系和区别。千里之行始于足下,这些基础理论是理解和使用LINQ的关键。但是我们在前面的文章中对于LINQ查询运算符(LIN...

2017-08-05 07:53:00 49

转载 C# ToLookup

下文参考翻译自: C#/.NET Little Wonders: The ToLookup() LINQ Extension Method 故事的背景 让我们先来创建一个简单的类来表示产品,产品有ID,类别,和价格,这个类没有什么特别: public sealed class Product { public int Id { get...

2017-08-05 05:23:00 137

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除