共4页: 上一页 1 2 3 4 下一页 
摘要: 置换型模板引擎系列是我们进入模板引擎开发领域的基础课程,这里讲述的一些原理、概念和实践方案都是后续模板引擎开发中所需要用到的,正所谓是由浅入深、循序渐进!在编写这些博文的时候,我遇到了很多阻力。为了能够让菜鸟朋友入门又不让高手们嗤之以鼻感觉到木有干货,这让老陈真的是煞费苦心!如果仅仅是开源一份代码出去,那么完成这样的项目本身可能不需要多少时间,然而要把这些组织成文字分享给大家,实在是很头疼的一件事情。阅读全文
posted @ 2012-04-06 09:21 O.C 阅读(3117) 评论(6) 编辑
摘要: 在上一篇我们以简单明快的方式介绍了置换型模版引擎的关键技术——模板标记的流式解析。采用流式解析可以达到相当好的解析性能,因为它基本上只需要对字符串(模板)扫描一次就可以完成所有代码的解析。不像String.Split()和正则表达式那样会造成很多迭代效应。今天我们引入一个较为复杂的示例,然后封装一个实用级别的模板引擎。封装就意味着使用者无需了解内部如何实现,只需要知道如何引用即可。阅读全文
posted @ 2012-04-05 09:41 O.C 阅读(3634) 评论(9) 编辑
摘要: 给力的10gen继2011年5月7日在中国北京举办了技术聚会之后,2012年4月2日又来到了中国北京,他们很谦逊有很自信地向广大开发者介绍MongoDB的最新特性和性能优化技巧。老陈的“网鸟-NoSQL”系列群组总计报名参加60余人,实际到场仅30余人,虽然整个与会开发者总计200人左右,我们是贡献最大的团体,但这让我的内心不太平静。阅读全文
posted @ 2012-04-03 11:11 O.C 阅读(884) 评论(3) 编辑
摘要: 这是一篇18世纪的外国人写的文章,如按现代人的说法是老掉牙了。可是文章中讲的事情却大有今昔雷同之感。这就让我们在感慨过去的同时,也感慨今天,中国人身上不好的毛病为什么迟迟不改呢﹖阅读全文
posted @ 2012-04-02 07:36 O.C 阅读(366) 评论(2) 编辑
摘要: 上次我们简单的认识了一下置换型模板引擎的几种情况,当然我总结的可能不够完善,希望大家继续补充。谈到按流替代式模板引擎的原理但并没有给出真正的实现。跟帖的评论中有一位朋友(Treenew Lyn)说的很好:“Token 解析其实是按一个字符一个字符去解析的”。的确是这样,而且唯有这样才能够实现更加高效、更加准确的模板引擎机制。我们首先将模板代码分解成一个一个的Token,然后按照顺序形成Token流(顺序集合),在输出的时候替换规定好的语法标记即可。阅读全文
posted @ 2012-04-01 09:20 O.C 阅读(4107) 评论(9) 编辑
摘要: 很显然,置换型模板引擎说的就是替换式模板引擎。它的工作原理是查找和替换字符串,但这个字符串的替换过程又分为直接查找替换和按流替代输出两种。直接查找替换实现简单,但存在一定的性能障碍,而按流替代的方式性能更好一点,但理解起来却没那么容易。今天我们就专门来讨论讨论置换型模板引擎的关键技术和实现。阅读全文
posted @ 2012-03-31 09:08 O.C 阅读(4919) 评论(12) 编辑
摘要: 本文讲述explorer.exe(资源管理器)的命令行。阅读全文
posted @ 2012-03-30 08:38 O.C 阅读(13365) 评论(0) 编辑
摘要: 最初的模板引擎是为了实现业务逻辑和代码分离,后来发现这样的模式给界面维护带来了极大的便利,这也是一种MVC模式的实现。现在我们在很多地方都可以看到模板引擎的身影,比如各种CMS、论坛、代码生成器,甚至是Mootools、JQuery等JavaScript库都用到了模板引擎。那么模板引擎到底是个什么东东呢?模板引擎在实际生产环境中有着什么样的意义?我们到底是否应该使用模板引擎技术?接下来我们会一一解答。阅读全文
posted @ 2012-03-29 09:13 O.C 阅读(11312) 评论(19) 编辑
摘要: MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。阅读全文
posted @ 2012-03-28 07:59 O.C 阅读(9799) 评论(6) 编辑
摘要: Levenshtein算法,用于计算两个字符串之间的Levenshtein距离。而Levenshtein距离又称为编辑距离,是指两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。 今天老陈翻译的这篇文章讲的是一种快速、内存高效的Levenshtein算法实现。阅读全文
posted @ 2012-03-27 09:00 O.C 阅读(10953) 评论(13) 编辑
摘要: 程序员是一个比较特殊的群体,他们因为长期和电脑打交道所养成的性格和脾气也是比较相近的。当然,既然是人,当然是会有性格的,也是会有脾气的。下面,让我来看看十件能把程序惹毛了的事情。一方面我们可以看看程序员的共性,另一方面我们也可以看看程序员的缺点。无论怎么样,我都希望他们对你的日常工作都是一种帮助。阅读全文
posted @ 2012-03-26 21:48 O.C 阅读(981) 评论(0) 编辑
摘要: 这篇文章阐述了当使用MemoryStream处理大型数据集时经常触发的模棱两可的OutofMemoryException异常,并且介绍了一个类——MemoryTributary,他可以用来替代.NET内置的MemoryStream,并且能够支持大型数据的处理。阅读全文
posted @ 2012-03-25 10:12 O.C 阅读(7226) 评论(9) 编辑
摘要: 1.哥们式合伙,仇人式散伙 2.盲目崇拜社会关系 3.迷信“空降兵” 4.企业任人唯亲 5.面子问题导致“一言堂” 6.商业迷信 7.知人而不自知 8.习惯性信用缺失 9.土匪式的企业文化 10.企业进行阶级斗争化阅读全文
posted @ 2012-03-24 23:51 O.C 阅读(396) 评论(0) 编辑
摘要: 很多时候我们需要以编程的方式获取命令行输出的内容,研究了不少时间,终于搞定了。获取命令行输出内容的方式有传统和异步两种方式。阅读全文
posted @ 2012-03-23 23:53 O.C 阅读(14858) 评论(3) 编辑
摘要: 在.NET枚举类型优化探讨(二)中我们探讨了“使用类或结构来替代部分枚举类型”的方案并试图进行进一步的重构和优化,但是发现有很多限制,不但没有完成重构,且发现了很多该方案不适用的地方和缺陷。在某些情况下,这种方案会对生产带来相反的作用,所以在文中我建议不要滥用。今天我们来探讨一下使用.NET中的Attitude特性来扩展.NET枚举值的方案。阅读全文
posted @ 2012-03-22 12:05 O.C 阅读(2193) 评论(1) 编辑
共4页: 上一页 1 2 3 4 下一页