整理 | 郭露
出品 | CSDN(ID:CSDNnews)
SQL即結構化查詢語言(Structured Query Language),是一種可用于存取資料以及查詢和管理關系資料庫的編程語言,和面向物件編程相同的是,SQL語言的撰寫很費時間,并且除錯的難度也很大,因此必須要能夠進行維護,但谷歌卻將SQL視為代碼并受益頗多,這究竟是怎么回事呢?

SQL作為查詢語言,谷歌為何會將其視為代碼?
而從谷歌的角度來看,SQL還能用于創建資料管道,一旦資料管道發生故障,就需要用SQL修復,考慮到這些因素,代碼集中化在資料策略中無疑非常重要,
使用代碼管理工具的好處在于,開發者能夠更快的知道誰在更改或維護SQL腳本,并了解他對于其他相關查詢中的更改,代碼管理工具能夠第一時間發現提交失敗的地方并且進行恢復,提交SQL代碼之后,代碼能夠立刻部署到開發環境中,之后開發者可以執行開發管道,并立即識別和修復故障,同時需要定期更新測驗環境和代碼,以確保代碼能夠推出生產版本,一旦成功,所有版本的SQL都能夠順利執行,
小公司該如何應對?
對于小公司而言,需要了解公司的軟體工程文化,這種文化要更為成熟,因此公司需要熟悉他們可能會使用到的工具,例如Git和IDE等等,公司需要將所有代碼放在索引位置上,并將腳本從本地遷移到全域,并取消視圖和存盤的程序,
谷歌如何使用工具管理SQL代碼?
谷歌幾乎將所有代碼都集中在一個單一的代碼存盤庫中,若需要對任何SQL進行更改,或是需要創建新腳本時,就會創建更改串列,這本質上和拉取請求是相類似的,隨后通道要在經過測驗后由另一位開發者批準,經審閱者簽字后,作者就可將代碼更改提交到代碼存盤庫中,盡管許多公司都使用變更控制系統,谷歌和他們不一樣,非常重視代碼的格式,谷歌不會自動拒絕不符合編碼標準的更改,
小公司該如何應對?
有了谷歌的參考,小公司應當堅持使用一個代碼存盤庫,代碼存盤庫應在部門間共享,并將所有 SQL代碼集中在一個存盤庫中,這其中應當包括所有資料功能,例如資料工程、資料分析以及資料商業智能,公司需要采用代碼格式標準,使用開源代碼格式工具,這種工具能夠大大地提高代碼的可讀性和可維護性,公司可以花一定的時間通過工具優化先前的代碼,并且保證之后的代碼能夠符合格式標準,這樣能使SQL更容易撰寫和理解,
為何版本和開發環境的統一可以節省時間?
由于代碼經常會進行更改,如果不對版本進行控制,我們很難撤回或重置,如果公司能夠使用版本控制,一旦提交的代碼更改破壞了管道并產生了不可執行的命令時,可以精確地進行撤回,這一原則和谷歌的代碼集成方法相同,若開發環境中出現了不好的更改,業務依舊不會受到影響,SQL更改在提交時會對開發環境產生影響,并且能夠第一時間發現故障,若開發代碼的程序失敗了,谷歌可以通過開發環境變數來進行管理,
小公司該如何應對?
對于小公司來說,實作一個開發環境非常必要,在組織資料基礎架構內測驗代碼可以將影響降到最低,通過DBT等開源工具添加抽象層后能夠使這一程序更加簡單,所有的表能夠使用兩次:一次是作為開發表,第二次是作為生產表,在發布計劃時,所有提交的代碼都能夠加入到生產環境中,
廣泛訪問代碼的好處有哪些?
眾所周知,谷歌只采用了一個代碼存盤庫來存盤所有代碼,因此有時很難知道某個產品的消費者都用哪些,例如,軟體開發者可能在更新生產應用程式,如果不使用集中式代碼庫,他們無法了解更改后會有什么后果,通過代碼的集中化,開發者可以搜索合適的腳本、查詢和其他應用程式,并通知相應的開發者進行同步更改,
小公司該如何應對?
小公司應當更加信賴使用的代碼庫和存盤庫,工程的角度來看,公司的專案并不需要那么保密,只需要雇用信得過的開發者管理代碼庫就行,除此之外,公司還應該鼓勵軟體工程和資料工程間進行協作,在代碼投入生產之前完成下游的內置流程和程式,
【參考資料】
https://blog.devgenius.io/why-google-treats-sql-like-code-and-you-should-too-53f97925037e
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/431494.html
標籤:其他
