摘要:
本文用于记录 WinDbg 的常用命令用法。 阅读全文
摘要:
These are the contents of my training session about unit testing, and also have some introductions about how could we write better unit tests with NSubstitute framework. 阅读全文
摘要:
很显然,你应该不至于使用 EntityFramework 直接插入 10W 数据到数据库中,那可能得用上个几分钟。EntityFramework 最被人诟病的地方就是它的性能,处理大量数据时的效率。本文主要介绍如何通过扩展方法,为 EntityFramework 中的 DbContext 添加 BulkInsert 扩展,用以在不改变语法和使用习惯的情况加,改进数据的插入效率。 阅读全文
摘要:
本篇文章主要介绍质量管理大师们关于软件质量模型的理论思考。关于软件质量模型,业界已经有很多成熟的模型定义,比较常见的质量模型有 McCall 模型、Boehm 模型、FURPS 模型、Dromey 模型和 ISO9126 模型。Jim McCall 的软件质量模型,也被称为 GE 模型(General Electrics Model)。其最初起源于美国空军,主要面向的是系统开发人员和系统开发过程。McCall 试图通过一系列的软件质量属性指标来弥补开发人员与最终用户之间的沟壑。Boehm 软件质量模型试图通过一系列的属性的指标来量化软件质量。Boehm 的质量模型包含了 McCall 模型中没有的硬件属性。Boehm 模型也类似于 McCall 的质量模型,采用层级的质量模型结构,包括高层属性、中层属性和原始属性。 阅读全文
摘要:
本篇文章旨在总结业界知名质量管理专家对于质量的思考。有很多业界先驱和研究人员已经回答了这个问题,我在这里并不会再给出一个新的答案。在学习总结了这些关于质量的定义后,可将问题的答案分为两个阵营:符合要求(Conformance To Requirements):质量就是指产品或服务的可测量的属性满足一组固定的要求,也就是说,符合预先定义的要求。满足客户需求(Meeting Customer Needs):质量独立于任何可测量的属性,也就是说,质量就是指产品或服务满足客户预期的能力,无论是显式的还是隐式的。 阅读全文
摘要:
Scrum 是当前最流行的敏捷软件开发方法论和实施框架。但就像人们对 “Agile” 术语的不同理解一样,不同的人对 “Scrum” 也有着不同的理解。那么,到底 Scrum 是什么?在进行详细解释之前,我们需要先了解几个基本术语。上面描述的周期性固定的时间段,称为迭代(Iteration)或者冲刺(Sprint)。上面描述的较小的工作单元,称为用户故事(User Story)。用户故事可以使用特定的格式来描述,其描述了一个对于客户有价值的工作,而且可以在一个迭代周期内完成。 阅读全文
摘要:
也许你已经习惯了 “Agile” 这个词汇不断地在你耳边狂轰滥炸,诸如敏捷团队、敏捷软件开发、敏捷项目管理、敏捷建模、敏捷需求管理、敏捷架构等等。而且,人们还在不断的将 “Agile” 和更多的词汇进行组合和对比。那么,到底 “Agile” 是什么呢? 阅读全文
摘要:
本文介绍如何使用 Microsoft Fakes 进行单元测试。在编写单元测试时,我们会遇到不同的外部依赖项,大体上可以分为两类:依赖于接口或抽象类,依赖于具体类。我们将使用 Microsoft Fakes 分别对两种条件下的依赖项进行隔离。 阅读全文
摘要:
本片文章将介绍 Visual Studio 2013 中引入的新功能,Memory Dump 分析器。12月5日和6日,在国家会议中心参加了微软的 TechEd2013 技术大会,了解了很多微软所提供的软件新功能和新技术。描述了在 Visual Studio 2013 中提供了新的功能 .NET Memory Dump Analysis,在具体的 Visual Studio 2013 新功能介绍的 Session 看到了实际的演示。当时感觉这个新功能对开发人员太有帮助了,因为使用 WinDbg 进行内存泄漏等问题排查总是一种痛苦。如果能在 Visual Studio 中包含类似的功能就再好不过了。 阅读全文
摘要:
OptimalVision(OV)网络视频监控系统(Video Surveillance System),是一套基于.NET、C#、WCF、WPF等技术构建的IP网络视频监控系统。设计与实现该系统的初衷是希望在家用电脑中部署该系统,连接本地或局域网设备,通过浏览器或手机客户端浏览宝宝实时视频,也就是俗称的“宝宝在线”或“家庭看护”。由于业余时间总是有限,完成系统中的服务、配置、采集、传输和桌面GUI部分后,继续完成后续移动客户端的动力与兴趣明显减弱,尤其是宝宝出生后的很长一段时间内基本没有进展,逐渐地演变为演练和测试所关注技术和模式的实验性项目。总结了几点开放源代码的原因:社区分享。独乐乐不如众乐乐,孤独腐朽的代码没有意义,与社区分享和探讨也是一种乐趣。精力有限。利用业余时间构建,挤占的是陪家人和孩子的时间,要不也不会积累了三年。知识积累。据说自己查看六个月前写的代码,如果感觉需要改进,则就成长了。拓展视野。个人的视角总是短视,接受更多人的批评与指正,可以促进学习和拓展视野。 阅读全文