English for Appwrite Developers
Вивчіть англійську лексику для роботи з Appwrite, платформою з відкритим кодом backend- as- a- service: збірки, права доступу, функції і SDK.
Appwrite надає вам систему автентифікації, базу даних документів, файлове сховище і безсерверні функції за одним API, і чітке обговорення цього з командою означає, що ви повинні бути точні щодо термінів, які вільно відображаються - але не точно - на концепції з Firebase або Supabase. Цей підручник містить необхідний вам словник.
Ключовий словник
** Collection ** — група пов’ язаних документів у службі бази даних Appwrite, приблизно еквівалентна таблиці у реляційній базі даних або збірці у MongoDB.
“Ми зберігаємо профілі користувачів у збірці profiles, з окремою збіркою posts, пов’язаною атрибутом userId.”
** Атрибут ** — поле з типом, визначене у збірці (рядок, ціле число, булівське значення, відношення), з яким мають відповідати документи у цій збірці.
- “Я додав обов’ язковий атрибут
statusдо збірки замовлень — існуючі документи без нього не будуть перевірені доки ми не заповнимо їх.” *
** Дозвіл (рівень документа / рівень збірки) ** — правила керування доступом, які прив’ язано до збірки або окремого документа, за допомогою яких можна вказати, які ролі або користувачі можуть читати, записувати, оновлювати або вилучати цей документ.
- “Ми встановлюємо права доступу на рівні документа, щоб кожен користувач міг читати і оновлювати лише свій власний документ профілю, а не всю збірку.” *
** Appwrite Function ** — функція без сервера, написана у будь- якому з підтримуваних середовищ виконання, запускається за допомогою події (створення документа, розкладу, запиту HTTP) і виконується у ізольованому контейнері.
“Функція привітального листа запускається на події users.create і виконується незалежно від головного API, тому повільний провайдер електронної пошти не заблокує підписку.”
Query (Appwrite Query builder) — синтаксис структурованого фільтрування SDK ( Query.equal, Query.greaterThan, Query.orderDesc ), який використовується для створення запитів на базу даних без запису сирих рядків запиту.
“Замість фільтрування з боку клієнта, скористайтеся Query.equal('status', 'active') у виклику списку — це відштовхує фільтр до бази даних і уникає витягування непотрібних документів.”
Звичайні фрази
- Чи є це право встановлене на рівні колекції або на рівні документа?
- «Яка подія запускає цю функцію — подія бази даних, або запланований cron?»
- «Чи ми фільтруємо з викликом Query builder, або витягаємо все і фільтруємо з боку клієнта?»
- Чи потрібно цей атрибут вимагати, чи він повинен бути за замовчуванням нульовим?
- «На якому часі виконання розгорнута ця функція, і чи має вона проблему холодного запуску?»
Приклади висловлювань
Пояснення моделі даних у перегляді проекту:
“Кожен document в колекції posts має обов’язковий атрибут authorId і атрибут відносин, що вказує назад на колекцію profiles, тому ми можемо запитати повідомлення користувача безпосередньо.”
Опис вади з правами доступу: “Дозволи на рівні документа все ще були встановлені на типову роль, отже будь- який автентифікований користувач міг читати приватні документи інших людей — ми тепер розширили їх до власника документа.”
Обговорення рішення щодо архітектури функцій: “Ми перенесли логіку зміни розміру зображення до функції Appwrite, яка запускається при вивантаженні файла, замість того, щоб робити це синхронно в маршруті API — це зберігає швидкість відповіді на вивантаження.”
Професійні поради
- Розрізняйте ** права доступу на рівні збірки ** від ** прав доступу на рівні документа ** у будь- якій дискусії щодо безпеки — їх об’ єднання є найпоширенішим джерелом помилок контролю доступу Appwrite.
- Називайте атрибути відповідно до типів на стороні клієнта, до яких ви їх відобразите, і скажіть це в перегляді — атрибут
string, який насправді має містити дату, запрошує помилки аналізу в нижньому рівні. - Коли пропонуєте Appwrite Function, вкажіть її тригер явно (подія, розклад або HTTP) — «функція, яка запускається при завантаженні» корисніша, ніж «функція, яка обробляє зображення»
- Віддавайте перевагу опису фільтрів як ** Виклики конструктора запитів **, а не як « запит » — це сигналізує, чи відбувається фільтрування на стороні сервера чи клієнта, що має значення для обговорення швидкодії.
Практичні вправи
- Напишіть одне речення, у якому буде описано збірку і два її атрибути.
- Поясніть різницю між правами доступу на рівні збірки і на рівні документа вашими словами.
- Описує функцію і подію, яка її запускає.
В практиці: оновлення комунікації в колективному середовищі
Для не-рідних носіїв англійської мови, що пересуваються у світі професійного розвитку - особливо при використанні таких інструментів, як Appwrite - оволодіння нюансованим словником виходить далеко за рамки простого перекладу слів. Це розуміння як речі кажуть, неявні очікування в команді, і точна мова, необхідна для ефективного внесення вкладу в перегляд коду, обговорення і документацію. Розглянемо деякі типові ситуації, коли обережна фраза може зробити або пошкодити вашу здатність бути почутими і зрозумілими.
Однією з найчастіших проблем є надання конструктивного зворотнього зв’язку під час перегляду коду. Отримати коментар на зразок « Це потребує переробки » не особливо корисно без контексту. Ефективнішим підходом було б щось на зразок: «Я помітив, що ця частина коду могла б отримати користь від поліпшення читабельності. Можливо, розбиття складної логіки на менші, названі функції, збільшить підтримку і полегшить розуміння потоку. Зауважте використання таких термінів, як « переробка », « читабельність », « підтримка » і « поток » — це стандартні терміни в обговореннях з розробки програмного забезпечення, і їх правильний вибір демонструє глибше розуміння. Аналогічно, коли ви описуєте свою роботу у описі запитів на звантаження (PR), не вказуйте просто « Виправлено ваду ». Замість цього спробуйте щось на зразок: « Впроваджено виправлення проблеми з пошкодженням даних, виявленої під час тестування. Коренева причина була відстежена до неправильної перевірки підтвердження в рамках функції updateDocument. Ця зміна включає в себе поліпшення обробки помилок і ведення журналу, щоб запобігти повторенню помилок у майбутньому. » Цей рівень докладності показує увагу до деталей і показує, що ви зробили кроки не лише для розв’ язання поточної проблеми, але і для розуміння її причин.
Іншою областю, де словниковий запас має значне значення, є розмови Slack. Швидке, неформальне повідомлення на зразок « Виправлено! » може бути достатнім для особистого оновлення, але під час обговорення оптимізації продуктивності у команді, більш точне твердження — « Оптимізовано запиту на базу даних за допомогою реалізації індексування часто використовуваних полів » — негайно передасть технічні подробиці і дозволить іншим оцінювати вплив ваших змін. Крім того, вивчення того, як ввічливо не погоджуватися або пропонувати альтернативні підходи, є критичним. Замість того, щоб сказати «Це неправильно», спробуйте «Я розумію ваш підхід, але я розглядав [альтернативне рішення], оскільки воно може запропонувати кращу продуктивність в цьому конкретному сценарії»
Нарешті, пам’ятайте, що Appwrite сам по собі покладається на точну термінологію - “збірки”, “дозволи”, “функції” і SDK. Використання цих термінів послідовно у вашому спілкуванні підсилює їх значення і демонструє знайомство з основними концепціями платформи.
Ось простий приклад використання appwrite CLI для створення збірки:
appwrite collections create my_collection --type document
Ця команда дає вам чітке уявлення про те, як формулюються команди Appwrite, підкреслюючи точність інструкцій і виводу.