iT邦幫忙

2024 iThome 鐵人賽

DAY 1
0

What

EdgeDB建基於Postgres之上,可以視為新世代的SQL。其Co-Founder兼CEO是傳說中的Yury Selivanov,他不僅是Python asyncio背後的主要推手,也是asyncio威力加強版uvloop的主要開發者。

Why

EdgeDB有著自己的EdgeQL語法與型別系統。其EdgeQL query會於底層編譯為相對應的Postgres query,由於其不是一個ORM,所以理論上所有想對Postgres做的操作,應該都能使用更簡潔的EdgeQL語法達成。這使得我們可以更專注在與資料互動,而不必花費過多心力在編寫或修改query。

How

EdgeDB的官方文件十分完整,但我最推薦的入門學習資源是由David MacLeod(註1)所寫的Easy EdgeDB。這本書以德古拉吸血鬼為背景,一步步帶領讀者走進故事內,並以EdgeDB來描述各種事物。這樣的「沉浸式」教學,讓我快速且紮實地學習了EdgeDB。

由於中文的EdgeDB學習資料比較少,雖然有高手翻譯成簡體版,但似乎已經沒有繼續更新維護。有鑑於此,我便想依照David的方法,選擇「無間道」(註2)這個我很有興趣的主題,來編寫正體中文的教材,於是便有了看無間道學EdgeDB這個project(於本系列文中,將以無間EdgeDB作為代稱)。

首先我們會一起建立一個初始schema,裡面包含了基本的人時地事。接著再從劇中選出十幕,於每幕中交待劇情,熟悉並學習各種query寫法並同時改善schema後,進行migration。這麼設計的原因是,實務上我們很少會有不需要變動的schema,通常都需要配合專案發展做出變動。

這個系列文,我希望以無間EdgeDB為基礎並進一步添加更多說明,各日大綱預定如下:

  • [Day01]:緣起。
  • [Day02]:講解EdgeDB的基本概念。
  • [Day03]~[Day06]:熟悉insertselectupdatedelete等操作。
  • [Day07]:介紹multi propertyarray
  • [Day08]:介紹tuplerangemultirange
  • [Day09]:EdgeDB牛刀小試
  • [Day10]~[Day13]:講解初始schema,包含人時地事四個面向。
  • [Day14]~[Day23]:透過十幕精選場景學習進階EdgeDB操作。
  • [Day24]~[Day26]:EdgeDB觀念加強。
  • [Day27]~[Day29]:EdgeDB應用範例,暫定為Rust與/或Python。
  • [Day30]:結語。

希望大家跟我一樣,享受從故事中學習新事物。

輔助工具

Search + Ask AI

最後,因為非常重要,要講三次:

Search + Ask AI !!!
Search + Ask AI !!!
Search + Ask AI !!!

在熟練使用EdgeDB前,必定會經過許多卡關的地方。此時,請想起EdgeDB團隊於官網正上方,有提供強大的search功能與類似ChatGPT的Ask AI,來協助大家。

Vscode extension

EdgeDB有提供Vscode extension,可以幫助大家在編輯*.esdl*.edgeql檔案時,有比較好的視覺感受及提示。比較可惜的是目前還沒有提供formatter,所以大家寫出來的schema和query暫時沒有一致的格式。

備註

註1:David略通中文,他於閱讀無間EdgeDB後曾於LinkedIn 推薦,並提議收錄於官方的GitHub awesome-edgedb repo中。

註2:既名無間道,表示時間與空間都是模糊的。三部曲間,有相容亦有衝突,或許每一個分支都是一個平行時空。如若真的想深入了解,可以參考知乎網友所寫的四十篇無間道系列劇情梳理

註3:一如所有當紅的Python package一樣,EdgeDB似乎也正走上rustify之路。


下一篇
[Day02] - EdgeDB概述
系列文
一起看無間道學EdgeDB30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言