Англійська для розробників Gel (EdgeDB)

Вивчіть англійську лексику для Gel, реляційної бази даних графів, раніше відомої як EdgeDB: схеми, EdgeQL і пояснення об’ єктно- орієнтованих запитів команді.

Gel (база даних раніше називалася EdgeDB) представляє себе як граф-реляційна, а не чисто реляційна, і її мова запитів набагато ближче до природного пересування об’єктів, ніж SQL, тому пояснення її команді SQL-нативної вимагає словникового запасу, який чітко перетинає обидва світи.

Ключовий словник

** Graph- relational ** — модель даних, яка поєднує сильні типи і обмеження реляційної бази даних з природною, вкладеною обробкою об’ єктів бази даних графів, уникаючи відчуття повного з’ єднання, яке виникає при використанні чистого SQL. “Ми не пишемо п’ять з’єднань, щоб отримати ці вкладені дані - Gel є граф-реляційним, тому перетин пов’язаних об’єктів виражається безпосередньо в запиту, ближче до того, як ми думаємо про дані.”

EdgeQL — рідна мова запиту Gel, розроблена для виразування вкладених, об’ єктно- орієнтованих запитів, на відміну від SQL, який має більш плоский, таблиця- і- з’ єднання- орієнтований синтаксис. “Цей запит зовсім не схожий на SQL, до якого ми звикли, тому що це EdgeQL — він побудований для виразів вкладених форм об’ єктів безпосередньо, без вручну збирання з’ єднань.”

** Scheme- as- code ** — це практика визначення схеми бази даних у спеціальній мові схем і застосування її за допомогою міграцій, при цьому визначення схеми розглядається як версійний, переглядний артефакт. “Ми не редагуємо таблиці за допомогою графічного інтерфейсу — схема визначається як код, переглядається у запитах на витягування, так само як і логіка програми, і застосовується за допомогою міграцій.”

** Link ** — конструкція схеми Gel для представлення зв’ язку між типами об’ єктів, приблизно аналогічна зовнішньому ключу, але моделюється явно як назване, зв’ язок першого класу, а не як неявне посилання на стовпчик. “Це не голий стовпчик зовнішнього ключа — це посилання з назвою у схемі, саме тому ми можемо переходити через нього безпосередньо у запиту без написання явного з’ єднання.”

** Обчислена властивість ** — поле, визначене схемою, значення якого походить від виразу, що містить інші дані, оцінюються під час запиту, а не зберігаються і синхронізуються вручну. “Ми не маємо пам’ ятати про оновлення цього поля при кожному записі — це обчислювана властивість, тому її значення завжди отримується свіжим у час запиту.”

Звичайні фрази

  • Чи можемо ми виразити це безпосередньо в EdgeQL, або це дійсно потрібно моделювати як сире SQL-з’єднання?
  • «Чи це відношення моделюється як належне посилання в схемі, або це просто неявний стовпчик зовнішнього ключа?»
  • Чи повинна це бути обчислена властивість замість поля, яке ми повинні пам’ятати, щоб оновлювати вручну?»
  • Чи зміна схеми насправді проходить міграцію і перегляд, або це було застосовано безпосередньо?»

Приклади висловлювань

Пояснення моделі інженеру, який володіє SQL:

  • “Замість написання трьох з’ єднань для отримання автора, його статей і міток кожної статті, цей запит EdgeQL виражає всю вкладену форму безпосередньо.” *

Обговорення проекту схеми: “Моделізуймо це відношення як явне посилання, а не як голий стовпчик ідентифікатора — це робить схему самодокументованою і дозволяє нам пересуватися по ній природно у запитах.”

Перегляд міграції:

  • “Це поле, ймовірно, має бути обчисленою властивістю, а не чимось, що програма оновлює вручну — це вилучає цілий клас помилок синхронізації.” *

Професійні поради

  • Введіть ** graph-relational ** на початку, коли використовуєте Gel для команди, що використовує тільки SQL — ведучи з «це все ще сильно типізовано і реляційно» зменшує опір перед тим, як показати більш графоподібний синтаксис запиту.
  • Контраст ** EdgeQL ** з SQL безпосередньо в обговореннях перегляду коду, показуючи еквівалентні з’єднання, які він замінює - це будує довіру швидше, ніж стверджуючи, що це “краще” без доказів.
  • Підтримка schema-as-code дисципліни з першого дня — розгляд змін схеми як перегляду, версійних артефактів уникнення дрейфу, який торкається GUI-керованих реляційних баз даних.
  • Рекомендувати ** обчислену властивість ** замість вручну підтримуваних похідних полів, коли джерельні дані вже містяться у схемі — це виключає цілу категорію помилок, пов’ язаних зі застарілими даними.

Практичні вправи

  1. Пояснити розробнику, який використовує SQL, як EdgeQL уникає написання декількох явних з’ єднань для вкладених даних.
  2. Описати відмінність між стовпчиком зовнішнього ключа і явним посиланням на схему.
  3. Напишіть речення, у якому буде рекомендовано обчислювати властивість замість вручну підтримуваного похідного поля.

Переклади: «Переклад з німецької» (нім

Як ви занурюєтесь глибше в роботу з Gel (раніше EdgeDB), важливо розуміти, що технічне спілкування не просто про переклад слів з однієї мови на іншу. Це про ефективне передання значення, намірів і контексту - особливо при співпраці з командою, де англійська може бути не першою мовою кожного. Часто найбільш значущі проблеми виникають не з самої незрозумілої лексики, а з тонких відмінностей у фразуваннях і спосіб представлення інформації. Розглянемо коментар перегляду коду: « Цей запит може отримати користь від використання індексів для поліпшення продуктивності ». Людина, для якої англійська мова є рідною, зрозуміє це негайно, але хтось, хто не знайомий з технічним жаргоном англійської мови, може сприйняти це як критику їхніх навичок програмування. Ключовим тут є зосередитися на ясному намірі - в цьому випадку, пропонуючи оптимізацію. Аналогічно, повідомлення Slack на кшталт «Давайте переробимо цей модуль для кращого обслуговування», потребує ретельного розгляду. Це не просто заява про бажання; це пропонує стратегічну зміну з потенційними довгостроковими перевагами.

Іншою поширеною перешкодою є опис складних запитів для нетехнічних членів команди. Уявіть, що ви пояснюєте запит EdgeQL, який перетинає декілька зв’ язків у базі даних. Просто сказати «цей запит отримує всіх користувачів і їхні замовлення» недостатньо. Вам потрібно сформулювати * чому * ця інформація запитується, як вона буде використовуватися, і потенційний вплив на продуктивність системи — такі фрази, як « щоб створити звіт про продажі » або « для аналітичних цілей ». Точність вашої мови демонструє розуміння і дозволяє іншим зрозуміти логіку, що лежить в основі. Крім того, активний пошук пояснень («Чи можете ви розібратися, чому ми використовуємо цей конкретний зв’язок?») показує повагу до різних рівнів знань і сприяє співпраці. Не припускайте, що всі розуміють термінологію - проактивне пояснення концепцій є ключем до ефективного спілкування.

Важливою вмінню є також адаптація вашої мови до аудиторії. Під час презентації зацікавленим особам використовуйте більш доступні терміни і уникайте надто технічного жаргону. І навпаки, під час обговорення синтаксису EdgeQL з іншими розробниками ви зможете з повною впевненістю скористатися спеціалізованим словником. Сфокусування на активному голосі (« Запит отримує дані… ») зазвичай є яснішим, ніж пасивний голос (« Дані отримуються запитом… »). І завжди віддавайте перевагу ясності перед стислістю - трохи довше пояснення, яке легко зрозуміти, набагато цінніше, ніж коротке, неоднозначне твердження.

Ось приклад того, як описати простий запит EdgeQL у описі PR:

SELECT
  u.id AS user_id,
  u.name AS username,
  o.order_date AS order_date,
  o.total_amount AS total_amount
FROM
  user u
JOIN
  order o ON u.id = o.user_id
WHERE
  o.status = 'completed'
LIMIT 10;

У цьому прикладі чітко показано отримані дані і критерії фільтрування, що полегшує розуміння мети запиту для будь- кого, хто переглядає PR.

Поширені запитання

Про що ця стаття "Англійська для розробників Gel (EdgeDB)"?

Вивчіть англійську лексику для Gel, реляційної бази даних графів, раніше відомої як EdgeDB: схеми, EdgeQL і пояснення об’ єктно- орієнтованих запитів команді.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "Англійська для розробників Gel (EdgeDB)"?

Приблизно 7 min.