Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

Описание

Цель: научиться создавать защищенные (экранированные) друг от друга контексты для библиотек, разделять код на два слоя абстракци (прикладной и системный) и запускать прикладной код в искуственной среде, меняя его поведение по принципу IoC из системного кода.

Файлы

  • framework.js - небольшая часть фреймворка, необходимая для демонстрации IoC
  • application.js - часть приложения для демонстрации IoC

Запуск

Из командной строки можно набрать node ./framework.js или node framework

Задания

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

  1. Пробросить в контекст приложения setTimeout и setInterval и использовать их, выводя console.log() с таймера

  2. Пробросить в контекст приложения библиотеку util и сделать вызовы нескольких ее функций из приложения

  3. Сделать возможность запускать фреймворк с разными приложениями, через параметр командной строки: node framework <applicationName>

  4. Обернуть вызов console.log() в песочнице приложения, чтобы добавить в вывод дополнительные данные: <applicationName> <time> <message>

  5. Обернуть вызов console.log() в песочнице приложения, для дублирования записи в файл в формате: <applicationName> <time> <message>

  6. Пробросить в приложение require и обернуть в песочнице для логирования, вызывать и логировать вызовы в файл в формате: <time> <module name>

  7. Экспортировать из приложения хеш с несколькими функциями и переменными и распечатать их список из фреймворка с указанием типов

  8. Экспортировать из приложения функцию и вывести из вфреймворка исходник функции и кол-во ее параметров

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

  10. Сравнить ключи в контексте песочницы до загрузки приложения из фреймворка и после этого, вывести разницу (какие ключи добавились, а какие удалены).

Дополнительные задания

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

  2. Написать аналогичный пример на другом языке программирования

  3. Изучить, улучшить и/или оптимизировать код по работе с песочницами в Impress Application Server, см.: /lib/impress.application.js

  4. Использовать принципы IoC и изоляции кода через контексты, песочницы и/или другие аналогичные механизны в своем проекте (на любом стеке технологий) и продемонстрировать его работу и эффект использования IoC