摘要:一般,页面上会分为很多部分,而不同的部分更新的频率是不一样的。如果对整个页面采用统一的缓存策略则不太合适,而且很多系统的页面左上角都有一个该死的“Welcome XXX”。这种特定于用户的信息我们是不能缓存的。
对于这些情况我们就需要使用片段缓存了 阅读全文
面向对象实践之路-提升抽象层次
2011-04-26 08:32 by 横刀天笑, 9329 阅读, 29 推荐, 收藏, 编辑
摘要:回顾编程方法的发展史,我想不外乎两个字:抽象。
从最早的汇编语言中使用的子例程到结构化编程,然后到面向对象、面向组件以及面向服务。我觉得都是不断地提升抽象的层次。所以编程方法没有好坏,只有适合不适合。在汇编时代问题规模都很小,所以我们需要的抽象能力不需要太强。而现代的软件项目,问题的规模非常庞大 阅读全文
我们的故事墙--一切为了可视化
2011-04-08 22:54 by 横刀天笑, 5564 阅读, 8 推荐, 收藏, 编辑
摘要:几乎所有讲敏捷的书或者说使用了敏捷软件开发的团队都会拿出一个用户故事墙来说事。我们也有一面墙。可能有人要说,现在都二十几世纪了,还用这么落后的手段管理,累不累啊。Project干啥吃的,Excel,Word和PowerPoint都哪儿去了,比这好用多了吧。
其实不然,且听我细细道来。 阅读全文
敏捷估计中的点
2011-04-07 13:16 by 横刀天笑, 1661 阅读, 1 推荐, 收藏, 编辑
摘要:今天IPM纠正了一个我长期的误解,现把经过记录下。 在IPM中,我们会对这个迭代要做的User Story进行简单的讲解,然后开发人员会对该User Story进行估计。现在存在这么一个问题:假如我们现在要对Story #1: Provide RSS for Latest Articles进行估点。但是我发现我们之前曾经做过Provide RSS for Most Viewed Articles。... 阅读全文
.NET中的异步编程(五)- 第三方类库
2011-03-24 00:02 by 横刀天笑, 2615 阅读, 4 推荐, 收藏, 编辑
摘要:在前一篇文章中我们看到了一些关于CPS的讨论,并利用C# 2新增的迭代器yield来实现CPS的编码方式,简化异步编程。不过异步并不是你想象的那么简单,也不是我那个随手写的几行代码能够解决的,特别是当并发环境下你会看到到处是异常。所幸的是在.NET平台中已经有一些第三方类库能够简化我们的异步编程,而且还更可靠 阅读全文
.NET中的异步编程(四)- IO完成端口以及FileStream.BeginRead
2011-03-22 08:55 by 横刀天笑, 8337 阅读, 14 推荐, 收藏, 编辑
摘要:写这个系列原本的想法是讨论一下.NET中异步编程风格的变化,特别是F#中的异步工作流以及未来的.NET 5.0中的基于任务的异步编程模型。但经过三篇文章后很多人对IO异步背后实现的原理以及为什么这样能提高性能很感兴趣。其实我本不想花更多的文字在这些底层实现的细节上,一来我并不擅长这些方面,二来我们使用.NET的异步IO就不需要关心这些底层东西,因为已经为你封装完备了。不过为了避免大家一再在这上面商讨,我还是在这个系列中间插入了一篇来解释一下。 阅读全文
Git学习笔记(一)
2011-03-08 22:38 by 横刀天笑, 5253 阅读, 4 推荐, 收藏, 编辑
摘要:Git是一个分布式版本控制系统,比起传统的集中式版本控制系统有一些它特有的亮点。比如可以更快的比较两个文件的版本,在本地也保存了文件变更历史,而可以离线工作等等。 阅读全文
我眼中的敏捷实践
2011-02-27 08:50 by 横刀天笑, 3608 阅读, 3 推荐, 收藏, 编辑
摘要:最近coolshell.cn上有几篇对TDD以及ThoughtWorks颇有微词的文章,然后园子里的Todd Wei同学也来了篇TDD到底美还是不美的文章都引起了广泛的讨论。本来不想趟这个浑水,但想来想去还是有些话想说说。本文主要想谈谈我对TDD以及敏捷实践的理解,也针对Todd Wei提出的质疑做了一下回答。 阅读全文
.NET中的异步编程(三)- Continuation passing style以及使用yield实现异步
2011-02-24 07:45 by 横刀天笑, 8028 阅读, 20 推荐, 收藏, 编辑
摘要:在上一篇文章中我们围观了传统的异步编程,感受到了异步编程不是简单的事情。传统的异步方式将本来紧凑的代码都分成两部分,不仅仅降低了代码的可读性,还让一些基本的程序构造无法使用,所以大部分开发人员在遇到应该使用异步的地方都忍痛割爱。本来我在本篇文章中想讨论一下.NET世界中已有的几个辅助异步开发的类库,但是经过思考后觉得在这之前介绍一下一些理论知识也许对理解后面的类库以及更新的内容有所帮助。今天我们要讨论的是Continuation Passing Style 阅读全文
.NET中的异步编程(二)- 传统的异步编程
2011-02-22 08:15 by 横刀天笑, 13390 阅读, 36 推荐, 收藏, 编辑
摘要:在上一篇文章中,我们从构建响应灵敏的界面以及构建高可伸缩性的服务应用来讨论我们为什么需要异步编程,异步编程能给我们带来哪些好处。那么知道了好处,我们就开始吧,但是在异步编程这个方面,说总是比做简单。套用那句不是名言的名言:编写异步程序是困难的,编写可靠的异步程序尤其困难。 阅读全文