隨筆-39  評(píng)論-33  文章-0  trackbacks-0

          newxy的簡(jiǎn)單之美

          胡立新

          (注:newxy新坐標(biāo)是java web快速開發(fā)包,功能強(qiáng)大、易學(xué),可使開發(fā)效率提高十倍、數(shù)十倍,newxyWEB開發(fā)比delphi桌面開發(fā)更快,能力更強(qiáng))

           

          本想用“簡(jiǎn)約”一詞,但“簡(jiǎn)約”文了點(diǎn),還是“簡(jiǎn)單”好。

          “簡(jiǎn)單”如何與“美”掛起鉤來?簡(jiǎn)單才能自由,自由才能產(chǎn)生美。

          很多技術(shù)或框架之類上來就叫你做很煩人的配置,而有的號(hào)稱零配置實(shí)際不得不寫幾十幾百行配置代碼。框架太多,但沒有哪個(gè)框架讓程序員不寫代碼實(shí)現(xiàn)數(shù)據(jù)的增、、改、查等最常用的功能。 newxy將絕大部分常見的、繁雜的、又不得不做的工作用最簡(jiǎn)單的、通用的方法來解決,減輕程序員的負(fù)擔(dān)和痛苦。在用newxy開發(fā)過程中,一種美感油然而升。

          一、newxy“配置簡(jiǎn)單”之美

          newxy只需幾行配置信息,而大多數(shù)情況不需寫一行配置信息,正真零配置newxy為了美,為了自由,不扼殺程序員的天性。程序員有的愛寫后臺(tái)代碼,有的愛在jsp頁面上寫一些邏輯。對(duì)具有不同偏好的程序員,newxy會(huì)提供不同的“簡(jiǎn)單”解決問題的辦法。

          二、newxy“后臺(tái)代碼”之美

          在后臺(tái)與數(shù)據(jù)庫打交道,實(shí)現(xiàn)數(shù)據(jù)的增、、改、查如此簡(jiǎn)單:

          1、增:

          BaseDAO baseDao=new BaseDAO();

          dynaDto dto=new DynaDto();

          dto.set_table(“industry”);   //設(shè)置表名

          dto.set(id”,id);

          dto.set(“industry”,industry); //設(shè)置行業(yè)內(nèi)容

          baseDao.update(dto);

          2、刪:

          BaseDAO baseDao=new BaseDAO();

          DynaDto dto=new DynaDto();

          dto.set_table(“industry”);   //設(shè)置表名

          dto.set(id”,id);

          baseDao.remove(dto);

          3、查:

          BaseDAO baseDao=new BaseDAO();

          String sql=”select * from industry where……”;

          DynaFormBean formBean=(DynaFormBean)baseDao.findBySql(sql);

          4、改:

          修改第10條記錄的industry字段值:

          BaseDAO baseDao=new BaseDAO();

          DynaDto dto=new DynaDto(formBean.getDto(“10”));

          dto.set_table(“industry”); //設(shè)置表名

          dto.set(“industry”,newValue);    //設(shè)置行業(yè)內(nèi)容

          baseDao.update(dto);

          實(shí)體類是動(dòng)態(tài)的、通用的,無需寫與數(shù)據(jù)庫表匹配的配置文件。如此簡(jiǎn)單地解決問題,出自內(nèi)心的不只是純?nèi)恢饔^的快感,還有我們解決現(xiàn)實(shí)問題直接明快的方式在內(nèi)心深處的體驗(yàn)。

          三、newxy“前臺(tái)標(biāo)簽”之美

          在前臺(tái)實(shí)現(xiàn)數(shù)據(jù)的增、、改、查同樣簡(jiǎn)單,不需寫一行java代碼。

          1、 增:

          <nlogic:action1 id="act1" formName="form1"/>

          <nhtml:form action="" formName="form1">

           <html:hidden property="_table" value="industry"/>

           行業(yè)內(nèi)容:<html:text property="industry"></html:text>

          </nhtml:form>

          <nhtml:button actionId="act1" method="update" value="保存"/>

              輸入行業(yè)內(nèi)容,點(diǎn)擊“保存”銨鈕,插入數(shù)據(jù)庫。

          2、 刪:

          <nlogic:action1 id="act1" formName="form1"/>

          <nhtml:form action="" formName="form1">

           <html:hidden property="_table" value="industry"/>

           編號(hào):<html:text property="id"></html:text>

          </nhtml:form>

          <nhtml:button actionId="act1" method="remove" value="刪除"/>

          輸入編號(hào),點(diǎn)擊“刪除”銨鈕,刪除記錄。

          3、 (任意姐合多項(xiàng)查詢)

          <nlogic:action1 id="act1" formName="form1"/>

          <nhtml:form action="" formName="form1">

           <html:hidden property="_table" value="industry"/>

            <html:hidden property="_item1" value="industry"/>

           <html:select property="_item1">

             <html:option value=""></html:option>

             <html:option value="=">等于</html:option>

             <html:option value="like">包含</html:option>

           </html:select>

           行業(yè)內(nèi)容:<html:text property="_item1"></html:text>

          </nhtml:form>

          <nhtml:button actionId="act1" method="find" value="查詢"/>

          選擇等于查詢或模糊查詢,輸入查詢內(nèi)容,點(diǎn)擊查詢銨鈕,查詢結(jié)果保存在以“form1”為名的DynaFormBean類實(shí)例中,這個(gè)類實(shí)例保存在會(huì)話中。

          4、 改:

          <nlogic:action1 id="act1" formName="form1"/>

          <nhtml:form action="" formName="form1">

           <html:hidden property="_table" value="industry"/>

           編號(hào):<html:text property="id"></html:text>

           行業(yè)內(nèi)容:<html:text property="industry"></html:text>

          </nhtml:form>

          <nhtml:button actionId="act1" method="update" value="更新"/>

          輸入編號(hào)及行業(yè)內(nèi)容,點(diǎn)擊“更新”,如果id號(hào)不存在,作insert操作,否則作update操作。

          在其它任一框架下數(shù)據(jù)的增、刪、改都要寫大量重復(fù)而又略有不同的代碼,寫代碼與調(diào)試絕不可少。在查詢數(shù)據(jù)時(shí)要想將用戶輸入的條件組合成sql語句,那是極其繁雜的,可能是程序員“苦”的較高形式。但在這里不寫一行java代碼,任意組合多項(xiàng)查詢。多么美妙。

          程序員從痛苦的寫代碼、調(diào)試代碼工作中走出來,發(fā)現(xiàn)了自己存在,再次感受到newxy的簡(jiǎn)單之美。

          這里例出的僅是極小部分方法。

          5、 數(shù)據(jù)分頁

              <nlogic:navigate formName="industry" length="5"/>

              <table cellspacing="0" class="table1">

                <tr>

                  <td>序號(hào)</td><td align="center"> </td><td align="center" style="BORDER-RIGHT: #ffffff 0px solid;"> 業(yè) 內(nèi) </td>

                </tr>

                <nlogic:iterate id="rec" name="industry" property="_coll">

                  <nhtml:TR>

                    <td align="center">${index+1}</td>

                    <td width="50" nowrap="nowrap"><bean:write name="rec" property="code"/></td>

                    <td width="400" nowrap="nowrap" style="BORDER-RIGHT: #ffffff 0px solid;"><bean:write name="rec" property="industry"/></td>

                  </nhtml:TR>

                </nlogic:iterate>

              </table>

           

              數(shù)據(jù)分頁同樣不寫一行java代碼。

          6、 文件上傳

          <nlogic:action1 id="act1" formName="fileForm"/>

          <nhtml:form action="" formName="fileForm" enctype="multipart/form-data">

            <html:hidden property="_table" value="filetable"/>

           文件不大于10兆:<nhtml:file property="content" size="40" maxSize="10240" fileNameField="field1" fileExtendNameField="field2" fileSizeField="field3" fileTypeField="field4"/><br />

          </nhtml:form>

          <nhtml:button actionId="act1" method="update"/>

          上傳大小限制在10兆,文件類容保存在content字段中,文件名保存在field1字段中,文件的擴(kuò)張名保存在field2字段中,文件大小保存在field3字段中,文件類型保存在field4字段中。

          理論上一次可以上傳無限數(shù)量的文件,不用寫一行java代碼。

          簡(jiǎn)單才是美,只有簡(jiǎn)單你才有時(shí)間、才有閑情逸致欣賞美。

          四、“Delphi風(fēng)格”之美

          Delphi開發(fā)桌面運(yùn)用,它那快速精巧的方法,讓好多程序員如癡如醉。Newxy也可用幾個(gè)標(biāo)簽實(shí)現(xiàn)具有delphi風(fēng)格的開發(fā)。見下圖:

           

          左上部是記錄集,下部是當(dāng)前記錄詳細(xì)信息,右上部是當(dāng)前記錄保存的一張圖片。用戶點(diǎn)擊某條記錄,下部的詳細(xì)信息和右上部的圖片隨著變化。

          Delphi實(shí)現(xiàn)上述功能可以不寫一行代碼,newxy實(shí)現(xiàn)上述功能也不需要寫一行代碼。

          posted on 2007-04-17 21:52 newxy新坐標(biāo) 閱讀(2126) 評(píng)論(6)  編輯  收藏

          評(píng)論:
          # re: newxy的簡(jiǎn)單之美 2007-04-17 22:52 | 山風(fēng)小子
          胡立新——中國(guó)一位可敬的開源先驅(qū)!  回復(fù)  更多評(píng)論
            
          # re: newxy的簡(jiǎn)單之美 2007-04-18 11:30 | 有貓相伴的日子
          支持一下.....  回復(fù)  更多評(píng)論
            
          # re: newxy的簡(jiǎn)單之美 2007-04-18 19:57 | 王元濤
          敬佩!  回復(fù)  更多評(píng)論
            
          # re: newxy的簡(jiǎn)單之美 2007-11-26 11:14 | zwl
          支持!佩服!  回復(fù)  更多評(píng)論
            
          # re: newxy的簡(jiǎn)單之美[未登錄] 2007-12-08 21:18 | a
          沒什么大不了的,就是仿照Ruby on Rails的Active Record,用反射實(shí)現(xiàn),
          每次都要檢索表名是否存在,表的各個(gè)字段是否存在,其實(shí)效率非常低,
          最起碼比哈勃那特低,絕對(duì)的,還有,java再怎么樣也實(shí)現(xiàn)不了Active Record
          這是公認(rèn)的道理

          現(xiàn)在都什么時(shí)代了,還在搞服務(wù)器端解釋的自定義標(biāo)簽,過時(shí)了!!
          現(xiàn)在都搞客戶端全渲染JS組件了,太弱了

          不服嗎,不服就一條一條的駁倒我,呵呵  回復(fù)  更多評(píng)論
            
          # re: newxy的簡(jiǎn)單之美 2010-03-08 10:46 | dcr
          @a
          無聊!這樣就說明你牛了?  回復(fù)  更多評(píng)論
            

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 茌平县| 定襄县| 建平县| 望城县| 铜陵市| 台南市| 南通市| 洛浦县| 府谷县| 德令哈市| 房山区| 梁山县| 日照市| 云南省| 兴仁县| 陆川县| 广昌县| 济源市| 永丰县| 来安县| 通榆县| 陇西县| 铜梁县| 舒兰市| 安宁市| 右玉县| 城固县| 宁乡县| 清涧县| 海门市| 湘潭市| 花莲市| 册亨县| 黄大仙区| 玉山县| 宁津县| 岑溪市| 白水县| 延川县| 普安县| 祁阳县|