随笔分类 -  读书笔记-服务端

【MVC拾遗】MVC的单元测试简单学习总结
摘要:关于测试的必要性什么的已经在 重构与测试 里扯过了。倒也没必要说,写的代码多了自然就明白这个东西重要性。 当时说了坐等被推动去学习单元测试来着,然而等着被人推动的结果就是根本就没人来推你。o(∩_∩)o 所以还是自己主动来学,主动来总结了。 可测试性设计基础理论知识 可测试性设计(Design fo 阅读全文
posted @ 2016-08-14 21:54 韩子卢 阅读(3073) 评论(0) 推荐(24) 编辑
【C#进阶系列】30 学习总结
摘要:前面学起来还是很顺的,毕竟很多都接触过。 后面学起来只能用“磨”来形容,以至于八章用了2个月。(当然也有相当一些原因是这两个月中发生了一些个人生活上的问题) 总的来说收获超大,这种感觉就像大一的时候学习老谭的C语言一样,醍醐灌顶。 如果是靠.NET吃饭的人,不读这本书真的是太可惜了。 不过这中间也出 阅读全文
posted @ 2016-05-31 23:45 韩子卢 阅读(1541) 评论(5) 推荐(4) 编辑
【C#进阶系列】29 混合线程同步构造
摘要:上一章讲了基元线程同步构造,而其它的线程同步构造都是基于这些基元线程同步构造的,并且一般都合并了用户模式和内核模式构造,我们称之为混合线程同步构造。 在没有线程竞争时,混合线程提供了基于用户模式构造所具备的性能优势,而多个线程竞争一个构造时,混合线程通过基元内核模式的构造来提供不“自旋”的优势。 那 阅读全文
posted @ 2016-05-31 23:30 韩子卢 阅读(1109) 评论(0) 推荐(5) 编辑
【C#进阶系列】28 基元线程同步构造
摘要:多个线程同时访问共享数据时,线程同步能防止数据损坏。之所以要强调同时,是因为线程同步问题实际上就是计时问题。 不需要线程同步是最理想的情况,因为线程同步一般很繁琐,涉及到线程同步锁的获取和释放,容易遗漏,而且锁会损耗性能,获取和释放锁都需要时间,最后锁的玩法就在于一次只能让一个线程访问数据,那么就会 阅读全文
posted @ 2016-05-24 01:03 韩子卢 阅读(1376) 评论(0) 推荐(15) 编辑
【C#进阶系列】27 I/O限制的异步操作
摘要:上一章讲到了用线程池,任务,并行类的函数,PLINQ等各种方式进行基于线程池的计算限制异步操作。 而本章讲的是如何异步执行I/O限制操作,允许将任务交给硬件设备来处理,期间完全不占用线程和CPU资源。 然而线程池仍然扮演着重要的角色,因为各种I/O操作的结果还是要由线程池线程来处理。 Windows 阅读全文
posted @ 2016-05-17 00:03 韩子卢 阅读(1261) 评论(0) 推荐(8) 编辑
【C#进阶系列】26 计算限制的异步操作
摘要:什么是计算限制的异步操作,当线程在要使用CPU进行计算的时候,那么就叫计算限制。 而对应的IO限制就是线程交给IO设备(键鼠,网络,文件等)。 第25章线程基础讲了用专用的线程进行计算限制的操作,但是创建专用线程开销大,而且太多的线程也浪费内存资源,那么本章就讨论一种更好的方法,即线程池技术。 CL 阅读全文
posted @ 2016-05-10 01:52 韩子卢 阅读(1516) 评论(0) 推荐(11) 编辑
【C#进阶系列】25 线程基础
摘要:线程的概念 线程的职责是对CPU进行虚拟化。 CPU为每个进程都提供了该进程专用的线程(功能相当于cpu),应用程序如果进入死循环,那么所处的进程会"冻结",但其他进程不会冻结,它们会继续执行! 线程的开销 因为是虚拟化CPU,所以也会有空间(内存耗用)和时间(执行性能)上的开销。 具体的开销: 线 阅读全文
posted @ 2016-05-04 01:14 韩子卢 阅读(1058) 评论(1) 推荐(11) 编辑
【C#进阶系列】24 运行时序列化
摘要:序列化是将对象或者对象图(一堆有包含关系的对象)转换成字节流的过程。而反序列化就是将字节流转为对象或对象图。 主要用于保存、传递数据,使得数据更易于加密和压缩。 .NET内建了出色的序列化和反序列化支持。 上一个简单的小例子: using System.Runtime.Serialization.F 阅读全文
posted @ 2016-04-27 00:13 韩子卢 阅读(1010) 评论(0) 推荐(4) 编辑
【C#进阶系列】23 程序集加载和反射
摘要:程序集加载 程序集加载,CLR使用System.Reflection.Assembly.Load静态方法,当然这个方法我们自己也可以显式调用。 还有一个Assembly.LoadFrom方法加载指定路径名的程序集,实际上其内部是先通过AssemblyName.GetAssemblyName获取Ass 阅读全文
posted @ 2016-04-21 22:43 韩子卢 阅读(2227) 评论(0) 推荐(11) 编辑
【C#进阶系列】22 CLR寄宿和AppDomain
摘要:关于寄宿和AppDomain 微软开发CLR时,将它实现成包含在一个DLL中的COM服务器。 任何Windows应用程序都能寄宿(容纳)CLR。(简单来讲,就是CLR在一个DLL中,通过引用这个DLL,可以实现包含CLR) CLR COM服务器初始化会创建一个默认AppDomain,这个AppDom 阅读全文
posted @ 2016-04-19 01:03 韩子卢 阅读(1265) 评论(0) 推荐(2) 编辑
【C#进阶系列】21 托管堆和垃圾回收
摘要:托管堆基础 一般创建一个对象就是通过调用IL指令newobj分配内存,然后初始化内存,也就是实例构造器时做这个事。 然后在使用完对象后,摧毁资源的状态以进行清理,然后由垃圾回收器来释放内存。 托管堆除了能避免错误使用已经被释放的内存,也会减少内存泄漏,大多数类型都无需资源清理,垃圾回收器会自动释放资 阅读全文
posted @ 2016-04-14 23:53 韩子卢 阅读(1286) 评论(1) 推荐(5) 编辑
【C#进阶系列】20 异常和状态管理
摘要:异常就是指成员没有完成它的名称所宣示的行动。 public class Girl { public string Name { get; set; } } public class Troy{ Girl girl; public void Love() { Console.WriteLine("Tr 阅读全文
posted @ 2016-04-05 23:56 韩子卢 阅读(931) 评论(0) 推荐(9) 编辑
【C#进阶系列】19 可空值类型
摘要:可空值类型,正如字面意义上的,是可以为NULL的值类型。 这个东西存在的意义可以解决比如数据库的的Int可以为NUll的情况,使得处理数据库数据更简单。 实际上可空值类型就是Nullable<T>这个泛型值类型,而C#有一种更简单的语法糖是int?这种用法: Nullable<Int32> 数据库类 阅读全文
posted @ 2016-03-31 00:52 韩子卢 阅读(948) 评论(0) 推荐(3) 编辑
【C#进阶系列】18 特性Attribute
摘要:这个东西有的叫定制特性,然而我喜欢直接叫特性,但是这样的话一些人不知道我说的是什么,如果我说是Attribute的话那么知道的或者用过的就都懂了。 还记得讲到枚举和位标志那一章,关于位标志,有一个[Flags]的用法。 [ComVisible(true)] [Flags] public enum F 阅读全文
posted @ 2016-03-30 02:31 韩子卢 阅读(1783) 评论(1) 推荐(10) 编辑
【C#进阶系列】17 委托
摘要:委托主要是为了实 现回调函数机制,可以理解为函数指针(唯一不同的在于多了委托链这个概念)。 然而用的时候可以这么理解,但是委托的内部机制是比较复杂的。 一个委托的故事 delegate void razor(String userName); 一个简单的委托被定义了。 实际上在编译后这段代码就和下面 阅读全文
posted @ 2016-03-28 01:03 韩子卢 阅读(934) 评论(0) 推荐(7) 编辑
【C#进阶系列】16 数组
摘要:首先提一下,个人在项目中已经很少用到数组了,更多的时候使用List<>。 数组大小固定,如果只是用来存放数据,专门用来读取,更改当然方便。但是更多的时候我们需要进行增删改,这个时候用List<>反而更好。 所有数组类型都从System.Array抽象类隐式派生,后者又派生自System.Object 阅读全文
posted @ 2016-03-24 23:30 韩子卢 阅读(709) 评论(0) 推荐(3) 编辑
【C#进阶系列】15 枚举类型和位标志
摘要:实际上本章就只讲枚举类型,因为位标志本来就可以当做一个特殊的枚举类型。 关于枚举类型 枚举类型是一种消灭魔法数字的好方法,使程序更容易编写,阅读和维护。 枚举类型是值类型,然而有别于其它值类型,枚举类型不能定义任何方法。除非用扩展方法。 然而正如我之前说到的,也许当你想用扩展方法的时候可以先考虑一下 阅读全文
posted @ 2016-03-23 23:13 韩子卢 阅读(2914) 评论(0) 推荐(27) 编辑
【C#进阶系列】14 字符、字符串和文本编码
摘要:本来写了蛮多的,结果因为重启了一下机器导致写的东西都没了。 然后再回想之前写了什么,反而更像是把知识提炼了一番。 关于字符 字符什么的只要记住.net里面都用的Unicode编码就好。字符和数字之间转换用强制转换是最简单且高效的, 字符串是引用类型,存在与堆上,然而同一般的对象用newobj这个IL 阅读全文
posted @ 2016-03-23 00:49 韩子卢 阅读(968) 评论(2) 推荐(6) 编辑
【C#进阶系列】13 接口
摘要:C#不支持类的多继承,然而却可以继承多个接口。简单的就不说了,来看看下面的例子: public interface IRead { string GetText(); } public interface IWrite { string GetText(); } 对于上面的这种情况,如果一个类同时继 阅读全文
posted @ 2016-03-20 20:47 韩子卢 阅读(724) 评论(0) 推荐(5) 编辑
【C#进阶系列】12 泛型
摘要:泛型是CLR和编程语言提供的一种特殊机制,它用于满足“算法重用” 。 可以想象一下一个只有操作的参数的数据类型不同的策略模式,完全可以用泛型来化为一个函数。 以下是它的优势: 类型安全 给泛型算法应用一个具体的数据类型时,如果不兼容这种类型,就会编译错误或者报异常。 更清晰的代码 减少了强制转换,让 阅读全文
posted @ 2016-03-18 00:26 韩子卢 阅读(1198) 评论(0) 推荐(9) 编辑




点击右上角即可分享
微信分享提示