Цель: научиться создавать защищенные (экранированные) друг от друга контексты для библиотек, разделять код на два слоя абстракци (прикладной и системный) и запускать прикладной код в искуственной среде, меняя его поведение по принципу IoC из системного кода.
framework.js- небольшая часть фреймворка, необходимая для демонстрации IoCapplication.js- часть приложения для демонстрации IoC
Из командной строки можно набрать node ./framework.js или node framework
Вы можете выбрать минимум одно задание из предложенных, сделать себе форк этого репозитория и написать код в своей ветке. Если кого-то задания окажутся простыми, то переходите к дополнительным.
-
Пробросить в контекст приложения
setTimeoutиsetIntervalи использовать их, выводяconsole.log()с таймера -
Пробросить в контекст приложения библиотеку
utilи сделать вызовы нескольких ее функций из приложения -
Сделать возможность запускать фреймворк с разными приложениями, через параметр командной строки:
node framework <applicationName> -
Обернуть вызов
console.log()в песочнице приложения, чтобы добавить в вывод дополнительные данные:<applicationName> <time> <message> -
Обернуть вызов
console.log()в песочнице приложения, для дублирования записи в файл в формате:<applicationName> <time> <message> -
Пробросить в приложение
requireи обернуть в песочнице для логирования, вызывать и логировать вызовы в файл в формате:<time> <module name> -
Экспортировать из приложения хеш с несколькими функциями и переменными и распечатать их список из фреймворка с указанием типов
-
Экспортировать из приложения функцию и вывести из вфреймворка исходник функции и кол-во ее параметров
-
Распечатать из приложения список всего, что находится в его глобальном контексте (т.е. в песочнице приложения) с указанием типов данных
-
Сравнить ключи в контексте песочницы до загрузки приложения из фреймворка и после этого, вывести разницу (какие ключи добавились, а какие удалены).
-
В своем коде вы можете скомбинировать несколько заданий из основного списка на свое усмотрение, сделав более сложный пример взаимодействия фреймворка с приложением, формировани среды исполнения (песочницы) или запуска из командной строки
-
Написать аналогичный пример на другом языке программирования
-
Изучить, улучшить и/или оптимизировать код по работе с песочницами в Impress Application Server, см.: /lib/impress.application.js
-
Использовать принципы IoC и изоляции кода через контексты, песочницы и/или другие аналогичные механизны в своем проекте (на любом стеке технологий) и продемонстрировать его работу и эффект использования IoC