<MyRusakov.ru />

Создание приложений для Android с нуля

Создание приложений для Android с нуля

Данный курс научит Вас создавать приложения любой сложности для Android. Курс состоит из 16-ти разделов, из которых Вы узнаете, как создавать свои собственные приложения для Android.

В курсе содержится вся необходимая теория, а также множество практических примеров, в том числе, и из моей личной практики.

Просмотрев данный курс и выполнив упражнения из него, Вы сможете создавать приложения любой сложности для самой популярной мобильной ОС в мире - Android.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Введение в JavaScript модули. Часть 1

Введение в JavaScript модули. Часть 1

В данном цикле статей будут рассмотрены модули ES6, а также будет показано, как они могут использоваться с помощью транспилятора.

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

Выгоды:

  1. Код можно разделить на более мелкие файлы с собственной автономной функциональностью.
  2. Одни и те же модули могут использоваться в любых других приложениях.
  3. В идеале, модули никогда не должны проверяться другими разработчиками, потому что они доказали свою эффективность.
  4. Код, ссылающийся на модуль, понимает, что это зависимость. Если файл модуля будет изменен или перемещен, проблема сразу становится очевидной.
  5. Модуль кода, как правило, помогает исключить конфликты имен. Функция x() в модуле module1 не может пересекаться с функцией x() в модуле module2, так как эти функции находятся в разных пространствах имен, поэтому вызовы этих функций принимают вид module1.x() и module2.x().

Где же модули в JavaScript?

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

Несколько тегов

Браузер может загружать любое количество JavaScript файлов, используя несколько тегов :

 <script src="lib1.js"></script>
  <script src="lib2.js"></script>
  <script src="core.v1.js"></script>
  <script>
   console.log('некоторый код');
  </script>

В среднем на веб-странице в 2018 году используется 25 отдельных скриптов, но это не практическое решение:

  • Каждый сценарий инициирует новый HTTP-запрос, который влияет на производительность страницы. HTTP версии 2 облегчает проблему до некоторой степени, но это не помогает скриптам, указанным в других доменах, таких как CDN.
  • Каждый скрипт останавливает дальнейшую обработку во время ее запуска.
  • Управление зависимостями - это ручной процесс. В приведенном выше коде, если lib1.js ссылается на код в lib2.js, а lib2.js не найден, произойдет ошибка. Это может привести к дальнейшей остановке в обработке вообще всего остального JavaScript кода на странице.
  • Функции из одного файла могут переопределять другие функции в другом модуле, если не используются соответствующие шаблоны модулей. Ранние библиотеки JavaScript были известны тем, что используют глобальные имена функций или определяют собственные методы.

Конкатенация скриптов

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

Загрузчики модулей

Такие системы, как RequireJS и SystemJS, представляют собой библиотеку для загрузки и создания пространства имен для других библиотек JavaScript во время выполнения. При необходимости модули загружаются с использованием методов Ajax. Эти системы помогают, но могут несоизмеримо усложниться для более крупных кодовых баз или сайтов.

Модульные сборщики, препроцессоры и транспиляторы

Бандлеры (сборщики модулей) добавляют дополнительный шаг в процесс компиляции, поэтому код JavaScript генерируется во время сборки. Код обрабатывается для включения зависимостей и создания одного объединенного файла кроссбраузерно совместимого с ES5. Наиболее популярные бандлеры Babel, Browserify, webpack, а также Grunt и Gulp, ориентированные на более широкий спектр задач.

Процесс сборки JavaScript кода требует определенных усилий, но есть и преимущества:

  • Обработка автоматизирована, поэтому вероятность человеческих ошибок меньше.
  • Дальнейшая обработка может продолжатся в направлении статического анализа кода, отладки, минимизации полученного файла и т. д.
  • Транспилирование позволяет использовать альтернативные варианты JavaScript, такие как TypeScript или CoffeeScript.

На этом все, а в следующих статьях мы продолжим изучать модули в JavaScript.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.