Англійська для розробників Payload CMS

Освоєння англійської лексики для Payload CMS: збірки, поля, контроль доступу і гачки, пояснення для розробників, які створюють платформи з безголовковим вмістом.

Payload CMS є код-перший — схеми, права доступу, і бізнес-логіка всі живуть в TypeScript, а не візуальний адміністратор будівництва — що означає, що обговорення його добре вимагає точних термінів для колекцій, полів, і гачків. Неясна мова, наприклад, « речі щодо вмісту » або « речі щодо дозволів », сповільнює перегляд коду на базі коду Payload. Цей підручник містить словник, який потрібен розробникам.

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

** Collection ** — конструкція Payload, що визначає тип вмісту (наприклад, Posts або Users ), налаштовану як об’ єкт TypeScript з полями, контролем доступу і гачками. “Ми потребуємо нове поле на колекції Products для зберігання SKU, а не цілком нову колекцію.”

** Field ** — одиниця даних у збірці, з типом ( text, relationship, richText, array ) і власними правилами перевірки. “Поле relationship на Posts посилається на збірку Authors, тому ми можемо заповнити ім’я автора у час запиту.”

** Функція контролю доступу ** — функція, приєднана до збірки або поля, яка повертає значення « так » або « ні », щоб визначити, чи може певний користувач читати, створювати, оновлювати або вилучати документ. “Функція контролю доступу перевіряє req.user.role і дозволяє редакторам лише публікувати, а не просто зберігати чернетку.”

** Hook ** — функція, яка виконується у певній точці життєвого циклу документа ( beforeChange, afterChange, beforeRead ), використовується для побічних ефектів, таких як надсилання сповіщень або перетворення даних. “Ми додали afterChange гачок, який запускає Slack сповіщення, коли стан повідомлення змінюється на published.”

Local API — API Payload на стороні сервера для запиту та мутації даних безпосередньо в коді Node.js, обходячи HTTP, використовується в скрипту, hooks і серверних компонентах. “Замість виклику нашої власної кінцевої точки REST з сервера, ми використовуємо локальний API безпосередньо — це швидше і пропускає мережевий поїздку в обидві сторони.”

** Перегляд у реальному часі ** — функція, яка відображає чернетку документа у iframe у реальному часі під час введення тексту редактором, не вимагаючи перед цим опублікування. “Перегляд у реальному часі дозволяє маркетинговій команді побачити, як саме буде виглядати сторінка, перед тим, як вони натиснуть кнопку публікації.”

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

  • Чи має це бути новим полем на існуючій колекції, чи вона потребує власної колекції?»
  • Чи є функція контролю доступу обмежена по полях, або вона застосовується до всієї колекції?
  • Який гачок повинен запустити це — beforeChange, щоб ми все ще могли змінити дані, або afterChange, оскільки це просто побічна дія?
  • “Чи викликаємо ми це через REST API або локальний API? Це змінює контекст аутентифікації»
  • «Чи Live Preview потребує спеціального маршруту для того, щоб рендерувати проект правильно?»

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

Пояснення рішення щодо схеми під час перегляду проекту: “Ми моделювали Testimonials як власну колекцію замість масиву на Pages, тому що ми хочемо, щоб свідчення були повторно використані на декількох сторінках, а не дублювалися на сторінку.”

Звітування про ваду: “Гак afterChange запускається двічі при збереженні — здається, що він також запускається при автоматичному збереженні чернетки, а не тільки при остаточному опублікуванні.”

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

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

  • Використовуйте “collection” і “field” точно, відповідно до власної термінології Payload, а не загальні слова CMS, такі як “content type” або “attribute” — це зберігає коментарі перегляду коду однозначними.
  • При описі помилки в логіці життєвого циклу, називайте специфічний гачок (beforeChange, afterChange, beforeValidate ), а не кажучи “логіка збереження”, оскільки кожен гачок запускається в іншій точці.
  • Розрізняйте local API від REST API, коли пояснюєте швидкодію — локальний API повністю пропускає HTTP і є правильним вибором для використання у гачках і скрипту.
  • Визначте, чи є правило доступу функцією контролю доступу на рівні ** збірки ** або ** поля **, оскільки їх можна розташовувати у шарах, і перемагає те, яке має більш обмежувальні властивості.

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

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

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

Як розробник, що працює з гнучкою архітектурою Payload, ви швидко усвідомите, що технічне спілкування виходить далеко за рамки простого перекладу термінів з вашої рідної мови. Метою є передати намір, обмеження і рішень чітко і чітко - щось часто втрачене в прямому перекладі. Не-рідні носії англійської мови особливо можуть отримати користь від розуміння тонких відмінностей у фразування, що використовуються в контексті професійного розвитку, особливо коли йдеться про вираженні зворотнього зв’язку або викладення вимог. Це не просто про те, щоб знати, що «збірка» означає «група документів», це про те, щоб сформулювати * чому * вам потрібно це групування, і як його структура впливає на більш широку систему.

Розглянемо такий сценарій: Ви переглядаєте запит на завантаження (PR), надісланий колегою. У описі PR просто вказано « Додати нове поле ». Хоча це технічно правильно, у цьому описі відсутній важливий контекст. Ефективнішим підходом було б щось на зразок: «Будь ласка, додайте поле title до збірки «Статті» з правилом перевірки, щоб переконатися, що воно не порожнє. Це покращить послідовність даних і дозволить нам належним чином заповнити нашу панель аналітики. » Зауважте, що додано детальну інформацію — назву певного поля, вимогу щодо перевірки і обґрунтування цього поля. Цей рівень специфічності є ключовим для зменшення неоднозначності і забезпечення того, щоб кожен розумів запланований результат. Аналогічно, розмови у Slack часто включають нюансовані запити: « Чи можете ви дослідити, чому користувачі не бачать оновлений вміст? » Яскравішою відповіддю може бути: « Давайте розглянемо шар кешування, щоб визначити, чи правильно зміни розповсюджуються після розгортання. » Різниця полягає не лише у словнику, але і у * точності * виразу.

Крім того, Payload сильно покладається на hooks — невеликі шматки коду, які запускаються в певних точках життєвого циклу системи. Опис їхньої мети вимагає обережного вимови. Замість того, щоб сказати « Впровадити гачок », ви можете сказати: « Впровадити гачок « передзбереження » для збірки « Статті », щоб очистити вхідні дані користувача і запобігти уразливостям XSS ». Таким чином ви негайно повідомите про дію і * причину *, яка стоїть за нею — найкращі практики безпеки. Знання цих тонкощів значно поліпшить вашу здатність ефективно співпрацювати з іншими розробниками, робити значний внесок у документацію і, зрештою, створювати надійні і зручні для підтримки програми Payload CMS.

Ось приклад того, як ви можете використовувати payload-cli для керування збіркою:

payload collections create articles --schema "title: string, content: text"

Ця команда демонструє структурований спосіб, в який ми описуємо наші потреби під час взаємодії з інструментами Payload - це не просто про * запуск * команди, але про визначення того, що ця команда * робить *. Звернення уваги на цей рівень деталізації допоможе вам глибше зануритися у світ розробки Payload CMS.

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

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

Освоєння англійської лексики для Payload CMS: збірки, поля, контроль доступу і гачки, пояснення для розробників, які створюють платформи з безголовковим вмістом.

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

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

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

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