代码改变世界

阅读排行榜

31天重构学习笔记28. 为布尔方法命名

2010-06-29 14:31 by 圣殿骑士, 3170 阅读, 收藏,
摘要: 本文中的”为布尔方法命名”是指如果一个方法带有大量的bool 参数时,可以根据bool 参数的数量,提取出若干个独立的方法来简化参数。”为布尔方法命名“这个重构在很多时候都不常用,如果用户的参数可枚举,我们一般会枚举它的值,不过使用这种重构也有好处,就是分解开来以后,方法多了,参数少了,代码维护起来方便了一些。 阅读全文

31天重构学习笔记25. 引入契约式设计

2010-06-29 12:02 by 圣殿骑士, 3159 阅读, 收藏,
摘要: 本文中的”引入契约式设计”是指我们应该对应该对输入和输出进行验证,以确保系统不会出现我们所想象不到的异常和得不到我们想要的结果。微软在处理代码乃至产品的时候,很喜欢应用此重构,你如果认真看它的代码库,认真看一下WCF的设计,就不难发现了。这个重构建议大家经常使用,这会增强整个系统的稳定性和健壮性。 阅读全文

架构师面试更新版

2015-03-31 22:03 by 圣殿骑士, 3157 阅读, 收藏,
摘要: 上次画架构师面试知识图是3/16/2013,转眼之间已经过了两年。由于去年离开了微软,所以没有那么方便了解微软的技术发展方向,但幸运的是还继续从事着微软方面的开发、架构和管理工作。去年为现在的公司做了几个比较成功的项目,今年被命令规划公司的Technology Roadmap,所以趁着这个机会,更新了一些知识点: 最后,我也附上原始的Visio图,欢迎有兴趣的朋友补上缺漏的部分: 点击下载 阅读全文

Windows 8,VS 2012,SQL Server 2012,Office 2013使用体验

2012-10-20 23:27 by 圣殿骑士, 3094 阅读, 收藏,
摘要: 由于公司工作需要,Windows 8,VS 2012,SQL Server 2012,Office 2013已经使用了一段时间了,先做一下记录,后面再补上使用体验与心得。 Windows 8 开始界面(常用程序列表) Windows 8 开始界面(所有程序列表) Windows 8 桌面 VS 2012 SQL 2012 Office 2013 阅读全文

31天重构学习笔记16. 封装条件

2010-06-28 15:38 by 圣殿骑士, 3093 阅读, 收藏,
摘要: 本文中的“封装条件”是指条件关系比较复杂时,代码的可读性会比较差,所以这时我们应当根据条件表达式是否需要参数将条件表达式提取成可读性更好的属性或者方法,如果条件表达式不需要参数则可以提取成属性,如果条件表达式需要参数则可以提取成方法。这个重构在很大程度上能改善代码的可读性,尤其是在一个逻辑很复杂的应用中,把这些条件判断封装成一个有意义的名字,这样很复杂的逻辑也会立刻变得简单起来。 阅读全文

参加[2010年度十大杰出IT博客大赛]

2010-11-30 23:38 by 圣殿骑士, 3026 阅读, 收藏,
摘要: 大赛简介:IT博客作为一种专业性博客,已成为IT发展过程中一个不可或缺的重要角色,广大的IT博主,无私分享最 技术内容,彰显了互联网奉献精神,影响着中国IT界的发展进程。本次大赛,旨在评选2010年度,在推动中国 技术的进步方面做出了杰出贡献的博客。 我的参赛主页:http://2010blog.51cto.com/1792698 阅读全文

31天重构学习笔记13. 提取方法对象

2010-06-28 15:01 by 圣殿骑士, 3015 阅读, 收藏,
摘要: 本文中的“提取方法对象”是指当你发现一个方法中存在过多的局部变量时,你可以通过使用“提取方法对象”重构来引入一些方法,每个方法完成任务的一个步骤,这样可以使得程序变得更具有可读性。本文的重构方法在有的时候还是比较有用,但这样会造成字段的增加,同时也会带来一些维护的不便,它和“提取方法”最大的区别就是一个通过方法返回需要的数据,另一个则是通过字段来存储方法的结果值,所以在很大程度上我们都会选择“提取方法”。 阅读全文

31天重构学习笔记26. 避免双重否定

2010-06-29 13:35 by 圣殿骑士, 3008 阅读, 收藏,
摘要: 本文中的”避免双重否定”是指把代码中的双重否定语句修改成简单的肯定语句,这样即让代码可读,同时也给维护带来了方便。”双重否定“很容易让人产生错误的判断,也很难让人理解你的代码,所以这个重构在我们的代码中是很重要的,尤其是在判断条件很多且业务复杂的时候。 阅读全文

VS 打包完美解决方案

2009-11-30 23:43 by 圣殿骑士, 2988 阅读, 收藏,
摘要: VS打包完美解决方案创建微软安装包1) 创建安装和部署项目:① 右 击当前解决方案——Add——New Project,在弹出的窗口中选择Other Project Types——Setup and Deployment——Setup Project;然后在下方文本框中输入Name,点击“O... 阅读全文

31天重构学习笔记23. 引入参数对象

2010-06-29 10:20 by 圣殿骑士, 2876 阅读, 收藏,
摘要: 本文中的“引入参数对象”是指当一个方法的参数过多或者过为复杂时,可以考虑把这些参数封装成一个单独的类,这种重构很重要,尤其是当一个方法的参数比较多的时候,不管是大中型项目还是小型项目,都会遇到这种场景,所以建议大家多使用这个重构。这种封装的思想在 SOA 里面也经常运用到,封装输入Message,封装输出Message,消息来和消息去以及消息间的交互就构成了整个应用体系。 阅读全文

31天重构学习笔记29. 去除中间人对象

2010-06-29 16:13 by 圣殿骑士, 2852 阅读, 收藏,
摘要: 本文中的”去除中间人对象”是指把 在中间关联而不起任何其他作用的类移除,让有关系的两个类直接进行交互。 ”去除中间人对象“很多时候都会很有作用,尤其是在误用设计模式的代码中最容易见到,设计模式中的适配器模式和代理模式等都用中间的类是两者进行关联,这是比较合理的,因为中间类做了很多事情,而对于没有任何作用的中间类应该移除。 阅读全文

31天重构学习笔记17. 提取父类

2010-06-28 15:53 by 圣殿骑士, 2797 阅读, 收藏,
摘要: 本文中的“提取父类”是指类中有一些字段或方法,你想把它们提取到父类中以便同一继承层次的其它类也可以访问他们,这个和之前的很多重构有异曲同工之处。这个重构是典型的继承用法,很多程序员都会选择这样做,但是要注意正确的使用,不要造成过度使用了继承,如果过度使用了,请考虑用接口、组合和聚合来实现。 阅读全文

31天重构学习笔记15. 移除重复内容

2010-06-28 15:26 by 圣殿骑士, 2720 阅读, 收藏,
摘要: 本文中的“移除重复内容”是指把一些很多地方都用到的逻辑提炼出来,然后提供给调用者统一调用。这个重构很简单,绝大多数程序员都会使用这种重构方法,但有时由于习惯、时间、赶进度等原因而忽略它,所以会使得整个系统杂乱无章,到处都是Ctrl+C和Ctrl+V的痕迹。 阅读全文

31天重构学习笔记21. 合并继承

2010-06-29 09:46 by 圣殿骑士, 2690 阅读, 收藏,
摘要: 本文中的”合并继承”是指如果子类的属性和方法也适合于基类,那么就可以移除子类,从而减少依赖关系。这篇和上篇其实最主要论述了子类和父类的继承关系以及如何判断什么时候需要使用继承,一般我们都能处理好这些关系,所以相对比较简单。 阅读全文

同步博客到CSDN

2013-07-12 17:48 by 圣殿骑士, 2674 阅读, 收藏,
摘要: 经过一些朋友的多次邀请,现同步博客到CSDN,地址:http://blog.csdn.net/knightswarrior。 阅读全文

开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码

2025-03-06 14:47 by 圣殿骑士, 2655 阅读, 收藏,
摘要: 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码 2025 年是 AI Agent 的元年,我们团队历时 3 个多月,现正式开源Multi-Agent AI 框架,欢迎各位园友前往 GitHub Fork、Star 或提交 PR,共同打造 aevatar.ai 生态。 Github地址: aevatar 核心框架: https://github.c 阅读全文

31天重构学习笔记20. 提取子类

2010-06-28 22:32 by 圣殿骑士, 2652 阅读, 收藏,
摘要: 本文中的”提取子类”是指把基类中的一些不是所有子类都需要访问的方法调整到子类中。这个重构方法经常用来规范类的职责,和之前的一些重构方法也有些类似。 阅读全文

31天重构学习笔记22. 分解方法

2010-06-29 09:58 by 圣殿骑士, 2599 阅读, 收藏,
摘要: 本文中的”分解方法”是指把我们所做的这个功能不停的分解方法,直到将一个大方法分解为名字有意义且可读性更好的若干个小方法。其实这个重构和我们前面讲的“提取方法”和“提取方法对象”如出一辙,尤其是“提取方法”,所以大家只要知道用这种思想重构就行。 阅读全文

(收藏)《博客园精华集》AJAX与ASP.NET AJAX部分

2010-03-30 10:48 by 圣殿骑士, 2470 阅读, 收藏,
摘要: AJAX与ASP.NET AJAX部分ASP.NET Ajax =》WCF(.NET 3.5 Beta 2,VS2005) 作者: dudu Ajax基石脚本异步并发调用参数传递 作者: birdshome 扩展JavaScript的时候,千万要保留其原来的所有功能 作者: Jeffrey Zhao 可能是最漂亮的非静态Page Method解决方案 作者: Jeffrey Zhao Ti... 阅读全文

New Year's resolution for 2016

2015-12-31 22:52 by 圣殿骑士, 2374 阅读, 收藏,
摘要: A New Year's resolution is a traditional for me to celebrate a new beginning. For the past year, I have finished all the items except one but I think ... 阅读全文