如何評價將GraphQL查詢直接轉化為SQL的Join Monster 275星 專案?

時間 2021-05-30 21:02:44

1樓:任弘迪

所以為什麼要有graphql呢?前端直接發sql,後端做同樣的語法解析,許可權校驗,不就行了?

除非後端是乙個圖資料庫,不然我覺得如果他的邏輯說得通,那直接發sql是更好的,根本不需要做一次轉化。

2樓:公羊羽

最近我負責了乙個分析引擎的輸出結果api用的就是join monster和GQL.基於我這個只是提供了我另外乙個專案的分析結果集,所以資料量相對已經不是很大。就表現來說我覺得還是很好的,而且我檢視了postgres log發現他的查詢關聯語句轉化的其實挺好的,說白了就是表之間對映而已。

做專案,按需選工具很重要。不要殺雞用宰牛刀,也別宰牛用殺雞刀。

3樓:北南

但凡覺得資料庫可能會是個瓶頸的專案,都強烈不推薦使用

GraphQL的後端實現還是需要小心謹慎的手動實現的。最好是通過id/主鍵來查詢,這樣才能比較好的結合cache和dataloader(dataloader用來合併重複id查詢)來降低資料庫的壓力。

如果真想一桿子捅到資料庫,可以用dgraph這個專案,人家資料庫的訪問介面就是graphql魔改出來的。。。。。

4樓:

如果只是把graphql轉成sql的話,為什麼不直接傳sql呢,反正資料庫都和裸奔一樣了

有graphql的應用場景顯然不在這,居然還能有這麼多star

5樓:王小一

這是社群對graphql的誤解,其實大多數人也是認為graphql只是一種新型的api罷了。graphql核心解決的不是api的問題。而是元件應該如何獲取資料的問題。

傳統的做法是讓根元件獲取資料然後傳遞給子元件。然而,這種做法會引入耦合:每次你修改子元件的時候都要修改所有用到渲染這個元件的父元件。

這種耦合意味著更多的bug和更慢的開發速度。最終我們發現這種做法並不會讓你在React這種元件模型中收益:這種資料依賴放進元件內部才比較自然。

另外乙個看起來很靠譜的辦法是呼叫render()鉤子時開始請求資料。這也是通常的做法,我們渲染乙個stories元件,然後請求stories,然後獲取完之後開始顯示具體的story,最後再去請求所有的story詳情。這聽起來還行,但是問題是這個請求是分段的:

先得渲染出來一層元件,才知道下一步應該請求什麼,然後再渲染,再去請求。這會導致請求和渲染交替序列,最後渲染過程變得極慢無比。因此我們需要提前或者靜態地知道我們要獲取什麼資料。

最終Relay採用了靜態方法:元件的query都是靜態成員,因此可以立刻找齊所有query,用來描述整個要渲染的元件樹需要什麼資料。但這種方式需要我們有辦法把所有的query結合成query樹,這樣才能一次載入出所有資料,因此這也是Relay需要GraphQL來支援的核心原因——每元件內部query之間要可以結合成完整的query,而不是拿某部分query去直接呼叫某個請求API。

每個元件宣告自己需要的資料,而不是從根節點層層傳遞下來。這樣資料也元件化了。這也是為什麼它的query要寫成這個樣子,因為它「不是」查詢語句,而是資料的宣告。

6樓:kevin zou

企業應用內部開發人員答一記。

這是前端或者說是UI發展的必經階段,各種QL已經說明了前端或者說者UI才是資料的實際需求者,既然是需求者,就只有自己才知道資料要怎樣拿,格式應該怎樣。現在前後端分工的不合理,或者前端視角的狹小,或者架構師和後端人員的偏見,導致凡是涉及到業務資料實際獲取時都要借助於所謂的後端開發人員之手。

node.js也好,graphQL也罷,都是前端的一種覺醒。只有自己能夠掌握從定義格式,獲取資料,到抓出傳遞,到打包合併等整個過程,才能讓UI有更好的效能,更大的靈活。

才是真正意義上的UI開發。

graphQL自助轉成SQL,意味著很大程度不再需要後端協助。

而可預見的未來,必定是前端自己就可以寫SQL,自己合併,過濾,分組,排序,組裝資料,甚至自己定義傳輸協議和模式。

如果有可能,嘗試讓UI開發人員直接寫SQL吧,你們會發現,其實SQL真的很美。

如何評價通緝犯資訊查詢 APP 人民賞金 ?

心還是熱的 我尋思著如果真碰到這上面的人,我是不是就危險了,我會不會讓他們的賞金增加啊.不過舉報一手也不失為一種發家致富的方法奧 簡單說一下,如果不是註冊的公益機構,這種非特定目標的募資就是非法集資,如果是註冊的公益機構但是還沒有公募資格,這麼做也是非法集資。總的來說,如果是想騙一筆錢跑路,這思路還...

如何評價《天將雄師》?

愛德蒙 非常不尊重歷史,天將雄師的時代背景是霍去病去世後10 30年之間。霍去病去世於西元前117年,也就是說電影的時代背景應該是西元前107年 西元前87年之間。在這個時代背景下,地中海沿岸的羅馬好處於共和國時期 然而,電影裡面對羅馬的描述都是 帝國。可能是在西元前27年建立羅馬帝國的奧古斯都穿越...

如何評價日本將棋?

蕭蕭 我在日本的三個月,為了交上當地的朋友研究了很久的將棋。將棋是一種注重防守的棋,因為他要防守的除了子還有地盤,他的學習曲線屬於 規則難,入門易,成高手難,精通更難的棋。對於新手而言乙個比較簡單的打法就是破對方的乙個角,然後把兵灌進去公升級成托兒,用托兒兌對方的金銀。在防止對方攻入本陣公升級的時候...