代码改变世界

IronPython and LINQ to Objects (IV): 实现IEnumerable<Object>

2010-05-03 16:08 by liangshi, 1039 阅读, 1 推荐, 收藏, 编辑
摘要:在本系列的前三篇文章中,我介绍了如何用IronPython模拟C#的语言特性,如何在IronPython中创建LINQ查询,如何在IronPython中实现流水线风格的LINQ to Objects查询。本文将根据IronPython 2.6来进一步完善linq.py,并介绍Iterator模式在Python和C#中的应用,以及如何在IronPython中实现C#接口。 1. 问题 LINQ to... 阅读全文

IronPython and LINQ to Objects (III): linq.py

2010-05-03 16:00 by liangshi, 1196 阅读, 1 推荐, 收藏, 编辑
摘要:在本系列的前两篇文章中,我介绍了如何用IronPython模拟C#的语言特性、如何在IronPython中创建LINQ查询。本文将给出一个IronPython模块linq.py,用于在IronPython中提供流水线风格的LINQ to Objects查询。以下就是linq.py的全部代码。 1: import clr 2: clr.AddReference('System.Core') 3: ... 阅读全文

IronPython and LINQ to Objects (II): LINQ 构建块

2010-05-03 15:48 by liangshi, 1570 阅读, 0 推荐, 收藏, 编辑
摘要:在第一篇文章中,我讨论了如何用IronPython来模拟C#的语言扩展。在这篇文章中,我将进一步讨论如何用IronPython来构造LINQ查询。如果您读过《LINQ in Action》,您会发现我是依据此书来组织本系列文章的。我的第一篇文章对应《LINQ in Action》的第2章“C#和VB的语言增强”,本文对应第3章“LINQ构建块”。1.... 阅读全文

IronPython and LINQ to Objects (I): 语言特性

2010-05-03 14:52 by liangshi, 984 阅读, 0 推荐, 收藏, 编辑
摘要:Visual Studio的开发者Harry Pierson在DevHawk上发布了一组文章,讨论了如何在IronPython中使用LINQ to XML。受他的启发,我也对如何在IronPython中使用LINQ to Objects进行了研究。从本篇开始,我将逐步介绍LINQ在IronPyton中的使用方法。《LINQ in Action》指出,LINQ由两个互为补充的部分组成:一组处理数据的... 阅读全文

Learn from proposal for new for-loop

2010-04-28 12:14 by liangshi, 362 阅读, 0 推荐, 收藏, 编辑
摘要:最近阅读 Bjarne Stroustrup 的论文 Evolution a language in and for the real world: C++ 1991-2006 [1]。这篇长达59的论文是自 D&E [2] 之后,Stroustrup 对C++语言的发展历史最系统、最详细的回顾与展望,对于C++程序员和程序设计语言的研究者具备很高的参考价值。 这篇论文最令我感兴趣的部分是... 阅读全文

Refactor Template Method to Template Function

2010-04-28 12:11 by liangshi, 295 阅读, 0 推荐, 收藏, 编辑
摘要:OOP中,Template Method模式的一个典型实现如下:class AbstractTestCase { public: AbstractTestCase(std::string const& testName) : testName_(testName) {} void RunTest() { Logger::Instance().Log("Start Test: " ... 阅读全文

Rolling Test

2010-04-25 19:05 by liangshi, 700 阅读, 0 推荐, 收藏, 编辑
摘要:持续集成是敏捷软件开发的核心实践。在我的项目中,我实践了一种与持续集成类似的测试活动: Rolling Testing:每个小时,从源代码管理系统中获得当前版本,进行完整的构建(build)。在一台干净(clean)的机器上,部署新构建的系统,执行端到端(end to end)的系统测试。最后,用电子邮件将测试结果发送给开发团队。整个过程是无人值守的。按照《持续集成》的定义,Rolling Tes... 阅读全文