黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

業務邏輯層與儲存過程的疑惑

系統 2563 0
?? 很慚愧,做了兩年的軟件開發,那些業務邏輯該放在業務邏輯層,哪些業務邏輯該用存儲過程來實現,心里一直是一團漿糊。從大學開始,我就對SQL語句有著說不出的討厭,所以我對數據庫技術知之甚少,所以要實現某個功能,首先想到的就是抽象業務流程,設計接口,抽象類型,提取核心流程做基礎設計,最后才考慮數據的存儲,所以我建表幾乎是從來不考慮滿足那個什么三范式的。類型到數據表的相互映射,也是中規中矩的自己造輪子,利用特性、反射,從不用成熟的ORM框架。

???? 因為做的項目較小,數據處理也不是很多,所以上述做法也行得通,而且自我感覺良好。但是我最近仔細思考了我做過的項目,幾乎所有的業務都是對數據的處理,歸根結底還是對數據的枚舉和對數據的修改。數據庫的存儲工作不是能以最好的性能滿足對數據的枚舉和對數據的修改么?而且存儲過程的優點很多:

  • 減少網絡帶寬,按理論存儲過程會提高性能.
  • 無需重新編譯,更改后即可運行,無需重新編譯代碼
  • 由專門的dba寫的sql語句更高效
  • 安全性(在傳輸用戶名密碼時,可防止注入等情況)

???? 后來的幾個項目我又改變了風格,純粹用存儲過程來開發,中間的業務邏輯層幾乎純粹成了數據傳遞層,完全拋棄了模型類和場景類,從前端到后臺都是DataTable過來過去,中間用了微軟的強類型表。項目也照樣完成得很好,而且速度奇快。當然,存儲過程也有他的缺點:

  • 依賴于數據庫廠商,難以移植(當一個小系統發展到大系統時,對數據庫的要求也會發生改變)
  • 業務邏輯大的時候,封裝性不夠,難調試難以維護
  • 復雜的應用用存儲過程來實現,就把業務處理的負擔壓在數據庫服務器上了。沒有辦法通過中間層來靈活分擔負載和壓力.均衡負載等

????? 但我們又有多少項目需要移植數據庫呢,又有多少業務邏輯是存儲過程解決不了呢,又有多少項目是讓數據庫系統滿負荷運行呢?可能我是菜鳥,但我做的幾十個項目中,真的極少遇到上述的情況。

????? 兩廂對比,迷糊了,暈菜了,我潛意識里知道存儲過程實現所有的業務是不好的,而且存儲過程的IDE沒有“重構”“查找所有引用”這樣貼心的小功能,維護確實很惱火。但我又說不出這東西究竟差在那些大地方,求園子里面的達人指點指點呀,你們的業務邏輯是如何在業務邏輯層實現的呀,求解惑……

????? 最后,幫公司發個招聘啟示:

????? 成都九洲電子信息是一家有軍工背景的企業,在物聯網、 RFID方面有核心競爭力,現在因為項目需要,大量招聘 .Net開發人員,月薪4000-8000。詳情請見:

http://job.cnblogs.com/offer/13828/

業務邏輯層與儲存過程的疑惑


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論