小雨開源

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

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

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

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

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

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

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

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

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

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

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

          簡(jiǎn)單的AOP及攔截器實(shí)現(xiàn)
          基于面向切面的編程,可以把面向?qū)ο蟮姆椒ú荒芎芎媒鉀Q的問題很輕松的解決掉。Jdon在aopalliance定義的API基礎(chǔ)上,實(shí)現(xiàn)了一個(gè)非常簡(jiǎn)單的AOP,其實(shí)就是幾個(gè)類,使用代理實(shí)現(xiàn)了對(duì)方法的環(huán)繞攔截。雖然沒有AspejctJ及Spring的AOP強(qiáng)大,但對(duì)于應(yīng)用80%的AOP需求,已經(jīng)足夠。
          Jdon立足中大型應(yīng)用需求,充分發(fā)揮Java在企業(yè)應(yīng)用開發(fā)中的優(yōu)勢(shì),考慮到性能等很多因素,Jdon框架還通過成功應(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ì)訪問EJB業(yè)務(wù)組件的封裝
          Jdon充分考慮到在大型的分布式應(yīng)用中,一些功能仍然必須依靠EJB這種重量級(jí)的業(yè)務(wù)組件來完成的現(xiàn)狀。相對(duì)于其它一些同類框架,從框架底層到最終應(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ù)訪問封裝
          企業(yè)級(jí)應(yīng)用80%都會(huì)涉及到數(shù)據(jù)庫(kù)的持久化。因此,Jdon提供了對(duì)持久層數(shù)據(jù)訪問的簡(jiǎn)單封裝,提供了一個(gè)JdbcTemp類來執(zhí)行數(shù)據(jù)庫(kù)操作,另外還提供了數(shù)據(jù)訪問層的DaoCRUD接口,以及一個(gè)Hibernate的實(shí)現(xiàn),訪問我們使用Hibernate來進(jìn)行對(duì)象持久化。
          如下面的代碼使用Jdon中提供的jdbc模板類來操作數(shù)據(jù)庫(kù):
            //適合查詢返回結(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在我看來有一點(diǎn)感覺是為使用Struts1.x開的人用的,因?yàn)樗Q生的時(shí)候,struts1.x正處于鼎盛時(shí)期。因此,框架內(nèi)部集成了很多開發(fā)struts1.x應(yīng)用的實(shí)用工具,全部放在strutsutil及下面的包中,包含基于Struts1.x的通用業(yè)務(wù)處理如ModelDispAction、ModelListActionAction等,文件上傳封裝,基于Struts1.x的樹形組件以及自定義的分頁(yè)標(biāo)簽等。如下圖所示:


          一個(gè)圍繞Struts1.x+POJO(EJB) Service+Hibernate的快速開發(fā)框架
          說到快速開發(fā)框架,我想大家都不陌生,JavaEE領(lǐng)由于涉及到的技術(shù)及選擇性太多,導(dǎo)致現(xiàn)在的快速開發(fā)框架可以說是五化八門,國(guó)際上比較知名的有appfuse,國(guó)內(nèi)比較有名的有springside及easyjf等。而jdon在做那么多基礎(chǔ)性功能的情況下,也實(shí)現(xiàn)了一個(gè)快速開發(fā)框架。也許他的核心及目標(biāo)也就是這個(gè)快速開發(fā)框架,他是最終能讓這個(gè)框架立竿見影的重要部分。
          使用Jdon的快速開發(fā)框架,可以使用對(duì)象驅(qū)動(dòng)的方式開發(fā)j2ee應(yīng)用。Jdon框架中花了大量的精力及資源來解決模型CRUD的問題,整個(gè)框架中差不多一半的代碼都是為實(shí)現(xiàn)這個(gè)靈活、快速、基于對(duì)象驅(qū)動(dòng)的快速框架而寫的。為了一個(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>
             
          <!-- 配置模型的類是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í)沒給你帶來更多的驚喜。但是想想如果你是三年前的今天看到這么多的介紹會(huì)是怎樣?也許那時(shí)候你才開始學(xué)hibernate,或者剛使用struts沒多久,又或者還在為什么是model2的web應(yīng)用而困惑,更別說什么是IoC或AOP了。如果那時(shí)你知道國(guó)人有這么一個(gè)框架,使用了這么多先進(jìn)的理念、引入了很多先進(jìn)的技術(shù)、并且可以讓我們開發(fā)Struts應(yīng)用基本上不用寫太多的java代碼,你會(huì)是什么樣的感受?
          其實(shí),也許就算你現(xiàn)在不用Jdon框架來做項(xiàng)目,作為一個(gè)開源愛好者,我仍然強(qiáng)烈推薦你去了解這個(gè)框架。因?yàn)樗?jīng)帶給我們的是很多革命性的東西。而且,就算三年后的今天,也許你已經(jīng)從一個(gè)java菜鳥變成了java小牛,但回頭了解Jdon框架中的很多東西,你會(huì)發(fā)現(xiàn)很多與你的代碼有著似曾相識(shí)的感覺。
          Jdon框架中大量應(yīng)用了設(shè)計(jì)模式,這是面向?qū)ο缶幊倘藛T必須掌握的一門內(nèi)功。通過ServiceFactory、ServiceFacade、ContainerDirector、ComponentVisitor、HttpSessionProxyVisitor、CommonsPoolAdapter、CommonsPoolFactory、WebServiceDecorator這些名字,一個(gè)一個(gè)的去了解、挖掘,一定會(huì)非常受益。

          4、Jdon的代碼質(zhì)量分析
          Jdon的代碼質(zhì)量總的來說是非常高的,不管是命名規(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開發(fā)人員值得進(jìn)一步學(xué)習(xí)研究。
          代碼的注釋有的是英文,有的是中文,這種中英文混合的方式有好處有壞處。好處是國(guó)人或老外都能看懂一點(diǎn),壞處是不管對(duì)國(guó)人還是老外,都沒法讓他們徹底地搞懂。比如下面是ModelIF的代碼及注釋:
          /**
           * 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è)人寫這么多的代碼,難免也會(huì)出現(xiàn)一些小小的Bug及錯(cuò)誤,特別是一些錯(cuò)別字。比如說:ModelManager接口中的borrowtHandlerObject方法,又或者isCacheable寫成isCacheble,或者Jdbc操作模板類名稱叫JdbcTemp而不叫JdbcTemplate等;另外還有把test代碼沒有跟框架代碼分離,而是跟著框架核心代碼放在一起,比如ContainerDirectorTest等;還有很多核心的接口缺少注釋,比如ServiceAccessor等。
          如果不是為了雞蛋里面挑骨頭,但我想這些不是應(yīng)該成為這個(gè)框架不好的原因,畢竟這些問題我想Jdon并不是無法改進(jìn)。
          Jdon的代碼存放在sourceforge上面,使用cvs管理,任何人都可以從這個(gè)cvs上check out他的源代碼進(jìn)行學(xué)習(xí)及改進(jìn)。

          5、Jdon還缺哪些?
          前面已經(jīng)說了很多Jdon的優(yōu)點(diǎn),但同樣是應(yīng)用程序框架,Jdon為什么沒有能像Spring那樣火呢?為什么市場(chǎng)上關(guān)于Jdon的書基本上為零呢?為什么Jdon沒有得到企業(yè)的認(rèn)可,并大量應(yīng)用呢?
          因此,Jdon應(yīng)該是缺少一些東西,或者說是關(guān)鍵的東西。為什么同樣是開源,spring能得到那么多用戶的反饋、并不斷改進(jìn),而針對(duì)jdon的bug建議、用戶反饋卻寥寥無幾呢?是技術(shù)不行還是市場(chǎng)推廣不行?Jdon雖然發(fā)布到了5.0,但除了前面的一兩個(gè)版本,后續(xù)的版本都沒有帶來什么變革性的東西,難道是后勁不足?其實(shí)這些問題都值得我們每一個(gè)開源愛好者思考。本文只談?wù)勎覍?duì)技術(shù)上覺得現(xiàn)在Jdon的存在的不足,以供大家參考。
          設(shè)計(jì)上的問題
          技術(shù)的進(jìn)步是永無止盡的。Jdon框架的設(shè)計(jì)仍然還存在著很多的問題。比如,要求用戶領(lǐng)域模型繼承Jdon的Model類或?qū)崿F(xiàn)ModelIF接口,添刪改查的業(yè)務(wù)實(shí)現(xiàn)類中要包含類似createXxx(EventModel em)這樣的方法,導(dǎo)致整個(gè)框架對(duì)業(yè)務(wù)層的東西侵入性太嚴(yán)重,不符合實(shí)際應(yīng)用。另外,過多與Struts1.x緊密綁定的設(shè)計(jì)也不可取。
          容器的改進(jìn)
          picocontainer有很多局限性,最要命的是不支持setter方法注入,這個(gè)通過實(shí)踐證明是用得最多的。picocontainer的自動(dòng)注入應(yīng)該是按類型注入的,在實(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道:用戶名和密碼"/>
                       
          <constructor value="您好:您索要的jdon.com網(wǎng)站登陸用戶和密碼如下:"/>
                       
          <constructor value="Jdon.com --- 解惑授道 專業(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ù)組件包括“普通類服務(wù)pojoService”、“普通類component”、“EJB服務(wù)ejbService”等,不同的業(yè)務(wù)組件配置的方法還不一致,有的使用<pojoService>、有的使用<component>、有的使用<ejbService>,其實(shí)既然是松耦合,就應(yīng)該是一致的。在一個(gè)應(yīng)用中,又如何能完全區(qū)分出誰該扮演component、誰該叫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來描述源數(shù)據(jù),spring、struts2、hibernate以及國(guó)內(nèi)的operamasks、easyjweb等框架也都大量引入了對(duì)annonation的支持,實(shí)踐證明annonation也是一個(gè)非常好的東西。而到上前為止,在這一方面jdon框架中還沒有看到有對(duì)annonation的支持。最好能把ejbService、pojoService及component等配置可以通過簡(jiǎn)單的注解來實(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)行集成,提供更多的支持,讓開發(fā)者有更多的選擇權(quán)。

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

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



          6、寫在最后
          也許真像就像我在《中國(guó)java開源界最可愛的人們》中說過的一樣,Jdon現(xiàn)在給人有點(diǎn)高處不勝寒的感覺。然而我更希望的是Jdon不要停止前進(jìn)的步伐,同時(shí)也希望更多人一起來為Jdon以后的發(fā)展、為國(guó)人的開源做出力所能及的貢獻(xiàn)。擁抱開源肯定是不會(huì)錯(cuò)的,能投身到開源的事業(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)來說,我認(rèn)為板橋無論如何肯定都是應(yīng)該是快樂的。

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

          附:
          其它相關(guān)背景資料:
          1. 2005年Jdon框架入選SUN公司的Java.net企業(yè)應(yīng)用目錄(與AppFuse同列)
          2. Jdon框架在全世界最大開源網(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框架用戶的感言
          7. 對(duì)話Jdon 一個(gè)開源人的孤獨(dú)告白.
          8. 更多關(guān)于JdonFramework討論系列1 以及 討論系列2



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

          評(píng)論

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          一句話,樓主做技術(shù)人員純屬浪費(fèi),適合做營(yíng)銷  回復(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 小雨開源

          @gan

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

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

          @dennis

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

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

          @Scorpioer

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          @小雨開源

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          @hansy
          呵呵,不討論JDON了,下周小雨開源將把第三之眼轉(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如何好, 或者如何壞, 但是覺得前面反對(duì)者們一味反對(duì),卻沒有確鑿根據(jù), 很是悲哀。

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

          另外發(fā)現(xiàn)國(guó)人太愿意攻擊了,而且沒有根據(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 夸父逐日

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

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

          感慨啊,抓緊時(shí)間學(xué)習(xí)吧,哪天水平高了去開源, 外國(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è)東西出來,這么多人反對(duì)?
          開源的東西,你要覺得不好,你可以修改呀,罵什么?有本事寫個(gè)出讓別人看看,我覺得太不和常理了。應(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
          你說得很有道理,既然是開源的東西。有什么不足大家都可以說出來聽聽、寫出來看看,為什么要一味的批評(píng)呢!何不花點(diǎn)時(shí)間研究一下如何改善才是最佳的解決方案。  回復(fù)  更多評(píng)論   

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

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

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

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

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

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

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

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

          你可能并不清楚當(dāng)年很多人和benq的紛爭(zhēng),其核心并不在于中國(guó)人自己做開源好不好,核心還是在于一個(gè)技術(shù)發(fā)展方向,和在此之上技術(shù)人員的職業(yè)道德操守。
          實(shí)際上不少開源項(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ì)他的意見。
          如果你有留心的話你會(huì)發(fā)現(xiàn),5年前左右,ejb將死未死之時(shí),真是大量此類框架涌現(xiàn)的時(shí)候。 另外, naning這個(gè)優(yōu)秀的開源lib也是中國(guó)人做的,并得到了當(dāng)時(shí)國(guó)外社區(qū)的認(rèn)可。

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

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

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

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

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

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

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

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

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

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

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

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

          @xiaohufeilong

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          我是看JDON入門的,后來接觸了SPRINGSIDE,覺得比JDON更實(shí)用。
          個(gè)人感覺,JDON比較適合學(xué)習(xí)研究的參考,SS比較適合實(shí)際應(yīng)用參考。
          論水平,BANQ應(yīng)該比江南白衣高些。不過對(duì)初學(xué)者言,白衣更平易近人,看回復(fù)可以看出來。
          水平高的人有點(diǎn)脾氣性情也不傷大雅,關(guān)鍵是有開源精神。人家教你知識(shí),你還有什么不滿意的。當(dāng)然水平高脾氣又好就更好了。
          回貼只會(huì)人身攻擊的,感覺挺無聊的,基本可以忽略。
          jdon成功不成功不好說,至少我覺得它在學(xué)術(shù)是很成功的,幫助了很多人。
          應(yīng)用上就不好說了。我也接觸過dorado,另一個(gè)國(guó)人框架,技術(shù)上感覺沒什么,商業(yè)推廣做的挺好,有一家公司在運(yùn)營(yíng),不知算不算成功。
          國(guó)內(nèi)環(huán)境如此,而且IT技術(shù)本來也落后,造器太難了。國(guó)內(nèi)也有成功的框架,比如ZK,技術(shù)和商業(yè)應(yīng)用都做的很好。不過太小了,屬于SOLO型的。成功的MVC類的框架需要一個(gè)成功的團(tuán)隊(duì)來支持。國(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)站是不是存心讓別人徹底知道他的意圖,水平挺高且樂于傳播他的知識(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)總是讓人感覺厭煩!  回復(fù)  更多評(píng)論   

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

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

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

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

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

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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 广丰县| 合江县| 汾阳市| 明水县| 泊头市| 阿城市| 临海市| 舒城县| 沁阳市| 罗定市| 太康县| 郑州市| 吉水县| 云和县| 汤阴县| 昌乐县| 嵊州市| 阳高县| 大英县| 望奎县| 沾益县| 铁岭县| 左贡县| 牙克石市| 顺义区| 铜梁县| 兴化市| 菏泽市| 曲松县| 游戏| 屏南县| 新丰县| 工布江达县| 宁德市| 灌南县| 罗源县| 镇江市| 黔东| 台南县| 香格里拉县| 儋州市|