随笔-112  评论-64  文章-0  trackbacks-0
工作日志
2010-11-08提高整数除法精读的技巧
摘要: 如果做整数的乘除法运算,可以先做乘法,之后做除法提高运算的精度。比如1/5*10和1*10/5虽然从数学角度上讲结果一样,但如果从整数运算角度上讲结果会大不相同(因为会被取整)。阅读全文
posted @ 2010-11-08 23:02 LeonSun 阅读(13) | 评论 (0) 编辑
2010-11-07近期学习总结+动态调用DLL
摘要: 1.动态调用DLLhttp://www.cnblogs.com/J0YANG/archive/2009/08/18/1549004.html2.通过左移位和右移位,可以加快乘2和除2的运算。右移一位=除以2,左移一位=乘以23.小图转换为大图时,可以通过大图找小图中对应点的方式精确映射阅读全文
posted @ 2010-11-07 22:05 LeonSun 阅读(11) | 评论 (0) 编辑
2010-8-16接口设计
摘要: 对外接口的设计,要保证外层可以方便的使用,并且保证语义容易理解。软件设计也是如此。阅读全文
posted @ 2010-08-16 14:02 LeonSun 阅读(7) | 评论 (0) 编辑
2010-5-31补上学习总结
摘要: 补上这两天学习的总结。1.软件菜单的说明文字要直白,像变量名一样,不能只是自己能看懂,要让使用者也能一眼看出这个菜单实干什么用的。2.菜单要进行分类。3.遇到算法问题,一般都可以转化为数学问题。从复杂到简单,从二维到一维,使用数学方法逐步简化问题。4.设计接口时,主要依据实际问题,再根据经验设计出相对通用的接口,没有适用于所有情况的接口。阅读全文
posted @ 2010-05-31 21:52 LeonSun 阅读(7) | 评论 (0) 编辑
2010-5-24不破坏现有功能的设计
摘要: 今天一位同事说,花了大部分时间研究怎样修改现有代码、增加功能而不破坏原有的功能。确实学到了一些东西,以前总是看到不爽的代码就想改,如果考虑到成本和向下兼容的话,还是在原有基础上做修改更划算一些。现在已经比以前强了一些,看到一些功能总先想办法添加代码而不是直接修改。但这样下去会使代码越来越庞大,之后更加不容易进行重构,还是要在适当的时候整理代码。让代码清爽,简洁,易懂,自说明。“改不好更...阅读全文
posted @ 2010-05-24 23:22 LeonSun 阅读(6) | 评论 (0) 编辑
2010-5-5对象池
摘要: 现在的项目在操作不同的Operator时,用了一个字典按名称存储Operator,这样可以减少每次都重新实例Operator的开销,并且可以有效的控制每个对象的生存周期,但是有一点需要注意,由于每次获得的都不是新的对象,所以对象内部的状态需要在新获得的时候进行清除或还原。今天就是遇到了这样的问题,由于没有清除一些内部字段的值,导致第二次进行操作的时候,直接读取了第一次使用的数据,造成操作错误,重新...阅读全文
posted @ 2010-05-05 22:41 LeonSun 阅读(7) | 评论 (0) 编辑
2010-4-14DSL
摘要: 刚看了老赵的一片文章,发现现在做的项目的配置文件,就有点儿像内部DSL了,汗颜...不过现在这个配置处理方式并不太完美,比如说前套中加入功能,外层的处理很难给内层的处理加功能,只能是再在中间加上一层处理并且可能会重复执行某些已经做的事情来解决这个问题,举个例子:classA可以获取到矩形,假如是写死的;classB可以获取到屏幕截图,前提是需要一个矩形范围;classC可以将图片转换为二进制格式,...阅读全文
posted @ 2010-04-15 00:30 LeonSun 阅读(11) | 评论 (0) 编辑
2010-4-13大
摘要: 今儿又做了个大东西,集大成的东西往往是职责不明确、修改不方便、通用性不强的。如果发现某个类不容易测试,就说明这个类有职责过多、耦合严重的问题了。阅读全文
posted @ 2010-04-13 23:28 LeonSun 阅读(6) | 评论 (0) 编辑
2010-4-8谁应该知道的更多
摘要: 今天在包装一个功能的时候遇到一个问题,谁应该知道更多的信息?问题是这样的,一个类,需要一个文件路径参数,这个参数是写在构造函数中还是写在方法签名中?1.写在构造函数中:好处是可以在构造时送入,可以通过配置读取送入,并且配置读取模块不用分离在个各类中,即在同一处做配置文件读取,并初始化好这个类以后就可以送入其他类来使用了。坏处是不太容易理解,接口缺少这个参数,会变得有一些难以理解。2.写在方法签名中...阅读全文
posted @ 2010-04-08 22:15 LeonSun 阅读(5) | 评论 (0) 编辑
2010-4-3《卓有成效的程序员》读书笔记
摘要: 今天一口气把这本书读完了,收获确实不小,书中提到的一些提高效率的理念,比如利用各种工具完成任务、去掉重复、尽可能自动化等等,都是非常实用的。1.利用各种代码分析工具比如静态分析工具、源代码分析工具等,找出潜在的Bug。2.如果对getter/setter不加限制的使用,无异于对外暴露细节破坏封装特性,是数据与预期的不一致。所以还是妥善使用,比如空置访问权限(在.net中建议的做法是使用proper...阅读全文
posted @ 2010-04-03 22:46 LeonSun 阅读(8) | 评论 (0) 编辑
2010-4-2交互
摘要: 重新修改了Operator的大框架,Operator与Service的交互分布在不同的逻辑层次上,使得对Service通信的封装也就需要在不同的逻辑层次。现在使用的办法是通过传递失血对象,将Service可能提供或者需要的参数全部包含进对象中,这样,可以将与Service通信的部分独立出来,但是需要在处理逻辑内部维护和同步一些状态、参数等信息,并且这个并不是最佳实践。另外琢磨了一下,是否可以采用类...阅读全文
posted @ 2010-04-03 00:23 LeonSun 阅读(7) | 评论 (0) 编辑
2010-3-31负担
摘要: 在设计的时候太OO有时也是一种负担,任何事情都不能过分追求完美。《卓有成效的程序员》读书笔记:1.当需要把某些工作自动化的时候,可能会花费比预计多很多的时间(其他工作有时也是如此)。这就需要使用“时间盒”:先制定一段时间来研究,时间一到就客观的评价是否值得做这件事情,如果得出的信息不够,可以视情况再加“时间盒”。2.当进行某项工作时,会遇到新的问题,...阅读全文
posted @ 2010-03-31 21:58 LeonSun 阅读(5) | 评论 (0) 编辑
2010-3-30接口设计
摘要: 一个类型需要知道其依赖类型所用到的所有参数。doskey可以定制在dos下的宏;创建cmd的快捷方式,将缓冲设为最大以便查找之前的执行记录。《卓有成效的程序员》读书笔记:1.“少用文件树,多用搜索。”现在做的还不够,通常都是在用文件树...2.使用“有根视图”专注于某个目录层次结构。创建“有根视图”的方法是:建立快捷方式,在项...阅读全文
posted @ 2010-03-31 00:00 LeonSun 阅读(8) | 评论 (0) 编辑
2010-3-29好东西也不是随便用的
摘要: 泛型是.Net Framework 2.0出现的好东西,但是好东西也有个适用范围。一般来说,对于类型无关的算法套用,使用泛型是最合适的了,比如集合类就是个最好的例子;但是,与类型相关的算法,使用泛型就不太合适了,在使用泛型时,最麻烦的应该就是类型判断和转换,有些时候这些操作根本无法实现,如果一个算法需要依赖某个类型的特征(比如类型的本身或者属性),使用泛型却是不是很明智的。《卓有成效的程序员》读书...阅读全文
posted @ 2010-03-29 23:18 LeonSun 阅读(8) | 评论 (0) 编辑
2010-3-24卓有成效的程序员读书笔记
摘要: 今天阅读了《卓有成效的程序员 The Productive Programmer》一书(Neal Ford著,ThoughtWorks中国公司译)的部分内容,重点和感想如下:1.“带有很多注释的长方法,往往意味着解决方案没有被很好的组织。通过把注释重构成方法,就可以清除这些又长又臭的大方法。...把注释重构成方法。...更多更小的方法是件好事”。文中提到建立很小的方法,好像...阅读全文
posted @ 2010-03-24 23:18 LeonSun 阅读(12) | 评论 (0) 编辑
2010-3-23减肥
摘要: 今天把遍历、识别物品的代码做完了,之后对这部分代码进行了Review。在代码中发现的问题如下:1.对于图片像素的的轮询,最好按行进行,也就是外层循环列,内层循环行。由于图片在内存中的分布是按行排列的,所以按行循环要比按列循环快一些。2.相同的逻辑最好集中在一起,以免造成逻辑混乱。尤其是条件判断逻辑,如果分散在不同的地方,比较容易出现错误。3.代码越少越好,方法越短越好。阅读全文
posted @ 2010-03-23 21:20 LeonSun 阅读(3) | 评论 (0) 编辑
2010-3-22问题解决
摘要: 今天解决了寻找矩形的问题,最后使用四向判断的FloodFill算法,得出所有联通的黑色区域,再用黑色区域与面积的比值,算出矩形。应用这个方法的前提,是所需要的矩形必须是封闭的,这样才能把矩形内部的黑色区域分为一组。由于边框经常出现一个角上的像素点丢失的情况,所以使用四向判断黑色区域联通的方法。最后视所有黑点的分组为矩形的面积,并记录最大和最小的X、Y的值。首先筛选出面积在某个范围的分组,过滤掉较大...阅读全文
posted @ 2010-03-22 22:55 LeonSun 阅读(8) | 评论 (0) 编辑
2010-3-19初见成效
摘要: 今天一直在想办法处理图片,把需要的矩形边框突出显示出来,但总是不太令人满意。最后通过一些计算,得出了矩形边框的取色范围。计算透明的公式B*Alpha+F*(1-Alpha)=C,B表示背景色(无边框覆盖颜色);F表示前景色(边框颜色);C表示当前颜色(被边框覆盖后的颜色);Alpha为透明度(0<=Alpha<=1)。可以通过已知两点的B和C的值,就可解出Alpha和F。但由于B的取值...阅读全文
posted @ 2010-03-19 23:51 LeonSun 阅读(7) | 评论 (0) 编辑
2010-3-18多手准备
摘要: 关于线程的Join,领导今天又给解了一下惑,其实就是主线程等待子线程结束为止,没有什么合并的概念。今天在做边框识别算法,做了三套,每一套都不能完全、完美解决问题。最大的难点在于去除干扰的颜色点,因为前景色是半透明的,套在不同的背景上,让需要的矩形凸显出来。自己想了一个办法,应该是属于比较精确的方法,但是越精确对背景色的要求越高,在现实种可能很能做到(但还是应该有办法处理图像,使前景更突出)。领导给...阅读全文
posted @ 2010-03-18 22:40 LeonSun 阅读(11) | 评论 (0) 编辑
2010-3-16WinForm的状况
摘要: 其实这是昨天的情况,在.NET测试框架下,通过建立新线程显示一个窗体,为了能看清这个窗体,在线程Start以后断点。奇怪的是,窗口并没有按实际想象中的一样弹出来,于是通过各种方法调试,比如重新包装窗体,按照已有样例改写等,都没能把这个窗体弄出来。但是在测试运行中,发现一个情况:如果测试只是运行,没有中断,测试结果先会Pass,之后会Failed掉,信息大概是,XXX线程已经终止一类的。这让我想到有...阅读全文
posted @ 2010-03-16 23:05 LeonSun 阅读(5) | 评论 (0) 编辑
2010-3-15重任
摘要: 今天做了个游戏客户端模拟,在刷新窗体背景图时,会出现一闪一闪的问题,解决这个问题需要将窗体DoubleBuffered设置为true即可。原因是,如果直接向窗体绘制图形,会出现这个问题,启动DoubleBuffered以后,图行会先在内从中绘制好再一次性的绘制到窗体上。MSDN的备注解释为:缓冲图形可以减少或消除由于不断重绘所显示图面的某些部分而导致的闪烁。缓冲图形要求将更新后的图形数据首先写入缓...阅读全文
posted @ 2010-03-15 21:26 LeonSun 阅读(5) | 评论 (0) 编辑
2010-3-12计划有变
摘要: 工作关注点有变化,暂时放下了图像识别的研究。阅读全文
posted @ 2010-03-12 23:20 LeonSun 阅读(3) | 评论 (0) 编辑
2010-3-11多重循环嵌套
摘要: 由于现在工作需要,经常要写多重循环嵌套处理一些问题,在写的时候经常会出现按不同条件跳出或者操作的情况,当遇到这种情况的时候,经常会被一些条件搞的不知所措。今天在写一个多重循环嵌套的时候,突发灵感,发现一种写法很适合自己:1.先搭好循环的框架。一般来讲,用几重循环能够搞定一个问题,是比较容易确定的,这样就先搭出一个嵌套的框架,只要关注每重循环退出的条件就可以了。如果不太容易确定用几重循环能搞定,就想...阅读全文
posted @ 2010-03-11 22:58 LeonSun 阅读(19) | 评论 (0) 编辑
2010-3-10排除干扰因素
摘要: 不管是写代码还是做什么其他的事情,提前排除干扰因素都可以为之后的工作打下良好的基础。阅读全文
posted @ 2010-03-10 22:24 LeonSun 阅读(3) | 评论 (0) 编辑
2010-3-9说明书
摘要: 写程序更需要看说明书!!阅读全文
posted @ 2010-03-09 21:59 LeonSun 阅读(8) | 评论 (0) 编辑
2010-3-8基础
摘要: 做新游戏的Operator,加上这个已经做了两个Operator了,感觉Operator的结构有些别扭,实现起来会出现很多重复的部分,这些重复的部分多数只是流程先后顺序不同,除数据外,实质操作内容相差不大。应该可以找出一种办法,实现一次流程,之后就是向里面填充操作用的数据和重组流程的顺序,来实现针对不同游戏的Operator。学习计划再次回到基础知识的复习,再次重温数据结构和算法,这次要多动动手,...阅读全文
posted @ 2010-03-08 22:55 LeonSun 阅读(10) | 评论 (0) 编辑
2010-3-5还是测试
摘要: 1.每一个测试用例只关注测试某一个问题,都写在一起不容易搞清楚每组数据的目的。2.不清楚的东西不要随便改,明白了再改。3.浮点数运算存在误差,判等不能用==,一般使用减法取绝对值小于阀值的方法判等。阅读全文
posted @ 2010-03-06 23:46 LeonSun 阅读(8) | 评论 (0) 编辑
2010-3-4磕磕碰碰
摘要: 把识别直线做完了,学会了怎么处理一些思路,怎么转化问题。今天领导建议,将测试做细,并且告诉了一些方法。另外看到一篇文章,很有参考价值。阅读全文
posted @ 2010-03-04 22:18 LeonSun 阅读(5) | 评论 (0) 编辑
2010-3-3吃功底
摘要: 今天做的东西涉及到了数学知识,忘得差不多了,太纠结了........阅读全文
posted @ 2010-03-03 22:48 LeonSun 阅读(41) | 评论 (0) 编辑
2010-3-2什么最重要
摘要: 今天搞定了一个新功能,另外看了一篇文章,里面说了这么一段话有一道简答题写得自以为得意,说“工作中遇到不会的技术难题怎么办?”我写道“三个原则,重要性从高到低:1、不能耽搁项目进度(不行设法绕过);2、尽量不要占用他人时间;3、不能轻易放过(有时间时要研究透彻)。”很实用阅读全文
posted @ 2010-03-02 22:45 LeonSun 阅读(8) | 评论 (0) 编辑
2010-3-1准备
摘要: 今天做了一些基础工作,为马上的新工作做准备。阅读全文
posted @ 2010-03-01 21:50 LeonSun 阅读(2) | 评论 (0) 编辑
2010-2-26新挑战
摘要: 今天又改进了一下以前的代码,增加了通过配置释放Bitmap的功能。看书的时候发现了两个不常用的C#关键字,explicit和implicit。这两个关键字可以自定义类型转换,分别代表显示转换和隐式转换,具体的MSDN上都有说明。不过个人觉得用处好像不太大,好像很少有场景需要将两个完全不同类型的对象(即两个类型除了最终继承自Object外,没有其他任何的继承关系)进行互相转换。接下来,可能要研究改进...阅读全文
posted @ 2010-02-28 23:45 LeonSun 阅读(4) | 评论 (0) 编辑
2010-2-25代码分析会
摘要: 今天完成了新Recognize的整合,托测试的福,整合比预期的难度小,在下层功能模块上做完全的测试,可以避免上层模块在使用下层模块时过多的顾虑。下午开了一个JAVA代码分析会,大概内容和感想如下,以备后查:1.为if加上注释,说明判断条件。(这样做有一定的道理,但是,好的代码是不会出现if判断条件不明的情况的,简单的判断条件、好的boolean变量命名、多判断条件时使用boolean表达式代替等技...阅读全文
posted @ 2010-02-26 00:12 LeonSun 阅读(7) | 评论 (0) 编辑
2010-2-24返璞归真了
摘要: 今天一天都在用VIM改写配置文件,觉得自己有点儿“命令行控”了阅读全文
posted @ 2010-02-24 21:12 LeonSun 阅读(3) | 评论 (0) 编辑
2010-2-23VIM
摘要: 今天上午改了昨天说的一些问题,并且学习了VIM的使用方法,下午继续整合新的Recognize到Operator。VIM确实很强大,与传统的Windows应用完全是两种不同的体验。不过强大的背后意味着学习曲线太陡峭,慢慢在使用中磨练吧。今天看了几篇文章后的感受:1.在项目中遇到问题,可以采用变通的方法绕过去;如果是在学习过程中,还是不要绕了,踏踏实实走过去才能有更深层的收获。2.今天看到一篇奇文,才...阅读全文
posted @ 2010-02-23 22:27 LeonSun 阅读(7) | 评论 (0) 编辑
2010-2-22越发佩服微软了
摘要: 今天完成了配置文件验证功能,开发时的感想如下:1.微软确实不是盖的,MSDN帮助全的难以想象,今后遇到运行结果不缺定的问题,先查MSDN,如果实在搞不定再用跟踪代码的方式确定运行结果。2.对于不知道如何使用的API,MSDN也没有Demo的,可以自己多动手谢谢Demo。3.多从使用的角度分析问题,设计代码,否则使用起来会比较匪夷所思。阅读全文
posted @ 2010-02-22 22:47 LeonSun 阅读(15) | 评论 (0) 编辑
2010-2-21由混乱到清晰
摘要: 今天上午开始整合新的Recognize到Operator中,下午新增了一个验证配置文件完备性的需求,开始做这个验证功能。自己思考问题的时候,总是东想西想理不清头绪,从一个问题引发多个问题。最近试了一个新的思考问题的思路,感觉有点帮助,今天理了一下这个思考问题的思路,希望能对自己今后有更多的帮助。1.看清问题。首先弄清楚需要解决的主要问题是什么,一次只抓住一个最重要的问题,寻找解决办法。2.分解问题...阅读全文
posted @ 2010-02-21 22:04 LeonSun 阅读(4) | 评论 (0) 编辑
2010-2-20去掉坏味道
摘要: 今天一天都在做“除味”工作,主要是把一些相同功能的代码提取成为新的方法,新方法尽量包含所有代码的重复部分,还要应对其中穿插的不同部分,如果不同部分较多,会造成新方法接口参数过多的情况,需要做适当的取舍。阅读全文
posted @ 2010-02-20 22:55 LeonSun 阅读(3) | 评论 (0) 编辑
2010-2-9又一个新的开始
摘要: 今天参加了微软社区精英计划说明会,不得不佩服微软的做事风格。谨慎、严肃、一丝不苟。希望自己能够一直坚持下去,目标-MVP。今天接着重构,已经体验出拼凑带来的好处。需要一个Point?没有问题,不用管这个Point是怎么来的,总之这个Point会出现在你需要的地方,很神奇。不过粒度划分过细也有麻烦的问题,配置文件节点多,使得配置文件冗长;Handler里重复的代码过多,又不太容易抽象出来重用。但是对...阅读全文
posted @ 2010-02-09 23:18 LeonSun 阅读(13) | 评论 (0) 编辑
2010-2-8有点儿木
摘要: 又一次严重低估了工作量,头大.....阅读全文
posted @ 2010-02-08 23:05 LeonSun 阅读(8) | 评论 (0) 编辑
2010-2-7诡异的编译器错误
摘要: 今天还是继续重构,在重构的过程中,遇到一个奇怪的问题:project A引用了System.Drawing程序集,test project B测试project A中的一个class C,class C使用了System.Drawing.Bitmap,test project B只引用了project A并且未测试class C用到System.Drawing.Bitmap的那个方法。编译的时候,...阅读全文
posted @ 2010-02-07 22:27 LeonSun 阅读(2) | 评论 (0) 编辑
2010-2-6费解了
摘要: 今天继续重构,一直一个问题比较困扰,怎样处理逻辑基本相同但是返回值不同的方法,也就是说,接口除了返回值不同,其他签名基本一致,费解.....阅读全文
posted @ 2010-02-06 22:16 LeonSun 阅读(2) | 评论 (0) 编辑
2010-2-5做好今天的事儿
摘要: 今天开始重构Recognize部分,这一部分很久之前就准备动一动,但是由于改动比较大,一直放置,现在终于发现了一个很大的好处,牺牲一些时间来做也是值得的。主要的改动在于配置想如何任意组合来处理一些事情,比如说在获得图片上的文字时,现需要获取图片(从文件、从内存等等),在把图片做预处理(处理前景色、背景色等),然后再对处理后的图片进行取字处理,那这样就会有多种组合(如从文件获取图片之后处理前景色、或...阅读全文
posted @ 2010-02-05 23:57 LeonSun 阅读(5) | 评论 (0) 编辑
2010-2-4加入MS社区精英培养计划
摘要: 之前参加了一个MS社区的调查,今天收到邮件,通过了MS社区精英培养计划的申请,之前还以为没有什么希望呢,哈哈。定了个目标,今年下半年争取拿下软考《系统架构设计师》证书,据说通过率不高,努努力吧。今天做了代码重构,把识别错误图片的代码整理了一下,这一整理就是一天,加了很多RecognizeHandler和测试,保证测试覆盖率在80%以上,今天还是有点儿没弄明白就动手了,到最后发现跟预期的还有点儿差别...阅读全文
posted @ 2010-02-04 22:32 LeonSun 阅读(16) | 评论 (0) 编辑
2010-2-3解决问题
摘要: 今天解决集成服务器上一些测试无法通过的问题,基本上都找到了原因,比较欣慰。阅读全文
posted @ 2010-02-03 21:59 LeonSun 阅读(3) | 评论 (0) 编辑
2010-2-2这是咋整的
摘要: 找到了图片比较新能损耗的地方了,原来是因为加了Log的原因,因为判断包含的时候,经常会返回false,而之前却在返回false之前加上了Log,造成多次调用Log影响性能。领导毕竟还是经验丰富,早上一说这个问题,就建议我先用Performance分析工具查找一下在什么地方最耗时,可我还是坚持自己的思路,以为是在初始化和比较上除了问题,一直在用StopWatch检测时间并且尝试修改了很多自认为影响性...阅读全文
posted @ 2010-02-02 22:57 LeonSun 阅读(13) | 评论 (0) 编辑
2010-2-1平衡不平衡
摘要: 今天修改了二进制行和二进制图片的类,把暂时没有用到的方法都cut掉了,另外修改了一些代码,结果莫名其妙的运行时间变成以前的好几倍了,明天还得继续找原因。如果效率上不去,可能又要考虑其他算法或者实现方法了,或许使用矩阵?阅读全文
posted @ 2010-02-01 21:51 LeonSun 阅读(4) | 评论 (0) 编辑
2010-1-29不知道不知道-知道不知道-知道知道-不知道知道
摘要: 身体恢复了,昨天昏昏沉沉了一天,晕...昨天和今天主要的工作是提高代码覆盖率,整理测试中偶尔出错的用例。之前遇到的Log4Net的问题在今天解决了,原因是root记录器记录的文件被锁住了,无法将内容写入,其实这个问题在测试结果里已经有说明了,不知道之前在想什么,看了N多的地方,做了N多试验,就是没找到问题所在,其实之前已经通过试验判断出了可能是文件锁的问题,但是苦于没法做这方面的试验,一直没有证实...阅读全文
posted @ 2010-01-29 22:53 LeonSun 阅读(18) | 评论 (0) 编辑
2010-1-27不用不知道
摘要: 今天继续昨天的事情,遇到了一个很费解的问题,有一个测试Log4Net包装类的用例,单独运行的时候正常,当与某些特定的测试用例一同运行时,这个用例的记录器好像没有继承root记录器一样,也就是说,root记录器应该记录的内容没有记录上。弄了一下午,试了很多种方法,最后使用Log4Net源码调试,都没有发现问题所在,但在跟踪的时候发现,root记录器是存在的,也有对应的Appender,不知道怎么搞的...阅读全文
posted @ 2010-01-27 21:09 LeonSun 阅读(8) | 评论 (0) 编辑
2010-1-26代码覆盖率
摘要: 今天整了整以前的测试,争取把代码覆盖率提高到百分之80-90。阅读全文
posted @ 2010-01-26 20:52 LeonSun 阅读(9) | 评论 (0) 编辑
2010-1-25学习模仿
摘要: 今儿领导没来,不知道下一步的进展,自己把二进制图片对比整合到了原来的项目中,之后研究模仿写了比较两个图片中不同的部分并生成新图片,熟悉了指针操作图片,果然很快。阅读全文
posted @ 2010-01-25 21:13 LeonSun 阅读(7) | 评论 (0) 编辑
2010-1-22限制
摘要: 从昨儿开始,就觉得这次做的东西可以用指针实现,以提高效率,今儿试着用指针写了几个小东西,毕竟C#是靠托管资源吃饭的,指针使用起来那是相当的不爽,限制很多,不到万不得已,还是算了。阅读全文
posted @ 2010-01-22 21:22 LeonSun 阅读(4) | 评论 (0) 编辑
2010-1-21复习
摘要: 看懂了昨天领导写的那段代码,其实也不难理解,熟悉了就全明白了。顺便复习了一下指针操作、寻址方式、堆和栈的区别、fixed关键字、stackalloc关键字、unsafe代码、数据类型内存空间占用。有个想法,如果能把中文字变成二进制的矩阵,就可以在屏幕上定位出现的文字了,但是需要解决字色、字体、大小、粗体、斜体等问题,不过问题总是有办法解决的。阅读全文
posted @ 2010-01-21 22:47 LeonSun 阅读(11) | 评论 (0) 编辑
2010-1-20无敌的指针
摘要: 今天完成了二进制图片比较的重构,领导还演示了一下内存操作,果然神奇,一个200ms左右的操作,使用内存操作变成不到10ms,太狠了,这也坚定了我要学习C的念头。C和C#结合使用,应该是很强大的。阅读全文
posted @ 2010-01-20 23:22 LeonSun 阅读(15) | 评论 (0) 编辑
2010-1-19见多识广
摘要: 今天写完了图片二进制化的相关方法,跟一个三重循环嵌套搞了半天,领导说算法基础不扎实,看来真应该补课了。发现自己的思维有时候会被框定在某个范围,比如说针对某个问题的处理方法,总是从某一个角度出发,虽然说也能想出很多种方法,但是根本的出发角度是没有改变的,如果换个角度去思考或者寻找其他相似的解决办法,可能很多难以解决的问题就迎刃而解了,比如说这次做的比较二进制图片算法,一直都是从二进制串比较的角度考虑...阅读全文
posted @ 2010-01-19 22:40 LeonSun 阅读(9) | 评论 (0) 编辑
2010-1-18转不过来了
摘要: 今天继续做二进制位运算,完成的代码实在是难看,明天写填充和比较算法,有时间完成重构。搞多了C#,诈一搞位运算还真有点儿难转弯,尤其是用现有数据类型模拟多位二进制数,一会儿数组一会二进制,晕。有机会看看LSB和MSB阅读全文
posted @ 2010-01-18 23:31 LeonSun 阅读(13) | 评论 (0) 编辑
2010-1-15意识
摘要: 今天重新修改了图片比较,改为二进制按位比较,没完成,拿回家继续搞。按位操作还真挺麻烦,.Net里没有现成的二进制类型,只能用整数值类型模拟长二进制序列,这就出现个位移问题。这个位移操作需要考虑的事情很多,比如说分段的进位、位移的数量超出单个数值的情况等等,不太熟悉进度有点儿慢。阅读全文
posted @ 2010-01-15 23:13 LeonSun 阅读(15) | 评论 (0) 编辑
2010-1-14成就感
摘要: 也不是什么大事儿,把一个算法从100多ms优化成60多ms,搞了今儿一天,嘿嘿~~~不过感觉现在的这种算法,与外界的关联太多了,很容易随外界的变化而变化,比如说取图区域变更了,标准图片和图片中的内容也需要跟着变更,应该拿个别的什么东西初始化一下就好了。 代码调试的时候,辅助的代码越多越方便调试,比如日志、能保存的文件等等,都保存下来,调试的速度会很快。当代码已经调试成功了,就可以只留下关键部分的日...阅读全文
posted @ 2010-01-14 21:41 LeonSun 阅读(4) | 评论 (0) 编辑
2010-1-13没有milestone和deadline风险极不可控
摘要: 今天测试了一天截图+文字识别的方法,最终还是使用以前的先截图再处理的方法,能运行再说,只不过这次是先连着截三张屏。明天需要写个图片转换二维数组的方法,试验一下图片转换识别能不能满足需求。阅读全文
posted @ 2010-01-13 21:49 LeonSun 阅读(8) | 评论 (0) 编辑
2010-1-12团队合作很重要
摘要: 题外话,是时间为个性加了润滑油,还是个性向现实妥协了?仿佛看到了多年前的自己,高兴还是......今天测了昨天的代码,没出现什么问题。之后又想了想Recognizer的配置问题,想来想去竟然想出了个类似IoC的玩意儿,思维定势了还是怎么的,莫名.......Net Framework真是个豁强大的东西,只有想不到的没有找不到的,今天为了找解决Win程序配置文件更改缓存失效的问题,看了看资料,原来还...阅读全文
posted @ 2010-01-12 21:27 LeonSun 阅读(20) | 评论 (0) 编辑
2010-1-11事关重大
摘要: 今天写了识别发邮件不成功提示的代码,感觉实现不难,难的是写好,如果想写好,现有的借口就要有所更改,只是hacking又太没水准了,哈。在写这代码的时候,发现一个问题,所有实际的Recongnizer,全都是事先初始化好的,如果需要运行时产生的数据,就不太容易处理了。如何把运行时动态产生的数据,优雅的传送给初始化好的类是个问题。阅读全文
posted @ 2010-01-11 20:57 LeonSun 阅读(5) | 评论 (0) 编辑
2010-1-8解决了不少问题
摘要: 今天调试完成了Yulgang的Operator,成果不错,没遇到什么疑难问题,用不同的输入方法解决了输入定位不准的问题;增加了获取截屏时的延时,解决了第二次登陆不成功的问题。昨天遇到的RPC服务不可用的情况,原来是XP自带防火墙在捣乱,关闭防火墙后,一切正常了。今天还解决了以前一直想解决的定位游戏中物品窗口和固定分辨率窗口运行的问题,其实之前好好找找配置文件,应该也可以很快解决,不过现在代码中的一...阅读全文
posted @ 2010-01-08 22:36 LeonSun 阅读(39) | 评论 (0) 编辑
2010-1-7感谢中企感谢老张
摘要: 今天游戏维护,没有办法测试,只能干一些杂事。早晨听说服务器地址要变动,突然想起Web Service引用也需要更改,为了保证灵活性和更改速度,打算用最简单的动态调用Web Service的方法,通过配置文件配置URL,再传送给代理类。但是引用Web Service的项目是类库项目,没有办法生成配置文件,只能借助exe程序的配置文件,更改了调用Web Service的类的构造函数,增加了Uri形参,...阅读全文
posted @ 2010-01-07 21:44 LeonSun 阅读(17) | 评论 (0) 编辑
2010-1-6问题解决
摘要: 昨天发现的问题终于解决,由于输入用户名和密码的地方使用的是消息输入,可能会被游戏客户端认为是外挂程序而终止,改用模拟按键输入即正常。当一个问题无法解决的时候,可以通过另外的调试手段进行处理,比如这次就借助了按键精灵,使用按键精灵可以正常登陆,最终把问题定位到消息发送上。今天还细分了ccnet集成工程,更改了持续集成各工程的目录。另外,为键盘增加了模拟按键输入字符串的功能,发现Spy++真是个好东西...阅读全文
posted @ 2010-01-06 21:30 LeonSun 阅读(10) | 评论 (0) 编辑
2010-1-5莫名其妙的退出....
摘要: 今天搞了一下持续集成,有几点体会,第一,如果可以的话,最好使用绝对路径,以保证正确性,包括在C#代码中,如果使用的是相对路径,最好能用Path类里面的方法获得绝对路径后再使用,能提高一点正确性;第二,使用CCNET的exec节点调用批处理脚本时,批处理脚本可以使用EXIT加退出码的形式返回,一般返回0为正常,其他数值为非正常,也可以根据需要在CCNET配置中加入正确返回的退出码。CCNET并不是以...阅读全文
posted @ 2010-01-05 21:30 LeonSun 阅读(9) | 评论 (0) 编辑
2010-1-4新年第一天的工作
摘要: 今天成果不错,完成了Operator的代码,又整了整CCNET,用脚本的方式实现了一个测试用例或一个测试dll保存在一个结果文件的功能,并且做了个生成测试用例的小工具。感觉MSTest.exe使用上还不是特别的方便,有一些特殊的要求,比如说运行某些不在同一个dll中的测试,那么就要先把这些测试加到同一个测试列表中,才能进行测试,这样做很不方便;又例如需要运行所有的测试,但这些测试不在同一个dll中...阅读全文
posted @ 2010-01-05 00:18 LeonSun 阅读(18) | 评论 (0) 编辑
2009-12-31新年新气象
摘要: 交易功能还剩下一点就结束了。2009年上半年很闲很郁闷,跳了以后虽说忙了,但比较开心。今天学到一个编译的技巧,如果想在编译的时候包含某个文件,可以把这个文件包含在项目中,并且将文件的属性“复制到输出目录”项选择成“始终复制”或“较新则复制”就可以了,省的使用编译后命令了。顺便记录一个之前学到的编译技巧,将文件作为资源编译到dl...阅读全文
posted @ 2009-12-31 22:54 LeonSun 阅读(6) | 评论 (0) 编辑
2009-12-30软件安装需要注意先后顺序
摘要: 今天做交易流程和一些杂事。交易流程走通不是问题,问题是需要判断某些窗口是否处于打开状态,这个很难确定,一是窗口不固定,找起来费时;二是找不到好的判断条件来判断窗口是否出现,现在都是按没找到即视为未出现的逻辑做的,但是有点不妥,万一配置错误就不好办了。更好的解决办法还有待研究。如果机器上先装的.Net Framework,后安装的IIS,最好能运行一下“aspnet_regiis -i&...阅读全文
posted @ 2009-12-30 21:26 LeonSun 阅读(4) | 评论 (0) 编辑
2009-12-29快到新的一年了
摘要: 今天干的活儿不少,只剩下最后的交易部分了。这个游戏比较恶心的一点是,游戏里面的窗口位置都不固定,而且很容易被遮盖住,这样一来,判断窗口出现和窗口位置就成了一大问题。而且现在也没有想到什么好的处理窗口遮盖的方法,暂时只进行了基本容错的处理。今天遇到了一个关于配置文件的问题,需要将不同的配置文件处理项结合起来使用。想了想,有几个问题需要解决:1.可以用反射来生成实例,解决实例化复杂的问题,但这样必须要...阅读全文
posted @ 2009-12-30 00:03 LeonSun 阅读(6) | 评论 (0) 编辑
2009-12-28拿的起放的下
摘要: 今天把登陆做完了,却发现物品窗竟然是半透明的,而且不容易定位,花了一下午时间写了个图片比对算法,估计这复杂度啊,哗哗的.......刚看了几篇文章,其中一篇写的是对技术要拿得起放得下啊。也记得有个友人跟我说,我太钻了,只要感兴趣,不管有没有实用性都钻;今儿领导说,不管怎样,先做出个东西来,有东西就比没东西强,估计也是发现我爱钻了。确实,虽说多知道点儿知识不是什么坏事,但是最重要的还是要考虑个投入产...阅读全文
posted @ 2009-12-28 22:47 LeonSun 阅读(8) | 评论 (0) 编辑
2009-12-25正确的方向
摘要: 今天继续做游戏操作类,顺手多了,真是难者不会会者不难。正确的方向可能要根据所处的环境来定义。阅读全文
posted @ 2009-12-26 00:06 LeonSun 阅读(6) | 评论 (0) 编辑
2009-12-24过度设计
摘要: 从实际需要解决的问题入手,不要过度设计。阅读全文
posted @ 2009-12-24 21:24 LeonSun 阅读(7) | 评论 (0) 编辑
2009-12-23联调结束
摘要: 今天联调结束了,下面就可以专心的做新的游戏Operator了。今天看了一下volatile关键字,它和readonly是互斥的,想想也对,只读不存在写同步的问题,所以指定了volatile就没必要指定readonly,反之亦然。在写代码的时候,要保证代码表述的行为一致,比如params代表的是可变参数,如果使用时传入一个数组,虽然运行结果一致,但是却改变了方法定义时的初衷,今后最好不要这样做。另外...阅读全文
posted @ 2009-12-23 23:48 LeonSun 阅读(9) | 评论 (0) 编辑
2009-12-22浑浑噩噩
摘要: 今天身体极其不舒服,浑浑噩噩一天,估计着凉了。今天杂事一堆,整服务器,做新游戏登陆,加班联调。今天的收获:1.通过注册表键值判断软件是否安装,比通过目录判断更可靠,如果程序被卸载,所在目录还有可能存在,但注册表键值一般是不会存在的。2.更改接口很麻烦,更改带业务逻辑的接口更麻烦,今后的工作中一定要避免这样的问题。3.不能轻易忽视if判断的else,今天发现以前写的代码中,出现了因为没有else造成...阅读全文
posted @ 2009-12-22 20:18 LeonSun 阅读(9) | 评论 (0) 编辑
2009-12-21经验教训
摘要: 今天主要工作是做脚本,共享远程拷贝、计划任务操作,然后再把之前做的脚本柔和到一起,基本就是傻瓜化设置了。脚本越来越熟了,也越来越体会出高级语言的强大,和命令行方式的不足。今天还做了一点游戏登陆,进展速度慢了,要加快进度了。今天还获得了一些经验教训,记录下来以免以后也犯同样的错误:1.当已经达到所需要的目的时,一定要及时退出,以免之后无用的操作占用系统资源,比如提前终止循环、提前退出子程序等。2.在...阅读全文
posted @ 2009-12-21 23:13 LeonSun 阅读(7) | 评论 (0) 编辑
2009-12-18未知的新领域
摘要: 一个登陆做了一天还没做完,这细节还真是多,不过能学到的东西也多,努力解决一切问题。今天需到一个关于进程操作的细节问题,启动进程的时候,可以在ProcessStartInfo中设置工作目录,以免进程启动的时候,找不到相关的文件。阅读全文
posted @ 2009-12-18 22:47 LeonSun 阅读(12) | 评论 (0) 编辑
2009-12-17一个月零两天
摘要: 今天开始制作新的游戏操作类了,问题还是很多的,都需要花费点时间和脑子来解决,不过都不是什么很难的事情了。昨天看了一篇文章,说的是动手能力和技术能力,仔细的比对了一下,跟自己以前很像,跟现在有点儿像,总是在没想清楚或者细节考虑不够的情况下,就开始动手,结果要么是来来回回反复做无用功,要么就是写的垃圾,自己都不满意。以后还是要注意,多想,想好了之后再动手,或者先做雏形或模拟应用场景,然后逐步细化。但最...阅读全文
posted @ 2009-12-17 22:18 LeonSun 阅读(5) | 评论 (0) 编辑
2009-12-16杂事中的收获
摘要: 今天做的工作比较杂,有修改代码、重构代码、理顺流程等等。今天重新理了一下系统交互时的处理逻辑,并且在纸上整理出了流程图,终于全部理顺了,准备把流程图做成电子版保存起来,以备后查。昨天说的参数传递解耦,在今天的工作中又得以体现。原因是今天在做WebFetcher的时候,返回了null,但是外部调用是以null为结束的判断,外部的代码又不容易修改。在这种情况下,想到了一个解决方案,再重新包装一个Fet...阅读全文
posted @ 2009-12-16 22:31 LeonSun 阅读(9) | 评论 (0) 编辑
2009-12-15逻辑错乱
摘要: 今天联调,逻辑确实很复杂,而且行为混合、行为流程不一致,好在最终搞定了,不过代码可就不能看了。想了一下重构的方式,可以按照收获和发货分别进行处理可能会稍微简单一点,最起码可以在某一时刻只关心一套逻辑,只要把WebService的调用封装好就可以了,想象应该能行得通。另外重构的时候要注意成员变量初始化的问题。参数传递可以解耦。阅读全文
posted @ 2009-12-15 22:37 LeonSun 阅读(10) | 评论 (0) 编辑
2009-12-14又把简单的事儿搞复杂了
摘要: 今天完成了mock重构代码的编写和测试。但是在联调之前,又出现了问题,模拟的太复杂了,一是在收发邮件的模拟上,没有必要做得太复杂(暂时的?),使用简单的加减账户金额就可以;二是对于收发邮件规定得太细,必须针对于同服务器才能发送没有必要。我认为这两个问题产生的原因,关键可能是在于关注点的不同。我的关注点在模拟的真实性上,完全根据实际的游戏情况进行模拟,并且模拟了一整套游戏(包括客户端、服务器、数据、...阅读全文
posted @ 2009-12-14 22:16 LeonSun 阅读(12) | 评论 (0) 编辑
2009-12-11混乱
摘要: 今天还是重构mock,这回大体流程可以想的比较清楚了,但是问题又出现在参数传递上,结果来来回回很多回确定不好,甚至因为一个参数无法传递,影响了之前所做的流程设计。总结一下,大概还是因为类的职责划分不清造成的,加上对每个对象的生命周期比较含糊,造成了这种情况。今天在讨论重构方案的时候,探讨了一下记录进程id,并且以此id为依据杀进程方法的弊病,其中最大的弊病就是,要杀的进程已经结束,而其他进程id正...阅读全文
posted @ 2009-12-11 22:14 LeonSun 阅读(7) | 评论 (0) 编辑
2009-12-10见多识广才是硬道理
摘要: 今天心情不错,接触到了自己喜欢的技术问题。今天的工作内容还是mock的重构,之前总是在单机模拟调度多虚拟游戏客户端的问题上纠结,今儿领导一句话就点醒了我,看来还是墨水喝得多、见多识广好啊。解决模拟调度的方法说来也比较简单,就是拿队列模拟时序操作,据领导说这是模拟多并发的一种常用方法,长见识了。另外,为了解决调度问题,今天还看了看操作系统进程调度的方法,也有所收获。阅读全文
posted @ 2009-12-10 21:18 LeonSun 阅读(9) | 评论 (0) 编辑
2009-12-09思维的局限性
摘要: 今天对之前编写的mock代码进行了走查和重构,感觉自己的思维被限制在很小的一个框框中,想想原因,可能还是与见识少有关系,多读代码或者多写代码,并理解其中的含义,可能对自己的提高会有帮助。另外,感觉自己对于抽象的理解总跟别人不一样,也许是理解角度不同,也许是自己的想法与别人的不一样。把逻辑解释清楚,才能把代码写清楚。阅读全文
posted @ 2009-12-09 22:51 LeonSun 阅读(11) | 评论 (0) 编辑
2009-12-08回顾成品,都是垃圾
摘要: 今天做完了mock的测试,下午开始重构。突然发现,只有做完一个东西的时候,才发现,原来的实现是那么垃圾,也许是之前思想局限,或者是之后对业务更加了解,总之,只有做完之后,才知道成果还有很多不足,甚至解决方案方向都不是最正确的....今后的工作中,必须要从实际出发,以实际的业务流程或使用流程、必须实现的功能、注意要点、实现细节的顺序进行开发。今天工作中遇到了Xml文档读写的问题,原来使用XmlDoc...阅读全文
posted @ 2009-12-08 21:38 LeonSun 阅读(8) | 评论 (0) 编辑
2009-12-07“猜”代码
摘要: 今天继续做mock,终于快做完了。在今天干活儿的时候,正好看了一下xpath的语法,感觉xpath还是挺方便的,可以节省许多轮询节点列表的操作。今天还做了WebService接口检查,之前的接口检查太粗糙了,今天从新做了一次。通过流程顺序模拟或者想象一下接口方法的调用过程,就会发现很多问题,从使用的角度出发想的问题,与从编码的角度想的问题还是有一定差距的,从使用角度出发能更清楚业务的流程,忽略一些...阅读全文
posted @ 2009-12-07 21:44 LeonSun 阅读(14) | 评论 (0) 编辑
2009-12-04简单到复杂还是复杂到简单
摘要: 今天继续做测试的Mock,在做的过程中,发现自己的思路不能固定到一点,从一个问题的流程想到了细节,又从细节想到了又一个流程,总是不能把思路固定到一个思维层面上,以后需要在这方面注意一下。阅读全文
posted @ 2009-12-04 21:55 LeonSun 阅读(7) | 评论 (0) 编辑
2009-12-03无漏洞的逻辑
摘要: 今天继续讨论了一些关于平台整合的问题,并开始设计测试用例。当业务逻辑放在一个足够细致的环境去讨论时,漏洞好像有无穷多个,而且环境越细致,漏洞越多,需要考虑和避免的问题也就越多,关键在于平衡。太粗略的看待问题,是不负责任的;太细致的看待问题,又有点钻牛角尖。中庸也许是解决大多数问题的关键。阅读全文
posted @ 2009-12-03 21:22 LeonSun 阅读(8) | 评论 (0) 编辑
2009-12-02投资知识
摘要: 今天在等接口,修改修改之前的代码,其余的时间在看《程序员修炼之道:从小工到专家》这本书,内容还不错,就是翻译的有点儿郁闷,很多语句不通,不过掩盖不住内容的丰富,其中就说了在知识上投资的重要性,程序员本来就是个偏重学习的职业,不变很快就会被淘汰。今天写代码是,了解了使用C#控制WMI的方法,也算接触了一下更底层的东西吧。阅读全文
posted @ 2009-12-02 21:18 LeonSun 阅读(17) | 评论 (0) 编辑
2009-12-01精通!有人真的精通Windows么?
摘要: 今天主要是做服务器环境设置的脚本和修改一些之前的代码。在做服务器环境设置脚本时,再一次感到Windows系统远没有人们想象中那么简单。也许连5岁小孩都可以使用Windows,但使用电脑多年的高手也不一定能把Windows弄得服服贴贴,这也许就是Windows成功的秘诀吧。如果能有像Linux系统一样强大的Shell,Windows在高级应用领域可能还会有更好的发展。今天又接触到了一个.Net Fr...阅读全文
posted @ 2009-12-01 23:06 LeonSun 阅读(12) | 评论 (0) 编辑
2009-11-30事件机制
摘要: 今天新增了两个事件,并且了解业务处理的相关流程。终于对事件机制有了更深的了解,包括使用方法和使用条件。今天收获有三点:1.C#的for循环:for的语法是for(initializer;condition;iterator),initializer、condition和iterator都是可以为空或为多的,也就是说可以从for语句处设置for的运行条件,而且也可以在for语句以外设置for的运行条...阅读全文
posted @ 2009-11-30 23:08 LeonSun 阅读(15) | 评论 (0) 编辑
2009-11-27多进程
摘要: 今天做了关于进程操作的一些方法,对进程操作的方法基本了解,有空研究一下钩子,蛮有意思的。阅读全文
posted @ 2009-11-28 01:35 LeonSun 阅读(11) | 评论 (0) 编辑
2009-11-26引用类型释放或者不释放
摘要: 今天测试了与JAVA开发的WebService的结合,很不错,可以正常使用。但在业务流程上出现了一些问题,最重要的问题就是要保证处理的严谨性,作为一个电子商务平台,业务流程必须非常的严谨,才不会让客户或运营商利益收到损失,尤其是收发货部分的流程,更应该想到每一种情况,不完全信任依赖的程序是必须考虑的一点,各种极端的情况也需要考虑。今天在例会时,提出了两个问题,一个是使用using自动释放资源时,还...阅读全文
posted @ 2009-11-26 23:22 LeonSun 阅读(28) | 评论 (0) 编辑
2009-11-25每种技术都有有趣的一面
摘要: 今天四号线坏掉了,结果上班迟到半个小时。今天代码走查,修改了一些log的逻辑,也认识到了自己写代码时的一些不足,比如说,一个方法,要从一个逻辑层面去看待,不同逻辑层面的内容不应该混杂在一起。比如说,一个方法功能是从配置获取文件路径,然后使用这个路径打开文件并解析文件内容,最终返回解析后生成的对象,这个流程就是从这个方法整体的层面来进行的分析,所以不应该吧如何从配置获取文件路径,如何打开文件解析文件...阅读全文
posted @ 2009-11-25 22:50 LeonSun 阅读(16) | 评论 (0) 编辑
2009-11-24多Web服务器问题与文件操作问题
摘要: 今天搞定了对log4net的包装,在测试时,需要读取生成的日志文件判断是否正常,但是在读取日志文件的都是,总是出现异常,提示一个进程正在调用文件,文件无法打开。加入断点,在生成日志文件后、读取日志文件前,使用记事本可以正常打开日志文件,但之后测试代码还是无法打开日志文件。费了一番周折后,终于使用FileStream打开了文件,关键是构造函数中的一个参数FileShare。MSDN上给的FileSh...阅读全文
posted @ 2009-11-25 00:45 LeonSun 阅读(26) | 评论 (0) 编辑
2009-11-23高深莫测的Attribute
摘要: 今天完成了CCNET的部署和Log4Net的包装工作,明天测试一下Log4Net的包装就搞定了。今天在包装Log4Net的时候,使用到了Attribute。本以为Attribute会自动调用,结果调试了一下午,终于发现Attribute是在反射出来的时候才进行构造,而且每次反射都会重新进行构造,这样的话效率应该比较低,使用的时候最好能够避免多次反射,以免多次重复构造Attribute。阅读全文
posted @ 2009-11-23 23:25 LeonSun 阅读(20) | 评论 (0) 编辑
2009-11-20工作量预估真是个难事儿
摘要: 今天的工作是将CCNET部署到服务器,还有包装log4net。在部署CCNET没有大问题,但需要监控CCNET服务的启动情况,如果CCNET服务被关闭,需要重新再启动一下,这个研究了半天,还没有个解决方案,需要在研究一下。另外,在使用MsTest时,也遇到了一些问题,这需要从MsTest的使用方式说起。MsTest的使用方式有两种,第一就是添加包含测试的dll进行测试,在测试工程较多的时候比较麻烦...阅读全文
posted @ 2009-11-20 23:57 LeonSun 阅读(60) | 评论 (0) 编辑
2009-11-19英文这个工具很有用
摘要: 今天完成了log4net的Demo,通过从昨天到今天这几个小时的学习,已经基本了解了log4net的功能,有空的话可以看看源码或者扩展一下其中的功能。今天的另一个任务是搭建CCNet持续集成环境,好在CCNet以前使用的比较熟了,不过更深的东西还是需要再研究。log4net和CCNet的英文文档看的不顺畅,也是阻碍理解的一个问题,今后还要加强这方面的训练。明天任务是讲解log4net和CCNet的...阅读全文
posted @ 2009-11-19 22:51 LeonSun 阅读(28) | 评论 (0) 编辑
2009-11-18颇有收获
摘要: 今天完成了XmlCommandFetcher的编写和测试,但是开始写的功能与实际需要的功能不相符,又花了一些时间修改。今后需要了解清楚需求、想明白如何处理后再动手,有问题及时问清楚,不要随意猜测,免得耽误时间。另外,今天了解了一些数据结构的东西,当需要修改集合中的内容时,最好使用链表而不要使用列表,对于修改操作来讲,链表要比列表更有效率。对System.Collections.Generc命名空间...阅读全文
posted @ 2009-11-19 00:18 LeonSun 阅读(12) | 评论 (0) 编辑
2009-11-17新的问题
摘要: 今天算是正式投入工作的第一天,制作完了昨天没有做完的TextCommandFetcher和测试,还制作了XmlCommandFetcher。遇到几个问题需要记录:1.String和string究竟有什么不同,只是C#中的别名与Framework中的类的区别么?需要研究研究。2.需要考虑一种读取不同结构xml配置文件的统一方法。是否可以跟.Net里面读取配置文件一样,设置不同的section解析器?阅读全文
posted @ 2009-11-17 22:06 LeonSun 阅读(12) | 评论 (0) 编辑
2009-11-16新的开始
摘要: 在新公司办了入职,开始了新的旅程。暂时看来,以前B/S的那些经验好像用不着了,多是图形比较、定位等等问题。开始新的学习计划,工作时使用英文软件,多接触英文,业余时间主要学习英语和数据结构、算法。阅读全文
posted @ 2009-11-16 20:38 LeonSun 阅读(15) | 评论 (1) 编辑