05 2010 档案

摘要:平时写代码肯定免不了犯错,如何减少犯错的机会呢,只能多加练习,多加注意。软件开发的难点是处理本质的复杂度,也就是业务逻辑本身的复杂性,而不是解决一些技术上的难题。作为开发人员,我们一方面要多看书,增加知识宽度,学习新技术,保持技术敏感,另一方面更要锻炼基本功,比如《代码大全》上写的那些,使用防御性编程,控制多层嵌套,有效使用递归,用伪代码设计子程序,练好code review本领等。  本系列通过... 阅读全文
posted @ 2010-05-30 19:55 蛙蛙王子 阅读(3508) 评论(8) 推荐(1) 编辑
摘要:第一节介绍过RegexNode类,它的SplitWords用来分词,大致逻辑就是遍历要分词的字符串,不断的调用自身的Parse属性指向的委托,Parse属性指向一个bool ParseFunc(string input, int index, out string output)类型的委托,其中input表示要解析的字符串,index表示其实的解析位置,返回值表示否则匹配成功,output表示匹配... 阅读全文
posted @ 2010-05-30 19:49 蛙蛙王子 阅读(945) 评论(0) 推荐(0) 编辑
摘要:解析方法工厂是一个静态类,用于生成各种子模式的解析方法,这是正则引擎的核心部分,也是比较用技巧的部分,我们一种模式一种模式来分析。 最简单的匹配就是单纯字符串的匹配,我们用string.Compare就可搞定,如下 //abcpublic static ParseFunc MaxMatch(string str) { ParseFunc func = (string input, int ind... 阅读全文
posted @ 2010-05-30 19:49 蛙蛙王子 阅读(868) 评论(0) 推荐(0) 编辑
摘要:为了更好的评估代码写的哪里有问题,我把《代码大全》里核心的部分checklist整理出来了,大家可以大概过一遍,不一定每写完一个程序都要一条一条的去检查,但心里应该有这么一张检查表,在写代码和review代码时自然而然的想起来。 设计 设计是否经过多次迭代,并最终决定了最好的一个? 是否同时使用自上而下和自下而上的方法来解决设计问题? 类与类之间的交互关系是否已经设计为最小化? 设计被划分为层次吗... 阅读全文
posted @ 2010-05-30 19:49 蛙蛙王子 阅读(2136) 评论(0) 推荐(2) 编辑
摘要:上一帖已经说过了大概的设计,第一步我们是要把输入的正则式构建成抽象模式树,我们先定义表示模式树的类。 public enum Releation{ Default, Or, And}public class PatternNode { public PatternNode() :this(null) { } public PatternNode(string text) { Text = tex... 阅读全文
posted @ 2010-05-30 19:48 蛙蛙王子 阅读(988) 评论(0) 推荐(1) 编辑
摘要:平时写代码肯定免不了犯错,如何减少犯错的机会呢,只能多加练习,多加注意。软件开发的难点是处理本质的复杂度,也就是业务逻辑本身的复杂性,而不是解决一些技术上的难题。作为开发人员,我们一方面要多看书,增加知识宽度,学习新技术,保持技术敏感,另一方面更要锻炼基本功,比如《代码大全》上写的那些,使用防御性编程,控制多层嵌套,有效使用递归,用伪代码设计子程序,练好code review本领等。   本系列就... 阅读全文
posted @ 2010-05-30 19:47 蛙蛙王子 阅读(1599) 评论(0) 推荐(0) 编辑
摘要:第20章 软件质量概述大部分研究都发现,检测比测试的成本更小。NASA软件工程实验室的一项研究发现,阅读代码每小时能够检测出来的缺陷要比测试高出80%左右(Basili and Selby 1987)。后来,IBM的一项研究又发现,检查发现的一个错误只需要3.5个工作时,而测试则需要花费15-25个工作时(Kaplan 1995)。   微软的应用程序部门发现,用代码检查这种一步到位的方法找出并修... 阅读全文
posted @ 2010-05-26 09:13 蛙蛙王子 阅读(1143) 评论(2) 推荐(4) 编辑

点击右上角即可分享
微信分享提示