朗志工作室(Langzhi Studio)

江浙沪一带找工作中,欢迎联系

  博客园 :: 首页 :: 联系 :: 订阅 订阅 :: 管理
  3486 Posts :: 2 Stories :: 498 Comments :: 7 Trackbacks

公告

本站大量内容为转载,一般都保留原链接,如果侵犯了你的权益,请以各种方式联系我,我会第一时间修正。

将我自己会忘记的内容,觉得好的,想法备在此处, 所以比较凌乱,莫怪
 


QQ:1036130199


msn/GTalk: Frederick.mao@gmail.com
twitter:http://twitter.com/mlzboy



新浪微博 http://weibo.com/mlzboy
profile 2011
移动充话费
我的简历2011.9

我的简历2010.7
项目截图


分享

抓虾
pageflakes
Rojo
google reader
netvibes
my yahoo
newsgator
bloglines
鲜果
哪吒
有道
QQ邮箱
抓虾
pageflakes
Rojo
google reader
netvibes
my yahoo
newsgator
bloglines
鲜果
哪吒
有道
QQ邮箱
分享家:Addthis中文版
昵称:lexus
园龄:4年10个月
粉丝:21
关注:5

搜索

 

常用链接

我的标签

最新评论

阅读排行榜

评论排行榜

推荐排行榜

2008年9月1日 #

      几经折磨,我慎重决定逐步的放弃BDB在我的项目中的应用,还是改用Sqlite来实现。不抛弃不放弃似乎是近来听得比较多的话语,可是在程序员的世界里,你经常会遇到n叉路口,你需要选择,你需要舍弃。

      最近在做写程序的过程中,我感受到,写程序的人,背后需要有方法论的支持,如果能懂点哲学,那更好了。整天低头写程序,使你局限在一个小领域思考问题。特别是当你遇到一个难题时,你紧紧的围绕着它想把它fixed out,不如退一步,看一看整个貌,再审慎的看一下,这个问题真的是系统中不可缺少的一部分吗?我非就要这样实现吗?在资源有限,时间有限,精力有限,什么都有限的情况下,叫我们来做一件事情(特别是做项目,基本上都是这种情况),我们是需要取舍的。或者可以说风险的识别与管理吧

      在撰写分布式信息采集程序的过程中,我有很多的取舍的地方,比如:

1.本来想使用NxBRE做为规则引擎来实现,可我发现它的实现是基于解析xml,太烦索了,而且有些我需要的功能没有,如果我要利用它,我要通读源码,这个对于做项目而言是大忌讳。但是在发现没有更好的解决方案前我也只能这么做。正当我准备这么做的时候,机缘巧合,在使用windsor的过程中,发现brail模板引擎用的是boo,它和C#是集成的,而且可以做为动态语言来内嵌,而且提供了编译器的扩展,支持DSL,于是我转投boo门下。其实你会发现在你为了实现某样功能,转投到某项新技术下寻找是否有你需要的答案的时候,你会不断的问自己,它能实现我的要求吗?又会问自己是不是还是用原来的方案好,使用它至多多费点时间,但是肯定可以实现,不过在针对我这个具体的情况,在我深入下去不久,我发现确实它能更好的实现我想要的功能。

小结:与其说这次是我主动的选择,不如说是好奇心+机遇所造就了,因为boo是类python的语法,之前正好学过python的语法,倘若之前没有尝过python可能,一看到boo说是类python我就逃了,程序员总是喜欢拥抱自己熟悉的东西,就像你不爱和陌生人说话一样,搭讪犯除外哈。

2.第二次抉择是发生在我在深入学习boo之后,ruby下dsl盛行,.net下dsl也蠢蠢欲动,mini dsl,iron python,等等 ,为了在boo下构造dsl我可是煞费苦心啊,把英文资料都看遍了,上maillist求解,但是无奈,不甘心的放弃了,为什么,找不到一个符合我要求的例子。我的道行还够深,我不明白其中的内部机理,只会clone,不会innovation。英文水平有限,和国外程序员交流还有障碍。

小结:这次是我无奈的放弃,不放弃也得放弃,并不是我死抱着boo不放一个月三个月就能解决的,我的功能还不到那份上,或许,几年之后,当我有了其它的相关工作经验,再回来看这个问题就迎刃而解了,但对于现在的我而言,是一个无解的问题。

3.第三次抉择是我在使用sqlite之后,应该说这是一次失败的抉择。此前我曾经在一个半成品的项目DBSchema2Doc(是一个类codesmith mygeneration之类的项目)中应用sqlite,对sqlite还算有些熟悉,sqlite在sql中支持regex正则对此我的印象很深。因此自然而然的应用它了。但随后发现它不能很好的支持多线程的并发读写,只能多个读一个写。这个困扰了我。我自认为是个见多识广的人,且也很会转弯,于是转到了bdb的门下,这次真的是一个失败的经历。因为它的文档稀少,而且在做demo原型是老报些错,一直找不到解决的方法,后来在qq上经网友的指点,勉强解决了,BDB是能很好的支持多线程的并发读写,但是关于它如何应用的文档实在太少,使得你遇到问题真的不能该如何解决。但是最好我还是决定在项目中应用它,边走边解决吧。在项目后期快完成的时候,经常在读写数据库的操作上出现些问题,一些是你不想要的数据,有时出现异常。但是又找不到好的解决方案,我本来想写个单元测试好好的把BDB操作的函数再测一遍,结果刚写第一个测试多线程的用例就失败了,把各种可能的参数都试了一遍,而且死活找不到原因,最后只能是放弃了。放弃也得有过程,我决定先利用BDB还是将怎么程序做完,再最后将数据储存这块替换,虽然没有使用接口的形式来替换操作数据库,但是难度和工作量还不是太大。

总结:在以往的写程序的过程中,我没有遇到那么多难点,都是做些asp.net的应用,可能是些div+js的特效,或是想用下xml+ajax,亦或是某个控件怎么使,正则写起来有点难度,上网问问google一下,基本上的问题都可以解决。似乎还没有遇到过想做而没有做成的,不过这次的项目中真的遇到了,我也学会了很多。也算是在失败中汲取教训吧。

我希望把这个经验教训,应用到我以后的生活、学习、工作中将是受益无穷的事情。整个暑假我都在不断的选择、抉择、抛弃、放弃,从失望到绝望再到希望,经历着这种轮回。相信这种轮回,会使我更加的成熟和自信。

 

PS:我觉得我有做项目经理的潜质,不过这活太耗心力。

posted @ 2008-09-01 22:28 lexus 阅读(110) 评论(0) 编辑