RequireJS by habrahabr.ru/post/209228