QCon第一天见闻
Posted on Fri 23 April 2010 in it
今天是非常充实的一天:早上7点起床,8点出发,9点进场,上午2场下午4场主题演讲听得非常过瘾,到家后头脑还非常兴奋,开始准备整理一下思维,记录一下今天听讲的感想。
一开场,主持人就告诉大家一个消息,Erich Gamma因为冰岛的火山灰原因,无法出席本次QCon了,他自己深表歉意,并承诺,下次他来北京演讲,本次参加的人都可以去免费听,作为补偿。
Michael Nygard - 《失败来临的征兆》-四星
这是第一个演讲,当时坐得有点儿远看不清楚ppt,听得有些云山雾罩。这里有人做了笔记,回来仔细看了看,觉得很不错。
首先给了两个假设: 1. 用户关注功能而不是你使用什么软件硬件; 2. 失败和错误总会发生。然后引出了工程化失败模型。
工程化失败模式(Engineering Failure Modes)
- 容忍:将震荡吸收,而不是传递它
- 服务能力:功能缩水而不是整个损坏
- 恢复能力:允许组件重启,而不是让整个世界“重新启动”
- 弹性:能够从瞬时性(Transient)的影响中恢复
最后给出了很多有益的建议:
- 尽可能完善的测试;
- 控制错误传播的范围;
- 降低服务间的耦合性以及服务间的依赖关系;
- 在SOA的体系中要有所谓的严重错误Breaker机制来预防蝴蝶效应带来的一系列严重后果。
Paul King的《动态语言的敏捷开发实践》-四星
第二个我就吸取教训了,跑到第一排过道去听了一个过瘾。下午还听了他另外一场《Groovy中的强大功能》。这个家伙在动态语言上造诣颇深,对推广Groovy上贡献非常大,下午被他的Groovy实例代码惊得够戗:简明的语法能把百十行的java代码变成几行;强化的功能包括Closure/DSL/对测试的支持等;还有奇幻的Grab方式的import maven类库,不禁让人摩拳擦掌。
麦天志《如何在团队中有效实施TDD》- 三星
下午第一场。麦天志是来自香港的敏捷专家。有几点经验觉得很不错,和大家分享:
-
怎么判断是不是重构?重构需要保证不能改变系统的外部行为,需要有单元测试保护;如果没有足够全面的单元测试保护外部行为不被改变的,叫做重写。
-
好的单元测试的标准: 快、可读、一个测试测尽可能少的功能,甚至达到一个测试只有一个断言
-
持续集成: 测试代码覆盖度显示放在CI中,激励大家增加测试代码
徐春好《SOA技术架构和平台实践》- 三星
下午第二场是来自普元的徐春好讲《SOA技术架构和平台实践》,也非常不错。虽然他也在推广普元的产品,但对企业架构的问题分析总能搔到痒处,并且提供方法级的解决思路。
《Groovy中的强大功能》-四星
第三场就是Groovy的了,听得相当兴奋。
第四场是蔡学镛讲《Rebol漫谈》,是我今天听到的最不认真的一个演讲。他自己写在ppt中的代码自己都讲不清楚,听了10分钟就换到另外一个会议室,去听张矩讲《构建高扩展性云平台的十大举措》了。
张矩《构建高扩展性云平台的十大举措》- 四星
讲得真挺不错的,虽然十大举措就听到后几个,觉得挺有道理的:
-
规划时要区分数据的重要性,以便分别存储;
-
监控的最高目标是:提高系统在运行过程中的可见性;
-
自动化的重要性: 自动化高的系统维护部门,一个人可以维护5000台服务器!
在回答问题时,能看出来这个人很谦虚机敏,在一个回答中讲到一个设计原则:计算成本越来越便宜,传输成本没有这么明显的降幅,所以计算要尽量离数据近,降低传输成本。