Скидки до 20% + 2-ая профессия бесплатно и подарки на 50 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
Похожие статьи
Рекомендуемые программы
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря