随笔分类 - 专题学习
摘要:方法用来体现类的行为。 一 相关概念 a) ref和out 通常一个方法只能返回一个值,但如果确实需要返回多个值时,可以使用ref或out。如果方法的参数被标注为ref或out,在调用该方法时,会传递对应的参数的指针,而不仅仅是参数的值。 ref和out的区别在于:ref参数在被传递前必须初始化,o
阅读全文
摘要:类是对数据结构和算法的封装。 一 类成员 类成员包括以下几类,作者在后面的章节会详细讲解。 字段(用来保存数据,可用static readonly const来修饰)、方法(操作数据的代码)、属性(用来控制对类内部变量的访问)、常量、索引器、事件和运算符。 二 访问修饰符 public 可被外部的类
阅读全文
摘要:数据类型系统是一门编程语言的核心。.NET系列的语言使用统一的数据类型系统CTS(Common Type System)。所有的数据类型都继承自System.Object。 一 值类型和引用类型 a)面向对象语言最明显的特征便是:万物皆对象。但早期的面向对象语言却因为这一点存在性能上的问题。因为任何
阅读全文
摘要:一 程序的编译、构成 a) 编写C#代码一般用VS,但作者在这儿介绍了使用记事本编写C#代码并编译运行的过程,以便对VS有更深入的认识。 用记事本编写C#代码后,修改文本文件的后缀为.cs,然后用csc.exe(C# Command-Line Complier)来编译。如果编译成功,在命令行输入程序
阅读全文
摘要:C# 基于.NET运行时,所以有必要首先对.NET以及C#与.NET平台的关系有一定的了解。 一 .NET平台 .NET背后的基本思想是将原本独立工作的设备、网络服务整合在一个统一的平台上,从而可以为用户提供丰富全面的解决方案。平时提到.Net一般默认指的是.Net Framework,但其实这只是
阅读全文
摘要:之前学习了单元测试的基础知识,以及桩对象和模拟对象的不同作用。但在实际应用中,往往不会直接手写桩对象或者模拟对象,而是使用隔离框架动态的创建这些对象,这可以让测试变得更简便、快捷,还可以更好地应对复杂的测试。这里学习的便是隔离框架的一种——Nsubstitute。 一 开始使用NSubstitute
阅读全文
摘要:前面使用了桩对象来解除被测代码对外部的依赖,以便于独立地测试代码的内部逻辑。但桩对象只能测试系统的返回值或者状态的改变,如果要测试对象之间的交互,则需要使用模拟对象。 1 三种测试类型 a) 三种类型的测试分别为: Value-based testing测试方法的返回值 State-based te
阅读全文
摘要:单元测试作为提高代码和软件质量的有效途径,其重要性和益处自不必多说,虽然我没有实践过TDD之类,但坚信单元测试的积极作用。作为一种开发方法,单元测试早在上世纪70年代就已经在Smalltalk语言被运用了,这么多年来,单元测试一次又一次证明了自身的价值,在各种开发方式此起彼伏的浪潮中,经受住了时间的
阅读全文
摘要:在享受了一场充溢着哲思与务实的盛宴后,两位作者还在最后给我们奉献了一个荡气回肠的结尾——“这是我编写的,我为自己的工作负责!”。反观自己,真是路漫漫啊……
阅读全文
摘要:没能满足可用性标准就像是除零错误,是重大bug
阅读全文
摘要:第七章 在项目开始之前 你是否曾经有过的你项目注定要失败的感觉,甚至是在项目启动之前?有时它也许会这样,除非你先建立某些基本准则。否则,也许你现在就可以建议结束它,并且给出资人省下一些钱。 1 需求之坑 a) 完美,不是在没有什么需要增加,而是在没有什么需要去掉时达到的。 b) 不要搜集需求——要挖
阅读全文
摘要:*续 第六章 当你编码时 2. 重构 a) 把软件开发比喻为修建建筑是不恰当的。因为修建建筑暗示了以下步骤: 建筑师绘制出蓝图;承包商挖掘地基,修建上层建筑、装修;房客入住,如有问题,就找维修人员。 但软件开发中,随着程序的演化,需要重新思考早先的决策,并重写部分代码,软件不是静态的事物。 软件开发
阅读全文
摘要:*续 第五章弯曲,或折断 4 它只是试图 a) 以一个电子表格应用举例,除了显示表格,还要能把数值显示为柱状图,还有总计功能。实现的大概过程为:首先创建一个模型(数据自身),以及用于对其操纵的常用操作;然后创建不同的视图,以不同方式显示数据,作为表格、柱状图、总计框,每个视图都有自己的控制器。 b)
阅读全文
摘要:第五章 弯曲,或折断 为了赶上今天近乎疯狂的变化步伐,我们需要尽一切努力编写尽可能宽松灵活的代码。否则,我们可能就会发现我们的代码很快就会变得过时,或是太脆弱,以至于难以清理。 1. 解耦与得墨忒耳法则 好篱笆促成好邻居 a) 把你的代码组织成最小组织代码(模块),并限制它们之间的交互.当我们要求某
阅读全文
摘要:第四章 注重偏执的实效 “你不可能写出完美的软件”,我们要把这句话视为生活的公理,并接受它、拥抱它。 但同时,有一些方法可以尽量把这个事实转变为有利条件 作者用开车来类比写程序:每个人都知道只有他们自己是地球上的好司机,于是我们防卫性地开车,小心谨慎以避免麻烦发生,预判意料之外的事,尽量不让自己陷入
阅读全文
摘要:第二章 注重实效的途径 1. 重复的危害 a) DRY-Don’t Repeat Yourself。系统中的每一项知识都必须具有单一、无歧义、权威的表示。 b) 重复是怎样发生的 Imposed Duplication强加的重复。开发者觉得他们无可选择-环境似乎要求重复。 Inadvertent D
阅读全文
摘要:这几天开始看《程序员修炼之道》,也许不少人看了书的标题,第一时间会觉得这是鸡汤一类的书。但至少以我自己的感受来看,这是很棒的书,现代人文主义不是提倡自我意识嘛,自己感觉好的就是好的。况且人家也是经过了时间和口碑的双重考验的,真心值得好好阅读。 作者在再版的序中写道: 写完《程序员修炼之道》至今已有十
阅读全文
摘要:单元测试的目的不是寻找BUG;优秀的单元测试和糟糕的单元测试;关于编写单元测试的一些建议
阅读全文
摘要:原文来自http://blog.stevensanderson.com/2009/08/24/writing-great-unit-tests-best-and-worst-practises/ (Writing Great Unit Tests: Best and Worst Practices
阅读全文