До 30 ноября

Скидки до 81 000 руб и вторая профессия в подарок!

Главная | Все статьи | Дневник студента

✓ Проект «Лента новостей» (frontend): пройдено

Время чтения статьи ~2 минуты
Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
✓ Проект «Лента новостей» (frontend): пройдено главное изображение

Завершила третий проект. Начала я его 19 июля, 1 августа отправила на первую проверку, и 22 августа спустя 6 проверок ментор принял проект.

Было даже сложнее, чем с предыдущим. Но не менее увлекательно и полезно. Улучшила свои навыки работы с вебпаком, бутстрапом, попрактиковала watchjs и немного освоила автоматы (для этого даже начала читать сответствующую книгу). Кроме того, разобралась как работают кастомные события на нативном JS, иначе неловко было пользоваться jquery, не зная, как оно внутри устроено.

Основной сложностью здесь была архитектура и автоматы. Я начала писать проект на классах, потому что в бойлерплейте лежали они. Сначала у меня был один большой класс, потом я попыталась выделить несколько отдельных классов. Но классы не получались, получился набор рандомных методов. Пришлось переписывать на функции.

И вроде бы я знала, что функции нужно писать по возможности чистыми, но в начале у меня вышло так, что каждая функция мутировала стейт.

Я вроде бы помнила, что такое MVC, и какой слой за что должен отвечать. Однако всё равно продолжала путаться, пока не выделила для себя следующие правила: 1) вотчеры должны только перестраивать DOM и не изменять стейт, 2) листенеры должны только изменять стейт и не перестраивать DOM.

Пока у тебя немного опыта, сложно понимать, где у тебя хак-костыль или излишний код, а где — подходящий приём программирования. Иногда эти понятия путаются.

Поэтому после того, как тебе говорят, что не выделены абстракции, ты начинаешь разбивать функцию на множество мелких абстракций до такой степени, что разобраться в коде становится невозможно. Хотя ты этого не видишь, а думаешь, что сделал всё правильно. Очень трудно прочувствовать эту грань.

Или когда ты въезжаешь в концепцию MVC, и начинаешь переписывать встроенные функции бутстрапа так, чтобы DOM перестраивался через вотчеры, а на стандартные события навешиваешь изменение состояния, но потом оказывается, что так делать не нужно, и нужно пользоваться готовыми абстракциями библиотеки.

Если на втором проекте приходилось больше голову ломать над тем, чтобы хоть как-нибудь добиться нужного результата, после чего комментарии ментора давали однозначное понимание, куда двигаться дальше. Здесь же добиться требуемого результата не так уж сложно, но очень сложно сделать это правильно. Для этого приходилось часто задавать вопросы Кириллу, иначе сложно было двигаться вперёд. А над полученными ответами нужно было подолгу размышлять, чтобы уловить суть.

Кириллу — великая благодарность.

Теперь сегодня я попробую выспаться (утопия), а с завтрашнего дня — приступаю к четвёртому долгожданному проекту.

Аватар пользователя Irina Nikolaidi
Irina Nikolaidi 23 августа 2019
16
Рекомендуемые программы
профессия
Осваивайте разработку веб-страниц, оживляйте дизайн макетов, публикуйте сайты и приложения. Отслеживайте ошибки в интерфейсе и устраняйте их
10 месяцев
с нуля
Старт 28 ноября
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 28 ноября
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 28 ноября
профессия
Научитесь разработке веб-приложений, сайтов и программного обеспечения на языке Java, программируйте и используйте структуры данных
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
9 месяцев
с нуля
Старт 28 ноября
профессия
Занимайтесь созданием сайтов, веб-приложений, сервисов и их интеграцией с внутренними бизнес-системами на бекенд-языке PHP
10 месяцев
с нуля
Старт 28 ноября
профессия
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 28 ноября
профессия
Обучитесь разработке визуальной части сайта — фронтенда, а также реализации серверной — бэкенда. Освойте HTML, CSS, JavaScript
16 месяцев
с нуля
Старт 28 ноября
профессия
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Организовывайте процесс автоматизации тестирования на проекте, обучитесь языку программирования JavaScript, начните управлять процессом тестирования
8 месяцев
c опытом
Старт 28 ноября