Fan 的个人资料missdeer 之编出来的幸福照片日志列表更多 ![]() | 帮助 |
可以不用商业化的开发工具啦 鉴于编辑器模块的重构任务已完成大部分,从两个View中提取出了一个基类View,这样总的说来大概减少了近2000行代码吧,中途也遇到些小麻烦,不过最后都没花什么大力气解决了。 IDE的编辑器就要这样做 又看到José León新发的blog,再结合吃晚饭时,同事的抱怨,不禁羞愧难当,伟大的Borland,伟大的Delphi,哪怕是几经更名,哪怕是几经易主,曾经的IDE霸主,编辑器就是应该这样的做的。 丰富Scintilla的AutoCompletion 今天又读了一点Scintilla的源代码,因为要达到现在比较流行的AutoCompletion的下拉列表,旁边还能显示一个tooltip描述选中项,那种效果,所以要先熟悉一下代码流程。 Code Insight in Delphi for PHP 偶然看到这篇文章,Delphi for PHP已经升级到2.0了,不愧为曾经最强大的IDE生产商,把PHP的开发工具都做得这么神! 关于打谱程序突然想到的 今天突然有个想法,关于前段时间的用WTL写个围棋打谱程序的念头,是否可以把棋盘、棋子绘画动作也抽象出来,棋子的位置、走法规则都提取出来,有一组严谨的约束,而且这组约束可以通过配置文件,或者脚本来描述,最后,C/C++代码则只用来完成具体的绘画操作,对这些约束完全一无所知,比如它只知道在哪个坐标画一个什么样的图形,而为什么要画这个图形,这个图形有什么其他的含义,都不是它需要知道的。 初学lex 其实学的是flex,从公司网上找的,大概也是gnuwin32中的某个版本。顺便在公司网上又找了些资料来学,纯粹只是看的话,是跨不过那道坎的,所以要自己写几行来玩。生成的C代码倒是能直接用MinGW中的gcc 编译,这让人觉得很舒心。开始的时候不明白,为什么写的正则表达式好像不起作用,总是把该扫描分析的文本全都打印出来了,而我明明只是想让它打印被匹配上的那些内容就行了啊,经过仔细观察,最后发现,其实是flex生成的C代码中,自动把不匹配任何自定义正则表达的内容也输出到控制台上去了。所以有两个办法可以解决此问题,一是把匹配内容输出到文件中,另一是修改下flex生成的C代码,把默认输出的那个ECHO修改了。 有必要系统地学习一下编译原理 因为我是一个半路出家的coder,除了会写几行C/C++代码外,所有其他计算机科班出身的人会做的事我都不会,这也是我的一大劣势。 书送到了 今天上午连续接了两个奇怪的电话。已经有几次了,打到什么布吉五金商行的,结果打到我们这个座机上来了,不过有趣的是,这次这个家伙没有直接挂掉,而
是跟我扯起来,说什么交个朋友,有没有兴趣出来干,呵呵,感觉像是个人贩子似的。好不容易挂掉电话,马上就有另外一个人打进来,听背景声音跟前面一个是同
一处,但听口音,明显是两个不同的人。这次这个也比较有趣,问我们公司现在招不招人,有什么岗位,待遇如何等等,还说是不是研发的都是高学历的,水平很高
的,呵呵。又是好不容易挂上电话,手机又响了,这次是当当网送货的了。蹭蹭跑出去,发现居然是在岗亭门口的一个小角落里,而且看货有好几箱,而送货的只是
一辆小自行车,真不知道他怎么把这么多书载过来的,混口饭吃也不容易啊。 打开看了看,建筑类的几本书的纸张质量还真是不敢恭维。《Head First Design Pattern》外面有一张塑料纸包着,好厚一本,拿回家翻了翻,有点后悔,价格定那么高,里面的篇幅实在没多少,很多的插图,很多的空白,浪费啊,看来 我还是习惯那种适合苦读的典型的中国教科书啊。《建筑模式语言》有上下两册,精装的外壳,很厚很厚,但里面的纸张远不如《Head First DP》,《建筑的永恒之道》不是很厚,而且不是很大开本,不过奇怪的是,想不到建筑类的书居然也定价那么高。 继续学习设计模式 还是没干什么事,看了一阵书,话说昨天把《设计模式解析》第二版还掉了,其实旁边的同事又马上借回来了,于是乎我就拿来看看,看得囫囵吞枣的,不过也
比直接看GoF的要省力得多。其实一直以来我都很少会认真仔细地从头到尾看完一本技术类书籍,很多书甚至是只看了前言、序,或者目录就直接丢到一边了。虽
是这样,就算没完整看完一本书,像那种武侠小说中描述的那样,像我这样的小虾,向大师学习时,能领悟到个一招半式也是受用无穷的了。 到今天为 止,大致了解了Adapter、Facade、Bridge、Strategy、Abstract Factory这几种模式。简单地说来,Adapter是为了转换接口,Facade则是为了封装并简化接口,Bridge说是把抽象和实现解耦,在我看 来,实际是把几种不同类的概念分类,避免组合爆炸,Strategy是为了封装算法,Abstract Factory则是封装一系列相关的类的实例化过程。在阅读《设计模式解析》的过程中,我还发现一个比较明显的现象,有些模式,或者说有些解决问题的方 案,其实都是通过将问题细化,将较细粒度的变化进行封装来实现的。比如书中讲述Strategy模式时,一开始例举的是直接继承,在论述了该例的缺点后, 才抛出新的方法,其实就是把更小更精确粒度的变化提取出来并进行封装。在讲述Bridge模式时,也有类似的倾向和做法。再回想《重构》一书中,作者 Martin Fowler则是更激进的做法,如果要给一段代码添加注释,则把这段代码提取出来,用有意义的函数名来阐述代码的作用。这从另一角度促使了小粒度代码段的 生成。 《设计模式解析》一书的写作风格也是让人比较舒服的。作者会花一些章节进行理论或实际例子的讲述,再用一些章节描述模式,再讲述一些通用的理论,如此穿插的作法,反正我书看得少,正是第一次看到,感觉比较容易让人接受并领悟。 静不下心来 我就是缺乏定力,就是忍不住去做些无聊的打发时间的事情,就是不愿意去做些有实际意义的事情。早上起来就觉得很烦躁,也不知道是哪里出问题了,仔细想想好像也没有什么重要的事情,但总是静不下心来。 白天在公司里糊里糊涂地过了一天,看了一点书,《设计模式解析》,书写得还是比较合我的口味的,不过下午的时候去图书馆,把这书还了,因为快到期了,以 前没怎么看,后来觉得有用的时候,却是借期快满了。虽然只看了前半本,但也觉得略有斩获。前半本有不少内容是通用性的概念,有些概念我一看就觉得就是这么 回事,不过自己却肯定总结不出这么精辟的来。 XUL,也不错的一种选择 今天在公司网上看到一人发了个Komodo IDE,装来看了看,猛然发现它是基于Mozilla XUL技术实现的,有点诧异,居然还真有用XUL技术开发的商业软件。然后就跟公司里的另外一个人讨论了一下,那人比较了解XUL,在去年还做过技术选型工作。 从中我了解到,有一种叫Remote XUL的技术,可以使得通过Firefox浏览某个页面,界面效果跟通用的桌面软件差不多,但实际上却真真实实是部署在远程服务器上的。其他能达到类似的效果的有JAVA Applet,或者MS的ActiveX,好像Adobe现在在搞的AIR也 差不多,有种让人惊艳的感觉。看来该是有必要学一点这方面的新技术了,一直以来觉得跟Web相关的,都不是很感冒,但现在看来,它混淆了B/S和C/S, 即桌面和浏览器的概念,很有意思啊,比如,假设有一种能适应各种浏览器的这类技术,那么做一个Web版的IDE什么的也不是问题了。 除了这种远程部署的界面技术,还有其灵活的可扩展框架也是让我感兴趣的。那人的胶片中对Eclipse RCP和Mozilla XUL进行了简单的比较,结论是更看好XUL的,不过我个人的观点看来,两者单纯从可扩展性上讲,各有优缺点,不相上下吧。XUL体系使用C/C++实现具体的界面控件,然后用XML描述界面布局和事件响应,用JavaScript完 成实际的业务逻辑,响应XML中定义的事件,调用C++代码作出具体的动作。XUL要创建出新的界面控件比较困难,只能用已有的控件组合成新控件,所以像 Firefox就实际上提供了扩展和插件两种不同的机制,扩展就完成只使用XML和JavaScript实现,而插件就可以实现比较高级的像内嵌Flash播放器之类的功能。总之,简单看来,相比Eclipse的实现方案,XUL并没有哪里特别不如,或哪点特别突出,只能说也是一种不错的机制。倒是让我多了解了一种扩展方式,自己设计可扩展的软件架构时,倒是要好好考虑一下了。 再次开始学习设计模式 虽说好久好久以前就认识到设计模式的重要性,也好几次都决心要认真系统地学习一下,但是每次都没能坚持下来,每次看到GoF的书,立马一个头变成两个大,实在是枯燥乏味啊。倒是总能看到那么多人,学这么枯燥的东西津津有味的样子,然后头头是道是品头论足,心中不免有一丝的羡慕,什么时候自己也能那么熟悉并熟练地应用这些设计模式该有多好啊! 当兴趣渐渐从纯粹的编程语言技巧转移到架构设计、软件工程方面上来时,就有意无意地拿起《重构》、《敏捷软件开发》、《重构与模式》等书看。这些书有一个比较有趣的特点,就是互相引用,于是,我发现不懂设计模式已成为我前进道路上最大的障碍。我要进步,就必须要清除所有的阻碍,所以我要再次开始学习设计模式。 仔细考虑一下,为什么之前我每次都会放弃,是因为GoF那书太枯燥抽象了。所以要去找几本通俗易懂的书来先补充一下这方面的不足。《设计模式解析》第二版似乎还算入门级的,从公司图书馆中借到一本,抽空要快速看一遍。看网上的评论,《Head First Design Pattern》更加适合初学和进阶,所以要看看。另外,看到这些书中都提到了Christopher Alexander写的书, 有中文版《建筑的永恒之道》和《建筑模式语言》,这是关于建筑学的书,但是软件架构设计就跟建筑学有类似的地方,而且设计模式的起源据说就是从Alexander的研究中开始的,就当开阔眼界也好,也买来看看。 我并不是想做一个软件架构师,我只是想能轻松地写出结构优美,弹性十足,易于维护的程序来。 居然还有人想试用这东西 今天有个项目部的主管来找我,问我那流程平台工程做得怎么样了,他们部门目前新员工多,觉得这个工具或许可以解决当前的问题。我比较诧异啊,居然还有
人想试用这东西,说实话现在这边的状况是,尽量快点甩手,从此解脱。我早就不胜其烦,厌倦了没完没了在上面投入。那位主管说得很有理,说这东西做好了很有
价值。这个我当然也知道,如果做好了,当然有价值,关键是上头的决心有多大,愿意投入的成本有多少。一直就是我一个人在折腾,一个人折腾么,给我足够的权
力和资源也好,偏偏也没有,要指手划脚地作些不合适的决定。 今天我突然想到,要是早知道会拖到5月底这么久,早期的设计就可以做得好一点,2个月有2个月的做法,3个季度有3个季度的做法,唉,这应该可以算是一个失败的案例了。 回顾检讨一下失败的原因: 1、前期的规划没做好,开始以为时间不足,就迫使强制采取了些不良设计; 2、用户需求一直不明确,以及用户需求实现比较困难; 3、我做为唯一的开发人员,心理上有所抵制,积极性不高; 4、开发编码工作没有计划和任务跟踪; 5、缺少测试支持等额外资源的投入; 6、现在看来,因为其他因素的影响,似乎开发投入人力也不够。 暂时只想到这几点,不过也很难过了,唉! 第一次摸车 晚上去练车了,这是我第一次摸车,比较不习惯,总是记得一头忘记另一头。比如想着踩离合器和刹车的时候,就会忘了摆方向盘,或者又不记得挂档了。 据说天黑是不能练车的,因为看不到桩。确实,如果没有灯的话,我连边线都看不清,有双夜视的眼睛该多好呀! 一般说来,习惯成自然,只是平时没有碰车的机会。要流畅熟练地手脚并用,还需要多多练习。 因为是第一次,所以只是教了下怎么挂档,怎么用离合器控制速度,怎么摆方向盘,怎么前进倒退。除了我,还有另外一个人一起,两个人轮换着控车,大概总共搞了1个小时多一点点吧,不过瘾啊,要攒钱自己买台车才行,呵呵! 在家烫火锅 嗯,这个活动在上个月的时候就筹划过了,不过我并没怎么投入,呵呵,都是bobo在那里捣鼓说五一3天假期里可以抽一天出来,然而,bobo组织不力,3号那天上午我迷迷糊糊发了个短信给bobo,最后结果是cancel掉了。 这次好像是猫猫牵头联系了其他人的,在公司里是一点风声都没有,只是有一天晚上在QQ群里猫猫跟我提了一下,要到我家里来烫火锅,其他时候则是只字不提,联系都没有。 直到今天上午10点多了,我发了个短信喊猫猫起床,她才给我打电话,说11点在我们小区对面的超市门口见,叫了某某和某某。等我11点10分跑去,也才 看到舒蕊一个人在那里等着,这个猫猫越来越不像话了,都没有时间观念啦。又过了一会儿,才见大部队浩浩荡荡从天桥那边走过来,猫猫、江江、bobo、大牛 和他媳妇。一共7个人,到超市里买菜,这种感觉还不错。买了盒装的肥牛和羊肉,贡丸、虾丸,还有很多素菜。又买了些碗筷,本来家里是有一些的,不过这次人 多了,不够用,所以要再添点。 买了回家,我就没怎么动手了,只是找出椅子等必需用品,收拾一下东西。这次买得多了一点,后来刘献文也来了,9 个人把肉类都吃掉了,素菜却剩下不少。总的说来,我对火锅的味道要求很低,我几乎感觉不出什么好差来,呵呵,所以这次也吃得比较满足,关键是一群同事一起 玩,有一份惬意。 可惜,相机没电了,不然也可以留下点什么留念,一大遗憾啊~ Take back As most people in China mainland cannot access my blog hosted on http://missdeer.blogspot.com directly, I have decided to post blogs here as a backup. |
|
|