使用Git做服務(wù)端應(yīng)用的探索

正當(dāng)SQL和no-SQL各自的擁躉們討論他們各自的優(yōu)缺點(diǎn)時(shí),我所遇到的一些情況讓我不自覺發(fā)問:難道就沒有第三選擇嗎?

有些時(shí)候,我連關(guān)系數(shù)據(jù)庫都不想用。

這種情況是,用戶數(shù)據(jù)就是一些獨(dú)立文檔或表單,而且這些數(shù)據(jù)并沒有和平行的其它數(shù)據(jù)有邏輯上的關(guān)聯(lián)。而這種情況下,關(guān)系數(shù)據(jù)庫似乎不是必須的選擇。既然不是一定要用數(shù)據(jù)庫,那么我們是否可以打開思路,想象一些更適合我們業(yè)務(wù)需求的更好的場景。

我最先想到了Git。

下面舉幾個(gè)例子說明使用Git做為服務(wù)器的好處。

GIT的好處

1)Blog

用戶寫的文章可以在服務(wù)端查詢到每一次的版本變化,而存數(shù)據(jù)庫要么太冗余,要么會(huì)丟掉版本信息。

2)51job

用戶的簡歷的修改在后臺(tái)都記錄。

3)金融貸款申請(qǐng)

用戶提交的任何數(shù)據(jù)都有記錄,特別是金融類應(yīng)用一般都強(qiáng)調(diào)WORM(Write Once Read Many),Git更是天生的完美支持。

4)Git同步

備份都是非常的成熟,方便。

5)Git有成熟的客戶端庫和通信協(xié)議支持

當(dāng)我開始想demo一下,去Github上找點(diǎn)素材的時(shí)候,才發(fā)現(xiàn)我的想法一點(diǎn)都不新奇。上面各種Git的客戶端,瀏覽器上運(yùn)行的庫都有,我列出幾個(gè)給大家參考一下,看看會(huì)不會(huì)有些靈感。

GIT客戶端

JS客戶端JS-Git(2790?stargazers)

https://github.com/search?utf8=%E2%9C%93&q=git+language%3AJavaScript&type=Repositories&ref=searchresults

Java客戶端?gitblit(968?stargazers)

https://github.com/search?utf8=%E2%9C%93&q=git+language%3AJava&type=Repositories&ref=searchresults

Objective-C客戶端GitUp?(4772?stargazers)

https://github.com/search?utf8=%E2%9C%93&q=git+language%3AObjective-c&type=Repositories&ref=searchresults

當(dāng)然,一個(gè)服務(wù)端應(yīng)用肯定不止是存儲(chǔ)客戶端的數(shù)據(jù)而已,它一定還要包含以下幾個(gè)方面的功能。

其他功能

1)鑒別用戶,并授權(quán)

Bitbucket,Gitlab對(duì)這一塊的支持都是完美的,也支持單點(diǎn)登錄,可以無修改的接入現(xiàn)有業(yè)務(wù)系統(tǒng)。

2)對(duì)客戶端提交的數(shù)據(jù)做出一些判斷,并可能觸發(fā)一些邏輯業(yè)務(wù)

Bitbucketet和Gitlab就有完整的API接口,可以支持你做幾乎所有的功能擴(kuò)展,包括條件觸發(fā),定時(shí)任務(wù)等。

GitLab?APIhttp://doc.gitlab.com/ce/api/

Bitbucket??APIhttps://developer.atlassian.com/bitbucket/server/docs/latest/reference/java-api.html

3)在業(yè)務(wù)擴(kuò)大的時(shí)候能支持?jǐn)U展和性能的優(yōu)化

在我們前面預(yù)設(shè)的幾個(gè)場景下,Git的本地repo都將大顯身手。

遺憾的是服務(wù)端的Git查詢似乎永遠(yuǎn)沒有redis,mongoDB查詢快,但ParallelGit(https://github.com/beijunyi/ParallelGit) 可以解決你這方面的憂慮。

結(jié)語

我可以預(yù)見,如果真要開始做這樣一種實(shí)踐,還會(huì)遇到各種各樣未曾想到的坑。然而值得安慰的是,前面已經(jīng)有無數(shù)人趟了過去,并留下了寶貴的經(jīng)驗(yàn),并形成了一股從SQL到no-SQL到no-no-SQL的潮流。

本文編譯:劉國平(點(diǎn)融黑幫),資深軟件開發(fā)工程師,跨平臺(tái)開發(fā)框架hero作者,是最早的一批移動(dòng)開發(fā)者, 同時(shí)對(duì)android,H5,NodeJS等技術(shù)比較關(guān)注。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,535評(píng)論 19 139
  • Swift版本點(diǎn)擊這里歡迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh閱讀 26,009評(píng)論 7 249
  • 6月11日收到邏輯思維寄來的書《把時(shí)間當(dāng)作朋友》,不滿您說這本書我自己在本年的某月買過,而且是同一個(gè)版本的。當(dāng)時(shí)胡...
    笨笨的成長之路閱讀 404評(píng)論 4 2
  • 最近在在出差,抬頭就是漂亮的藍(lán)天白云,雖然戶外猶如蒸籠,但在河邊就有風(fēng),抬頭就能看到各種形狀的云,心情一直都不壞。...
    云小5閱讀 250評(píng)論 0 2
  • Leon and Amy: 最近廣交會(huì)又在廣州舉辦了,許多公司在參展,一些外國客戶來到廣交會(huì)參觀和采購產(chǎn)品。今天我...
    嶺南后生閱讀 519評(píng)論 0 0

友情鏈接更多精彩內(nèi)容