Monthly Archives: July 2010

上海能从此脱离最被污染的城市吗?

连续三四天,上海的天空出奇的蓝。这样的天空在上海以前一年也就出现那么一两回。是什么原因呢?是SB口号起的作用!是SB开始之后所有大规模建设都停了!希望以后为了建而建的事少发生一些,把纳税人的钱用到更有用的地方去,能让SB口号更起作用,能让上海脱离最被污染的城市。

办上海户口经验总结

经过多次反复、漫长的等待,我们一家的上海户口终于办下来了。把我们办户口的经验总结一下,希望对后来人有所借鉴,能少反复几次。 我想很多在上海的非上海人想把户口落到上海来。下面先说说可能的几种办法。 1. 找个上海老婆或嫁个上海老公 2. 到能够办上海户口的公司去,等上几年公司就给你办了。 3. 特别突出人才,像院士、长江学者啊。如果你因为要办户口而当成了这些,可别忘了告诉我一声:-) 4. 找个代理公司。听说有人办成功办过,前提就是必须符合条件。 5. 如果不符合条件,那就用居住证这招了。说不定n年之后就给你办了。 我们办用的是第二种办法,公司有名额。我们办的时候有个规定那就是要么一家子一起办,要么都办不了,想一个人单独办,没门!别问我为什么,很多事情没有为什么,曾经有人在面试的时候被“妈妈很坚强、爸爸很软弱”的理由拒了。所以得未雨筹谋,找一个也够办上海户口的对象,如本科毕业。要么就先憋住,等户口办好再登记,幸亏现在没有洞房花烛了,要不然可不好熬啊:-) 再说说办的过程。流程大致就是准备材料->人事局批准->调档和同意迁出证明->落户。准备哪些资料-谁给你办谁就会告诉你。花的时间最多的是在准备材料到人事局批准这一步。会有材料格式不对啊,时间过期了呀,之类的问题。 1. 首先就是要把期望值放低,有多次反复那是正常的。如果因为办户口繁的实在受不了移民去了倒也是一件好事。听说现在很多中间阶层移民了,应该算不上中产阶级。不过移民到泰国去就不必了,别像某些不成器的人似 的。 2. 和户口以及档案所在的公司关系别搞僵了。虽然你已经和那个公司八竿子打不着了,但是有些证明还是要出的,像没有入过邪&!教之类的,以及调档案。 3. 所有证明,能不写日期的就不写日期。要不然就会碰到A过期了,等到A重新办好后B又过期了。 4. 有些手续是死循环,得想办法打开。什么办法,想啊,活人还能让尿憋死。 5. 有小孩就必须有独生子女证。这点一般人用不着

敏捷之我见

现在到处可以听到敏捷,似乎谁不敏捷谁就OUT了一样。我听过周围不少同事朋友都在讲,他们公司使用敏捷了,应用了哪些敏捷的最佳实践。感觉好像使用了那些最佳实践就实现的敏捷一样。 敏捷的目的在于响应快速的需求变化。所有的最佳实践都是为了实现这一目标。这些实践当中最重要的有三项。 最重要的一项为缩短和客户之间的距离,减少中间层次,尽量扁平化。这一实践在很多地方都没有提及。如果客户可以直接面对团队,那么客户就应该直接作为Product Owner。但是这种情况对客户端要求很高,一般不太现实。最合适的是三层设置,三是一个神奇的数字。一层为团队,第二层为客户代表,第三层为客户。客户代表需要理解并分析客户的详细需求,并将需求转达给团队。团队完成后,客户代表检查是否完成需求,再由客户代表给客户做演示。如果这个设置超过三层,往往很多需求在交流过程中会严重失真,最后的成品和客户的需求差别会很大,有时候甚至完全不一样。管理以及交流好一些,那么失真会相对小一些。如果一个产品经常有功能做了之后没有真正使用,一般都是由中间层次太多引起的。其实这也不是敏捷特有的,瀑布和螺旋开发方法都有。只是敏捷更提倡频繁的和客户交流,如每月一次,甚至一两周一次。 第二重要我认为是缩短发现问题的周期。发现问题的方法无非就是测试,包括单元测试、功能测试、界面测试、集成测试和系统测试。以前这些测试也都有,只是没有那么受到重视,有很多还是非自动化测试。而敏捷要求将这些测试有机的结合起来,每种测试覆盖一定的范围,像摞金字塔一样。如果没有多少测试,或者测试不是自动化的。那么发现问题的周期就会比较长,短则需要几天才会发现问题,长则需要几个月。问题发现的越晚,那么改正问题的成本就越大。能记住上上个月1一号干了什么事的人毕竟很少,更何况还不知道这事是谁干的。如果能有完备的测试,80%行覆盖率左右的单元测试,每个功能至少一正一反两个用例,每个边界一个测试用例,界面常用操作流程测试,系统打包生成、安装、启动和运行测试。问题在每种测试都会被拦一道,最后泄漏出去的问题就会很少。很多问题在单元测试就能发现,而这一般只需要几分钟的反馈时间,几分钟之前干了什么事谁又能记不住。其它的很多问题也可以在每晚集成中发现。 第三重要的我认为是缩短任务检查周期,每日晨会。每日晨会应该可以说主要是从心理学得来的。我总不能说昨天我啥也没干,今天我啥也没干,明天我还是啥都不会干。每日晨会还可以把项目当中哪些事做完了,哪些事没做完放到桌面上来,而不是一直只在某个人的箱子底下。啥事儿放到桌面上都是比较好解决的。 敏捷当中还有很多最佳实践,那些最佳实践主要是为了减少问题的引入,像结对编程,绝不加班。 敏捷只是一个名词,真要用好敏捷要从缩短反馈周期出发把各个最佳实践有机的组合起来。

软件架构设计之性能设计

经常可以看到很多文章说性能调优不是最重要的,只有证明确实证明存在性能时才去调优。我想他们更多的是想强调不要太关注局部的性能调优。曾经听说过有人把x*10写成x