随笔 - 106
文章 - 2
评论 - 2017
阅读 -
43万
12 2010 档案
小结2010,展望2011
摘要:回顾2010 收获:新的工作,学到许多新的知识。方面包括XSLT/XPath/InfoPath/TFS/Reporting Service,编程基础和理解也深入了许多。 博客:参加了微软社区精英活动,自己博客经过一年,浏览量总算突破了10万。 生活:没什么变化,勤快了一点点。 职场:不好不坏吧。 情感:像风中的蜡烛。 感悟:修身齐家治国平天下。展望2011 方向:突袭Silverlight/WP7,强攻WCF,清剿Asp.Net。 任务:整理回顾所有的知识代码。 愿望:2011年,可以一身轻松地做自己想做的事,要是能再提高些效率更好。 预测:从人生阶段看,这必将是转变的一年...
阅读全文
再议.Net中null的使用规范
摘要:在上一文中,论述两个.Net Framework对null应用不够合理的例子。大家评论中,给出了不少指导性意见,这里也对.Net中null的使用规范作一下总结。1. Empty代表瓶子是空的,null代表瓶子都没有 首先要明确你的“瓶子”是什么,也就是你代码的逻辑是建立在什么基础或前提之上。如果这个前提不存在,是否为正常的,或是可接受的情况。如果是,则应该允许返回null。 例如ConfigurationElement,既然允许某个节点属性未定义,自然应该允许null。如果前提因为意外(罕见的情况)未实现,则应该抛出异常,交给上一级堆栈进行处理。相应的,Linq中的FirstOrDef...
阅读全文
.Net令人纠结的Null
摘要:从我们刚学.Net编程起,我们的程序不断被从天而降NullReferenceException打断。直到今天,我们仍然时常为C#的Null或者VB的Nothing困惑。什么情况下我们该返回null,如果参数是null代表什么。许多类型,有两种不同意义的空状态,一种是null,一种是其本身或其某个属性集合中没有元素,这就更容易产生误用。常听有人说,Null这个概念在编程语言中根本不应该存在。但是,从C++到Java到.Net,它从未离开过。最近,注意到.Net Framework在读取程序配置文件的一个小Bug。比如我在配置文件中,自定义了名为ReviewPeriod的节点:<config
阅读全文
菜鸟玩状态机之样式表解析
摘要:偶不是计算机专业出身,不过参加过软考,对计算机原理大概也似乎多少有差不多那么个一星半点的了解。唯独看程序编译原理时,如读天书。状态机文法真奇妙,看了睡觉不用安眠药。大学出的书太垃圾了,打击了偶的自信,创伤了偶的幼小心灵。直到多年以后,看到老赵一篇《趣味编程:从字符串中提取信息》,心中的阴影才开始解开。 老赵提出的问题,逻辑算很简单的,用正则表达式,直接用关键字符拆分都行。但是如果字符串处理逻辑复杂一点,比如说,你要写个程序编译器,这时用正则或拆分方式,恐怕要哭了。只有请老赵文中提到的正解—状态机能大展身手了。 在本文,准备解析一个CSS文件。至于编译器,将来也不是不可能啊(菜鸟的白日梦...
阅读全文
重构者的20种死法
摘要:最近涉及重构话题的文章不少啊,其实我也一直在憧憬重构,重构很绿色,重构很河蟹,重构令人很激动,重构可能让人死得很惨。我在这里,就列举一下Refactorman的种种死法,以警后人:一、一边重构,一边要完成日常任务……1. 疲于奔命,过劳而死。2. 吃领导给的鸭梨太大被噎死。3. 满脑子都是代码,在上班路上不留神撞上了宝马。4. 冷落了女友,受失恋打击跳楼而死。5. 无暇社交,不懂人情世故,失意而死。6. 为了说服领导和同事,心力交瘁而死。二、重构过程中……7. 被以前的混账代码气死。8. 被混账代码搞得大脑程序溢出,彻底崩溃,神智错乱而死。9. 终于醒悟,问题只是冰山一角,力有未逮,忧愤而死。
阅读全文
最简单的重构,你会吗
摘要:最近玩Reporting Service报表,微软官方客户端展现实现中有这么一段代码 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { // Get report path from configuration file Uri serverurl = new Uri(ConfigurationManager.AppSettings["ReportServerUr...
阅读全文