摘要: 这是Anders Hejlsberg(不用介绍这是谁了吧)在比利时TechDays 2010所做的开场演讲。由于最近我在博客上关于语言的讨论比较多,出于应景,也打算将Anders的演讲完整地听写出来。在上一部分中,Anders阐述了他眼中声明式编程的理念及DSL,并演示C#中一种内部DSL的形式:L... 阅读全文
posted @ 2015-02-01 23:48 SouthIsland 阅读(850) 评论(0) 推荐(0) 编辑
摘要: 结合工作中的实例,如何设计一个良好的Unit Test,不仅关系到程序的正确性,更关系到有效的缩短整个团队的开发周期(coding, build, refactoring),深刻的关系到敏捷在实际中的应用。单元测试,是编程契约的一种重要体现。Unit Test应该相信别人会遵守契约。每个Projec... 阅读全文
posted @ 2014-08-08 17:08 SouthIsland 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 背景 Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。在 Windows 系统上, dump 文件分为内核 dump 和用户态 dump 两种。前者一般用来分析内核相关的问题,比如驱动程序;后者一般用来分析用户态程序的问题。 一般的程序员可能接触不到dump文件... 阅读全文
posted @ 2014-08-01 11:49 SouthIsland 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 一、元数据在COM中所有组件信息都存储在类型库中。.NET中信息都存储在数据集中。一些COM组件有类型库,一些却没有(如VB编的,因为C++可以用IDL——接口定义语言表述接口和方法,而VB不行)。没有的话需要用C++头文件来表述接口和方法。二、释放对象.NET通过垃圾回收器释放对象。COM组件通过... 阅读全文
posted @ 2014-08-01 11:44 SouthIsland 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 马尔科夫链是一个具备马尔科夫性的随机过程。马尔科夫性是指:系统在下一步所处状态的条件概率仅与系统当前的状态相关,与系统以前的状态无关。A Markov chain is a sequence of random variables X1, X2, X3, ... with the Markov property, namely that, given the present state, the future and past states are independent. Formally,The possible values of Xi form a countable set S ca 阅读全文
posted @ 2012-10-07 16:57 SouthIsland 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 对于缺乏编程知识的人来说,完全有可能编写一个网页或小程序。如果在用Google搜索相关示例时幸运的话,可以搜到现成的代码。即使是经验丰富的程序员,通常也会为了节省时间和精力而在网上搜索解决方案。 如果不借助搜索技术、网络及集体智慧,现代化高效编程是难以想象的。因此,搜索技巧对高效程序员变得愈发重要。 现在,我们不需要了解和记住如何解决众多的编程问题,可以采用搜索技术。我们正变得更加高效、高生产力,并能够解决更多的问题。但这是否意味着在构建软件时,拥有好的搜索技巧就足够了呢?本文将讨论,搜索技巧在程序员知识的形成过程中的作用,以及如何高效使用搜索技巧。 知识的类型及它在程序员大脑中如何... 阅读全文
posted @ 2011-12-26 14:29 SouthIsland 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 现在的开发工作要求我们能够快速掌握一门语言。一般来说应对这种挑战有两种态度:其一,粗粗看看语法,就撸起袖子开干,边查Google边学习;其二是花很多时间完整地把整个语言学习一遍,做到胸有成竹,然后再开始做实际工作。然而这两种方法都有弊病。第二种方法的问题当然很明显,不仅浪费了时间,偏离了目标,而且学习效率不高。因为没有实际问题驱动的语言学习通常是不牢固不深入的。有的人学着学着成了语言专家,反而忘了自己原本是要解决问题来的。第一种路子也有问题,在对于这种语言的脾气秉性还没有了解的情况下大刀阔斧地拼凑代码,写出来的东西肯定不入流。说穿新鞋走老路,新瓶装旧酒,那都是小问题,真正严重的是这样的程序员可 阅读全文
posted @ 2011-12-14 20:35 SouthIsland 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 作者: Chuanhui | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明本文链接地址: http://www.nosqlnotes.net/archives/140NOSQL系统一般都会宣传一个特性,那就是性能好,然后为什么呢?关系型数据库发展了这么多年,各种优化工作已经做得很深了,NOSQL系统一般都是吸收关系型数据库的技术,然后,到底是什么因素束缚了关系型数据库的性能呢?我们从系统设计的角度看这个问题。1, 索引支持。关系型数据库创立之初没有想到今天的互联网应用对可扩展性提出如此高的要求,因此,设计时主要考虑的是简化用户的工作,SQL语言的产生促成数据库接口的标准. 阅读全文
posted @ 2011-07-19 20:40 SouthIsland 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 一、引言对数据库索引的关注从未淡出我的们的讨论,那么数据库索引是什么样的?聚集索引与非聚集索引有什么不同?希望本文对各位同仁有一定的帮助。有不少存疑的地方,诚心希望各位不吝赐教指正,共同进步。[最近首页之争沸沸扬扬,也不知道这个放在这合适么,苦劳?功劳?……] 二、B-Tree我们常见的数据库系统,其索引使用的数据结构多是B-Tree或者B+Tree。例如,MsSql使用的是B+Tree,Oracle及Sysbase使用的是B-Tree。所以在最开始,简单地介绍一下B-Tree。B-Tree不同于Binary Tree(二叉树,最多有两个子树),一棵M阶的B-Tree满足以下条件:1)每个结点 阅读全文
posted @ 2011-07-18 20:42 SouthIsland 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 进行多线程编程,最头疼的就是那些共享的数据。因为你无法知道哪个线程会在哪个时候对它进行操作,你也无法得知那个线程会先运行,哪个线程会后运行。下面介绍一些技术,通过他们,你会合理安排你的线程之间对资源的竞争。l互斥量Mutexl信号灯Semophorel条件变量Conditions先说一下互斥量。什么时候会用上互斥量了?比如你现在有一全局链表,你有几个工作线程。每一个线程从该链表中取出头节点,然后对该头节点进行处理。比如现在线程1正在取出头节点,他的操作如下:Item * p =queue_list;Queue_list=queue_list->next;Process_job(p);Fr 阅读全文
posted @ 2011-07-03 15:43 SouthIsland 阅读(800) 评论(0) 推荐(0) 编辑