RS Tandem — Observer
RS School: Connecting people, growing together, having fun
Issue #3
Четвёртая неделя. Видео-презентации сданы, код обрастает фичами, а в дневниках — честные разборы авторизации, CORS и командных решений. Tandi подводит итоги.
10 марта 2026 г. в 1736 teams
Герой недели

Фронтендер против бэкенда: хроника невозможного

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: как не заметить вики

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