.Net 4.0 延迟初始化:Lazy<T>
摘要: 语言和模式互相促进,语言让模式实现有更多可能性,越来越多优秀的被语言实现.模式实现的责任从开发者转移到语言.延迟初始化(Lazyinitialization)已经在.Net 4.0中给出了默认实现.本文将探究其使用方法和实现方式.
阅读全文
.Net 4 StringBuilder新增Clear方法及其实现
摘要: .Net 4 StringBuilder新增Clear方法及其实现 这个平时的标题已经说明了一切
阅读全文
回头再说:Uploadify跨域上传原理
摘要: Uploadify本质上是一个基于Flash的jQuery上传插件.跨域上传的情况牵扯到两个安全模型,一个使浏览器的同源策略,一个使是Flash的安全沙箱策略;我们组合使用jQuery的Jsonp和策略文件实现了跨域上传.
阅读全文
RegexOptions.Compiled真的是性能杀手么?
摘要: "使用正则表达式的时候一定不要使用RegexOptions.Compiled选项,不仅不会加速还会让内存飙升; 我们就是这个情况,去掉就好了." 有人如是说;
我们经常胡乱对付着解决问题,欣喜于不大不小的成功,接受失败,并且相信下次会更幸运。
阅读全文
A*寻径算法新手入门
摘要: 译者说:无论是现在风靡的网页游戏,还是老牌的网络游戏,寻径几乎都是难以回避的一个话题,而寻径必然从A*算法开始。关于A*相关的资料相当丰富,很多时候让我们为难的还不是具体的算法,而是A*的基本思路和概念。很多门槛都是从一堆陌生的概念开始的。而本文则是A*算法真正入门级的读物,不仅仅是清除了概念上的障碍还给出了相关话题深入学习的线索。文中有几点模糊的地方,我已经和原作者沟通过,后面会专门讲述。
本文翻译已获得作者授权.
阅读全文
内外兼修 用户从1到100万
摘要: 最近大家都在关注Kevin Rose的《9 Ways to Take Your Site from One to One Million Users》,这篇文章从内外兼修的角度为网站发展给出建议,用户的增长只是一个指标,其代表了网站整体品质的提高。我将这9条做了一个分类并以博客园为例做了一个分析,请看下面的思维导图:
阅读全文
死于复杂
摘要: Roy Tennant再一次在《图书馆杂志》(Library Journal)上声讨MARC(机读目录)的复杂性,7年前他就呼吁让这个标准死掉。这再一次提醒我们关注系统的复杂性,不做过度设计以至于死于复杂。一个正面的例子是XML,XML成功可以从它的最初设计目标窥见一斑... ...
阅读全文
Kode Reviews:危机中的项目自救
摘要: 10月份ACM Communications刊发了George V. Neville-Neil的文章:Kode reviews 101- A review of code review do's and don'ts.他的公司经历了一轮裁员,但是不久发现系统的某些部分内容没有人能理解,只能高薪聘之前的员工做"顾问"来收拾烂摊子.而这种情况已经再三上演,怎样才能让足够多的人了解系统,Neville-Neil给出的对策是:代码审查 Kode Reviews.
阅读全文
解决问题:心态 原则 方法
摘要: 至今还记得第一次解决线上问题时手足无措的局促与困窘,越急越乱,越乱越慌。
工作三年了,昨天和开发组老大对“解决问题”这个话题做了交流,总结如下。希望各路解决问题的高手不吝赐教!
阅读全文
AOP in Asp.net MVC
摘要: 不同的观点,开拓迥然不同的世界.
Another point of view can sometimes open up a whole new world.----HSBC
阅读全文
聚焦UML实践第一步
摘要: "知道UML是好东西但是用不起来。尝试过,结果领导要求文档中要充分使用UML,事无巨细皆UML,结果本来很简单的一份设计文档加了一堆图。评审的时候团队还有牛人指出UML图中这里的菱形应该是实心的,那里的要用半个箭头… ”“你给我推荐的《UML Distilled》也不怎么样… …” 这个抱怨让我很恼火,断定他看得是中文版,果然!我毅然用货到付款的方式为他定了一本英文影印版《UML Distilled》.重读《UML Distilled》,拨开迷雾走出UML实践第一步!
阅读全文
团队命脉:目标 结构 信息流 过程
摘要: 孔子曰:"目标很重要",孟子曰:"老师说得对".
唐僧自我介绍总是这样:"贫僧自东土大唐而来,前往西天求取真经",话语间包含了自己旅行的终极目标,于是在一路打怪升级之后,唐僧西行团队取得了真经.
静谧的星空下,飒飒凉风中,聚义厅中一个中年男人在苦苦思索着梁山未来的命运:"管理三五个人是一种方法,管理一百零八人呢?况且个个都不是省油的灯"...
元朝的灭亡给我的启示是:1.这是一个政府项目 2.使用瀑布模型 3.开发力量的强大的保证不了项目的成功.....
阅读全文
流程 ,Not流程 ?
摘要:

一年前我还对流程表示反感和排斥,因为我将"流程"简单地等同于堆积如山的文档和照本宣科的会议,牺牲了弥足珍贵的设计和开发时间.而现实不会在你自作聪明的时候纠正你,而是在后续的某个时间点上给你一记响亮的耳光.屡教不改者,耳光声此起彼伏,痛定思痛之后,偏见终将纠正……
"正龙拍虎"已经浪费了多少国家的行政资源,根源不就是没有走验证流程就上报虎讯了么.
阅读全文
回头再说Unity
摘要: 使用Unity一段时间之后重读经典《IoC 容器和Dependency Injection 模式》,本文就是我按照文中的指引对Unity做的一个简单的回顾.
阅读全文
Interaction design pattern
摘要: Interaction design is the art of facilitating interactions between humans through products and services.
-- --《Designing for Interaction》
自动完成控件适用什么场景?Drag&Drop的设计初衷是什么?分页控件又有什么学问?
对于这些耳熟能详屡见不鲜交互设计,应用到我的新系统中合适么?如何应用才是Best Practice?交互设计集计算机科学、人体工程学、心理学、认知学于一身。它可以是很曲高和寡的学术课题,然而一些Web开发的先行者也着手总结Interaction Design patterns,力图给出这些设计的使用场景、专业解决方案。
阅读全文
控制反转容器&依赖注入模式
摘要: 07年底获得Martin Fowler先生授权翻译了《
新方法论》受益匪浅.
最近在应用微软企业库4.0的The Unity Application Block (Unity),很想翻译一下这篇关于依赖注入的经典文章,周一收到Martin Fowler的Email:“
Yes just let me know when you're done.”,呵呵,开工了!感谢Martin Fowler先生!感谢奥运期间我们工作时间改成9:00--16:00,让我有足够的时间晚睡早起完成它 :)
阅读全文
复用:设计模式 反模式 分析模式
摘要: 做为一个开发者,从最简单的代码复用开始,坚持不懈的学习设计模式,并借力设计模式将烟囱型的系统变成一个可扩展的健壮的系统。这个过程是漫长的,艰难的,要走好多的弯路,但是追求更好的设计是大部分开发者的共同点。
这个磨砺过程之后才有开发过程中的举重若轻,这让我想到黄庭坚的诗句:“桃李春风一杯酒,夜雨江南十年灯”,继续吧… ...
阅读全文
Adapter Façade Decorator 与OO设计原则
摘要:
本文内容包括:
1.抽象耦合--灵活的耦合 2.Adapter与DIP ISP 3.Facade与LKP ... ...
阅读全文
工厂模式与OO设计原则
摘要:
如果把创建看作一个职责,那么系统中的哪个对象应该拥有这个职责呢?如果把创建看作知识,那么创建知识应该放置在什么地方呢?
本文内容覆盖:
1. GRASP给我们的启示 2. 简单工厂与OCP DRY原则 3. 工厂方法、抽象工厂和LSP DIP原则 4. 总结
阅读全文
视角的力量--再说OO设计原则
摘要: 《
OO设计原则总结》一文中我提出了一个问题:如何更好的使用这些原则?怎样在实践中遵守这些原则?使用三种视角思考问题就是答案之一;
本文内容包括:
1.为什么我们过早的纠缠于细节?问题的本质是什么?
2.救命稻草--Martin Fowler的三层视角理论
3.三层视角--回头再说OO设计原则
阅读全文
OO设计原则总结
摘要: 本文内容包括
1.什么是设计原则? 2.基本原则
3.SRP单一职责原则 4.DRY拒绝重复原则
5.OCP开闭原则 6.LSP 里氏替换原则
7.DIP依赖倒置原则 8.ISP接口隔离原则
我提出的问题是
如何更好的使用这些原则?请有经验者不吝赐教,谢谢!
阅读全文