Англійська для розробників Chi Router
Вивчає англійську лексику для легкого HTTP- маршрутизатора Chi, Go: ланцюги проміжного програмного забезпечення, групи маршрутів і контекстні значення.
Мінімалістичний дизайн Chi означає, що обговорення покладаються на невеликий, точний словник — середній ланцюг, група маршрутів, контекстне значення — і отримання цих термінів точно правильно, тому що Chi навмисно уникає «магії» важчих фреймворків.
Ключовий словник
** Ланцюг посереднього програмного забезпечення ** — упорядкована послідовність функцій обробки обгортання, застосованих до запиту перед тим, як він досягне кінцевого обробника маршруту, виконаних у порядку їх реєстрації.
- “Пересунути проміжне програмне забезпечення автентифікації на верхній рівень ланцюга — зараз спочатку виконується журналювання, яке записує запити, які так чи інакше буде відхилено нижче.” *
** Група маршрутів ** — спосіб обмеження набору маршрутів і середовища разом за спільним префіксом або умовою, за допомогою r.Route() або r.Group(), без дублювання налаштувань на маршрут.
- “Покласти всі кінцеві точки адміністратора у власну групу маршрутів, щоб проміжне програмне забезпечення, призначене тільки для адміністратора, обгортало лише ці маршрути, а не весь API.” *
** Контекстове значення ** — дані, що передаються через context.Context запиту, зазвичай використовуються в Chi для перенесення таких речей, як автентифікована інформація користувача з середовища до обробників.
“Обробник панікує, оскільки він читає контекстне значення, яке ніколи не було встановлено — перевірте, чи посереднє програмне забезпечення, яке встановлює це значення, дійсно запущено першим.”
** URL параметр ** — названий, динамічний сегмент шляху маршруту, наприклад {id} у /users/{id}, який можна отримати у обробнику за допомогою chi.URLParam().
“Не аналізуйте адресу URL вручну — Chi вже надає вам параметр URL безпосередньо, тому просто викликайте chi.URLParam(r, "id").”
** Mux ** — основний об’ єкт маршрутизатора Chi, скорочення від multiplexer, відповідальний за підбір вхідних запитів до правильного обробника на основі методу і шляху. “Змонтуйте цей підмаршрутизатор на головний mux замість дублювання маршрутів — це той самий шаблон, який використовує Chi для складання API з менших частин.”
Звичайні фрази
- «Де це середнє програмне забезпечення сидить в ланцюзі — перед або після запуску аутентифікації?»
- Чи має це бути власна група маршрутів, чи вона достатньо мала, щоб залишитися з головними маршрутами?»
- «Чи це контекстне значення насправді встановлюється вгорі, або обробник читає щось, що ніколи не було заповнене?»
- Чи ми використовуємо Chi’s URL parameter helper, або розбираємо шлях вручну десь?»
- «Це змонтовано на головному mux, або це все ще окремий, не підключений маршрутизатор?»
Приклади висловлювань
Зневадження проблеми з впорядкуванням середовища: “Обмежувач швидкості пропускає неавтентифіковані запити, оскільки він запущено перед середнім програмним забезпеченням автентифікації в ланцюзі — змінити порядок їх виконання, щоб автентифікація відбулася спочатку.”
Пояснення вибору архітектури:
- “Ми розділилися API на групи маршрутів за рівнем дозволів, тому адміністративне середовище обгортає лише групу маршрутів, які дійсно потребують цього.” *
Перегляд запиту на звантаження: “Ця обробка аналізує ідентифікатор з необробленого рядка URL — замість цього скористайтеся допоміжним параметром URL Chi, він вже робить пошук за вас.”
Професійні поради
- Скажімо ** ланцюг середнього рівня ** при обговоренні порядку виконання — поведінка Chi повністю залежить від порядку, і точне його названня допомагає діагностувати помилки, коли обробка запитів відбувається в неправильній послідовності.
- Використовуйте група маршрутів замість «розділ» або «блок» при описі того, як маршрути і середнє програмне забезпечення обмежені разом — це фактичний механізм Chi для цього обмеження.
- Посилання ** контекстне значення **, особливо при зневадженні даних, що передаються між середнім програмним забезпеченням і обробниками — це пояснює, що проблема стосується
context.Context, а не глобального стану. - Називайте маршрутизатор mux в розмові з іншими розробниками Go — це традиційний термін і сигналізує про знайомство з екосистемою Go
net/http, а не тільки з Chi.
Практичні вправи
- Пояснити, чому порядок проміжного програмного забезпечення у ланцюзі має значення, використовуючи приклад автентифікації.
- Опишемо, що таке група маршрутів і коли ви її використовуєте.
- Напишіть речення, у якому буде пояснено, яким чином контекстне значення перетворюється з проміжного програмного забезпечення у обробник.
Наприклад, англ. browse — переглядати, англ. search — шукати
Основний словник Chi — такі терміни як middleware, route group, і context value — є ключовими для ефективної співпраці. Однак, просто знати визначення недостатньо. Професійна англійська мова в розробці програмного забезпечення полягає в передачі точних намірів, розумінні тонких наслідків і конструктивному участі в дискусіях. Багато нерідних носіїв знаходять цей рівень нюансів викликом, часто за замовчуванням до буквальних перекладів, що можуть призвести до непорозумінь або незграбного фразування. Давайте розглянемо деякі типові сценарії, де трохи більш складний підхід дійсно робить різницю.
Розглянемо коментар перегляду коду у запиті на звантаження: « Цю групу маршрутів слід уточнити ». Прямим перекладом може бути « Ця група маршрутів потребує подальшого уточнення ». Хоча це технічно правильно, у цьому коментарі відсутні важливі відомості про те, * чому * переглядач пропонує зміни. Замість цього, рідний мовець, ймовірно, сказав би щось на зразок: « Поточний маршрут групи конфігурації здається надто широким; чи не могли б ми розглянути можливість зменшення критеріїв відповідності або додавання більш специфічних умов для поліпшення продуктивності і зменшення потенційних конфліктів? » Це пояснення надає контекст — занепокоєння щодо продуктивності і розв’ язання конфліктів — робить зворотній зв’ язок дієвим. Аналогічно, коли ви описуєте зміни у описі Запиту на звантаження, не перераховуйте лише те, що ви зробили. Розкажіть, чому ви це робите, і зв’яжіть зміни з більшими цілями. Хорошим прикладом буде: «Вреалізована нова група маршрутів для запитів автентифікації користувача для посилення безпеки і спрощення обробки»
Іншою частою ситуацією є спілкування в командних каналах, таких як Slack. Просте « Я виправив ваду » можна покращити за допомогою « Виправлено проблему, коли через застарілу конфігурацію маршрутизації поверталися неправильні дані. Я оновив ланцюг middleware, щоб забезпечити належну перевірку перед пересиланням запитів. ” Це демонструє не тільки * що * ви зробили, але * чому * це важливо і як це пов’язано з більш широкою системною архітектурою. Зверніть увагу на використання активного голосу — « Я виправив » є більш прямим і впевненим, ніж « Ваду було виправлено ». Нарешті, не бійтеся запитати про пояснення. Якщо ви не впевнені в термінах або фразуваннях, ввічливо запитайте пояснення: «Чи можете ви розібратися, що ви маєте на увазі під «оптимізацією середнього конвейєра» в цьому контексті?»
chi route list --group=users
Ця проста команда показує, як описано структуру маршрутизації Chi — « групу маршрутів » з назвою « користувачі ». Під час обговорення складних маршрутів з колегами, обов’ язково слід звертатися до цих блоків і їх взаємозв’ язків. Пам’ятайте, чітке спілкування не про надмірну розмовність; це про передачу вашого розуміння точно і ефективно.