- 浏览: 245705 次
- 性别:
- 来自: 北京
最新评论
-
nowind:
我学ror时使用了haml一个月。现在回到了java,却再也无 ...
HAML必将流行 -
suliangben:
楼主你在幻想吧,你要走出你的幻想世界,接受现实。
HAML必将流行 -
kenrome:
打不开阿嗄
新文章都会发表在 dongbin.org 上,这个 blog 不再更新了 -
Soloara:
haml确实在很多方面体现出了其优势,但不可否认的一点是抽象程 ...
HAML必将流行 -
dayang2001911:
你为什么不把你那边的博文导入到javaeye来呢
新文章都会发表在 dongbin.org 上,这个 blog 不再更新了
文章列表
很喜欢薛兆封老师的一句话:
我会全力以赴的反驳你,一旦我失败了,我的努力将转变为对你观点的信服.
如果我完全支持某一观点,我会选择沉默。而发现逻辑站不住脚的地方,我会直言相向,不会投露出任何委婉的语气。因为我相信,我的批驳是对你最有力的支持。
曾几何时,我也是一名EJB的fans,频繁的反对without EJB的观点。但是随着我反驳的无力,我逐渐认识到了自己的愚蠢,成了一名实证主义者。
所以我很少“顶”贴,更多的是投反对票。
我还坚信,至少在软件领域,一个实践者胜于十个思想家。
另外关于方法学上的问题,我只能从实践的自身体验来说什么是好的,而无法形式化的证明它。软件开发从来不是,也 ...
- 2006-11-18 23:28
- 浏览 1590
- 评论(1)
度很难把握,所以Agile方法很讲究原则。
设计的简单性是快速响应变化的前提,是不是Over要看是否是满足需求最简单设计,这就是一个Agile的原则。
简单的设计不是Quick and dirty, 而是 Clean。用TDD来保证最初设计的Clean,每一次变化来临时,用Quick and dirty方式解决它,再用Refactoring来Clean up。
很喜欢gigix的一句话: 一切面向对象都是语法糖。计算机世界根本就没有对象,应该把面向对象当作手段,而不是当作目标。遗憾的是受到GOF的影响,OCP成了很多Over Design的元凶。
- 2006-11-17 13:45
- 浏览 1232
- 评论(1)
今天编写ROR应用接受了两个深刻教训:
1. 以打印异常为荣,以出错不报为耻:
很简单的undefined method错误,因为错误被我rescue之后没有打印出来,结果花了一个小时调试。一定要深刻反省!
2. has_many :through 不能代替 has_and_belongs_to_many:
用了has_many :through之后
user.items << item
不能保存到数据库。
如果join_table不需要额外的字段,就has_and_belongs_to_many吧,因为这时,中间那个Model不是Model!,权当作实现复杂性吧!
...
- 2006-11-15 10:49
- 浏览 1670
- 评论(2)
刚才有人给我留言,说[url=http://charon.blogdriver.com/charon/132572.html ]Test Drive != Test First[/url],让我差点晕倒。
无话好说,就贴一段Kent Beck对TDD的定义:
Test-driven development (TDD) (Beck 2003; Astels 2003), is an evolutionary approach to development which combines test-first development where you write a test before y ...
- 2006-10-27 13:02
- 浏览 1337
- 评论(1)
很多软件开发方法都称自己是实践者的方法。
如何辨别方法学是否能够指导实践呢?看这个方法有没有原则性。
度的把握是仁者见仁,智者见智的问题,指导实践的最终结果就是领导意志决定一切。而原则确能明确的指导开发者。
1. 瀑布方法学在指导每一个阶段的时候,严重强调一定要review保证上一个阶段完成了。如何保证?这是专家的能力,我等草民不可怀疑。只管准备出小山一样的文档就行了。
2. RUP教育我们,一定要多写单元测试,多做code review。话是没错,但是这种没有原则性的空话,就和“建立和谐社会”一样,对于开发者没有指导性。
3. XP晴天霹雳:“尔等Test Driv ...
上一篇帖子只是看了robbin的文章后由感而发,所以写的有一些随性。
尤其是标题,只是一时想起这句话,用一下比兴手法,随手拈来。好比“羊羔羔吃奶眼望着妈,小米饭养育我长大”。现在有一些后悔,所以把标题改了。
但是我还是发现一个奇怪的现象,这篇文章主要想讨论软件的内在复杂性和次要复杂性,只要读完这篇文章的人都应该看得出来,和“问题”,“主义”没有任何关系。可是我发现还是有一半的跟帖围绕着这个没有意义的标题,所以我很是怀疑他们有没有看完,甚至是看完第一段也好。
真的是件很遗憾的事情。
但我还是要虚心接受大家批评,不要再让标题误导读者了。
- 2006-10-25 11:21
- 浏览 1651
- 评论(1)
最近关于ruby够提高开发效率的问题讨论的热火朝天 。我也插两嘴。
有一句格言我比较喜欢:“改变你能改变的,接受你不能改变的”。
人月神话告诉我们软件开发没有银弹:因为软件的内在复杂性是现实世界复杂性的映射。 ...
上篇blog 讲到Xerial 366上装linux有问题。现在找到了答案,做一个解答。
先下载IBM 的SAS Redhat driver 在利用里面的img文件制作一张驱动软盘。
然后插入第一张Red hat EL4 光盘启动,在boot提示符下面输入
linux dd
启动之后就能够找到SAS硬盘了。
- 2006-10-20 13:18
- 浏览 1540
- 评论(0)
单位买了一台Xseries 366,我尝试着装Ubuntu,结果失败了。
安装过程没有问题,但是重启之后内核找不到硬盘。
google一下,发现原因是366系列放弃了SCSI,开始使用SAS硬盘.
SAS 的linux驱动是有的,但是linux2.6.15内核有一个 bug 并且至今没有fix。所以SAS 目前和linux无缘了。
又找到了一篇详细的文章 ,看来SAS对于linux还是新生事物,如何加入内核还在激烈争论之中,relegated to vendor kernels and third-party patches.
IBM推出这样的server难道只让我们用Windows作 ...
- 2006-10-17 22:44
- 浏览 1629
- 评论(0)
理由很简单,MSN Space几乎到了无法访问的地步,还有一个原因是我现在用Linux的时间比较长,而Linux上是不能在MSN上发表文章的。请大家访问我的新Blog
http://dongbin.iteye.com
- 2006-06-04 07:56
- 浏览 984
- 评论(0)
装了一个alsa-oss声卡驱动,再通过aoss realplay命令来启动realplay就行了。
如果启动的时候说LD_PRELOAD载入失败,是因为aoss共享库的名字错了,就需要修改/usr/bin/aoss文件,改成正确的名字。
- 2006-04-14 06:08
- 浏览 1629
- 评论(0)
读了孟岩老师的理解矩阵之后,深有感触。
“矩阵是线性空间里的变换的描述。”矩阵本身是一种描述如何变换状态的东西,而变换状态的主体也是矩阵。并且状态变换本身也是可以作为变换的主体继续演化。这种思想和SICP这本书描述的颇为神似。在Scheme这种语言中,数据和过程之间的界限非常模糊,过程可以作为数据来对待。尤其是第4章,深刻论述了过程作为一种描述机器结构的数据,完全就是一种普普通通的数据而已。最近在读的《UNIX 编程艺术》在第9章“”数据驱动开发“中也专门论述了这种思想。主张把程序逻辑从通用语言中提取出来,作为数据来描述。从而降低复杂性,提高可维护性。这种过程作为数据的思想,引导着过程向高阶函数 ...
- 2006-04-11 02:56
- 浏览 1232
- 评论(0)
读了《Unix编程艺术》后,对Shell有了新的理解:
Shell也可以看作是一种函数调用方式,它是进程独立的,以文本流为参数的一种调用。
Shell跟普通的函数调用相比,它不仅是模封装的逻辑实体,而且是物理实体(进程独立)。所以封装的更彻底。而编程语言中的模块由于线程的存在,还要被同步等问题打破黑盒。
管道,重定向相当于一种参数传递机制。相对于 函数调用,他的强大还在于异步的数据传输。
由于Shell机制内嵌于操作系统,使得异构应用程序之间不必重新开发底层的协议,只需文本协议的Shell调用即可。J2EE项目中的各种异构问题的解决方案相比之下简直复杂的不着边际。
- 2006-04-11 02:30
- 浏览 1480
- 评论(0)