Fork me on GitHub

2011年5月15日

摘要: 动机(Motivation)Extract Method是我们最常用的重构手法之一.当我们看见一个过长的函数或一段需要注释才能让人理解用途的代码,我们就会将这段代码放进一个独立函数中.有数个原因造成我们喜欢简短而有良好命名的函数.首先,如果每个函数的粒度都很小(finely grained),那么函数之间彼此复用的机会就更大;其次,这会使高层函数代码读起来就像一系列注释;再者,如果函数都是细粒度,那么函数的覆写(override)也会更容易些.的确,如果你习惯看人型函数,恐怕需要一段时间才能适应这种新风格.而且只有当你能给小型函数很好地命名时,它们才能真正起到作用,所以你需要在函数名称下点功夫 阅读全文
posted @ 2011-05-15 23:48 HackerVirus 阅读(192) 评论(0) 推荐(0)

2011年5月14日

摘要: 领域驱动设计,挺好的,新做的一个商城也是基于这个思想来进行开发的。由此,想和大家一起分享一下应用这个思想在做项目中的一些领悟与经验,正好也能和大家一块探讨DDD,使我们能更好地理解领域驱动设计。这一篇就和大家分享一下我使用的一些用于架构与建模使用的组件。在这里,个人推荐使用一个开源的DDD框架组件:SharpArch.dll这里是它的官方网站:http://www.sharparchitecture.net/大家可以下载完整包,里面的组件基本上包括了后面项目所要用到的一些开源组件。下面就举一个简单的例子与大家一起分享。 一。业务流程 会员之间的金额转账。 二。建模 在DDD中,实体(Entit 阅读全文
posted @ 2011-05-14 16:00 HackerVirus 阅读(374) 评论(0) 推荐(0)

2011年5月12日

摘要: 在很久以前,我刚开始接触.NET的时候,总是搞不清楚.NET与VisualStudio之间的关系,我开发的东西是怎么样层层流转最终形成可执行文件的;这样的疑惑一直困扰着我,我想也困扰着许许多多刚接触.NET的开人员;尽管在学校的学生学过编译原理、操作系统等等计算机原理方面的理论知识;但是就是无法将这股力量用到实实在在的理解上;下面本人就简谈一下.NET中的主要核心东西:高级语言(C#,VB.NET,J#等)、编译器、CLR引擎、VisualStudio系列工具等等之间是如何协调工作的,这样的理解有利于我们自己在开发软件项目的时候可以借鉴一下好的思想(如:文档对象模型、脚本引擎等等),好的实现方 阅读全文
posted @ 2011-05-12 22:28 HackerVirus 阅读(165) 评论(0) 推荐(1)
摘要: .Net Reflector 的免费版本即将过期, 新版本开始收费, 现在运行 .Net Reflector 将会提示:不过,已经出现了几款免费的替代产品可以使用, 虽然不及 .Net Reflector 成熟, 但是已经可以使用了, 它们是:dotPeekJetBrains 公司出品, 与ReSharper师出同门。ILSpyiCSharpCode 团队出品, 这个团队开发了著名的 C# IDESharpDevelop。JustDecompileTelerik 公司出品, 相信很多人都知道该公司的 Rad 系列控件。MonoDevelop自带的 Assembly Browser 也提供了类似 阅读全文
posted @ 2011-05-12 20:50 HackerVirus 阅读(549) 评论(0) 推荐(0)
摘要: 这里说的MVC指的是设计模式里的MVC不是asp.net mvc。 既然MVC是一种设计模式,那么他就应该在任何地方都可以使用。比如三层。 有人说MVC里的V相当于三层里的UI,M相当于三层里的DAL + BLL。这么理解也不错,因为设计模式可以应用在任何地方,这么理解是完全可以的。但是我有另一种理解,大家看看对不对。 我觉得在UI层里面也可以使用MVC设计模式。请注意仅仅只在UI层里。还是用一个实例来说明吧,我不擅长讲原理。 假设我们要显示博客园的首页,再缩小一下范围,我们要实现首页的里博文列表。美工做出来的html是这样的(代码一),那么这个是不是V呢? 下一步,我们要把数据库里的数据填充 阅读全文
posted @ 2011-05-12 13:11 HackerVirus 阅读(219) 评论(0) 推荐(0)
摘要: 最近在学习代码重构,根据自己的学习进度写一个关于代码重构的系列出来,供自己总结提高,也希望能对他人有所帮助。园子里有圣殿骑士的31 天重构学习笔记 给了我很多的启发,自己也在学习《Refactoring improving the Designe of Existing Code》(重构 改善既有代码的设计),希望在代码重构思想上能有自己的心得.一、为什么要重构(Refactoring) 通过重构可以达到以下的目标: 1·持续偏纠和改进软件设计 重构和设计是相辅相成的,它和设计彼此互补。有了重构,你仍然必须做预先的设计,但是不必是最优的设计,只需要一个合理的解决方案就够了,如果没有重 阅读全文
posted @ 2011-05-12 08:57 HackerVirus 阅读(175) 评论(0) 推荐(0)

2011年5月11日

摘要: 随笔档案 - 2011年4月从一个职校走出来的高级程序员 2011-04-29 15:09 by wangqingpei, 353 visits, 网摘, 收藏, 编辑摘要:其实这篇文章早就该写了,但是每当打开博客准备着手去写的时候,便开始回忆,记忆渐渐的回到了过去一幕幕的放映着,但是手指却是僵硬的,不知为何连敲键盘的力气都没有,那段经历是我一生当中都永远不会忘记的,我是不愿意去回忆,不愿意让别人知道我的过去,随着时间的流逝,自己也渐渐明白要想成功必定付出常人不能承受的痛苦才能成为可能,希望将自己的经历写出来能够帮助跟我一样曾经徘徊在学校阴暗角落的人,希望不懂事的孩子看过本人的经历之后能够痛改 阅读全文
posted @ 2011-05-11 23:27 HackerVirus 阅读(290) 评论(0) 推荐(0)
摘要: 1.把你的 .js 库文件地址替换成 Google CDN的地址 ::(google apis目前在中国地区访问不是很稳定,不是很建议使用这条。)随着 jquery 和 mootools 等js库的使用需要加载的.js文件越来越多也越来越大,通常传统的网站是上传到网站本身的目录。但对于一个接近70多KB的jquery.js体积确实不利于网站响应速度的提升,此时就应该使用Google API .把你的 http://www.cnblogs.com/jquery.x.x.js 替换为http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.m 阅读全文
posted @ 2011-05-11 23:20 HackerVirus 阅读(279) 评论(0) 推荐(0)
摘要: AgileEAS.NET 4.0 重构裁剪后的程序集说明前几天在文章AgileEAS.NET 4.0重构裁剪,新的ORM、支持Linq,正式支持WPF,开放更多的接口简单的介绍了一下AgileEAS.NET平台在2011年初的一些重大改进措施,其中涉及对原有程序集的合作与裁剪处理,将原有的近70个程序集合并或裁剪到现在的32个程序集,本文将详细的给大家介绍这30多个程序集的功能。基础程序集:EAS.MicroKernel.dll AgileEAS.NET平台微内核程序集,包含了平台中关于IOC、AOP、ServiceLocator、分布式体系结构、会话、配置文件以及平台与插件的接口及结构。EA 阅读全文
posted @ 2011-05-11 23:10 HackerVirus 阅读(304) 评论(0) 推荐(0)
摘要: 背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用。本篇文章将引导你快速理解这个调用的过程。步骤1. 创建一个CSharpInvokeCPP的解决方案:2. 创建一个C++的动态库项目:3. 在应用程序设置中,选择“DLL”,其他按照默认选项:最后点击完成,得到如图所示项目: 我们可以看到这里有一些文件,其中dllmain.cpp作为定义DLL应用程序的入口点,它的作用跟exe文件有个main或者WinMain入口函数是一样的,它就是作为DLL的一个入口函数,实际上它是个可选的文 阅读全文
posted @ 2011-05-11 23:04 HackerVirus 阅读(345) 评论(0) 推荐(0)