-
给Rails应用搞上数据库视图
第一次在Rails应用里用到了MySQL 5的视图,留个纪念。
Rails创建大概50,000个ActiveRecord对象就会很慢(大概50~60秒,在我的双核Mac Mini上),为了对付一个报表,就搞了一个视图。整体时间从70秒降到7秒。
Rails预先定义的rake任务中有db:test:prepare(里面调用db:test:clone_structure),但这个任务只把development库的所有表复制到test,不会复制视图,所以要自己在Rakefile里准备test库。
以上。
-
IT是什么(以及软件价值流)
在JavaEye看到一个颇不靠谱的帖子讨论这个,正好和我不靠谱的胡思乱想有点像。
IT是工业化的自然顺延。工业化的特征是自动化,一切可以被自动化的工作都将被自动化,并且自动化的成本不断降低。由此产能将被日用品化而不再构成竞争力,信息处理和决策才是。IT是信息的自动化,或者说是工业化时代在信息领域的延伸。一切重复的信息转换都应该被自动化,是谓信息产业。
另一个不靠谱的帖子引用我的胡思乱想。然则我原话不是这么说的。程序员不必要是价值链上最重要或者附加价值最多的部分,但一定是价值流图上的关键路径。不过,资本家应该让程序员尽可能的把全部时间用来做编程这件事,结论是对的。
-
地震也莫荒废了麻将
摘自某人的邮件:
余震就像打麻将,如果半天没的啥子动静,就绝对是在做大的
成都是麻将之城,现在成都麻将的最新规定是- 不准打512
- 不准打血战到底
- 不准打刮风下雨
- 不准胡推倒胡
灾区人民无房可住,在余震中等待吃喝;
上联:小震不用跑
成都人民有房不住,在吃喝中等待余震。
下联:大震跑不了
横批:就不用跑了
-
重构?重写?
InfoQ:争论:是否应该避免架构重写?
Joel认为在许多案例中做出需要重写软件的判断带有一定的主观性,其往往是由重用代码时遇到困难造成的。…即使旧的代码集就架构而言真的很糟糕,也应该努力清理代码、重构、修改接口,而不是进行全面的重写。
一种常见的担心是重构需要的成本不比重写来得小。第一,这是真的。基于一些真实的大规模重构得到的经验,重构遗留系统和重写需要的开发工作量基本上正好相等。不过第二,如果选择重构而不重写,可以确保原来的功能不被破坏。其实真实的担心往往并不是成本,而是效果:如果重构做到一半做不下去了再开始重写,那才是最坏的情况。所以真正解决这个问题需要切实可行的重构策略和手段,例如我在这篇文章里介绍的方法。
有很多这样的案例:面对着一堆遗留代码,人们说“那就既往不咎从头来过吧”。但事实证明从头设计一个优雅的架构于是软件就可以在将来的五年十年中保持良好的扩展性这样美好的愿望从来就没有实现过。因为,软件技术的发展是很快的,代码质量的腐化是很快的。良好的扩展性只有靠持续不断强力有效的质量保证才能做到。至于起点,重构还是重写,影响并不大──如果不介意重写的大风险的话。
-
场上核心
昨天去打球…确实老了,要活动好一阵才能找回感觉。不过热身好以后还是足够欺负一帮本科生小弟弟的。现在打球越来越平和了,把球吊给中锋,看着他坐吃内线就好了。就算自己一球也不投进,传传球,只要自己这队能赢就行。
InfoQ:老资格、尊重、威信和敏捷团队
两个讨论组的其他大部分成员都同意:一个人多年的经验并不一定能为他带来威信和尊重。威信和尊重来自于他的行动表现。Ajay Danait补充说,真正的领导者不会因为没有赋予权威而退缩,他们会通过建立共识来建立自己的威信。
其实没有威信又如何呢,如果这支队伍一直在赢?
而且不会有那么轻松的事。本科生小弟弟们慌乱的时候,我还得投进几个球─很高兴我还有体力连续投进4球。不过说实话,如果这是一种“建立威信”的行动,我宁可不要威信─一边叉腰喘着大气一边这样的想着。
-
无利不起早
我早说过,王洋同志突然那么热心的要解读精益,一定是为了混口饭吃。果然吧,不幸而言中。挂个好羊头,卖的是这块狗肉。
CSDP英文为Certified Software DevelopmentProfessional,即“被认证的软件开发人员”。CSDP认证体系由IEEE-CS于2002年创建,是对全世界范围的软件工程师在知识领域、工作经验及职业道德等方面的资质认证程序。它不仅是一个对软件从业人员的专业评测体系,而且还蕴涵了软件开发与管理的诸多标准,熟悉和掌握这些软件工程国际标准对于我国软件企业走向国际市场具有重要意义。
我这个人偏偏记性比较好。IEEE-CS的SWBOK无疾而终这才几年呢?现在又改头换面来认证软件开发人员了。真是把戏人人会变各有奥妙不同啊。(刚才坐在旁边的销售总监扫了一眼我的标题说:“谁不是无利不起早呢?”嗯嗯,这话说得很对。)
-
新闻两则
第一件,ThoughtWorks中国公司被评为2007年度最受程序员欢迎雇主。
1、聪明(Smart)是第一要素:公司的HR对猎头寻访候选人的最根本要求就是Smart。ThoughtWorks是聪明人聚集的地方,即使工作经验再丰富、背景再好,如果不聪明,也不是他们所要的。聪明人在一起才会碰撞火花产生智慧。
2、平等沟通:ThoughtWorks管理扁平,每位员工都能充分发挥积极性。平等的沟通氛围是难得一求的。没有高管独立办公室就很能说明问题。
另一件是关于几个“聪明人”(嘿嘿…)去年做的事情:CruiseControl.rb的下载量达到10,000次。Alexey说:
Once upon a time (around version 0.1) I said that building CC.rb will be worth the hassle ifitevergetsover 10k downloads. Just an arbitrary big number, yes. But yay! We are there now. :)
最新的数字是10174次下载。看见自己做的东西有人用,感觉也挺不错的。
-
大词大家说
看起来“敏捷”就快过热过气了。就好像前一阵跟胖子和李剑等人半开玩笑半认真说的,用不了多久所有人都会说自己其实一开始就是敏捷的,再然后就是“听说你搞敏捷了?”“你才搞敏捷呢,你们全家都敏捷!”这样的对骂。有人在InfoQ上回帖说的,国足出线以后保米派气势汹汹的想找倒米派算帐,结果发现找不着了,所有人都是保米派。
勇敢的预测一下,下一个被玩烂的大词是“精益”。比如说看看曾经那么勇敢那么不顾一切然则还是不得不混口饭吃的王洋同志说些什么:
随着软件工程思想在我国软件产业界的普及,《4S主义》——标准化、专业化、系统化、简单化必将深入到每一个软件开发企业的技术管理者心中,软件产业研发必将进入到《4S主义》。
我经常说,要是不知道什么是精益什么是敏捷,没有关系,这个东西很容易了解。你走京通快速路,远通桥南边,到一汽丰田的4S店去看看,就能有些最基本的了解。你最起码去看看,也省得说出“标准化、专业化、系统化、简单化”这些能把大野耐一给气得炸尸的精益解读来。
好的解读也是有的。IT168的一篇文章说得有点意思:
所以精益思想强调,首先正确设计你的流程,然后再去找合适的工具让这个流程开动起来。不管是软件开发用到工作工具,还是别的工具,只要能够支持这个流程,就是合适的工具。
标准化,huh?
今天还看了一篇有意思的blog,童继龙写的防窜货管理的杀手锏。虽然说公司的市场活动还是得认真的去做,不过大词说多了觉得累得慌,看看人家怎么解决实际问题挺好玩的。
-
Conference 2.0
当然…“敏捷中国”大会今年已经是第三届了。不过,我们这次尝试用Web2.0的方式来组织这次大会。
报名参会mashup了报名吧
还用Facebook来帮忙宣传
我觉得这样规模的会议应该能够彻底的2.0起来,今年试试看吧。
-
两天一网站
Ricky和dreamhead都写了我们周末玩的CodeJam。一言以蔽之曰,好玩,刺激。
我很喜欢这个团队。很好很强大。