论坛首页 Java企业应用论坛

看看著名项目的代码

浏览 9836 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-07-03  
多少项目,spring, pico我都不太喜欢它们的代码。设计,结构上在我看来也多有可以改进的地方。但是话题说起来就难免涉及到个人口味。

今天看ant,终于发现了一个我不用担心费口舌解释争辩的代码,大家欣赏一下吧:
class PatternSet{
...
    public void append(PatternSet other, Project p); {
        if (isReference();); {
            throw new BuildException("Cannot append to a reference");;
        }

        String[] incl = other.getIncludePatterns(p);;
        if (incl != null); {
            for (int i = 0; i < incl.length; i++); {
                createInclude();.setName(incl[i]);;
            }
        }

        String[] excl = other.getExcludePatterns(p);;
        if (excl != null); {
            for (int i = 0; i < excl.length; i++); {
                createExclude();.setName(excl[i]);;
            }
        }
    }
...
    public void addConfiguredPatternset(PatternSet p); {
        if (isReference();); {
            throw noChildrenAllowed();;
        }

        String[] nestedIncludes = p.getIncludePatterns(getProject(););;
        String[] nestedExcludes = p.getExcludePatterns(getProject(););;

        if (nestedIncludes != null); {
            for (int i = 0; i < nestedIncludes.length; i++); {
                createInclude();.setName(nestedIncludes[i]);;
            }
        }

        if (nestedExcludes != null); {
            for (int i = 0; i < nestedExcludes.length; i++); {
                createExclude();.setName(nestedExcludes[i]);;
            }
        }
    }
...
}


不用我说什么了吧?
放弃对知名项目的代码的迷信吧。它们的成功之处不过是一个想法,然后把它实现了,然后碰巧因为各种原因让大家都用了。如此而已。
说道代码的编写和组织,真不见得如何。
   发表时间:2005-07-03  
喜欢不喜欢别人的代码,正象楼主说的,大多是取决于个人口味。
可是一个项目成不成功,却是要功夫的,不只是有一个想法就行,不是谁都能练得成“如来神牚”的,更别说让别人用了的话。
光一个想法是不能解决任何实际问题的,必须有坚实的代码才能撑得住。
试想谁敢把一根拣来的朽木当房梁呢?!岂是一个凑巧就能带过的。
说到代码的组织,也都好的项目是在这方面下过功夫的。大多是阅读都有个人的喜恶,仅此而已。
0 请登录后投票
   发表时间:2005-07-03  
代码的质量关键看编写者。而有些项目参与的人很多很杂,所以,一概而论就有点不恰当。
PS:上面这段代码具体的上下文不太清楚,ajoo是不是认为里面有共性的一段代码没有抽像出来?个人觉的,这个不是很关键吧。
0 请登录后投票
   发表时间:2005-07-03  
Julysea 写道
喜欢不喜欢别人的代码,正象楼主说的,大多是取决于个人口味。
可是一个项目成不成功,却是要功夫的,不只是有一个想法就行,不是谁都能练得成“如来神牚”的,更别说让别人用了的话。
光一个想法是不能解决任何实际问题的,必须有坚实的代码才能撑得住。
试想谁敢把一根拣来的朽木当房梁呢?!岂是一个凑巧就能带过的。
说到代码的组织,也都好的项目是在这方面下过功夫的。大多是阅读都有个人的喜恶,仅此而已。

拜托,别搞这种极端化的诡辩技俩。有谁说光是一个想法能解决问题了?谁说用朽木当房梁了?

你不是说上面的代码在你的个人口味里没问题吧?难道重复代码也可以认为是个人口味问题?还是就是因为这段代码是ant写出来的,就挣一眼闭一眼了?

有一个想法,然后做了出来,是需要一定功夫,但是也就是“一定”而已。说实话,ant,pico这种东西,想法不错,实现起来难度还真就一般般。

让别人用,这里面的因素就更复杂了,有多少是在于代码,还有多少在技术之外?运气,人缘,时机,这些可以忽略吗?

做ant这类东西,有了想法之后,真不需要什么如来神掌,少林长拳就够了。


还是那句话,不要偶像崇拜,不要盲目迷信,不要妄自菲薄。好多老外的水平真就一般般,比这里很多老大差多了。
0 请登录后投票
   发表时间:2005-07-03  
TomHornson 写道
代码的质量关键看编写者。而有些项目参与的人很多很杂,所以,一概而论就有点不恰当。
PS:上面这段代码具体的上下文不太清楚,ajoo是不是认为里面有共性的一段代码没有抽像出来?个人觉的,这个不是很关键吧。

patternset应该是ant核心的东西,所以我大胆估计这应该不是随便某个参与者写的。


很多关键的地方,比如说整体架构设计的,很难说。设计是个主观性,经验性很强的活,我说出来某个设计不好,这牵扯得东西就得说一车。然后就是没完没了的争论。毕竟这个项目成功了,工作的很好。

举这个例子,就是觉得它没什么牵扯,一目了然,差不多的人都能看出来。
当然不是关键核心部分,但是做个例子,窥一斑见全豹吧。

上面的addConfiguredPatternset(),直接调用append(p,this)就ok了。
0 请登录后投票
   发表时间:2005-07-03  
ajoo 写道
还是那句话,不要偶像崇拜,不要盲目迷信,不要妄自菲薄。好多老外的水平真就一般般,比这里很多老大差多了。

很实在的话。说句大家可能很难接受的话,看过很多比较有名气的开远项目的代码,还没有哪个项目的代码的质量能够和我们公司一个产品的代码质量比,而且,我想,很久之后,也不会出现。开远对于知识共享的意思很巨大,但是,对于除此之外的迷信是完全没必要的。
0 请登录后投票
   发表时间:2005-07-03  
ajoo 写道
上面的addConfiguredPatternset(),直接调用append(p,this)就ok了。

和上面列举的ANT代码有点类似,我前端时间写过一小片代码,总的来说,就是针对AS、Service、Application做检测,很多共性的东西,不过,导致我不能进一步抽象的原因是抛出的异常。上面的这段代码,在异常抛出方面可能也需要稍微关注一下。
0 请登录后投票
   发表时间:2005-07-03  
引用
很久之后,也不会出现

这话真的很自信啊。是关于什么的呢?这么强?
0 请登录后投票
   发表时间:2005-07-03  
TomHornson 写道
ajoo 写道
上面的addConfiguredPatternset(),直接调用append(p,this)就ok了。

和上面列举的ANT代码有点类似,我前端时间写过一小片代码,总的来说,就是针对AS、Service、Application做检测,很多共性的东西,不过,导致我不能进一步抽象的原因是抛出的异常。上面的这段代码,在异常抛出方面可能也需要稍微关注一下。


异常是会有些影响,但是仍然不会导致大段的逻辑重复。最多就是一两个函数调用的重复而已。
你可以给出例子,我们看看?
0 请登录后投票
   发表时间:2005-07-03  
ajoo 写道
异常是会有些影响,但是仍然不会导致大段的逻辑重复。最多就是一两个函数调用的重复而已。
你可以给出例子,我们看看?

大段重复是没有的,就在一个成员函数里导致了一些重复。
代码,我看看能不能变形一下,因为这是产品里的东西,公司是有规定。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics