Issue #3
“Четвёртая неделя. Видео-презентации сданы, код обрастает фичами, а в дневниках — честные разборы авторизации, CORS и командных решений. Tandi подводит итоги.”
10 марта 2026 г. в 1736 teams
Герой недели
Фронтендер против бэкенда: хроника невозможного
sevasmithTeam42
sevasmith пришёл на курс фронтенда, а уезжает — судя по всему — фулстеком. Его задача в Team42 звучала просто: подключить AI-компонент. На практике это означало разобраться с Edge Functions, Supabase, Groq API, CORS-политиками и JWT-авторизацией — без единого учебного материала по теме.
Шестнадцать часов за один день. Сервер не пускал, токены совпадали, но ответ был один — 401. «Я проверял вручную через консоль, сравнивал токены, добавлял хедеры руками», — пишет sevasmith. Разгадка оказалась в legacy secret, который Supabase включает при деплое автоматически. Когда проверку отключили — Грок наконец ответил.
Но sevasmith не остановился на «работает». Следом появилась защита от prompt injection, от попыток сломать формат ответа, от обхода рубрик. Это уже не ученическое «лишь бы заработало» — это инженерный подход.
«Заканчивая курс по фронтенду, я должен разобраться с бэкендом, реактом и AI-агентами, хотя по ним никаких учебных материалов не было», — честно признаётся он. И разбирается. Восемь, шестнадцать часов подряд — пока не заработает.
Highlights
- sevasmith: 16 часов за день на отладку Edge Functions + CORS + JWT
- Реализовал защиту от prompt injection и обхода системных промптов
- Нулевой бэкенд-опыт → рабочая интеграция Supabase + Groq за неделю
Грабли недели
Шесть часов, документация и друг GPT: как не заметить вики
Oksi2510ngKittyDebug
Oksi2510 из ngKittyDebug села разбираться с переключением языков через Transloco. Читала документацию, смотрела лекции, спорила с ChatGPT — шесть часов упорной, честной работы. И она действительно разобралась. А потом тимлид Мария обронила между делом: Павел давно добавил готовую инструкцию в вики проекта.
«Примерно 6 часов я читала документацию, смотрела лекции и спорила с другом GPT. Зато разобралась сама, как это делать», — пишет Oksi2510 в дневнике в 2:15 ночи. И тут же добавляет с фирменной самоиронией: «Думаю, к завтрашнему утру я это забуду».
Эта история — не про глупость. Окси не побоялась нырнуть в незнакомую технологию с нуля, в команде, где Angular для неё — терра инкогнита. Но шесть часов можно было превратить в тридцать минут одним сообщением в чат: «Кто-нибудь уже трогал Transloco?» Это не слабость — это инженерная зрелость: знать, когда спросить, прежде чем копать.
Урок для всех: перед тем как открывать документацию — загляните в вики проекта и напишите команде. Иногда лучший друг разработчика — не GPT, а Ctrl+F по вики.
Highlights
- Oksi2510: 6 часов на Transloco — решение уже лежало в вики проекта
- Дневник написан в 2:15 ночи после 8 часов непрерывной работы
- ngKittyDebug: вики ведётся активно, но не все в команде знают о её существовании
Кейс недели
Один человек, четыре библиотеки и право выбора
Команде Typocalypse нужен был стейт-менеджмент. Казалось бы — задача на полчаса гугления. Но вместо того чтобы по привычке поставить Redux Toolkit и забыть, команда поступила иначе: делегировала решение одному человеку и дала ему полную свободу.
YessetHumanMan получил мандат на исследование. На столе лежали четыре кандидата: Redux Toolkit — тяжеловес с бойлерплейтом, но предсказуемый как швейцарские часы. MobX — магия реактивности, которая либо восхищает, либо пугает. Zustand — минималист, который умещается в один файл. И Signals — новичок, за которым стоит хайп, но не стоит экосистема.
На решение ушло несколько дней. «State management выбран осознанно — нужен лёгкий и гибкий инструмент без лишней сложности», — пишет YessetHumanMan. Победил Zustand. Аргументация прагматичная: для учебного проекта Terminal Dojo, где фронтенд общается с бэкендом через API, не нужен церемониальный Redux с его слайсами и мидлварами. Нужен стор, который можно поднять за час и не объяснять команде три дня.
Интересен сам процесс. YessetHumanMan не просто установил пакет — он вынес стор в отдельный слой, написал первые селекторы для прогресса пользователя и подключил к модулю миссий. К 1 марта компоненты уже читали состояние через Zustand, а под ними лежал «понятный скелет под дальнейшие фичи».
Кейс показывает важную вещь: в командном проекте не обязательно голосовать за каждое техническое решение. Иногда эффективнее доверить выбор тому, кто готов нести ответственность — и дать ему пространство для исследования.
yessethumanmanTypocalypseИсследовал Redux Toolkit, MobX, Zustand и Signals — выбрал Zustand за лёгкость и отсутствие лишней сложности
Aha! Moments
Aha! Moments
sevasmithTeam42Границы ответственности и CORS-механика
я не должен понимать абсолютно всё и разбираться во всём, но должен в первую очередь разобраться со своей задачей
Редкий случай, когда человек одновременно разобрался в preflight-запросах, JWT-потоке и Edge Functions — и при этом сформулировал главное: не нужно знать всё, нужно знать своё. Зрелость, которую некоторые сеньоры ещё не освоили.
dilmun1101Strict ModeАнатомия авторизации: токены, состояние, безопасность
Теперь я понимаю, что токены позволяют пользователю работать с приложением без постоянного ввода логина и пароля: access token используется для мгновенного доступа, а refresh token помогает обновлять этот доступ, когда первый истекает.
Не пересказ документации, а собственная модель: зачем два токена, почему клиентское состояние — не серверное, и где прячутся XSS-уязвимости. Когда студент объясняет auth-flow своими словами и ты веришь каждому слову — это оно.
katerynamoskalenkoAuto-Team 7Разделение ответственности в компонентах
setupCheckLogic does NOT know which option the user selected and does NOT store the state. It queries QuizScreen for the state using the getSelected function.
Три инсайта за неделю: separation of concerns в quiz-компонентах, двухслойная архитектура состояния и — вишенка — radio-инпуты вместо кнопок ради скринридеров. Когда человек думает не только о том, чтобы работало, но и о том, для кого это работает.
annadzigSAA CatFirebase как полноценный бэкенд
At first I thought Firebase was just 'some login service'. But the more I read, the more I understood it basically replaces backend authentication completely.
Классическая история пересмотра масштаба: зашла за логин-кнопкой, а обнаружила целый бэкенд. Бонусом — открытие, что запись обучающего видео заставляет переосмыслить структуру собственного кода. Объясняешь другим — понимаешь сам.
swetlanaangGang of FourReact reconciliation через реальный баг
это помогло мне в реале ощутить что такое diffing и reconciliation!
MUI-поля после reset сохраняли стили, и вместо костыля с `!important` — инкремент `formKey` для принудительного remount. Теория из документации стала физически ощутимой через дебаг. Лучший способ выучить reconciliation — сломать его.
nasteewАлекс и его друзьяОткрытие бэкенда и механика refresh-токенов
Раньше думала, что бэкенд — это неинтересно, а оказалось, что это очень крутая штука.
Пришла на фронтенд, а увлеклась ротацией refresh-токенов и хранением в куках. NestJS оказался не страшным монстром, а фреймворком, где авторизация собирается из пары декораторов. Иногда лучшее открытие — понять, что тебе нравится то, чего ты раньше избегал.
Teams
28ok
8caution
0alert
/
ngKittyDebug
ok▶
Typocalypse
ok▶
RainbowUnicorn
ok▶
RSSAgents
caution▶
Team42
ok▶
Джунгли зовут!
ok▶
Strict Mode
caution▶
Дрим Тим
caution▶
JSGods
ok▶
Алекс и его друзья
ok▶
VueJS Tandem
ok▶
Tuple Trouble
ok▶
asyncmind
ok▶
Nova
ok▶
DevCraft
ok▶
Outstanding Alex And Smeshariki
ok▶
Gang of Four
ok▶
Devtones
ok▶
404 Skill Not Found
caution▶
OrangeCats
caution▶
Auto-Team 3
ok▶
Auto-Team 5
ok▶
Auto-Team 7
ok▶
Т-8
ok▶
Auto-Team 9
ok▶
SkillsZen team
caution▶
Unexpected Case
ok▶
TetraTeam
ok▶
111 Blind Kittens
ok▶
CodePain
ok▶
Dev Journey
ok▶
Auto-Team 4
caution▶
DevBand
ok▶
GrowLab
caution▶
JustBuildIt
ok▶
SAA Cat
ok▶