由乙個DAOHelper類引發的思考

2022-01-15 23:09:59 字數 2282 閱讀 2962

這是一篇發牢騷的文章,可以這麼說吧。daohelper究竟有什麼用呢?用我自己的話去理解,daohelper的存在正是敏捷開發的產物,即快速開發。

我們究竟能從專案中學到什麼呢?有的人可能會說,從乙個專案中,你可以學到很多東西,比如你可以學習nhibinate,entity framework 等orm框架,還可以學習到linq 2 sql等技術,但是,乙個daohelper就能毀掉你的夢想。我們不妨來看看下面的一些**。

using system;

using system.collections.generic;

using system.linq;

using system.text;

using microsoft.practices.unity;

using sable.dao;

using blrs.wcp.models;

using petapoco;

namespace blrs.wcp.services

public page showdatasource(string typeid)

public page query(cmsdatasourcequerydata cmsdatasourcequerydata)

sql.where(where, new object );

sql.orderby(new object );

daohelper.querybypage(sql, cmsdatasourcequerydata.page);

return cmsdatasourcequerydata.page;

}public void add(cmsdatasourcelist cmsdatasource)

);if (names != null)

cmsdatasource.cmsdatasource.id = guid.newguid().tostring();

daohelper.insert(cmsdatasource.cmsdatasource);

cmscomplexdatumservice.addorupdate(cmsdatasource);

}public void update(cmsdatasourcelist cmsdatasource)

);if (names != null)

daohelper.update(cmsdatasource.cmsdatasource);

cmscomplexdatumservice.addorupdate(cmsdatasource);

}public void del(string id)

public void dels(listids)

}public cmsdatasourcelist show(string id)

);list.cmsdatasource = cmsdatasource;

list.cmscomplexdatums = cmscomplexdatums.tolist();

return list;}}

}

這些**本質上,說白一點吧,給乙個從來沒寫過程式的人,花上3,5天我相信,如果他悟性好的話,也可以參透其中的原理。什麼原因呢?所有的難點都是用類似"daohelper"的方式封裝好了。其實上面的**是我從公司的專案當中隨便擷取的,其他的**我就不擷取了,大體上就是這種模式。於是問題可以被濃縮成這樣:「快速開發的利弊」。

先來說說好處吧,公司做專案,就好比工廠生產產品給客戶,為了把這個產品做好,需要經過很多道工序,而這些框架性的東西,其實就是一套產品規範,我們只有按照這個規範去做了,那麼才能生產出合格的產品。所以對於公司來說,快速開發是利大於弊的。

對於個人來說,除了學習在學校裡學到的知識以外,當我們走進了一家公司,肯定是要學習這個公司的框架,當我們進不同的公司的時候,學到的框架的內容也是不同的,但是有一點,我們都是必須去學習,去適應這些千變萬化的框架的。但是當你做了很多專案以後,突然有一天,你想自己嘗試去寫一些東西的時候,發現自己居然什麼都不會,因為你已經對這些框架有了依賴的感覺,你只能去在這些框架之下完成一些特定的功能的製作。就像剛才上面提到的daohelper一樣,不需要你寫什麼lambda,也不需要你去做其他多餘的操作,乙個daohelper就能搞定,但是現實當中如果沒那麼多的orm框架,肯定有些東西是要靠自己完成的。所以對於個人的發展,我覺得快速開發對程式設計師來說是弊大於利的,至少它可以從某種精神層面上剝奪程式設計師的主動性。

一句話可以概括一下我的思想:daohelper是用來做事的,而我們真正要學的,是daohelper深層次的原理,不能「 知其然而不知其所以然」,不能讓daohelper剝奪了我們嚮往更深層次學習的動力。

0

乙個由copyBean引發的血案

一次開發中使用輪子bean互轉突然發生了問題 new setdlevel 1 dto dto new dto dto beancopyutils.copybean dto.class system.out.println dto.getdlevel 列印出輸出結果 輸出結果卻變成null,怎麼肥事呢...

乙個由鬥地主引發的血案

王炸 看到這個小故事我也試著拿筆去算了算,唉,尼瑪,去試一下自己的智商下限 然後得出如下思路 地主20,農民17,一共54張牌.那我直接用 20 54 地主拿一張王牌的概率 19 53 地主在有一張王后再拿到王的概率 然後兩個概率相乘 20 54 19 53不就得出了王炸的概率嘛?13.3 在確定王...

由乙個typedef問題引發的思考

同樣,可以像下面這樣隱藏指標語法 typedef char pstr intmystrcmp const pstr p1,const pstr p3 用gnu的gcc和g 編譯器,是會出現警告的,按照順序,const pstr 被解釋為 char const 乙個指向char的指標常量 而事實上,c...