Как делать тестовые лучше всех. Часть 2/3
Это продолжение первой статьи (тык), где я рассказывал, как важно «упаковывать» свое решение.
Там были очень важные советы о том, какой контент и какая повестка должна окружать проверяющего при изучении твоей работы.
Теперь же переходим к более тонким, конкретным и технических вещам. Расскажу про то, что должно быть в твоем тестовом, чтобы не просто пройти дальше, а вызвать сильно наитие с тобой пообщаться.
💡 Важно!
Самое главное — выполнить ТЗ и уложиться в дедлайн. Все советы ниже — это вишенка на торте. Делай их, если есть время и они не противоречат заданию.
🎨 UI/UX: твой проект должен быть приятен глазу и удобен в работе
1. Loader / Progress bar
Сколько раз ты нажимал кнопку на сайте и думал: «Зависло или грузится?» Сделай нормальный лоадер и избавь проверяющего от этого вопроса. Это еще и повод бахнуть interceptor, что только в плюс.
2. Адаптивность
Если в ТЗ ничего не сказано про адаптив — сделай. Никто не хочет открывать твое тестовое в туалете и видеть поехавшую верстку.
3. Шрифты и стили
Нет дизайна? Не используй стандартный Times New Roman, ты не в Word’е работаешь. Добавь нормальный шрифт, сделай красиво.
4. Анимации
Добавь хоть что-то: плавную навигацию, мелкие эффекты, даже банальный opacity. Но не просто на CSS, а через @angular/animations. Так ты покажешь, что умеешь работать с движком Angular.
5. 404-страница
Если времени в обрез — редирект на главную. Если время есть — сделай нормальную кастомную страницу с 404-ошибкой. SSR? Пусть сервер реально отвечает 404, а не просто SPA-шка рендерит что-то.
🚀 Технический уровень: покажи, что ты не вчера начал писать код
6. Языки и переводы
Если язык не указан — бери язык вакансии. Если русская вакансия, но твое тестовое на английском — добавь русский. И обязательно используй ngx-translate. Никто не пишет тексты в HTML в нормальных проектах.
7. SSR и метатеги
Если SSR ты предусмотрел — сделай, чтобы метатеги обновлялись при смене языка. Описал это подробно в первой части, не поленись прочитать.
8. Фавикон
Выделись. Тестовое с дефолтным Angular-логотипом — это сразу минус в карму. Закинь favicon.ico, это занимает 3 секунды.
9. Форматы изображений
Забудь про jpg и png. Используй webp и avif. Они меньше весят, грузятся быстрее, Google их любит. У avif лучше сжатие, но хуже поддержка браузерами. Почитать про их поддержу можно здесь: avif, webp.
10. Guard’ы
Если есть авторизация, не давай гостю лазить туда, где он не должен быть. Используй CanMatch и другие гварды.
⚡ Производительность: тестовое должно летать
11. OnPush и Zoneless Change Detection
В 2025 году делать без ChangeDetectionStrategy.OnPush — это уже зашквар. А чтобы выделиться - добавь provideExperimentalZonelessChangeDetection. Сам проверяющий, возможно еще с эти не сталкивался.
12. Lazy loading
Реальные проекты без ленивой загрузки — редкость. Делай loadChildren, loadComponent, чтобы не грузить все сразу.
13. NgRx
ТЗ не говорит, какой стейт-менеджер использовать? Бери NgRx. Он самый популярный, и это очевидный выбор. Вот здесь сравнение его с конурентами. Используй новый пушечный Signal Store, он уже в продакшене.
14. Оптимизация ресурсов
Используй ngSrc, если грузишь картинки. Angular сам разберется, когда их подгружать, вместо тебя.
🛠️ Код должен быть чистым, понятным и профессиональным
15. ESLint и Prettier
Вообще не обсуждается. Сделай ng lint, убери варнинги, настрой форматирование. Код должен быть идеален.
16. Алиасы для импортов
Пропиши алиасы в tsconfig.json, никто не хочет видеть в коде:
import { Component } from '../../../../../../../components'
17. README.md
Если твой проект не запускается за минуту — ты облажался. Опиши в README.md, как установить зависимости, как запустить и что вообще ты сделал.
18. Тесты (Jest + Cypress)
Добавь unit-тесты на важную логику. А если есть время — еще и E2E на базовые сценарии. Ты не должен оставлять впечатление, что твой код сломается при первом же изменении.
19. CI/CD
Добавь в GitHub Actions хотя бы простую проверку сборки и линтера. Покажи, что ты знаешь, как работают CI-пайплайны.
⌚ Все должно работать как часы и не вызывать вопросов
20. Финальная проверка перед отправкой
Перед тем, как сдать тестовое, проверь:
✅ Нет ошибок в консоли
✅ Нет ошибок в запросах
✅ Нет ошибок в терминале и при сборке
✅ Нет лишних запросов
✅ npm install не выдает ошибок и варнингов
✅ ng lint проходит без проблем
✅ Lighthouse 100/100/100/100 (angular 19 + ssr - это реально). Вот мой стартовый проект:
✅ Open Graph настроен (проверить здесь)
✅ HTML валидный (проверить здесь)
💡 Итог
Если ты сделаешь хотя бы половину из этих пунктов и финальную проверку — твое тестовое будет на голову выше большинства. А если все 20 — оно будет незабываем и превратиться в первое свидание.
В следующей части я расшарю свой стартовый проект и сделай полный обзор на него. Соответственно, ты сможешь его форкнуть, если не хочешь писать свой и начинать делать тестовые уже с 🚀🔥
ищу работу
тестовое
angular