Посвящается тем, кто уже имеет некоторый опыт в разработке интерфейса и хотел бы узнать, на чем сосредоточиться при более глубоком копании.

1. Станьте мастером в методах ES6

Стремитесь стать мастером в использовании этих методов работы с массивами: сопоставление, фильтрация, уменьшение, объединение, каждый, некоторые; и методы объекта: методы Object.keys, Object.entries, Object.values. Это основные строительные блоки функционального программирования. Также используйте другие функции ES6, такие как распространение, уничтожение, необязательная цепочка и многие другие, чтобы быть более продуктивными (не потому, что они модные).

2. Пишите свои проекты только на машинописном языке

Я не понимаю, как люди работают без машинописи, особенно на больших проектах. Это спасение жизни, и чем раньше вы начнете с ним работать, тем быстрее вы освоитесь с ним. Ваша конечная цель — сделать каждую часть кода вашего типа безопасной.

3. Изучите и примените в своем коде принципы функционального программирования

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

4. Какой фреймворк изучить первым?

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

5. Подробно изучите редукс

Очень хороший учебник по редуксу: https://egghead.io/courses/getting-started-with-redux (может потребоваться регистрация для просмотра, но он должен быть бесплатным). Следите за другими возможными решениями по управлению состоянием.

6. Начать писать модульные тесты, в основном для чистых функций.

Требуется время и усилия, чтобы начать писать тест правильно (особенно для более сложных частей программного обеспечения). Но не просто пишите тесты для всего. Начните с чистых функций.

7. Хорошо разбирайтесь в цикле событий

Очень хорошее видео: https://www.youtube.com/watch?v=8aGhZQkoFbQ

8. Изучите реактивное программирование

Это похоже на декларативный код, потому что вы объявляете, как вы хотите реагировать на изменения данных, вместо того, чтобы принудительно изменять состояние самостоятельно при изменении данных (что подвержено ошибкам).

Основным игроком в реактивном программировании являются наблюдаемые объекты. Самый простой способ попрактиковаться в работе с ними, вероятно, использовать Angular (возможно, с ngrx-store). Но сначала вы должны просмотреть множество руководств и понять, как они работают и какие преимущества они дают.

Это довольно хорошее введение: https://gist.github.com/staltz/868e7e9bc2a7b8c1f754.

Ищите другие уроки/статьи Андре Штальтца. Он популяризатор реактивного программирования. Его фреймворк https://cycle.js.org/ — прекрасный пример того, как реактивное программирование позволяет писать код практически без побочных эффектов (что является основным источником ошибок в реальном мире). Отличное видео: https://www.youtube.com/watch?v=uNZnftSksYg

9. Стремитесь работать с преданными и опытными разработчиками интерфейса

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

10. Будьте в курсе

Подпишитесь на https://javascriptweekly.com/. Этого достаточно, чтобы быть в курсе новейших технологий и тенденций.