标题这种话已经在被很多人所理解,现在大多数开发人员已经不再把语言当成障碍,而是把思想当成障碍,语言的跨度其实真的很容易解决,但思想不进步,你有着再好的语言又怎么样?即使你用的是所谓的自然语言(即平时生活中的语句),但只要你没有思想,没有逻辑,你又能写出什么样的程序?
以下内容来自老王参加的某大会的记录、摘要。我是看中其中的一小部分,觉得有感触。。原文在这里,点击进入:
部分我认为不错的精华,或者说是我关注的。。。
1、课程:失败来临的征兆(讲师:Michael Nvgard)这一切正是Michael Nvgard先生演讲的主旨:意外的问题总是在不经意间发生,要注意把它们的影响限制在局部,避免拖累整个应用。比如说在SOA中集成若干个服务时,应该 设置好各个服务的Timeout,避免其中一个服务崩溃连带整个系统等待。
2、课程:Twitter的可伸缩性数据架构(讲师:Nick Kallen)
Nick Kallen介绍了Twitter在处理海量数据时的经验,其实总结出来就三条:分区,索引,复制。
着重介绍了Tweets,Timelines,Social Graphs,Search Indices四个基本功能的实现:
Tweets比较简单,就是分区,虽然可以使用id或者user_id来分区,不过目前Twitter使用的是按time分区。
Timelines相对复杂了一些,最开始采用的方法是纯SQL的,大致如下:
- SELECT * FROM tweets
- WHERE user_id IN (SELECT source_id FROM followers WHERE destination_id = ?)
- ORDER BY created_at DESC
- LIMIT 20
剩下的问题不多说了,Nick Kallen给了PPT地址:http://www.slideshare.net/nkallen/q-con-3770885
3、课程:构建可扩展的微波系统(讲师:杨卫华)
杨卫华作为新浪微博的架构师,这次的PPT做得很酷,虽然在内容上和Twitter有些重复,但还是很不错。
提到了Memcached的evictions问题,给出了三个守则:
1:规划好cache的容量
2:将永久数据和临时性数据分开
3:不使用随机字符串做Key
至于原因,可以参考杨卫华的博客上的介绍:Memcached数据被踢(evictions>0)现象分析
4、课程:敏捷在中国(讲师:Tom Mellor) 编程工期的催促往往让程序员只考虑眼前的既得利益,却忽视了后期的风险。
5、课程:如何在团队中有效实施TDD(讲师:麦天志)在阐述为什么即便工期紧张也应该使用TDD的时候,他给了一个比喻:医生做手术的时间很紧张,但即便 这样,手术前清洗双手的工作程序也是必不可少的。在讲解重构时,他强调了TDD是重构的基础,只有这样才能保证重构没有改变现有的行为,否则就不是重构,而是重写。