上一页 1 ··· 7 8 9 10 11 12 13 14 下一页
摘要: 有效地处理数据时当今程序设计语言和框架的一个任务。.NET拥有一个精心构建的集合类系统,它利用迭代器的功能实现对数据的顺序访问。惰性枚举是一个迭代方法,其核心思想是只在需要的时候才去读取数据。这个思想保证了任何迭代算法都十分有效,同时又可以灵活地根据需要读取任意多的数据,而且不会造成过多的开销。C#函数式程序设计之枚举元素.NET集合类型的基础是一个名为IEnumberable的接口,以下就是这个接口的声明:public interface IEnumerable{ IEnumerator GetEnumerator();}实际上IEnumberable接口只允许程序员做一件事:查询类的... 阅读全文
posted @ 2014-03-17 15:11 Ribbon 阅读(1458) 评论(1) 推荐(0) 编辑
摘要: C#函数式程序设计之约束类型每当使用泛型类型时,可以通过where字句对泛型添加约束:static void OutputValue(T value) where T : ListItem{ Console.WriteLine("String list value: {0}", value.Value);}这个例子直观地声明了一个约束:类型T必须与ListItem相匹配。泛型类型约束T:X表示T可以是X、X的派生对象或X的实现(假如X是一个接口)。换言之,假如类型T的一个实例为t,则可以把它赋给一个变量:X x=t;约束可以使用具体的类型,但是在这些情形下,类型不可以是密封 阅读全文
posted @ 2014-03-17 11:56 Ribbon 阅读(1584) 评论(3) 推荐(3) 编辑
摘要: 在面向对象语言中,我们可以编写一个元素为某个专用类型(可能需要为此创建一个ListElement)的List类,或者使用一个非常通用、允许添加任何类型元素的基类(在.NET中,首先想到的是System.Object)。这两种方法都有缺点。使用通用类型的基类时,很可能会把不相容的元素添加到列表中;如果使用元素为专用类型的列表,只是推迟此问题的发生,因为实际类型是在最后封装到这个类中。泛型提供了这个问题的解决方法。一般而言,一个泛型类型G可以应用于一个或多个其他类型——如O1、O2等——其思想是,G的实现不需要对Ox等类型知道很多。C#函数式程序设计之泛型函数任何方法在为方法签名添加一个或多个类型 阅读全文
posted @ 2014-03-16 11:52 Ribbon 阅读(1612) 评论(2) 推荐(3) 编辑
摘要: 相信很多人都听说过函数式编程,提到函数式程序设计,脑海里涌现出来更多的是Lisp、Haskell等语言,而C#,似乎我们并不把它当成函数式语言,其实,函数式程序设计并不是只针对某个特定的程序设计语言,而C#,也正一步步使用函数式丰富自己的语言结构,帮助人们更好的实现期望的结果。函数式程序设计函数式程序设计把重点放在函数的应用上,函数式程序设计人员以函数为基本模块来建立新函数,这并不是说没有其他语言的成分,而是说函数是程序体系创建的主要构造。引用透明(Referential transparency)是函数式程序设计领域中的一个重要思想。一个引用透明的函数的返回值只取决于传递给它的参数的值。这正 阅读全文
posted @ 2014-03-15 22:13 Ribbon 阅读(2113) 评论(2) 推荐(1) 编辑
摘要: 界面设计,是设计师的工作,UI测试,是测试人员的工作,UI测试究竟是测什么的?界面的排版布局?还是界面文字的书写错误?如果是排版布局,那么设计师该不会傻到设计一个看起来很不友好的界面,坐等测试人员发现,然后劈头盖脸的骂一顿吧;如果是文字的错误,难道测试人员的工作只是傻傻地翻着字典比对每一个文字或者单词么?作为设计师,如何才能设计出好的产品以及产品的界面,而作为一名测试人员,如何才能做好UI测试?本系列文章会从设计师的角度理解用户的目标来设计产品,同时,让UI测试人员明白自己的工作其实并非与设计完全无关。作为设计师,在设计用户界面时,你可能会竭尽全力设计出你认为非常有效的界面,你也可以遵循设计法 阅读全文
posted @ 2014-03-15 12:43 Ribbon 阅读(1497) 评论(0) 推荐(0) 编辑
摘要: 实在没有想到,在对敏捷有初步了解的时候,居然有机会参与到敏捷的项目中,而这也是我第一次,从项目的最初就能参与进来,所以心里带着些许的兴奋,些许的激动,但是,也许因为这次面对的客户自己是开发工程师,他在一次又一次告诉大家细节应该如何实现,所以在理解他的需求的过程中反而绕了不少圈子,没能找到这个项目究竟要做什么,Scrum的每日会议每天早上按时开始,然而每一次会议都听得迷迷糊糊,不明白究竟客户再跟大家讨论什么。无论如何,摆在我们面前的是,这个项目以敏捷的方式,正式启动了~从Sprint 1的deliver目标开始,从雷打不动的daily meeting开始,Scrum算是正式进入到我们的日常工作生 阅读全文
posted @ 2013-04-12 00:20 Ribbon 阅读(1502) 评论(3) 推荐(0) 编辑
摘要: 极限编程(eXtreme Programming,XP):希望将软件开发过程中的一些好的方法发挥到极致,注重的核心在于沟通、简明、反馈和勇气,用一句话来概括XP的4个核心价值观就是:通过充分的交流和沟通,使产品的设计尽可能简单明了,同时通过客户经常性的反馈,生产出符合客户要求的软件产品,并且有勇气迎接需求的改变。XP的12个主要实践方法对极限编程具有指导性意义:客户计划的制定、小版本发布、隐喻、结对编程、测试驱动开发、重构、稳定的进度、代码共享、编码规范、简单的设计、持续集成、现场客户。RUP(Rational Unify Process, Rational统一过程):试图总结现代软件开发过程 阅读全文
posted @ 2013-04-01 18:23 Ribbon 阅读(1808) 评论(1) 推荐(1) 编辑
摘要: 本文摘录自轻松Scrum之旅:敏捷开发故事1. 当开始研发新产品或者已有产品的新模块时,由于各方面的原因,整个团队没有能力在Sprint的开始就做出一份非常详实的计划,因此,采用“照明弹”策略绝对不失为一个好方法。2. 对于每一个Story,要尽可能了解它的需求。3. 在开发过程中,为了提高交流效率... 阅读全文
posted @ 2013-03-29 14:00 Ribbon 阅读(1110) 评论(0) 推荐(0) 编辑
摘要: 模式六十一 没人在意的交付物 没有人愿意为团队开发的一些项目产物掏腰包。每一项产物都需要对应有愿意付钱的资助人。在这种场景中,付钱意味着不仅仅有权利要求开发某产物,而且也有能力把必要的开发资源拨派给团队。没人在意的交付物并没有清晰一致、经过验证的需求,换句话说,没有资助人。考虑一下每一个没人在意的交付物的价值。如果你发现没有人愿意为之付钱,而且项目也不需要它,那么就不要去开发,否则,找到一个资助人。模式六十二 隐藏的美 项目的某些产品不是满足于尚可甚至优雅的标准…而是追求至善至美。所有的设计都存在美学元素,问题是,这种美学元素对你是敌是友?任何设计都不可能通过堆叠附加特性或者外在装饰得到改.. 阅读全文
posted @ 2013-03-26 11:21 Ribbon 阅读(1121) 评论(0) 推荐(2) 编辑
摘要: 模式四十一 同事预审 组织让将来与应聘人共事的员工也参与到招聘过程中来。当团队在招聘过程中能拥有话语权的时候,就出现了多赢的局面。从经理的角度上讲,同事预审在雇佣团队组长的问题上同样有效。模式四十二 浮潜与水肺潜水 不同形式的分析活动贯穿项目的整个生命周期:自下而上,自上而下以及先中间后两边。成功的项目团队在项目的整个过程中会把浮潜和水肺潜水两种方式结合起来使用,在特定的时刻明智的选择合适的方法,从而有效的利用时间。 浮潜是一项很好的技术,项目团队可以用它来弄清楚需要研究多少领域,以理解问题和达成目标,而深度潜水的发现常常会改变浮潜阶段所作出的假设。本模式的迹象之一是团队在做广度考察(浮... 阅读全文
posted @ 2013-03-22 14:22 Ribbon 阅读(1193) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 下一页