Archive for » 十一月 17th, 2008«

这周一一来Troy就说又想要新的格式化字符串,但是这个C#自带的那种Format又无法支持,于是他说那就先Hard coding到代码里面去,或者自己写一个可以自由输入命令的小东西出来~时间那么紧,我还没有完全做好心理准备,于是就先硬编码后编译了一下给他用,然后我就自个儿琢磨这玩意儿要怎么写。觉得到公司来养成了一个很好的习惯,就是在写代码前自己会在笔记本上写写画画,把这个小块的类图啊,状态关系啊,甚至是流程都画一遍,发现这样在写起代码来确实能够让思路更清晰,也减少很多异常情况没有考虑的机会。这次在写这个自定义命令的时候,我又应用了一个模式 – Factory Method Pattern,不过因为都没怎么写过,有点忘了,后来在Wiki上认真地又看了一遍才开始动手写。BTW,以前一直觉得Wiki其实没有那么神,再加上前一段时墙时不墙的,几乎没上过,来了公司以后才发现,这是个好东东啊,难怪那么多人对它趋之若鹜。说回代码,设计模式的确博大精深,在这么一个小地方运用了这么一个小模式,我就感觉受益匪浅,以后如果要自己添加命令,只需要自己继承一个类,改写好那些纯虚函数,一切OK,以前的代码基本上不需要改动便可以运行,这在大型的软件项目中是非常非常重要的,因为你改动一个地方就可以导致很多其他引用这段代码的地方需要相应的更改,也有可能引入很多的regression。就像上次Troy给我Review代码时所说,我们往里面加东西,一个很重要的原则就是对原来的代码修改地越少越好。接下来我又做了一个我自己加上的需求,tag name那边我加了一个自动提示框,就像Google那样可以根据输入自动给出对应的提示,技术上其实不难实现,就是用ComboBox的下拉框来模拟这么一个效果~这样以后用这个软件再也不用费神去原来的xaml文件Copy/Paste了~在后半周我就开始了对OWL的测试,这也是我毕业设计可以涉及到的东西,

这周又开始了新的任务,我以为Troy还要Review我的Provider的代码所以我可以忙里偷闲一会儿的时候,Troy和我说,要从Miles那里转一个任务给我 — 果然,在公司里很难得会有轻松的时候啊。那个任务挺简单的,是做一个小工具帮忙我们修改Inventor的xaml文件,具体的说就是能方便地修改AutomationID以供接下来的使用。其实Miles已经做了一个原型出来了,能够读文件,解析Id属性,并且能够单个修改,但是还是远远不够,因为我们可能要面对的是大量的修改工作,然而他还有其他工作要做,所以我就揽下了这个活儿~Troy说最好周三就能用,可是我接到任务的时候已经周一下午了~没关系,相信我自己的水平,HOHO~说到这个任务,比较麻烦的就是在界面上面~因为这是我第一次写WPF的程序,还是比较生疏的,这次要用的又是一个比较灵活的控件 – GridView,在怎么动态添加列以及WPF特有的Data Binding上,我花了好大的力气,周二一天就泡在这上面了,本来以为要加班,不过最后很勇猛地在下班前五分钟搞定了~哈哈,还是要多谢Miles,已经写好了很多有用的函数,我只需要调用就好了~虽然和他之前没有过多的交流,不过这或许也能体现出软件工程上面对接口定义的要求?总之周三给Troy的时候他还是比较满意的,后来他又提出要求,说希望能格式化AutomationID的输出~看,客户的需求总是在不断地变,于是做为“软件工程师”的我们只能不断地修改代码,以符合客户的需求。不过这个以前在学校完全没有接触过,在学校做课程项目的时候,我就是自己的客户,哼哼,什么要什么不要全由我说了算,做出来了就拉倒,根本不可能涉及到需求变更的情况,这也是公司的实际情况和学校的理论情况的差异吧。这里面涉及到的代码重用是我一直跃跃欲试的area,不过具体到这次的变更,其实还没有那么高深,加一个对话框再改一处函数就可以了~很轻松地解决掉以后就到了周五了,例行性地偷懒,于是这一周就结束了。