
OpenAI ChatGPT API 與 React JS 的完美結合:全面指南
通過此示例,可以建立每門課程展示的信息與所需 API 數據之間的直接聯系。
這可以轉換為如下圖示:
通過這個圖表,可以直觀地看出數據及其之間的關系,從而反映在架構中。
type Query {
"獲取主頁課程數組"
tracksForHome: [Track!]!
}
"A track 是一組模塊,講授特定主題"
type Track {
id: ID!
"課程標題"
title: String!
"主要作者"
author: Author!
"顯示在課程卡或詳情頁的縮略圖"
thumbnail: String
"課程完成的大致時長,單位為分鐘"
length: Int
"該課程包含的模塊數量"
modulesCount: Int
}
"課程的作者"
type Author {
id: ID!
"作者的姓名"
name: String!
"作者的頭像鏈接"
photo: String
}
繪制應用程序圖表非常有助于建立應用程序 UI 與用戶與數據交互之間的聯系。這兩者在設計模式時至關重要,應該體現在數據結構中。
關鍵在于,架構應反映圖表。因此,在構建模式之前繪制圖表是一種良好的習慣。尤其在構建初始模式時,嘗試為日常使用的現有應用程序繪制圖表,將有助于培養“圖表思維”,即將數據視作圖表。
前端開發人員可以通過不同的用戶界面訪問架構,例如移動設備、桌面、智能電視,甚至智能手表。對于每種前端客戶端,數據的展示方式可能會有所不同。這可能會導致嘗試創建通用類型和字段的沖動,但這樣真的最佳嗎?
在軟件開發中,通常希望代碼盡可能簡潔,而大家也都熟知 DRY 原則(不要重復自己)。然而,在設計模式時,應優先考慮客戶的具體用例,無論這些用例多么特定。這并不意味著要放棄通用字段和類型,而是可以同時兼顧通用性和具體性。
那么,應該考慮哪些具體行為和用例呢?答案源于對領域和用戶的深入了解。同時,要記住,隨著應用程序的發展,客戶的具體用例也會隨時間變化。起初可能是一個網絡應用程序,但最終可能擴展到移動客戶端。隨著應用的演變,架構也應隨之調整。因此,采取以用例和行為為中心的思維方式將是一個明智的選擇。
命名是一個挑戰,但它在軟件開發中至關重要,包括模式設計。在為模式創建類型時,常常容易使用最直接的名稱,這可能導致后續的混亂和重大調整。
以前面提到的教育平臺為例。如果需要包含課程和課程的評論,可能會傾向于創建一個名為 Review 的類型。但可以考慮更具體的命名。使用 CourseReview 和 LessonReview 作為類型名,而非簡單的 Review,可以使代碼更加清晰且易于理解。這種做法還允許根據特定用例和用戶行為進行更加精確的構建。
現在您已經了解了模式設計的這些指導原則,您可以直接開始構建您自己的模式!
原文鏈接:Designing Your First GraphQL Schema