Javascript и Front-end в целом становятся все сложнее и сложнее. На мой взгляд, стандартная поставка Rails не отвечает современным потребностям Front-end разработчика. К тому же использование Sprockets делает ваш код очень Rails-специфичным, что затрудняет он-бординг новых разработчиков, незнакомых с Rails.
В данном видео, на примере простого React.js приложения, я покажу, как можно мигрировать со Sprockets на Browserify.
Этот подход дает следующие бонусы:
Управление зависимостями Javascript пакетов через npm;
Лучший туллинг и интеграция с IDE;
Уменьшение связности фронтенда и бекенда;
Возможность выделения фронтенда в отдельное приложение и репозиторий. Что может не являться бонусом на первый взгляд, но довольно удобно, когда вы работаете большой командой над большим приложением.
Код приложения доступен на гитхабе: https://github.com/nLight/tutorial-rails-react-browserify
Javascript и Front-end в целом становятся все сложнее и сложнее. На мой взгляд, стандартная поставка Rails не отвечает современным потребностям Front-end разработчика. К тому же использование Sprockets делает ваш код очень Rails-специфичным, что затрудняет он-бординг новых разработчиков, незнакомых с Rails.
В данном видео, на примере простого React.js приложения, я покажу, как можно мигрировать со Sprockets на Browserify.
Этот подход дает следующие бонусы:
Управление зависимостями Javascript пакетов через npm;
Лучший туллинг и интеграция с IDE;
Уменьшение связности фронтенда и бекенда;
Возможность выделения фронтенда в отдельное приложение и репозиторий. Что может не являться бонусом на первый взгляд, но довольно удобно, когда вы работаете большой командой над большим приложением.
Код приложения доступен на гитхабе: https://github.com/nLight/tutorial-rails-react-browserify
О JS модулях, которые можно использовать в браузере и на сервере. Об их взаимодействии и внешних зависимостях. Меньше теории, больше практики. В рамках курса молодого бойца мы реализуем простое и весьма оригинальное приложение на базе Node.JS: ToDo-лист. Для этого нам предстоит:
«Завести» кроссплатформенные модули на базе фреймворка Express;
Научить их работать с платформозависимыми коллегами;
Создать транспортный уровень между клиентом и сервером;
Helios Kernel — это библиотека для управления зависимостями между javascript-модуями, реализующая «классический» подход, часто встречаемый в других языках и средах — с помощью функции include().
Такой способ отличается от других подходов своей простотой: зависимости перечисляются в начале модуля по точному пути к файлу, тело модуля содержит код, который выполняется после загрузки зависимостей модуля.
Helios Kernel придерживается принципа KISS, поэтому здесь отсутствуют некоторые возможности, которые сегодня принято ожидать от библиотеки по управлению зависимостями. При использовании Helios Kernel не нужно описывать конфиг с правилами поиска путей для разных модулей, или экспортировать библиотечные функци через специальный объект. Но эта библиотека была написана как раз потому, что хотелось просто подключать нужные модули и писать код, не натыкаясь на крутые возможности при указании каждой новой зависимости.
Helios Kernel поддерживает динамическую загрузку (и выгрузку) зависимостей в рантайме, а сама библиотека и формат модулей являются совместимыми между nodejs и броузерной средой — то есть модули можно использовать без изменений или трансляции.
В этой статье классический подход реализованный в Helios Kernel сравнивается с управлением зависимостями с помощью RequireJS и показывается, каким образом подход Helios Kernel позволяет избежать некоторых сложностей.