这里所说的我女儿是指我三个月来买的第三辆自行车,折叠的粉红色的可变速的小自行车。昨天北京刮起了大风,由于最近项目比较紧,自身水平又不高,所以打算周末加班赶进度,但是苦于风大天冷,中午吃完饭后就回去了,打算过一会儿在去公司,于是就没有把车子搬回楼上。可恶的大风一直没停,加之LINQ的吸引力,一直到晚上2点睡觉也没觉得饥饿和去公司的事。但是自己却想过要不要把自行车搬上来(一般我都是扛到楼上的),但是同住一房的同事说车子都锁一块了,肯定没事!他们俩的车子在楼洞里放了快1个月了也没有什么问题,于是我也就不再打算把它费力抗上来了。当今天早上(准确的说是昨天早上,现在凌晨了)下楼后,我就愣在那里了,被剪断的锁丢在地下,我女儿已经没了。整整一天,心情都不是太好,以前有她的时候没觉得多好,现在没了,丢的不仅仅是人民币。来到北京就听说这里是自行车杀手城市,不丢车就是这个城市已经变态的表现,根据同事教导去修车的地方买了一辆算新的二手车,没想到在公司楼下丢了。先前同事说过公司下面车棚是不会丢的,结果我却碰上了。经大家分析,是车子太新,车锁不够好(5元的)。第二天去另一家修车的地方花120买了一辆18速自行车,好一顿讲价,“送”了一把据说价值20元的车锁,结果在从TechEd回来的时候惊奇的发现锁在楼下的车子没了,那天是星期天,下午6点多左右,据邻居说中午还看到了我的车子。而后思考认为买一辆好一点的小车子比较好,也买了一把好锁,以后每天都把车子扛回屋里。一直安逸untill上周日晚上的因懒惰和侥幸而丢失。
总结:
1。懒惰和侥幸心理,是这次丢车的最主要的原因。当自己犹豫不定的时候外界因素的侵入(同事的“分析”)却起到了绝对性的作用。本身外因不占据事件产生的主导因素,但是当自身不坚定的时候,外界因素却几乎可以起到决定性作用。在项目开发过程中,这样的错误是常常见到的。举个例子,当我们从数据库里取出数据给实体类赋值时往往代码会是这样:domainObj.someProperty = (SomeType)IDataReader[index];这是想到的问题就是如果IDataReader[index]取出的数据是null的时候,可能会出现对象没有被引用到实例的错误。可是当前我的数据库设计和程序逻辑设计里读出的记录不会是null的。加上项目已有的类似处理方法里也没有做null处理,于是相对坚定的认为null出现的几率很小了,于是大片代码开始如此炮制。所以当null出现的时候.......后果可想而知。项目架构也是如此,同是.Text程序,跑在别的地方可能没问题,但是自己拿过来改动一些来用却是问题百出,相信有经验的开发人员在翻过.Text的代码后就对其中的隐患感触颇深了,但是看到很多成功运行的例子,加之自己的侥幸心理,就很容易使自己陷入焦油坑。在惨遭应试教育洗脑后,我们应该越来越多的相信自己对问题的分析和结果的权衡,就在N多年前人们还在认为地球是个正方体。
2。如何对待(++项目主版本号)。三次买车,价格分别为90,120,360。1:1.333:4的比例。当我们在项目上失败的次数越多的时候,对待下一个版本的功能期待和投入也是以几何级数的增长。都说失败是成功之母,但是每次我们犯的错误都是新的,按照这句谚语,我们得到的结果就是失败是成功之母=不断的失败+偶尔短暂的所谓的成功。根据常理来判断,结果是谚语=屁话。当然这个逻辑看起来很荒谬,其实跟那些所谓的“你们中国有句俗话”一样,只是后者常常和大学学位证/CET Cert一样,麻醉了一大批人。一个新版本项目的开启或功能重构的开启,就是出乎你意料的错误的即将来临的序幕。如果用正确的心态来对待才是重要的,不要期望这是一个best of the world或者完美无暇的结果,尽力去做就好了(一直以来我的车子安然无恙全在于我的悉心关照和仍然处于上次丢车的影响之中)
3。基础设施的重要性(infrastructure building )和适度设计(Appropriate design)。我的车锁让我付出了仅40元。盖多高的楼挖多深的地基,这话是真的,不过一个产品不是盖楼的模式,想多加20层楼了我们不可能推翻楼房重建地基,而项目基础设施的构建工作成了很多sulotion provider极为关注的部分。高度的可扩展性必然伴随效率(运行效率和有效时段内的开发效率)的降低。如果我为我的车子买一把200多车锁,固然显得太为过分了,至少这次车锁是被剪断的,不是被破解开的,我认为这把车锁买的合适,下次买车我会选一把比这个再结实一点的但是价格又不会是太高的,因为即使再坚固只要有素质的贼盯上你了,它也会想尽办法来给你搞断。我认为项目的架构不必考虑太过长远,适度就已足够,需要的时候重构和推翻重做在总体看来是节省开发成本和缩短开发周期的。世界上没有最高的楼,只有更高的楼,而且更高的楼一般不会是曾经是世界上最高的楼的,但是本拉登(不可预知和不可控因素)的出现似乎使得这个几率增加了。没有银弹的同时也没有完美、坚实的设计。胡言乱语之后总觉得对不起读者,附送小文:效率!!!数和字符串的转换