c 開發應避免的幾個小濫用

2022-08-03 06:09:09 字數 1402 閱讀 8812

一 string和stringbuilder

少量的字串操作不宜採用stringbuilder。

由於string是不可變得物件,對於string的疊加,每次操作都會生成乙個新的string物件。所以針對大量string的操作時,我們會採用stringbuilde。但似乎很多人都知道這一點,所以只要字串相加,不管三七二一都用stringbuilder。其實這是個誤區,在這裡要注意"大量"一詞,少量的字串操作用stringbuilder反而得不償失。

比如下面的兩種寫法:

二 慎用異常

由於程式丟擲乙個異常,就會建立乙個異常物件,然後應用程式會在catch塊中捕獲該異常,造成效能影響非常大。

比如: 

int orderid;

trycatch(exception e)

這樣的**很不合適,造成的效能開銷非常大。應該在客戶端寫js**先去驗證txtorderid是否符合要求。

三 關於session, request

session:

很多人喜歡用session來儲存持久物件的值。 但是當你的程式部署在多台伺服器上做負載均衡時,可能會得不到session儲存的變數的值。 另外,由於session是伺服器端的內建物件,每開啟乙個session物件,都在伺服器上占用一些資源。

request:

在頁面間傳值取值時,看到很多人都這麼寫**:

string customername = this.request["txtcustomername"].tostring();

其實後面的tostring()多此一舉。this.request["...."]本來就是string型別的,不必再去tostring()一下。

二 慎用異常

由於程式丟擲乙個異常,就會建立乙個異常物件,然後應用程式會在catch塊中捕獲該異常,造成效能影響非常大。

比如: 

int orderid;

trycatch(exception e)

這樣的**很不合適,造成的效能開銷非常大。應該在客戶端寫js**先去驗證txtorderid是否符合要求。

三 關於session, request

session:

很多人喜歡用session來儲存持久物件的值。 但是當你的程式部署在多台伺服器上做負載均衡時,可能會得不到session儲存的變數的值。 另外,由於session是伺服器端的內建物件,每開啟乙個session物件,都在伺服器上占用一些資源。

request:

在頁面間傳值取值時,看到很多人都這麼寫**:

string customername = this.request["txtcustomername"].tostring();

其實後面的tostring()多此一舉。this.request["...."]本來就是string型別的,不必再去tostring()一下。

數倉開發應避免的10個陷阱

在ralph kimball和margy ross 的 資料倉儲工具包 一書中,提到了資料倉儲設計中的10個常見陷阱,本文針對每個陷阱新增了一條與資料倉儲設計經驗有關的附加解釋。在著手進行資料倉儲專案之前,可以了解一下數這10個常見陷阱。這樣才可以不被資料倉儲設計的陷阱所困擾,避免這10個常見的陷阱...

開發除錯的幾個小技巧

控制面板 network filter圖示 is running 重新整理監控的頁面 is running 還在請求中的介面 pending 控制面板 elements 右擊選中的dom節點 scroll into view 控制面板 setting圖示 devices add custom dev...

Silverlight開發中遇到的幾個小問題

1,程式發布時遇到錯誤 可能引發此問題的原因 c windows microsoft.net framework v4.0.30319 aspnet regiis.exe iru 即可 2,與socket進行通訊時注意埠在4502 4532之間,具體看看策略檔案的配置,我因為這個埠問題耽誤了一下午,...