一周总结

Sep 05, 2010

           上一周在开发过程中明显感觉到这个差距啊。。。很多东西,有些时候就是在你平时看书你可能觉得没有什么,然而到了实践却要忘记了,以前在学校读的书不少,当时就有怀疑说自己真实有掌握多少,是不是太缺实践了,果然啊。            在跟凯哥pair继续完成实现将整个系统中DateTime的实现策略改为将所有UI上获得时间以local或者相应的时区来显示,在数据库中一律以Utc的格式存储。同时在完成一个Alarm设置时凯哥发现很多地方的都会有创建不同Alarm对象的声明,但是有很多重复确是没有将它们可以以一种更好的方式来管理,赋予更具意义更直观的名字,于是便有创建一个AlarmMother专门用来说当成一个工厂,你可以在里面声明你想要的测试数据,并且可以更加易于阅读的方式命名,比如说 new Alarm(alarmtime,TimezoneInfo.Local.Id,UserMother.Trader()) 你所能从这个测试数据的准备中看出来它要干什么是很难的,所以它没有AlarmMother.CreateLocalAlarmFor(UserMother.Trader() ,alarmtime );这样更加直观,它明确的告诉它创建的是一个本地时区的alarmtime,而且AlarmMother将所以对象的实例化都放置一个地方,大大方便了测试数据的准备,这样你的实例化不是散落(scatter)在测试中,而是集中在一个地方,如果你这个实例化的地方有很多,那么这样带来的便利是不言而喻的。这次要将所有散落在测试中直接实例化Alarm的地方全部替换成使用AlarmMother,一搜才发现,真的有蛮多啦,所以这个改动过程非常无聊,纯体力活。试想如果当初发现这个这个创建ALarm的地方有点多,而且对于不同的测试创建Alarm的方式也会是有不同(比如不同的参数代表不同意思),如果有及时的做一个抽象,那么会给后面的测试带来多大的便利。不过我想还是缺乏一种直觉吧,像凯歌有过很多的经验,自然有形成一种reflection反射和intuition直觉,当他有写到一个地方或者一个点,就会有知道说会不会应该先跳出来,看看这样重复有没有可以改进的地方,正如凯歌有说,这个需要时间,我这经验还很少,慢慢来。               记得上周五有实现一个关于复选框支持批量删除的故事,然后我记得我当初想的是让用户在页面选中复选框,然后利用ASP.NET mvc内嵌的data binding这个功能,将每一个选中的复选框对应的curve的id传过来,也就是一个int[] 数组。为什么要这样做? 我的想法是正如今晚有看过Eric Evans的<>有讲到一个分层的设计,Application这一层在UI层下面,它应该有free from依赖的它的上层的,我觉得这里便是这样不管UI的实现如何,至少我的应用层应该是一个接受一系列需要删除curve的id,然后我想想这个MVC它有没有这样的支持了,如果有的话,那我可就是很简单的就可以搞定;如果没有可能处理过程还要麻烦一点。当我在stackoverflow上搜时,我发现这个它里面说这个方案是可以的,但是到我那确实不可行,死活这个id都是null值。想了想,然后就方案ASP.Net MVC maintain state of a dynamic list of checkboxes一点点放小,看看问题出在哪里.然后我尝试将Html.BeginForm()改为<form/>这样它居然能工作,然后我将表单的内容替换成真实需要的,它能工作,然后我将<form/>又重新换回去也没问题,这个令人发指啊。 不过这个“解决”问题的思路就是,一点点来,努力缩小问题出现的域,一步步向它逼近,如果复杂点它不能功能,那么换成最简单的形式,然后一点点往上面加东西,以便检查是否出现问题,这样子来定位问题的思路应该还是很正确的(尽管这个问题我没有从源头上理解它。。。。)。         周末有看过NBC的Celebrity Apprentice 第九季的第七集,很喜欢Cyndi Lauper的个性和Bret的rock and roll的风格 ,当然Summer也很好,我觉得这一集Trumper没有裁人,真是有点令人吃惊,Sharon也就是American Got Talent的评委,一口标准的英国口音,很有才,这一集中Sharon作为队长,虽然24 workout fitness的策划实施非常的original,但是没有筹到比Holly更多的钱,一度以为她会被裁,Cyndi非常紧张,都说以后都没有fun可言了,她貌似跟Sharon非常合的来,因为两个都超有个性吧,心心相惜。Bret很有才华,力挺。        周六去学校在自习室有看书,中午太困,躺在椅子上睡着了,朦胧中有人进来,我起身一看原来是大三教我《系统分析设计》的饶老师,他说他还记得我,这个,呵呵,受宠若惊啊,因为我一直跟老师不是非常熟,然后跟我巴拉巴拉的聊聊好一会问我还有没有坚持看英文书的习惯,说那是很好的习惯应该坚持等等。记得他上课时我当时拿着一本Robert C.Martin的书在底下看,可是没有给他面子啊,被他发现三次,呵呵,超尴尬,后来下课后有跟他聊过一阵子。 不过他人很好,现在看起来,当初自己实在是太年轻啊。          这一个月我需要加紧将Eric Evan的DDD这本书像是挤海绵一样抽出时间开完,尽管里面作者写的有些句子非常awesome 以至于我都会停下来读两遍,但是这会严重影响我读书的节奏,而且这本书语言单词等等对我应该没有太多问题,通读起来应该还蛮ok的,不像另外一本书<<Freakonomics>>那样,特别是其中的现在看到的关于犯罪的那一块,那个生词,如果你想通读下去,还是有些困难的,不过一般都是会先通读,不懂的强调上下文推理,但是如果实在不知道,我觉得那就可能不是简单的单词不认识了或者怎么样,而是这个背后的背景知识我不知道,所以没有能完整的读懂,当然你如果完全读懂也没有意义,就是一个大概,知道作者想表达的意思就ok. 所以这个月有两本书需要读完,当然可能还有Spring Training的剩余部分需要继续完成,再一个便是要加强英语的学习。