<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    小雨開(kāi)源

    我也加入到了開(kāi)源隊(duì)伍中了

    常用鏈接

    統(tǒng)計(jì)

    最新評(píng)論

    第三只眼看Jdon-一個(gè)讓很多人抓狂框架

    1、Jdon為什么會(huì)讓我們抓狂?

    平安夜的狂歡過(guò)后,Jdon已經(jīng)三歲了,已經(jīng)到了5.1版本,作為中國(guó)的第一個(gè)java開(kāi)源框架,相比很多胎死腹中的畸形胎兒(比如G-Roller等),可以算是非常健康長(zhǎng)壽了,值得所有熱愛(ài)并從事著開(kāi)源的人們學(xué)習(xí)、反思。
    不知道為了什么?直到現(xiàn)在仍然還有人對(duì)他以及他的創(chuàng)始人抱有深深的偏見(jiàn)或者嫉恨。一個(gè)能讓這么多人抓狂的框架,如果你對(duì)他不了解,那真是一個(gè)遺憾。畢竟不是任何東西都能讓人抓狂的,而且是讓很多“牛”人們集體抓狂,更是不容易。是因?yàn)樗_實(shí)太濫或者又他太優(yōu)秀?是因?yàn)樗址噶舜蠹业睦孢€是他在給我們宣揚(yáng)錯(cuò)誤的思想及理念?或者都是,又或者又都不是,也許只有身在其中的人們才知道。
    通過(guò)兩天對(duì)Jdon框架的應(yīng)用體驗(yàn)及源碼分析,今天從第三方的角度來(lái)審視Jdon,根據(jù)我所了解的Jdon的框架,談?wù)勎业恼J(rèn)識(shí)及感受,希望能讓你對(duì)Jdon有一個(gè)全新的認(rèn)識(shí),又或者能為Jdon的發(fā)展做出一些小小的貢獻(xiàn)。

    2、Jdon是什么
    Jdon是什么?回答這個(gè)問(wèn)題可以直接借助他的創(chuàng)始人板橋?qū)懺谄涔俜骄W(wǎng)站上的介紹:Jdon Framework(簡(jiǎn)稱(chēng)JF)是一套適合開(kāi)發(fā)中小型J2EE/JavaEE應(yīng)用系統(tǒng)的輕量Web框架(Lightweight Java Web Framework)。JF誕生于2004年底,是國(guó)人獨(dú)立開(kāi)發(fā)的中國(guó)人自己的框架產(chǎn)品,2005年入選全球SUN公司網(wǎng)站java.net正式企業(yè)應(yīng)用目錄。經(jīng)過(guò)多年發(fā)展和眾多用戶(hù)的使用及其完善,JF已經(jīng)發(fā)展成為一套成熟的、面向?qū)ο蟮摹⒒跇?gòu)件(基于組件)的輕量快速開(kāi)發(fā)框架。Jdon是嚴(yán)格堅(jiān)持分層架構(gòu)(表現(xiàn)層、業(yè)務(wù)層和持久層)下的快速開(kāi)發(fā)。JF是快速性和靈活性綜合平衡的產(chǎn)物,它帶來(lái)了多快好省的簡(jiǎn)單的解決之道(simplify the best):對(duì)于小項(xiàng)目,使用Jdon框架可以開(kāi)發(fā)出高質(zhì)量可擴(kuò)展的好的系統(tǒng);對(duì)于大項(xiàng)目,使用Jdon框架可以更快地開(kāi)發(fā)出系統(tǒng)。

    也許現(xiàn)在看來(lái)這些特性都沒(méi)什么,但如果在當(dāng)時(shí),確是非常具有革命性的,用板橋的話:“顛覆對(duì)象使用之前必須創(chuàng)建的基本定律,正象無(wú)需關(guān)心對(duì)象銷(xiāo)毀一樣,您可以無(wú)需關(guān)心對(duì)象創(chuàng)建。”,“面向?qū)ο缶幊讨窯rady Booch 說(shuō):對(duì)象最偉大處在于其可被替代。而Jdon框架偉大之處是幫助你替代這些對(duì)象,甚至包括Jdon框本身。”
    板橋一下強(qiáng)調(diào):“Jdon框架不是面向數(shù)據(jù)庫(kù)的;而是面向模型分析設(shè)計(jì)(OOA/OOD)。”

    當(dāng)然,孩子永遠(yuǎn)是自家的好,我們不能只聽(tīng)板橋說(shuō)他如何我們就認(rèn)為他怎樣?究竟這個(gè)框架是好還是差,耳聽(tīng)為虛,眼見(jiàn)為實(shí)。既然都是開(kāi)源項(xiàng)目,我們只需要下載他的源代碼看看,并跟同類(lèi)的開(kāi)源比較一下就知道。如果你跟我一樣,通過(guò)看他的文檔,閱讀他的代碼,你才會(huì)真正了解Jdon究竟是什么。

    一個(gè)IOC框架
    Jdon是一個(gè)IOC容器(板橋也算是最早把IOC的概念引入國(guó)內(nèi)的少數(shù)牛人之一,并且能通過(guò)集成到j(luò)don中向大家展示IoC的使用),這個(gè)IOC容器能實(shí)現(xiàn)自動(dòng)按構(gòu)造子注入組件所依賴(lài)的對(duì)象。這個(gè)Ioc需要配置的東西不多,比如:你只需要在一個(gè)類(lèi)似jdonframework.xml的xml文件中寫(xiě)類(lèi)似下面的配置信息:
    <services>
    <pojoService name="testService" class="com.jdon.framework.test.service.TestServicePOJOImp"/>
       
    </services>

    你就能在你的Action中使用下面的代碼訪問(wèn)這個(gè)testService
    TestService testService = (TestService) WebAppUtil.getService("testService ", request);
    testService.createUser(em);

    當(dāng)然,你必須要搞清楚的是,Jdon的Ioc實(shí)現(xiàn)并不是從頭開(kāi)始實(shí)現(xiàn)了一個(gè)IoC,他是通過(guò)在picocontainer基礎(chǔ)上進(jìn)行封裝實(shí)現(xiàn)的。

    簡(jiǎn)單的AOP及攔截器實(shí)現(xiàn)
    基于面向切面的編程,可以把面向?qū)ο蟮姆椒ú荒芎芎媒鉀Q的問(wèn)題很輕松的解決掉。Jdon在aopalliance定義的API基礎(chǔ)上,實(shí)現(xiàn)了一個(gè)非常簡(jiǎn)單的AOP,其實(shí)就是幾個(gè)類(lèi),使用代理實(shí)現(xiàn)了對(duì)方法的環(huán)繞攔截。雖然沒(méi)有AspejctJ及Spring的AOP強(qiáng)大,但對(duì)于應(yīng)用80%的AOP需求,已經(jīng)足夠。
    Jdon立足中大型應(yīng)用需求,充分發(fā)揮Java在企業(yè)應(yīng)用開(kāi)發(fā)中的優(yōu)勢(shì),考慮到性能等很多因素,Jdon框架還通過(guò)成功應(yīng)用攔截器,實(shí)現(xiàn)了對(duì)象Cache、對(duì)象池等功能。你可以在一個(gè)像aspect.xml這樣的文件中配置你的攔截器,實(shí)現(xiàn)對(duì)一組一組的對(duì)象進(jìn)行攔截:
    <interceptor name="cacheInterceptor"
    class
    ="com.jdon.aop.interceptor.CacheInterceptor"
    pointcut
    ="services" />

    JdonAOP攔截器目標(biāo)對(duì)象組有三種:全部目標(biāo)服務(wù);EJB服務(wù);POJO服務(wù)(EJB服務(wù)和POJO服務(wù)是在JdonFramework.xml中定義的ejbService和pojoService)

    針對(duì)訪問(wèn)EJB業(yè)務(wù)組件的封裝
    Jdon充分考慮到在大型的分布式應(yīng)用中,一些功能仍然必須依靠EJB這種重量級(jí)的業(yè)務(wù)組件來(lái)完成的現(xiàn)狀。相對(duì)于其它一些同類(lèi)框架,從框架底層到最終應(yīng)用都考慮到對(duì)EJB支持及簡(jiǎn)化。比如針對(duì)EJB2的一個(gè)業(yè)務(wù)組件,可以直接配置成下面的形式:
    <ejbService name="testService" >
          
    <jndi name="TestEJB" />
          
    <ejbHomeObject class="com.jdon.framework.test.ejb.TestEJBHome"/>
          
    <ejbRemoteObject class="com.jdon.framework.test.ejb.TestEJBRemote"/>
          
    <interface class="com.jdon.framework.test.service.TestService" />
        
    </ejbService>

    而在Action中使用的時(shí)候,還是像使用普通的pojoService一樣,WebAppUtil.getService方法即可獲得。

    持久層數(shù)據(jù)訪問(wèn)封裝
    企業(yè)級(jí)應(yīng)用80%都會(huì)涉及到數(shù)據(jù)庫(kù)的持久化。因此,Jdon提供了對(duì)持久層數(shù)據(jù)訪問(wèn)的簡(jiǎn)單封裝,提供了一個(gè)JdbcTemp類(lèi)來(lái)執(zhí)行數(shù)據(jù)庫(kù)操作,另外還提供了數(shù)據(jù)訪問(wèn)層的DaoCRUD接口,以及一個(gè)Hibernate的實(shí)現(xiàn),訪問(wèn)我們使用Hibernate來(lái)進(jìn)行對(duì)象持久化。
    如下面的代碼使用Jdon中提供的jdbc模板類(lèi)來(lái)操作數(shù)據(jù)庫(kù):
      //適合查詢(xún)返回結(jié)果是單個(gè)字段,如:
      
    // select name from user where id=?
      public Object querySingleObject(Collection queryParams, String sqlquery)  throws Exception {
    return jdbcTemp.querySingleObject(queryParams, sqlquery);
    }


    Struts1.x工具集合
    Jdon在我看來(lái)有一點(diǎn)感覺(jué)是為使用Struts1.x開(kāi)的人用的,因?yàn)樗Q生的時(shí)候,struts1.x正處于鼎盛時(shí)期。因此,框架內(nèi)部集成了很多開(kāi)發(fā)struts1.x應(yīng)用的實(shí)用工具,全部放在strutsutil及下面的包中,包含基于Struts1.x的通用業(yè)務(wù)處理如ModelDispAction、ModelListActionAction等,文件上傳封裝,基于Struts1.x的樹(shù)形組件以及自定義的分頁(yè)標(biāo)簽等。如下圖所示:


    一個(gè)圍繞Struts1.x+POJO(EJB) Service+Hibernate的快速開(kāi)發(fā)框架
    說(shuō)到快速開(kāi)發(fā)框架,我想大家都不陌生,JavaEE領(lǐng)由于涉及到的技術(shù)及選擇性太多,導(dǎo)致現(xiàn)在的快速開(kāi)發(fā)框架可以說(shuō)是五化八門(mén),國(guó)際上比較知名的有appfuse,國(guó)內(nèi)比較有名的有springside及easyjf等。而jdon在做那么多基礎(chǔ)性功能的情況下,也實(shí)現(xiàn)了一個(gè)快速開(kāi)發(fā)框架。也許他的核心及目標(biāo)也就是這個(gè)快速開(kāi)發(fā)框架,他是最終能讓這個(gè)框架立竿見(jiàn)影的重要部分。
    使用Jdon的快速開(kāi)發(fā)框架,可以使用對(duì)象驅(qū)動(dòng)的方式開(kāi)發(fā)j2ee應(yīng)用。Jdon框架中花了大量的精力及資源來(lái)解決模型CRUD的問(wèn)題,整個(gè)框架中差不多一半的代碼都是為實(shí)現(xiàn)這個(gè)靈活、快速、基于對(duì)象驅(qū)動(dòng)的快速框架而寫(xiě)的。為了一個(gè)添刪改查,你只需要一個(gè)模型、一個(gè)業(yè)務(wù)組件、一個(gè)Form、兩個(gè)配置文件,就能實(shí)現(xiàn)一個(gè)非常簡(jiǎn)單的添刪改查找應(yīng)用。比如針對(duì)留言Message進(jìn)行添刪改查,需要下面的內(nèi)容:
    域模型
    public class Message extends Model {
      
    private String messageId;
      
    private String name;

      
    public String getName() {    return name;  }
      
    public void setName(String name) {    this.name = name;  }
    }
    業(yè)務(wù)邏輯層
    public interface MessageService {
        
    public void createMessage(EventModel em);
        
    public void updateMessage(EventModel em);
        
    public void deleteMessage(EventModel em);
        
    public Message getMessage(String messageId);
    }
    實(shí)現(xiàn)及DAO層的代碼這里省略。
    一個(gè)Form(Struts1.x的產(chǎn)物):
    public class MessageForm extends ModelForm {

        
    private String messageId;
        
    private String name;

    public String getName() {    return name;  }
      
    public void setName(String name) {    this.name = name;  }
    }


    業(yè)務(wù)層配置文件jdonframework.xml
    <models>
       
    <!-- 配置模型的類(lèi)是Message,其主鍵是messageId -->
       
    <model key="messageId" class ="sample.model.Message">
          
    <!-- 下行是配置界面模型MessageForm -->
          
    <actionForm name="messageForm"/>
          
    <handler>
    <!-- 以下配置MessageService -->
            
    <service ref="messageService">
              
    <getMethod name="getMessage" />
              
    <createMethod name="createMessage" />
              
    <updateMethod name="updateMessage" />
              
    <deleteMethod name="deleteMessage" />
            
    </service>
          
    </handler>
        
    </model>
    </models>
    <services>
         
    <!-- 以下配置MessageService -->
        
    <pojoService name="messageService" class="sample.service.MessageServiceImp"/>
    </services>

    Struts-config.xml配置文件
    <struts-config>
      
    <form-beans>
        
    <form-bean name="messageForm" type="sample.web.MessageForm" />
         …… 
      
    </form-beans>
    …..
    <plug-in className="com.jdon.strutsutil.InitPlugIn">
        
    <set-property property="modelmapping-config"  value="jdonframework.xml" />
      
    </plug-in>
    <action name="messageForm" path="/messageAction" type="com.jdon.strutsutil.ModelViewAction"
            scope
    ="request" validate="false">
          
    <forward name="create" path="/message.jsp" />
          
    <forward name="edit" path="/message.jsp" />
        
    </action>
    <action name="messageForm" path="/messageSaveAction" type="com.jdon.strutsutil.ModelSaveAction"
            scope
    ="request" validate="true" input="/message.jsp">
          
    <forward name="success" path="/result.jsp" />
          
    <forward name="failure" path="/result.jsp" />
    </action>

    </struts-config>

    3、Jdon給了我們什么
    看了上面的功能介紹,也許確實(shí)沒(méi)給你帶來(lái)更多的驚喜。但是想想如果你是三年前的今天看到這么多的介紹會(huì)是怎樣?也許那時(shí)候你才開(kāi)始學(xué)hibernate,或者剛使用struts沒(méi)多久,又或者還在為什么是model2的web應(yīng)用而困惑,更別說(shuō)什么是IoC或AOP了。如果那時(shí)你知道國(guó)人有這么一個(gè)框架,使用了這么多先進(jìn)的理念、引入了很多先進(jìn)的技術(shù)、并且可以讓我們開(kāi)發(fā)Struts應(yīng)用基本上不用寫(xiě)太多的java代碼,你會(huì)是什么樣的感受?
    其實(shí),也許就算你現(xiàn)在不用Jdon框架來(lái)做項(xiàng)目,作為一個(gè)開(kāi)源愛(ài)好者,我仍然強(qiáng)烈推薦你去了解這個(gè)框架。因?yàn)樗?jīng)帶給我們的是很多革命性的東西。而且,就算三年后的今天,也許你已經(jīng)從一個(gè)java菜鳥(niǎo)變成了java小牛,但回頭了解Jdon框架中的很多東西,你會(huì)發(fā)現(xiàn)很多與你的代碼有著似曾相識(shí)的感覺(jué)。
    Jdon框架中大量應(yīng)用了設(shè)計(jì)模式,這是面向?qū)ο缶幊倘藛T必須掌握的一門(mén)內(nèi)功。通過(guò)ServiceFactory、ServiceFacade、ContainerDirector、ComponentVisitor、HttpSessionProxyVisitor、CommonsPoolAdapter、CommonsPoolFactory、WebServiceDecorator這些名字,一個(gè)一個(gè)的去了解、挖掘,一定會(huì)非常受益。

    4、Jdon的代碼質(zhì)量分析
    Jdon的代碼質(zhì)量總的來(lái)說(shuō)是非常高的,不管是命名規(guī)范、代碼注釋或者是代碼結(jié)構(gòu)等。整個(gè)框架根據(jù)要實(shí)現(xiàn)的功能模塊分成aop、businessproxy、controller、container、model、strutsutil、persistence、security等大包,框架的核心部件如容器ContainerWrapper、ContainerBuilder、組件描述TargetMetaDef、動(dòng)作事件 Event、模型ModelIF等都是針對(duì)接口編程,具有一定的可擴(kuò)展性。另外整個(gè)設(shè)計(jì)中使用到大量的設(shè)計(jì)模式,可讀性也非常強(qiáng),想進(jìn)一步提高OO水平的java開(kāi)發(fā)人員值得進(jìn)一步學(xué)習(xí)研究。
    代碼的注釋有的是英文,有的是中文,這種中英文混合的方式有好處有壞處。好處是國(guó)人或老外都能看懂一點(diǎn),壞處是不管對(duì)國(guó)人還是老外,都沒(méi)法讓他們徹底地搞懂。比如下面是ModelIF的代碼及注釋?zhuān)?br />
    /**
     * Base domain model it can be DTO or nested Model. it is the important message
     * between business layer and view layer. in view layer, it is created by form
     * object(such as ActionForm object);in business layer, it is created by
     * business components(such as session bean).
     *
     * thi class can be cached, and setModified is important, this method can be
     * used to refresh the cache.
     *
     * because setModified function ,so the class is designed for a class, but not a
     * interface.
    * the difference with setModified and setCacheable;
     * setCacheable to false, the model will never exist in the cache.
     * setModified to true, if the model exists in the cache, the client will not
     * get it from cache, it is same as being deleted from cache .
     * deleting the model from cache must have a condition that the deleting operator
     * can access the cache of the container, if it cann't access the container,
     * it cann't delete the model from cache. such it is EJB.
     * 
    @author banq
     
    */
    public interface ModelIF extends Cacheable, Cloneable, Serializable {
        
    /**
         * in the past version, this method name is isCacheble,
         * now change it after 1.3 !
         
    */
        
    public boolean isCacheable();
         
    /**
         * in the past version, this method name is setCacheble,
         * now change it  after 1.3 !
         
    */
        
    public void setCacheable(boolean cacheable);
        
    public boolean isModified();
        
    /**
         * set the property has been modified such as : setName(String name){
         * this.name = name; setModified(true); }
         *
         
    */
        
    public void setModified(boolean modified) ;
       
    }


    當(dāng)然,既然是中國(guó)人,那么跟所有其它的中國(guó)人一樣,一個(gè)人寫(xiě)這么多的代碼,難免也會(huì)出現(xiàn)一些小小的Bug及錯(cuò)誤,特別是一些錯(cuò)別字。比如說(shuō):ModelManager接口中的borrowtHandlerObject方法,又或者isCacheable寫(xiě)成isCacheble,或者Jdbc操作模板類(lèi)名稱(chēng)叫JdbcTemp而不叫JdbcTemplate等;另外還有把test代碼沒(méi)有跟框架代碼分離,而是跟著框架核心代碼放在一起,比如ContainerDirectorTest等;還有很多核心的接口缺少注釋?zhuān)热鏢erviceAccessor等。
    如果不是為了雞蛋里面挑骨頭,但我想這些不是應(yīng)該成為這個(gè)框架不好的原因,畢竟這些問(wèn)題我想Jdon并不是無(wú)法改進(jìn)。
    Jdon的代碼存放在sourceforge上面,使用cvs管理,任何人都可以從這個(gè)cvs上check out他的源代碼進(jìn)行學(xué)習(xí)及改進(jìn)。

    5、Jdon還缺哪些?
    前面已經(jīng)說(shuō)了很多Jdon的優(yōu)點(diǎn),但同樣是應(yīng)用程序框架,Jdon為什么沒(méi)有能像Spring那樣火呢?為什么市場(chǎng)上關(guān)于Jdon的書(shū)基本上為零呢?為什么Jdon沒(méi)有得到企業(yè)的認(rèn)可,并大量應(yīng)用呢?
    因此,Jdon應(yīng)該是缺少一些東西,或者說(shuō)是關(guān)鍵的東西。為什么同樣是開(kāi)源,spring能得到那么多用戶(hù)的反饋、并不斷改進(jìn),而針對(duì)jdon的bug建議、用戶(hù)反饋卻寥寥無(wú)幾呢?是技術(shù)不行還是市場(chǎng)推廣不行?Jdon雖然發(fā)布到了5.0,但除了前面的一兩個(gè)版本,后續(xù)的版本都沒(méi)有帶來(lái)什么變革性的東西,難道是后勁不足?其實(shí)這些問(wèn)題都值得我們每一個(gè)開(kāi)源愛(ài)好者思考。本文只談?wù)勎覍?duì)技術(shù)上覺(jué)得現(xiàn)在Jdon的存在的不足,以供大家參考。
    設(shè)計(jì)上的問(wèn)題
    技術(shù)的進(jìn)步是永無(wú)止盡的。Jdon框架的設(shè)計(jì)仍然還存在著很多的問(wèn)題。比如,要求用戶(hù)領(lǐng)域模型繼承Jdon的Model類(lèi)或?qū)崿F(xiàn)ModelIF接口,添刪改查的業(yè)務(wù)實(shí)現(xiàn)類(lèi)中要包含類(lèi)似createXxx(EventModel em)這樣的方法,導(dǎo)致整個(gè)框架對(duì)業(yè)務(wù)層的東西侵入性太嚴(yán)重,不符合實(shí)際應(yīng)用。另外,過(guò)多與Struts1.x緊密綁定的設(shè)計(jì)也不可取。
    容器的改進(jìn)
    picocontainer有很多局限性,最要命的是不支持setter方法注入,這個(gè)通過(guò)實(shí)踐證明是用得最多的。picocontainer的自動(dòng)注入應(yīng)該是按類(lèi)型注入的,在實(shí)際應(yīng)用中也存在很多限制。比如下面的EmailDefine這樣的構(gòu)造子可閱讀性是非常差的,如果存在多個(gè)這樣的構(gòu)造子,稍不注意就會(huì)搞錯(cuò):
    <component name="emailDefine"
                
    class="com.jdon.jivejdon.service.imp.account.EmailDefine">
                
    <constructor value="J道:用戶(hù)名和密碼"/>
                 
    <constructor value="您好:您索要的jdon.com網(wǎng)站登陸用戶(hù)和密碼如下:"/>
                 
    <constructor value="Jdon.com --- 解惑授道 專(zhuān)業(yè)的解決之道"/>              
                 
    <constructor value="Jdon.com"/>              
                 
    <constructor value="admin@jdon.com"/>
      
    </component>       
    public class EmailDefine{
        
    public EmailDefine(String s1, String s2, String s3, String s4,  String s5){
        }
    }

    因此,Jdon的IoC部份,需要增加針對(duì)setter方法注入的支持才行。

    統(tǒng)一業(yè)務(wù)組件 
    Jdon中的業(yè)務(wù)組件包括“普通類(lèi)服務(wù)pojoService”、“普通類(lèi)component”、“EJB服務(wù)ejbService”等,不同的業(yè)務(wù)組件配置的方法還不一致,有的使用<pojoService>、有的使用<component>、有的使用<ejbService>,其實(shí)既然是松耦合,就應(yīng)該是一致的。在一個(gè)應(yīng)用中,又如何能完全區(qū)分出誰(shuí)該扮演component、誰(shuí)該叫service呢?另外攔截器還要在單獨(dú)的配置文件中進(jìn)行配置,這樣會(huì)增加了配置及處理的復(fù)雜程度。下面是當(dāng)前jdon中的一些配置片斷:
    <pojoService name="testService" class="com.jdon.framework.test.service.TestServicePOJOImp"/>

    <component name="jdbcDAO" class="com.jdon.framework.test.dao.JdbcDAO">
         
    <constructor value="java:/TestDS"/>
    </ component >
    <context-param>
    <param-name>containerConfigure</param-name>
    <param-value>WEB-INF/mycontainer.xml</param-value>
    </context-param>
    ……
    <context-param>
    <param-name>aspectConfigure</param-name>
    <param-value>WEB-INF/myaspect.xml</param-value>
    </context-param>
    EJB服務(wù)
    <ejbService name="testService" >
          
    <jndi name="TestEJB" />
          
    <ejbLocalObject class="com.jdon.framework.test.ejb.TestEJBLocal"/>
        
    </ejbService>
    <ejbService name="calculator" >
          
    <jndi name="CalculatorEJB3" />
          
    <interface class="com.jdon.framework.test.service.Calculator" />
      
    </ejbService>


    Annonation支持
    EJB3、JPA以及整個(gè)JavaEE5都已經(jīng)大量引入的java5的annonation來(lái)描述源數(shù)據(jù),spring、struts2、hibernate以及國(guó)內(nèi)的operamasks、easyjweb等框架也都大量引入了對(duì)annonation的支持,實(shí)踐證明annonation也是一個(gè)非常好的東西。而到上前為止,在這一方面jdon框架中還沒(méi)有看到有對(duì)annonation的支持。最好能把ejbService、pojoService及component等配置可以通過(guò)簡(jiǎn)單的注解來(lái)實(shí)現(xiàn),甚至cache、攔截器等也應(yīng)該引入annonation的支持。

    其它Web框架支持
    雖然Struts1.x的市場(chǎng)仍然還是很大,但我們應(yīng)該清醒地看到,今天已經(jīng)有很多正在逐漸取代Struts1.x的Web框架出現(xiàn),比如webwork(或struts2)、easyjweb、operamasks(jsf)、grails等。Jdon作為一個(gè)應(yīng)用框架,要能獲得更多的應(yīng)用支持,必須支持與這些框架進(jìn)行集成,提供更多的支持,讓開(kāi)發(fā)者有更多的選擇權(quán)。

    持久層JPA支持
    JPA不用質(zhì)疑肯定是一個(gè)趨勢(shì),spring、grails、appfuse、struts2、jsf等當(dāng)前主流的框架都提供了對(duì)jpa全面的支持,并且把jpa作為java持久層的首選解決方法。另外, springside、easyjf等國(guó)內(nèi)的開(kāi)源組織,都已經(jīng)在他們的框架中大量的使用到了jpa持久層技術(shù)。因此,Jdon也應(yīng)該提供更多的對(duì)Jpa的支持。jdon現(xiàn)在所提供的對(duì)持久層的封裝顯得較單薄,很多時(shí)候無(wú)法滿(mǎn)足項(xiàng)目中需求。

    過(guò)分EJB不一定是好事
    EJB是一個(gè)好東西,但EJB3以后EJB從技術(shù)上來(lái)說(shuō)應(yīng)該就不算是什么東西了。三年前的Jdon考慮到當(dāng)時(shí)對(duì)EJB的支持情況,過(guò)分考慮EJB的需求是對(duì)的。但都EJB都已經(jīng)從重量變化輕量了,jdon框架中的很多為支持EJB而提供接口、方法等應(yīng)該根據(jù)實(shí)現(xiàn)的情況作相應(yīng)的調(diào)整、改進(jìn),不用再“過(guò)分EJB”。比如,下圖是Jdon中的TargetMetaDef組件定義核心接口的類(lèi)結(jié)構(gòu)圖:



    6、寫(xiě)在最后
    也許真像就像我在《中國(guó)java開(kāi)源界最可愛(ài)的人們》中說(shuō)過(guò)的一樣,Jdon現(xiàn)在給人有點(diǎn)高處不勝寒的感覺(jué)。然而我更希望的是Jdon不要停止前進(jìn)的步伐,同時(shí)也希望更多人一起來(lái)為Jdon以后的發(fā)展、為國(guó)人的開(kāi)源做出力所能及的貢獻(xiàn)。擁抱開(kāi)源肯定是不會(huì)錯(cuò)的,能投身到開(kāi)源的事業(yè)中當(dāng)然就會(huì)讓我們的職業(yè)生涯更加有意義的。

    泡一杯清茶,細(xì)品Jdon中的代碼,他可以帶給你很多東西。程序是一種藝術(shù),藝術(shù)不一定都實(shí)用,他能帶給我們藝術(shù)享受就已經(jīng)足夠。
    也許我們永遠(yuǎn)都用不到這框架,也許幾年以后,你會(huì)發(fā)現(xiàn)編程的技術(shù)又有翻天覆地的變化,如果你發(fā)現(xiàn)你為這種變化做出了一些貢獻(xiàn),你會(huì)感到非常欣慰。從這一點(diǎn)來(lái)說(shuō),我認(rèn)為板橋無(wú)論如何肯定都是應(yīng)該是快樂(lè)的。

      版權(quán)聲明:本文版權(quán)由Blogjava小雨開(kāi)源所有,受法律保護(hù)。歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)保留作者版權(quán)聲明及連接。

    附:
    其它相關(guān)背景資料:
    1. 2005年Jdon框架入選SUN公司的Java.net企業(yè)應(yīng)用目錄(與AppFuse同列)
    2. Jdon框架在全世界最大開(kāi)源網(wǎng)站Sourceforge的項(xiàng)目網(wǎng)址
    3. 世界頂級(jí)Java網(wǎng)站TheServerSide有關(guān)Jdon框架 2004年新聞1 新聞2
    4. 2004年底Jdon框架剛推出時(shí)國(guó)內(nèi)各種評(píng)論
    5. 時(shí)值2006年8月道友lhsail對(duì)Jdon框架的看法
    6. 一位Jdon框架用戶(hù)的感言
    7. 對(duì)話Jdon 一個(gè)開(kāi)源人的孤獨(dú)告白.
    8. 更多關(guān)于JdonFramework討論系列1 以及 討論系列2



    posted on 2007-12-25 19:54 小雨開(kāi)源 閱讀(18022) 評(píng)論(52)  編輯  收藏

    評(píng)論

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架[未登錄](méi) 2007-12-25 20:21 xxx

    這不是廣告嗎?
    我覺(jué)得這樣的吹捧過(guò)時(shí)了!!!!!  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-25 20:24 明白人

    是呀,JDON什么時(shí)候變得這么強(qiáng)了!
    我發(fā)現(xiàn)作者比較適合當(dāng)托兒!開(kāi)源的托!  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-25 21:27 beans

    畢竟不是任何東西都能讓人抓狂的,而且是讓很多“牛”人們集體抓狂,更是不容易。是因?yàn)樗_實(shí)太濫或者又他太優(yōu)秀?是因?yàn)樗址噶舜蠹业睦孢€是他在給我們宣揚(yáng)錯(cuò)誤的思想及理念?或者都是,又或者又都不是,也許只有身在其中的人們才知道。
    ---------------------------------------
    這幾句寫(xiě)得很好,佩服。看完再說(shuō)!  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架[未登錄](méi) 2007-12-25 21:58 xiaoxiao

    中國(guó)就缺少樓主這樣的國(guó)人開(kāi)源的項(xiàng)目的介紹
    支持樓主繼續(xù)下去!!~  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-25 22:26 Scorpioer

    記得曾經(jīng)看來(lái)Benq的《一個(gè)開(kāi)源人的獨(dú)白》,也表現(xiàn)出了一個(gè)國(guó)內(nèi)的開(kāi)源人的無(wú)奈,看了上面的幾個(gè)回復(fù):
    ----------------------------------------------------
    這不是廣告嗎?
    我覺(jué)得這樣的吹捧過(guò)時(shí)了!!!!!
    ----------------------------------------------------
    是呀,JDON什么時(shí)候變得這么強(qiáng)了!
    我發(fā)現(xiàn)作者比較適合當(dāng)托兒!開(kāi)源的托!
    ----------------------------------------------------
    所表現(xiàn)出來(lái)的,也只能是無(wú)奈!!!
    先不去說(shuō)JDon是否真的很優(yōu)秀,是否可以和Spring相比美,但Benq的那份開(kāi)源的精神,不畏列強(qiáng),是得首先值得尊敬的。但很多人骨子里就是看不起國(guó)人自己的東西,好像根本就不屑于與國(guó)外的開(kāi)源框架相比。
    JDon一直就處在一個(gè)被人輕視的地方,沒(méi)有良好的環(huán)境,根本就得不到很好的發(fā)展。
      回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-25 22:33 beans

    @Scorpioer
    ---------------

    但同樣是應(yīng)用程序框架,Jdon為什么沒(méi)有能像Spring那樣火呢?為什么市場(chǎng)上關(guān)于Jdon的書(shū)基本上為零呢?為什么Jdon沒(méi)有得到企業(yè)的認(rèn)可,并大量應(yīng)用呢?
    因此,Jdon應(yīng)該是缺少一些東西,或者說(shuō)是關(guān)鍵的東西。為什么同樣是開(kāi)源,spring能得到那么多用戶(hù)的反饋、并不斷改進(jìn),而針對(duì)jdon的bug建議、用戶(hù)反饋卻寥寥無(wú)幾呢?是技術(shù)不行還是市場(chǎng)推廣不行?Jdon雖然發(fā)布到了5.0,但除了前面的一兩個(gè)版本,后續(xù)的版本都沒(méi)有帶來(lái)什么變革性的東西,難道是后勁不足?
    ----------
    我也在思考這個(gè)問(wèn)題,樓主文中所提的問(wèn)題,似乎找到了一點(diǎn)答案。其實(shí)通篇讀完,看出來(lái)還是很客觀的。為什么有的人會(huì)覺(jué)得這是托呢?  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架[未登錄](méi) 2007-12-26 08:48 dennis

    一句話,樓主做技術(shù)人員純屬浪費(fèi),適合做營(yíng)銷(xiāo)  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-26 09:05 gan

    托也要托的有水平好不好,你再回去練練  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-26 09:08 gan

    lz要托去theserverside去托,貌似jdon最初發(fā)布的時(shí)候在theserverside被人罵的要死  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-26 10:03 小雨開(kāi)源

    @gan

    拜托,如何托了?你丫好好把文章看完,再發(fā)表意見(jiàn)好嗎?如果真像你說(shuō)的被罵死了,人家還不一樣好好的活到今天!你不會(huì)就是那些因?yàn)閖don而抓狂的人中的一員吧。悲哀.....  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-26 10:04 小雨開(kāi)源

    @dennis

    要留言就請(qǐng)有點(diǎn)技術(shù)含量,OK?如果我文中有什么不足,請(qǐng)你點(diǎn)出來(lái),好嗎?  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-26 10:04 小雨開(kāi)源

    @Scorpioer

    我也有同感。  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架[未登錄](méi) 2007-12-26 10:11 Mike

    樓主不會(huì)就是彭胖吧,動(dòng)輒就來(lái)“偉大“二字,張口閉口開(kāi)源(敢問(wèn)你哪怕通篇讀完一個(gè)類(lèi)似開(kāi)源協(xié)議么?)。感謝彭胖出的那本爛書(shū),讓我認(rèn)識(shí)了你的文風(fēng),敢情是換了個(gè)馬甲,假裝成第3者來(lái)自己吹自己啊!  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-26 10:12 小雨開(kāi)源

    @Mike
    又敢請(qǐng)問(wèn)樓上的是何方牛鬼蛇神?  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-26 10:17 范德薩

    @gan
    我可以很?chē)?yán)肅的告訴你
    你是個(gè) 傻# #比  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-26 10:42 我來(lái)也

    發(fā)現(xiàn)樓主的文章除了托還是托,很適合搞娛樂(lè),我看好你!  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-26 10:49 我想說(shuō)兩句

    終于看完了,發(fā)現(xiàn)小雨是非常細(xì)心,值得大家仔細(xì)看,特別是后面部分的文字很感人,幫你頂一個(gè)。  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架[未登錄](méi) 2007-12-26 13:51 xiaoxiao

    確實(shí)小雨非常細(xì)心,文采非常不錯(cuò)
    有點(diǎn)像女生的味道
      回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-27 17:10 hansy

    @小雨開(kāi)源

    看4、Jdon的代碼質(zhì)量分析
    里面接口ModelIF 的注釋是怎么寫(xiě)的?
    英語(yǔ)語(yǔ)法一竅不通。

    你告訴我這個(gè)質(zhì)量和優(yōu)秀是怎么來(lái)的?  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-27 17:27 小雨開(kāi)源

    @hansy
    代碼質(zhì)量不是通過(guò)英語(yǔ)語(yǔ)法體現(xiàn)出來(lái)的,相信大家都能看得懂。

    當(dāng)然,你可以通過(guò)注釋前面的話看出來(lái)我要表達(dá)的意思:

    “代碼的注釋有的是英文,有的是中文,這種中英文混合的方式有好處有壞處。好處是國(guó)人或老外都能看懂一點(diǎn),壞處是不管對(duì)國(guó)人還是老外,都沒(méi)法讓他們徹底地搞懂。比如下面是ModelIF的代碼及注釋?zhuān)骸?nbsp; 回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-28 10:50 hansy

    如果英語(yǔ)水準(zhǔn)就是這樣,他的方法命名,代碼注釋能寫(xiě)到什么水準(zhǔn)?

    對(duì)于一個(gè)優(yōu)秀的工程師,優(yōu)秀的框架,我覺(jué)得就是要在每個(gè)方面都要做到嚴(yán)謹(jǐn),像這樣所謂的“中英結(jié)合”只不過(guò)是給自己找的借口而已
    jdon代碼我看過(guò),的確可以,但這方面就是一個(gè)硬傷
    說(shuō)好可以,但沒(méi)那么好,更不能胡說(shuō)

    像這樣隨隨便便就把這樣的注釋拿出來(lái)給人家看,我覺(jué)得是作為一個(gè)程序員的恥辱。  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-28 10:53 hansy

    而且,補(bǔ)充一點(diǎn)。

    這樣的英語(yǔ)水準(zhǔn)我理解為不是差,是很差。  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-28 14:48 小雨開(kāi)源

    @hansy
      “像這樣隨隨便便就把這樣的注釋拿出來(lái)給人家看,我覺(jué)得是作為一個(gè)程序員的恥辱。 ”

      這話說(shuō)得也太難聽(tīng)了吧,怎么你就覺(jué)得是恥辱了,你讓老外寫(xiě)程序全部用中文寫(xiě)注釋看看。我覺(jué)得敢于把代碼開(kāi)放就是一件很光榮的事情,敢問(wèn)老兄你又有幾行代碼開(kāi)放給大家學(xué)習(xí)了呢?不要告訴我你只會(huì)為別人的注釋寫(xiě)得不好而總覺(jué)得恥辱吧。而且你可以幫他把注釋改好,一切不就OK了嗎?開(kāi)源講究的應(yīng)該是參與吧?
      呵呵,既然你都承認(rèn)他的代碼好,這就OK了。我們是看代碼,程序的藝術(shù)是靠代碼表現(xiàn)出來(lái),不是靠寫(xiě)注釋表現(xiàn)出來(lái)。
      另外,對(duì)于jdon代碼的注釋方中英文結(jié)合的方式,是否可取我很婉轉(zhuǎn)地保留了我的意見(jiàn)。  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-28 15:40 hansy

    1. 注釋?zhuān)袉?wèn)題,就是有問(wèn)題,和我是否opensource是兩個(gè)話題,我只有opensource 才能說(shuō)jdon好壞么?。
    2. 英語(yǔ)在寫(xiě)程序時(shí)就是通用語(yǔ)言。漢語(yǔ)不是
    3. 我沒(méi)有說(shuō)一定要JDON注釋寫(xiě)的如何好。但不能寫(xiě)的不好還狂吹
    4. JDON代碼我說(shuō)的好是略微above average。沒(méi)有非常好
    5.我們對(duì)代碼質(zhì)量理解有很大分歧,我也不想交流了
    6. “注釋方中英文結(jié)合的方式,是否可取我很婉轉(zhuǎn)地保留了我的意見(jiàn)”, 我只能說(shuō)現(xiàn)實(shí)生活中我的同事說(shuō)要這樣做的話,我會(huì)斬釘截鐵的說(shuō)“NO”,況且我身邊絕對(duì)不會(huì)有人說(shuō)出這種話

    7. JDON我今后不參與任何討論  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-28 16:03 小雨開(kāi)源

    @hansy
    呵呵,不討論JDON了,下周小雨開(kāi)源將把第三之眼轉(zhuǎn)向huihoo,歡迎捧場(chǎng)。  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-28 16:12 Justlive

    俺剛進(jìn)入java, 準(zhǔn)備讀jive源碼, 順便看到這個(gè)帖子, 不知jf如何好, 或者如何壞, 但是覺(jué)得前面反對(duì)者們一味反對(duì),卻沒(méi)有確鑿根據(jù), 很是悲哀。

    無(wú)論如何, 覺(jué)得人家把一個(gè)開(kāi)源的東西一直堅(jiān)持做是件讓人敬佩的事,我無(wú)法鑒別這篇文章的真?zhèn)危▊€(gè)人覺(jué)得還是不錯(cuò)),但是覺(jué)得jdon的開(kāi)發(fā)者值得尊敬。

    另外發(fā)現(xiàn)國(guó)人太愿意攻擊了,而且沒(méi)有根據(jù),經(jīng)常粗話連篇。這不是丟人嘛?  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2007-12-29 17:02 mingj

    Benq還是一個(gè)很值得尊重的人
    只可惜出現(xiàn)的時(shí)機(jī)太早了  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2008-01-16 15:17 夸父逐日

    感覺(jué)jdon是一個(gè)人寫(xiě)的框架,大部分國(guó)人沒(méi)有很好的英文水平,這也是我們?cè)诟咚介_(kāi)發(fā)領(lǐng)域落后的一個(gè)原因,其實(shí)國(guó)人的智慧并不比老外差,另外,一個(gè)人完成這么復(fù)雜的工作,實(shí)在很困難,象是夸父逐日,永遠(yuǎn)也追不上,開(kāi)始時(shí)基于一套先進(jìn)的思想,也可以很快建一個(gè)簡(jiǎn)單的原型,但豐富過(guò)程是漫長(zhǎng)的,完成時(shí)也就落后了。
    看上面介紹,jdon很象側(cè)重解決的是快速模型驅(qū)動(dòng)實(shí)現(xiàn)增刪改查,并增加一些設(shè)置使基于增刪改查的擴(kuò)展完成企業(yè)應(yīng)用,是不是?這與其它的框架出發(fā)點(diǎn)不同,似乎與很多公司在做的:基于開(kāi)源框架加上面向某種業(yè)務(wù)的擴(kuò)展--實(shí)現(xiàn)進(jìn)一步的智能化傻瓜化開(kāi)發(fā)大概是一個(gè)思路吧。  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2008-01-31 07:33 tehids

    感慨啊,抓緊時(shí)間學(xué)習(xí)吧,哪天水平高了去開(kāi)源, 外國(guó)人的東西有啥子JB了不起嘛,抽時(shí)間干掉它!!  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2008-02-18 13:18 ddtred

    支持jdon  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2008-06-19 16:44 leftmouse

    真搞不明白,為什么別人搞個(gè)東西出來(lái),這么多人反對(duì)?
    開(kāi)源的東西,你要覺(jué)得不好,你可以修改呀,罵什么?有本事寫(xiě)個(gè)出讓別人看看,我覺(jué)得太不和常理了。應(yīng)該多多參于才對(duì)呀!  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2008-07-19 15:27

    支持JDON,  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2008-07-20 21:02 CrazySong

    @leftmouse
    你說(shuō)得很有道理,既然是開(kāi)源的東西。有什么不足大家都可以說(shuō)出來(lái)聽(tīng)聽(tīng)、寫(xiě)出來(lái)看看,為什么要一味的批評(píng)呢!何不花點(diǎn)時(shí)間研究一下如何改善才是最佳的解決方案。  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2008-07-20 21:04 CrazySong

    看來(lái)還是有人不明白開(kāi)源到底是什么意思。
    開(kāi)源!!??  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架[未登錄](méi) 2008-08-28 03:24 lb

    不要把很多有能耐人的想法,歸類(lèi)為嫉妒,去jdon那里看看,看看這個(gè)banq就跟一個(gè)偏執(zhí)狂一樣,瘋狂的下定義,而且,從theserverside那篇文章,翻譯之后就當(dāng)成寶,誰(shuí)有不同意見(jiàn)就拿相關(guān)文章來(lái)舉例,theserverside是什么權(quán)威學(xué)術(shù)機(jī)構(gòu)么?當(dāng)然不是,那里的文章能用來(lái)下定義么,太開(kāi)玩笑了,不管是學(xué)術(shù)界,還是工程類(lèi)都沒(méi)有這么做的。

    我舉個(gè)例子,她認(rèn)為,所有的數(shù)據(jù)庫(kù)的東西都可以被抽去,分離(按他原話),然后進(jìn)行緩存,就可以解決很多企業(yè)及的性能問(wèn)題,或者是邏輯問(wèn)題,OO是方法,object是表現(xiàn)數(shù)據(jù)的一種形式,OO方法也有缺陷,object的表現(xiàn)形式,但是索引和存儲(chǔ)還是需要數(shù)據(jù)庫(kù)。

    有機(jī)會(huì)的人可以去看看,這個(gè)人多瘋狂!我到現(xiàn)在也沒(méi)看見(jiàn)J2EE的制定者們,下過(guò)如此定義。太恐怖了。  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2008-11-08 09:31 鬼狗

    今天找資料,碰巧看到,順便說(shuō)說(shuō),呵呵,首先要表示感謝,你的文章讓俺看到了jdon的進(jìn)化,jdon今天終于進(jìn)化到他一開(kāi)始就極力反對(duì)的模式了,這點(diǎn)是jdon當(dāng)初讓很多人抓狂的核心。

    你可能并不清楚當(dāng)年很多人和benq的紛爭(zhēng),其核心并不在于中國(guó)人自己做開(kāi)源好不好,核心還是在于一個(gè)技術(shù)發(fā)展方向,和在此之上技術(shù)人員的職業(yè)道德操守。
    實(shí)際上不少開(kāi)源項(xiàng)目還是得到了國(guó)內(nèi)一些人的認(rèn)識(shí), 比如springside,在javaeye上人氣就很旺,同樣是javaeye,各位牛人對(duì)benq就是一邊倒的態(tài)度

    1. jdon的概念并不新,三四年前也不新。 當(dāng)年在ejb的失敗已經(jīng)成為定局的時(shí)候,benq還在極力鼓吹設(shè)計(jì)一個(gè)基于ejb應(yīng)用的框架,而且層次結(jié)構(gòu)劃分及其復(fù)雜,這是他讓很多人抓狂的最初原因,但是他更進(jìn)一步讓人抓狂的原因是他的固執(zhí)。 你可以找找看,他現(xiàn)在基本只在jdon發(fā)言,而且jdon并不允許任何有反對(duì)他的意見(jiàn)。
    如果你有留心的話你會(huì)發(fā)現(xiàn),5年前左右,ejb將死未死之時(shí),真是大量此類(lèi)框架涌現(xiàn)的時(shí)候。 另外, naning這個(gè)優(yōu)秀的開(kāi)源lib也是中國(guó)人做的,并得到了當(dāng)時(shí)國(guó)外社區(qū)的認(rèn)可。

    2. jdon現(xiàn)在已經(jīng)進(jìn)化了, 基本上是copy spring的路子,而最初包括現(xiàn)在benq都是極力反spring的。 這基本是商業(yè)利益的問(wèn)題, 就想當(dāng)初他極力鼓吹ejb一樣,因?yàn)檫@是他的謀生手段。
    jdon的核心和spring現(xiàn)在已經(jīng)沒(méi)有本質(zhì)區(qū)別,差別在于benq一個(gè)人無(wú)力完成類(lèi)似spring這樣的大作,所以他只能再找一些開(kāi)源的東西進(jìn)行包裝。這注定他只能是一個(gè)追隨者,當(dāng)然,他身后很多追隨的菜鳥(niǎo)也可以保證他的飯碗。

    其實(shí)這樣一個(gè)級(jí)別的框架,是基本不可能靠一個(gè)人來(lái)開(kāi)發(fā)維護(hù)的,benq的偏執(zhí)又缺乏足夠的天賦,注定了jdon的悲劇。

    3. jdon上曾經(jīng)有一個(gè)程序員向benq請(qǐng)教如何保證自己的代碼不被有效反編譯,對(duì)這個(gè)問(wèn)題的一般做法是使用混淆工具, 或者進(jìn)一步在設(shè)計(jì)中加入陷進(jìn)和偽裝類(lèi)。 但是benq當(dāng)時(shí)的回答是, 一個(gè)優(yōu)秀程序員做出來(lái)的設(shè)計(jì), 應(yīng)該是讓人在沒(méi)有文檔的情況下,無(wú)法看懂源代碼,諸如jpetstore,tomcat都是這樣的。 如果這確實(shí)是benq的本意的話,你可以明白,他個(gè)人是更傾向于用復(fù)雜化的東西來(lái)表現(xiàn)簡(jiǎn)單食物的,這是jdon最初的版本被人狂踩的一個(gè)原因。

    另外ps一下,我認(rèn)識(shí)的大部分程序員都具備在不用文檔的情況下讀懂jpetstore源代碼的能力,由此真是懷疑某人的iq。

    4. benq本身對(duì)模式有很好的研究, 這也是早期他得到眾多網(wǎng)友賞識(shí),并由此建立自己江湖地位的原因。但是任何事一旦走向過(guò)就莫名其妙了。從模式走向過(guò)度模式,到反模式,就比較悲哀了。
    你也提到benq在模式的理解上,在代碼質(zhì)量上,都超過(guò)一般的程序員,他這個(gè)人水平還是有一些的,但是大部分人不喜歡的是他的人品。

    5 有件事可以說(shuō)明benq的固執(zhí), 某次他和人爭(zhēng)執(zhí),在無(wú)法以理服人的情況下,他拿出自己用鼠標(biāo)繪制的山水畫(huà),意思是一個(gè)能有如此雅興和修養(yǎng)的人,道德品質(zhì)肯定是高尚的,以此證明對(duì)方是錯(cuò)誤的。到了3,4年前,他基本上已經(jīng)拒絕和任何對(duì)他有不同意見(jiàn)的人進(jìn)行辯論了。 有不同意見(jiàn)者刪帖,呵呵。

    我大概認(rèn)識(shí)benq8年了,呵呵。

      回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2008-11-15 13:41 xiaohufeilong

    @鬼狗
    那你是說(shuō)你人品很好了??我為什么要聽(tīng)你胡言亂語(yǔ).....在背后說(shuō)別人壞話的人~人品本來(lái)就很差,所以說(shuō)的話也沒(méi)有必要相信。話說(shuō)回來(lái)就算benq真的象你說(shuō)的那樣,而你就因?yàn)檫@樣就說(shuō)他什么都不是,我想你的思想還停留在石器時(shí)代,這么些年的書(shū)是白讀了。取其精華,棄其糟粕,這句話都不懂??我想jdon框架之所以不象SPRING那樣快速被應(yīng)用,是因?yàn)樗说粢恍┧^“牛人”的那點(diǎn)冠冕堂皇的外套,又由于能力有限,拼命的守住自己的那點(diǎn)面子,想繼續(xù)體現(xiàn)自己的那點(diǎn)價(jià)值......上jdon上也看得見(jiàn),多數(shù)的所謂的“牛人”的討論都是那些所謂“牛人”的口水戰(zhàn),本來(lái)很淺顯的意思(你為什么就要選那個(gè)錯(cuò)誤的意思理解了,我是無(wú)語(yǔ)了,你為什么就不去了解本意了,需求分析你是白做了),他硬要在那里鉆牛角尖(我承認(rèn)BENQ有時(shí)說(shuō)的話,不是很?chē)?yán)謹(jǐn),但這就是反對(duì)他的借口嗎??放棄正確的思想的理由嗎??如果你們放棄的話,我希望你們不要當(dāng)面一套,背著一套,私下猛的接受他的思想,如果是那樣的話,我想你是罪人!!~~你誤導(dǎo)了很多剛出道的求知若渴的年輕一代,你是罪人),一句話,他們放不下那張老臉!!!!雖然在編程的經(jīng)驗(yàn)上我是菜鳥(niǎo),但是我的思想比你們先進(jìn),對(duì)于這點(diǎn)我很自信(你隨便說(shuō)我也沒(méi)用,我不會(huì)跟你計(jì)較太多的,話說(shuō)回來(lái)吃虧的又不是我,我沒(méi)BENQ那樣的耐心),學(xué)東西我認(rèn)為首先要有先進(jìn)的思想,要不黨校也就不用辦了,黨校培訓(xùn)也不用了,你直接入黨算了......  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2008-11-16 22:09 Jacklondon Chen

    也許你應(yīng)該比較一下 VelocityWeb 與 Jdon 的優(yōu)缺點(diǎn)。
    從樓主的介紹,看不出 Jdom 有什么用。也看不出比傳統(tǒng)的 Struts 應(yīng)用好在哪里。不要提什么 Spring, 有很多應(yīng)用不用 Spring 只用 Struts 的!!
    http://velocityweb.sourceforge.net  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2008-11-21 16:25 guest

    jdon不太了解, 我得承認(rèn)banq在面向?qū)ο蠓矫娌嫉郎献龀隽顺删?
    水平也應(yīng)該很高, 但此人確實(shí)足夠偏執(zhí), 可能有時(shí)候也很無(wú)奈,誰(shuí)也不能說(shuō)自己的瓜苦啊?

    但是只有接受建設(shè)性的意見(jiàn)才能長(zhǎng)大, 一意孤行是不利于發(fā)展的.  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2008-11-21 16:39 guest2

    @xiaohufeilong

    人品怎么樣很難說(shuō), 各有各的活法,各有各的理念, 道不同者多了.

    但是從你的話中, 至少俺不喜歡你的人品. 你確實(shí)浮淺  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2008-11-24 22:44 xiaohufeilong

    @guest2
    那麻煩您指點(diǎn)下,偶到底那里表現(xiàn)的比較膚淺?~~~不勝感激(我只是根據(jù)他的說(shuō)法反駁他而已)。
    你說(shuō):人品怎么樣很難說(shuō), 各有各的活法,各有各的理念, 道不同者多了.
    但是你又說(shuō)我很膚淺,這么說(shuō)確實(shí)是給人自相矛盾的感覺(jué)。又看了遍,我明白了你的意思是:人品怎么樣很難說(shuō), 各有各的活法,各有各的理念, 道不同者多了,不應(yīng)該隨便評(píng)論別人的人品怎樣怎樣,不應(yīng)該要求別人一定要跟自己一樣的理念.....恩,說(shuō)的不錯(cuò),我同意,謝謝。你后半句我不敢茍同,既然你能說(shuō)出前面那樣有深意的話,后半句就不應(yīng)該說(shuō)了,否則就有點(diǎn)自相矛盾了。取其精華就可以了,不想卷入口水戰(zhàn)  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2008-12-22 20:56 dpurpel

    我是菜鳥(niǎo),看了一些benq的回復(fù),的確如鬼狗所說(shuō) RP有問(wèn)題
    我以前也碰到過(guò)一個(gè)叫l(wèi)ee的家伙

    直覺(jué)就是"不謹(jǐn)慎" , "自以為是 隨意下定論" , "死要面子" , "以高手自居"
    如 Bjarne Stroustrup 所說(shuō)的
    "對(duì)于許多管理員來(lái)說(shuō), 擺脫那些妄自尊大、缺乏修養(yǎng)、多拿報(bào)酬、鬼迷心竅、穿著不合禮儀的程序員是大有好處的事情。"
    當(dāng)然 我是指前兩條

    以上對(duì)于有持反對(duì)意見(jiàn)的 就不要對(duì)我進(jìn)行人身攻擊了, 只是單純的直覺(jué)罷了  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2009-03-25 23:55

    我對(duì)J道并不陌生
    對(duì)于banq這個(gè)人我無(wú)法理解
    感覺(jué)他的網(wǎng)站并不存心讓別人徹底知道他的意圖
    而是要經(jīng)過(guò)他的培訓(xùn)!  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2009-03-27 12:45 路人甲

    一個(gè)開(kāi)源框架技術(shù)文章的回復(fù)內(nèi)容竟然基本全部是打口水仗.
    只有國(guó)內(nèi)才有如此氛圍吧,悲哀  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2009-04-11 20:40 匿名

    文人相輕啊!banq的觀點(diǎn)有錯(cuò)的地方不新鮮。誰(shuí)沒(méi)有呢?但很多觀點(diǎn)需要以后才能驗(yàn)證。至于其框架火不火,跟框架本身好不好沒(méi)有直接關(guān)系。這個(gè)我想反駁的人不會(huì)很多吧。大家能有這么多牢騷觀點(diǎn)正說(shuō)明jdon是大家關(guān)注的網(wǎng)站。對(duì)個(gè)人攻擊不好。banq對(duì)java開(kāi)發(fā)者有很大貢獻(xiàn)的,無(wú)論是框架還是觀點(diǎn)。國(guó)內(nèi)注重用器,而國(guó)外注重造器。我想banq是在造器的路上,不知道大家是不是在造器的路上還是用器的路上。恐怕思維的方向就有差別吧。
    --------偶然來(lái)此的路人有感  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2009-04-13 21:13 yizhitunshu

    我是看JDON入門(mén)的,后來(lái)接觸了SPRINGSIDE,覺(jué)得比JDON更實(shí)用。
    個(gè)人感覺(jué),JDON比較適合學(xué)習(xí)研究的參考,SS比較適合實(shí)際應(yīng)用參考。
    論水平,BANQ應(yīng)該比江南白衣高些。不過(guò)對(duì)初學(xué)者言,白衣更平易近人,看回復(fù)可以看出來(lái)。
    水平高的人有點(diǎn)脾氣性情也不傷大雅,關(guān)鍵是有開(kāi)源精神。人家教你知識(shí),你還有什么不滿(mǎn)意的。當(dāng)然水平高脾氣又好就更好了。
    回貼只會(huì)人身攻擊的,感覺(jué)挺無(wú)聊的,基本可以忽略。
    jdon成功不成功不好說(shuō),至少我覺(jué)得它在學(xué)術(shù)是很成功的,幫助了很多人。
    應(yīng)用上就不好說(shuō)了。我也接觸過(guò)dorado,另一個(gè)國(guó)人框架,技術(shù)上感覺(jué)沒(méi)什么,商業(yè)推廣做的挺好,有一家公司在運(yùn)營(yíng),不知算不算成功。
    國(guó)內(nèi)環(huán)境如此,而且IT技術(shù)本來(lái)也落后,造器太難了。國(guó)內(nèi)也有成功的框架,比如ZK,技術(shù)和商業(yè)應(yīng)用都做的很好。不過(guò)太小了,屬于SOLO型的。成功的MVC類(lèi)的框架需要一個(gè)成功的團(tuán)隊(duì)來(lái)支持。國(guó)內(nèi)缺乏這種團(tuán)隊(duì),不知是找不到這么多高手,還是缺少一種合作氛圍。很多牛X的技術(shù),都是從高手之間的幾封郵件,一個(gè)實(shí)驗(yàn)誕生的。  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2009-04-16 13:48 dracularking

    對(duì)benq認(rèn)識(shí)不深,但不管他的網(wǎng)站是不是存心讓別人徹底知道他的意圖,水平挺高且樂(lè)于傳播他的知識(shí),他對(duì)學(xué)習(xí)者是有貢獻(xiàn)的  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2010-04-01 12:55 javafuns

    又打口水仗,shit  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2011-02-10 18:03 hansonjan

    口水戰(zhàn)總是讓人感覺(jué)厭煩!  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架[未登錄](méi) 2012-09-03 11:42 Aaron

    應(yīng)該說(shuō)寫(xiě)的還是非常中肯的!對(duì)Jdon有了解的人應(yīng)該知道,相比于springside,它已經(jīng)有很大進(jìn)步了!起碼,Jdon能夠比較好的吸收了sping、hibernate這些主流框架的優(yōu)點(diǎn)!現(xiàn)在的國(guó)內(nèi),一般人還真是干不出來(lái)。。。。  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架 2015-03-19 14:49 delphi23

    jdon原來(lái)還有這么個(gè)歷史淵源。。。
    我覺(jué)得jdon的網(wǎng)站還是不錯(cuò),能學(xué)到很多理論知識(shí)。至于jdon的框架,最吸引我的就是所宣稱(chēng)的DDD,Event Driver, Reactive等思想,要細(xì)細(xì)研究。
    另為,現(xiàn)在已經(jīng)發(fā)展到了6.8版本了,不知道和Spring框架或JPA等一些規(guī)范結(jié)合的怎么樣?  回復(fù)  更多評(píng)論   

    # re: 第三只眼看Jdon-一個(gè)讓很多人抓狂框架[未登錄](méi) 2015-06-03 16:01 呵呵

    所謂jdon真的不敢恭維,開(kāi)始同事推薦,而后看了,發(fā)覺(jué)就是各種亂湊  回復(fù)  更多評(píng)論   


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 综合久久久久久中文字幕亚洲国产国产综合一区首 | 日本免费一区二区三区最新 | 拔擦拔擦8x华人免费久久| 亚洲成a人片在线网站| 亚洲黄色片免费看| 亚洲精品中文字幕乱码| 国产成人精品免费午夜app| 91天堂素人精品系列全集亚洲| 国产午夜精品理论片免费观看| 免费无遮挡无码永久在线观看视频| 亚洲人成人无码.www石榴| a级毛片免费观看在线| 国产福利电影一区二区三区,亚洲国模精品一区 | 亚洲国产精品一区二区第四页| 色婷婷精品免费视频| 亚洲女人被黑人巨大进入| 9久热精品免费观看视频| 亚洲成在人线av| 18女人毛片水真多免费| 亚洲中字慕日产2021| 午夜视频免费成人| 日韩免费高清一级毛片| 亚洲国产综合无码一区 | 免费鲁丝片一级在线观看| 日韩亚洲人成在线综合| 国产亚洲大尺度无码无码专线| 四虎国产精品永久免费网址| 亚洲国产视频一区| 国产成人免费全部网站| 久久久久精品国产亚洲AV无码| 免费观看的av毛片的网站| xxxxx做受大片在线观看免费| 国产AV无码专区亚洲精品| 91久久精品国产免费直播| 黑人粗长大战亚洲女2021国产精品成人免费视频| 四虎影视精品永久免费网站| 中文字幕免费人成乱码中国| 亚洲不卡视频在线观看| 亚洲美女在线国产| 日本亚洲免费无线码| ww在线观视频免费观看w|