摘要: 我们不是为了度量而度量,我们要知道度量体系是在什么时候,为谁产生价值,因此我们首先需要回答3个问题:1. 一个开发组织从来都不可能是独立存在的,其所服务的企业业务目标是什么?对应到对开发组织的期望是什么?2. 在开发过程中,谁是度量信息的使用者?他们使用度量信息的目的是为了作什么决策?3. 在梳理清楚上面两个问题之后,最后要回答的才是如何设计一个契合的指标体系来满足这些数据消费的需求?因此,度量体系是引导团队达成业务目标的一整套策略,包含了业务目标、决策场景和指标体系3个阶段。我们可以把软件产品的开发分成几个大的阶段:业务策略、项目定义、项目执行、维护支持。从业务部门期望的及开发组织相关的业务 阅读全文
posted @ 2014-03-29 21:31 Ribbon 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 自3.5版本以来,.NET以及微软的.NET语言开始支持表达式树。它们为这些语言的某个特定子集提供了eval形式的求值功能。考虑下面这个简单的Lambda表达式: Func add = (x, y) => x + y;可以知道,上述代码最后生成一个局部函数。Lambda表达式是需要编译的代码。在C#编译器运行时,把匿名函数转换为IL代码。为了建立一个表达式树,需要对上述语法稍作修改:Expression> addExpr = (x, y) => x + y;唯一的差别是保存Lambda表达式的变量的类型。这个差别指示C#编译器生成完全不同的代码。编译器不是把表达式编译成IL代 阅读全文
posted @ 2014-03-29 16:40 Ribbon 阅读(419) 评论(0) 推荐(1) 编辑
摘要: 紧接着上一篇微软编程面试100题,这次想解决的是查找最小的K个元素,题目是:输入n 个整数,输出其中最小的k 个。例如输入1,2,3,4,5,6,7 和8 这8 个数字,则最小的4 个数字为1,2,3 和4。看到题目的时候我第一反应,这题很简单,使用任何方式的排序将数列按顺序存储,之后遍历需要的k个元素即可,于是自己动手很容易就完成了,但是后来在网络上发现很多人对这题的解决方式是用小根堆(MinHeap)或者大根堆(MaxHeap),这才意识到,其实出题人是醉翁之意不在酒,在乎复杂度的考虑也。先写用排序的方式完成题目的方式吧,不仅简单,不需要费太多脑子,重要的是,正好趁这时候复习下排序,这里用 阅读全文
posted @ 2014-03-29 13:57 Ribbon 阅读(1554) 评论(4) 推荐(2) 编辑