- 博客(242)
- 收藏
- 关注
转载 查看sql语句执行时间
方法一 declare @d datetimeset @d=getdate()/*你的SQL脚本开始*//*你的SQL脚本结束*/select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())方法二位置:工具》选项》查询执行》高级转载于:https://www.cnblogs.com/farmer-y...
2018-11-22 17:00:00
228
转载 SQL SERVER错误:已超过了锁请求超时时段。
问题:远程连接数据库,无法打开视图,报错:SQL SERVER错误:已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)执行语句获取进程idselect * from master..sysprocesses where DB_NAME(dbid)='your db'and spid<>@@SPIDand dbid<&...
2018-11-22 16:57:00
679
转载 .net 代码调用cmd执行.exe程序,获取控制台输出信息
使用.net core 对老项目升级, .net core 使用TripleDES.Create() 加密众iv字节限制 与 framework中的不同, 新项目还需要兼容老项目版本,还不想通过webapi 进行数据request和response, 遂想到使用控制台输出的形式进行尝试, 具体代码如下;.net core private static readonly s...
2018-11-07 10:00:00
1295
转载 EF实体类指定部分属性不映射数据库标记
命名空间 ;using System.ComponentModel.DataAnnotations.Schema;实体部分 public partial class Student { [NotMapped] public int age { get; set; } =18; }转载于:https://www.cnblogs.co...
2018-09-14 17:50:00
800
转载 【转】RabbitMQ 关键词
【转】RabbitMQ 关键词RabbitMQ是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。RabbitMQ中间件分为服务端(RabbitMQ Server)和客户端(RabbitMQ Client),服务端可以理解为是一个消息的代理消费者,客户端又分为消息生产者(Producer)和消息消费者(Consumer)。...
2018-08-28 09:57:00
118
转载 【转】RabbitMQ三种Exchange模式
【转】RabbitMQ三种Exchange模式RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储RabbitMQ提供了四种Exchange:fanout,direct,topic,header。但常用的主要是fanout,direct,topic。性能排序:fanout > direct >...
2018-08-28 09:52:00
104
转载 【转】.NET Core 事件总线,分布式事务解决方案:CAP
【转】.NET Core 事件总线,分布式事务解决方案:CAP背景相信前面几篇关于微服务的文章也介绍了那么多了,在构建微服务的过程中确实需要这么一个东西,即便不是在构建微服务,那么在构建分布式应用的过程中也会遇到分布式事务的问题,那么 CAP 就是在这样的背景下诞生的。最初打算做这个东西是在去年(2016)年底,最初是为了解决分布式系统中的分布式事务的问题,然后当时有了一个大...
2018-08-28 09:51:00
355
转载 【转】分布式事务,EventBus 解决方案:CAP【中文文档】
【转】分布式事务,EventBus 解决方案:CAP【中文文档】最新文档地址:https://github.com/dotnetcore/CAP/wiki前言很多同学想对CAP的机制以及用法等想有一个详细的了解,所以花了将近两周时间写了这份中文的CAP文档,对 CAP 还不知道的同学可以先看一下这篇文章。本文档为 CAP 文献(Wiki),本文献同时提供中文和英文版本,英...
2018-08-28 09:48:00
263
转载 SQL 递归查询
直接上代码 CREATE TABLE City( id INT PRIMARY KEY IDENTITY(1,1) NOT NULL, city_name NVARCHAR(100) NOT NULL, parent_id INT NOT NULL)INSERT INTo City(city_name,parent_id) VALU...
2018-05-14 14:37:00
62
转载 C#延迟初始化Lazy<T>
1. 概述我们创建某一个对象需要很大的消耗,而这个对象在运行过程中又不一定用到,为了避免每次运行都创建该对象,这时候延迟初始化(也叫延迟实例化)就出场了。延迟初始化出现于.NET 4.0,主要用于提高性能,避免浪费计算,并减少程序内存要求。也可以称为,按需加载。2. 基本语法Lazy<T> xx = new Lazy<T>();//xx代...
2018-01-24 08:46:00
99
转载 【转】编写高质量代码改善C#程序的157个建议——建议157:从写第一个界面开始,就进行自动化测试...
建议157:从写第一个界面开始,就进行自动化测试如果说单元测试是白盒测试,那么自动化测试就是黑盒测试。黑盒测试要求捕捉界面上的控件句柄,并对其进行编码,以达到模拟人工操作的目的。具体的自动化测试请学习Code UI Automation,这里不再介绍。转自:《编写高质量代码改善C#程序的157个建议》陆敏技转载于:https://www.cnblogs...
2017-12-11 11:34:00
103
转载 【转】编写高质量代码改善C#程序的157个建议——建议156:利用特性为应用程序提供多个版本...
建议156:利用特性为应用程序提供多个版本基于如下理由,需要为应用程序提供多个版本:应用程序有体验版和完整功能版。应用程序在迭代过程中需要屏蔽一些不成熟的功能。假设我们的应用程序共有两类功能:第一类功能属于单机版,而第二类的完整版还提供了在线功能。那么,在功能上,需要定制两个属性“ONLINE”和“OFFLINE”。在体验版中,我们只开放“OFFLINE...
2017-12-11 11:32:00
106
转载 【转】编写高质量代码改善C#程序的157个建议——建议155:随生产代码一起提交单元测试代码...
建议155:随生产代码一起提交单元测试代码首先提出一个问题:我们害怕修改代码吗?是否曾经无数次面对乱糟糟的代码,下决心进行重构,然后在一个月后的某个周一,却收到来自测试版的报告:新的版本,没有之前的版本稳定,性能也更差了,Bug似乎也变多了。也就是说,重构的代码看上去质量更高了,可实际测试结果却不如人意。几乎每个程序员都因为此类问题纠结过。我们要修改的代码也许来自某些不负责...
2017-12-11 11:30:00
87
转载 【转】编写高质量代码改善C#程序的157个建议——建议154:不要过度设计,在敏捷中体会重构的乐趣...
建议154:不要过度设计,在敏捷中体会重构的乐趣有时候,我们不得不随时更改软件的设计:如果项目是针对某个大型机构的,不同级别的软件使用者,会提出不同的需求,或者随着关键岗位人员的更替,需求也会随个人意志有所变更。如果竞争对手增加了新需求,我们也不得不为正在研发的新产品调整设计方案。刚开始的架构太糟糕了,这可能源于设计经验的不足或者架构师的不负责任。以...
2017-12-11 11:29:00
96
转载 【转】编写高质量代码改善C#程序的157个建议——建议153:若抛出异常,则必须要注释...
建议153:若抛出异常,则必须要注释有一种必须加注释的场景,即使异常。如果API抛出异常,则必须给出注释。调用者必须通过注释才能知道如何处理那些专有的异常。通常,即便良好的命名也不可能告诉我们方法会抛出那些异常,在这种情况下,使用注释是最好的手段。 /// <summary> /// 注释 /// </...
2017-12-11 11:28:00
90
转载 【转】编写高质量代码改善C#程序的157个建议——建议152:最少,甚至是不要注释...
建议152:最少,甚至是不要注释以往,我们在代码中不写上几行注释,就会被认为是钟不负责任的态度。现在,这种观点正在改变。试想,如果我们所有的命名全部采用有意义的单词或词组,注释还有多少存在的价值。即便再详细的注释也不能优化糟糕的代码。并且注释往往不会随着代码的重构自动更新,有时候我们可能会在修改代码后忘记更新那段用来表达最初意图的文字了。所以,尽量抛弃注释吧,除非我们觉得只...
2017-12-11 11:27:00
89
转载 【转】编写高质量代码改善C#程序的157个建议——建议151:使用事件访问器替换公开的事件成员变量...
建议151:使用事件访问器替换公开的事件成员变量事件访问器包含两部分内容:添加访问器和删除访问器。如果涉及公开的事件字段,应该始终使用事件访问器。代码如下所示: class SampleClass { EventHandlerList events = new EventHandlerList(); public ev...
2017-12-11 11:26:00
87
转载 【转】编写高质量代码改善C#程序的157个建议——建议150:使用匿名方法、Lambda表达式代替方法...
建议150:使用匿名方法、Lambda表达式代替方法方法体如果过小(如小于3行),专门为此定义一个方法就会显得过于繁琐。比如: static void SampeMethod() { List<string> list=new List<string>(){"Mike","Rose","S...
2017-12-11 11:23:00
90
转载 【转】编写高质量代码改善C#程序的157个建议——建议149:使用表驱动法避免过长的if和switch分支...
建议149:使用表驱动法避免过长的if和switch分支随着代码变得复杂,我们很容易被过长的if和switch分支困扰。一个类枚举类型Week如下: enum Week { Monday, Tuesday, Wednesday, Thursday, Friday...
2017-12-11 11:15:00
108
转载 【转】编写高质量代码改善C#程序的157个建议——建议148:不重复代码
建议148:不重复代码如果发现重复的代码,则意味着我们需要整顿一下,在继续前进。重复的代码让我们的软件行为不一致。举例来说,如果存在两处相同的加密代码。结果在某一天,我们发现加密代码有个小Bug,然后修改了它,却又忘记了角落里的某处存在着一份相同的代码,那么这个Bug就会隐藏起来。让我们重现这个例子: void PagerEncrypt() ...
2017-12-11 11:13:00
72
转载 【转】编写高质量代码改善C#程序的157个建议——建议147:重构多个相关属性为一个类...
建议147:重构多个相关属性为一个类若存在多个相关属性,就应该考虑是否将其重构为一个类。查看如下类: class Person { public string Address { get; set; } public string ZipCode { get; set; } public string...
2017-12-11 11:12:00
64
转载 【转】编写高质量代码改善C#程序的157个建议——建议146:只对外公布必要的操作...
建议146:只对外公布必要的操作那些没有必要公开的方法和属性要声明成private。如果需要公开的方法和属性超过9个,在VS默认的设置下,就需要滚屏才能显示在Intellisense中,如图:SampleClass类: class SampleClass { private int field1; priv...
2017-12-11 11:10:00
90
转载 【转】编写高质量代码改善C#程序的157个建议——建议145:避免过长的方法和过长的类...
建议145:避免过长的方法和过长的类如果违反“一个方法只做一件事”及类型的“单一职责原则”,往往会产生过长的方法和过长的类。如果方法过长,意味着可以站在更高的层次上重构出若干更小的方法。以行数作为指标,有人建议一个方法不要超过10行,有人建议不要超过30行。当然,这没有唯一标准。在我看了,一个方法在VS中需要滚屏才能阅读完,那么就肯定有些过长了,必须想办法重构它。对于...
2017-12-11 11:09:00
83
转载 【转】编写高质量代码改善C#程序的157个建议——建议144:一个方法只做一件事...
建议144:一个方法只做一件事“单一职责原则”(SRP)要求每一个类型只负责一件事情。我们将此概念扩展到方法上,就变成了:一个方法只做一件事。回顾上一建议的代码,LocalInit和RemoteInit方法是两件事情,但是在同一抽象层次上,在类型这个层次对外又可以将其归并为“初始化”这一件事情上。所以,“同一件事”要看抽象所处的地位。转自:《编写高质量代码改...
2017-12-11 11:08:00
109
转载 【转】编写高质量代码改善C#程序的157个建议——建议143:方法抽象级别应在同一层次...
建议143:方法抽象级别应在同一层次看下面代码: class SampleClass { public void Init() { //本地初始化代码1 //本地初始化代码2 RemoteInit(); } ...
2017-12-11 11:06:00
64
转载 【转】编写高质量代码改善C#程序的157个建议——建议142:总是提供有意义的命名...
建议142:总是提供有意义的命名除非有特殊原型,否则永远不要为自己的代码提供无意义的命名。害怕需要过长的命名才能提供足够的意义?不要怕,其实我们更介意的是在代码的时候出现一个iTemp。int i 这样的命名只能出现在循环中(如for循环),除此之外,我们找不到任何理由在代码的其他地方出现这样的无意义命名。例如,以下命名都是良好的典范: pr...
2017-12-11 11:05:00
62
转载 【转】编写高质量代码改善C#程序的157个建议——建议141:不知道该不该用大括号时,就用...
建议141:不知道该不该用大括号时,就用如果if条件语句只有一行语句,要不要使用大括号?答案是:建议使用。一个括号不会增加多少代码,但是却让代码看上去增加了一致性。括号本身只会让代码更具条理性。转自:《编写高质量代码改善C#程序的157个建议》陆敏技转载于:https://www.cnblogs.com/farmer-y/p/8022052.html...
2017-12-11 11:04:00
89
转载 【转】编写高质量代码改善C#程序的157个建议——建议140:使用默认的访问修饰符...
建议140:使用默认的访问修饰符(我不太赞成作者的这个观点,这样减少的代码基本可以忽略不计,但是,如果把访问修饰符补充完整,反而会使代码更加易读。我认为自己写代码时应该尽量加上访问修饰符,看别人写的代码时能看懂就可以了。以下是作者的观点)代码整洁的要求之一,就是尽量减少代码,我们从使用默认的访问修饰符开始。类型成员的修饰符默认是private,即下面的代码: ...
2017-12-11 11:02:00
82
转载 【转】编写高质量代码改善C#程序的157个建议——建议139:事件处理器命名采用组合方式...
建议139:事件处理器命名采用组合方式所谓事件处理器,就是实际被委托执行的那个方法。查看如下代码: public MainWindow() { InitializeComponent(); Button button = new Button(); butt...
2017-12-11 10:41:00
77
转载 【转】编写高质量代码改善C#程序的157个建议——建议138:事件和委托变量使用动词或形容词短语命名...
建议138:事件和委托变量使用动词或形容词短语命名事件和委托使用场景是调用某个方法,只不过这个方法由调用者赋值。这决定了对应的变量应该以动词或形容词短语命名。关于事件和委托变量妥当的命名示例如下: public event RoutedEventHandler Click; public event SizeChangedEvent...
2017-12-11 10:39:00
80
转载 【转】编写高质量代码改善C#程序的157个建议——建议137:委托和事件类型应添加上级后缀...
建议137:委托和事件类型应添加上级后缀委托类型本身是一个类,考虑让派生类的名字以基类名字作为后缀。事件类型是一类特殊的委托,所以事件类型也遵循本建议。委托和事件的正确的命名方式有: public delegate void HttpContinueDelegate(int statusCode, System.Net.WebHeaderCollection ...
2017-12-11 10:37:00
84
转载 【转】编写高质量代码改善C#程序的157个建议——建议136:优先使用后缀表示已有类型的新版本...
建议136:优先使用后缀表示已有类型的新版本加后缀在某些情况下是很奇怪的形式,我们都不愿意看到OrderProcessor2这样的类型。但是,有的时候仍旧有必要这样做。最典型的是FCL中关于数字证书操作的X509Certificate和X509Certificate2这两个类型。X509Certificate类型最早出现在FCL 1.0/1.1版本中,后来在FCL2.0...
2017-12-11 10:36:00
82
转载 【转】编写高质量代码改善C#程序的157个建议——建议135: 考虑使用肯定性的短语命名布尔属性...
建议135: 考虑使用肯定性的短语命名布尔属性布尔值无非就是True和False,所以应该用肯定性的短语来表示它,例如,以Is、Can、Has作为前缀。布尔属性正确命名的一个示例如下: class SampleClass { public bool IsEnabled { get; set; } public bo...
2017-12-11 10:29:00
67
转载 【转】编写高质量代码改善C#程序的157个建议——建议134:有条件地使用前缀...
建议134:有条件地使用前缀在.NET的设计规范中,不建议使用前缀。但是,即便是微软自己依然广泛的使用这前缀。最典型的前缀是m_,这种命名一方面是考虑到历史沿革中的习惯问题,另一方面也许我们确实有必要这么做。在一个不是很庞大的类型中,我们确实不应该使用任何前缀。各类设计规范也总建议我们保持一个娇小的类型,但是往往事与愿违,大类型常常存在。以Task为例,它有2000多...
2017-12-11 10:19:00
64
转载 【转】编写高质量代码改善C#程序的157个建议——建议133:用camelCasing命名私有字段和局部变量...
建议133:用camelCasing命名私有字段和局部变量私有变量和局部变量只对本类型负责,它们在命名方式也采用和开放的属性及字段不同的方法。camelCasing很适合这类命名。camelCasing和PascalCasing的区别是它的首字母是小写的。之所以要采用这两种不同的命名规则,是为了便于开发者自己快速地区分它们。例如: class Person...
2017-12-11 10:17:00
79
转载 【转】编写高质量代码改善C#程序的157个建议——建议132:考虑用类名作为属性名...
建议132:考虑用类名作为属性名一般来说,若果属性对应一个类型,应该直接用类型名命名属性名。如下: class Person { public Company Company { get; set; } } class Company { //省略 }没有必要为属性名...
2017-12-08 18:01:00
56
转载 【转】编写高质量代码改善C#程序的157个建议——建议131:用PascalCasing命名公开元素...
建议131:用PascalCasing命名公开元素开放给调用者的属性、字段和方法都应该采用PascalCasing命名方法,比如: class Person { public string FirstName; public string LastName; public string Name...
2017-12-08 17:59:00
63
转载 【转】编写高质量代码改善C#程序的157个建议——建议130:以复数命名枚举类型,以单数命名枚举元素...
建议130:以复数命名枚举类型,以单数命名枚举元素枚举类型应该具有负数形式,它表达的是将一组相关元素组合起来的语义。比如: enum Week { Monday, Tuesday, Wednesday, Thursday, Friday, Satu...
2017-12-08 17:57:00
66
转载 【转】编写高质量代码改善C#程序的157个建议——建议129:泛型类型参数要以T作为前缀...
建议129:泛型类型参数要以T作为前缀作为一种约定,泛型类型的参数要以T作为前缀。如委托声明:Action<T1,T2>其中,泛型类型参数名不应该处理成:Action<Arg1,Arg2>当然,这仅仅是一种习惯,若果使用第二种命名方式,编译器并不会报错,但是作为调用者,也许不能意识到这里是一个泛型类型参数。这个问题在为类型指定泛型的时候尤...
2017-12-08 17:45:00
54
转载 【转】编写高质量代码改善C#程序的157个建议——建议128:考虑让派生类的名字以基类名字作为后缀...
建议128:考虑让派生类的名字以基类名字作为后缀派生类的名字可以考虑以基类名字作为后缀。这带来的好处是,从类型的名字上我们就知道它包含在哪一个继承体系中。Exception及其子类就是这样一个典型的例子。所有的异常都应该继承自System.Exception,而所有的异常都应该命名为CustomedException。如果在VS中输入Exception,再按Tab键,会自动...
2017-12-08 17:44:00
78
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人