自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何寫好上千行的 SQL 存儲過程(附代碼規(guī)范)

存儲 存儲軟件
經(jīng)歷了大大小小的 MIS 系統(tǒng),小到幾人用的協(xié)作系統(tǒng),幾十人用的 OA 系統(tǒng),到上千人用的 MES/ERP 系統(tǒng),再到百萬人用的電商系統(tǒng),存儲過程的影子在半個(gè)世紀(jì)以來從未淡出它的戰(zhàn)場。

上千行的 SQL 代碼常見,且永不過時(shí)!

經(jīng)歷了大大小小的 MIS 系統(tǒng),小到幾人用的協(xié)作系統(tǒng),幾十人用的 OA 系統(tǒng),到上千人用的 MES/ERP 系統(tǒng),再到百萬人用的電商系統(tǒng),存儲過程的影子在半個(gè)世紀(jì)以來從未淡出它的戰(zhàn)場。我們幾個(gè) SQL 老玩家經(jīng)常自吹, SQL 是半衰期最長的編程語言。玩會它不用擔(dān)心失業(yè)。

[[258710]]

上回我們說到如何去拆一個(gè)上千行的 SQL 存儲過程,提到了四大步驟:理解代碼,分拆代碼,改寫代碼和保存代碼。拆過無數(shù)的代碼,從上千行縮減到 2 成,也組裝過無數(shù)的代碼,從上百行塞成了上千行,業(yè)務(wù)所需。見過最長的 SQL 代碼超 5000 行,已簡無所簡,那就實(shí)事求是了。人有分分合合,有生命力的代碼也一樣。

但裝和拆并不是一個(gè)逆反的過程!

1 理解業(yè)務(wù):

你不可能寫出一個(gè)沒有業(yè)務(wù)邏輯的代碼。充分理解業(yè)務(wù)邏輯對你有兩個(gè)好處:一)寫出可執(zhí)行的并且可擴(kuò)展的代碼;二)主動(dòng)了解業(yè)務(wù)將有利于職業(yè)生涯升級。***個(gè)好處肯定不言而喻,寫代碼寫出頸椎病的程序員,不會意識不到代碼的擴(kuò)展性可以讓你少跑多少趟醫(yī)院,讓你霸屏更多次王者。第二個(gè)好處可不是人人都意識到了。雖然 SQL 是最長職業(yè)生涯的編程語言,與其一起出現(xiàn)的 VFP 大概 90 后聞所未聞,但顯然沒人一輩子愿意鼓搗 CRUD 吧。玩吃雞的同學(xué)把你的 iPhone X 放下,家里有礦沒說你。

理解了業(yè)務(wù)你就成了整個(gè)應(yīng)用生態(tài)中不可缺少的一環(huán)。信息化的目的不是寫代碼,最終目的就是為了利潤??炊?邱岳)就知道這話沒錯(cuò)。

2 快速實(shí)現(xiàn):

很多朋友(包括我)有時(shí)候碰到需求,苦思冥想,想的是一口氣把 SQL 從頭到尾完整的,暢快淋漓的寫出來。“Wow” 和漂亮的回車,就是憋著這口氣的期待。

但現(xiàn)實(shí)無數(shù)次打了我的臉!

越是有這種想法,越是憋得時(shí)間很長才寫那么一點(diǎn)。總覺得這里不好,那里不行,這里的變量名稱寫得不夠爽朗,那邊的 Pivot 寫得不夠優(yōu)化。結(jié)果往往是一個(gè)上午就在那里糾結(jié),什么都沒完成。

你是不是也有類似的經(jīng)歷?不孤獨(dú)

再說一次《巴黎評論》。村上春樹、海明威、博爾赫斯,書里翻翻都是***遍爽快的寫下去了,一旦寫得卡殼了怎么辦,束之高閣,明兒繼續(xù)。所以我后來明白的事情,大家都可以猜得到了。先把業(yè)務(wù)實(shí)現(xiàn)了再說,命名規(guī)則,變量申明,事務(wù)控制以及性能優(yōu)化,統(tǒng)統(tǒng)先放起來。寫好 CRUD 交上***稿,存檔,Over!

3 重構(gòu)與測試:

如果僅僅到了第二步,就認(rèn)為高枕無憂,那會死的很慘。你會成為別人口中的“豬一樣的隊(duì)友,坑貨……”

《巴黎評論》中,村上春樹提到他的小說經(jīng)常修改 4 - 5 遍才交稿,而且編輯還需要修改。我們一遍過的 SQL 就免檢了?這個(gè)時(shí)候再檢查命名規(guī)則,變量申明,事務(wù)控制以及性能優(yōu)化。直到滿足 ACID 的最小單元的 代碼塊完整的歸整到一個(gè)存儲過程或拆解成多個(gè)可重復(fù)使用的存儲過程中結(jié)束。

將所有的測試分支跑完測試,提交!

4 保存代碼:

如果你的團(tuán)隊(duì)沒有 git, SVN, TFS 這些 Source Code Version Control, 趕緊上一個(gè)。沒有自動(dòng)化部署工具,自己想辦法整一個(gè)。到 9102 年了,別偷懶吧。

摸著你的良心,看看這個(gè)圖,你都掌握了?

責(zé)任編輯:武曉燕 來源: 有關(guān)SQL
相關(guān)推薦

2021-10-13 08:16:14

SQL 代碼系統(tǒng)

2022-03-09 15:48:13

Java代碼

2017-03-15 13:41:16

數(shù)據(jù)庫SQL調(diào)試

2024-04-09 15:22:24

2022-03-14 22:22:56

工程設(shè)計(jì)論代碼

2021-11-04 09:55:59

代碼編程語言

2019-10-08 09:29:41

架構(gòu)代碼業(yè)務(wù)邏輯

2022-06-27 08:42:05

代碼sklearn機(jī)器學(xué)習(xí)

2020-09-30 08:08:15

單元測試應(yīng)用

2019-06-10 19:00:23

Cmain函數(shù)編程語言

2025-02-24 08:20:00

AI代碼生成

2018-10-15 09:20:08

代碼軟件工程師

2022-07-13 17:56:09

Bug率產(chǎn)品經(jīng)理系數(shù)

2020-07-31 08:12:49

代碼機(jī)器設(shè)備

2022-08-29 15:01:58

5G數(shù)字經(jīng)濟(jì)醫(yī)療

2022-10-24 08:10:21

SQL代碼業(yè)務(wù)

2014-12-01 11:15:40

2015-08-17 10:42:13

2019-11-26 10:50:47

代碼編程語言重構(gòu)

2024-01-03 07:11:58

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號