Разговор пойдет именно про JavaScript и ничего больше.
Давно мучаюсь от мысли, что часто приходится переносить функции из проекта в проект и, поскольку я не очень-то люблю файлики типа common.js или utils.js, где свалено всё в кучу, иногда даже приходится держать эти функции в разных файлах. В этом-то и состоит суть проблемы. Хочется иметь большую переносимость, при этом не загромождая глобальную область видимости и, соответствено, не использую префиксов функций.
Недавно я смотрел Java и мне очень понравилось то, как там подключаются пакеты, и я подумал, что это может мне помочь в решении проблемы. Я не мастер в JavaScript и Java, и будет много неверных конструкций и прочено, но мне искренне интересны мнения людей по поводу задумки. Я назвал проект jpack по аналогии с jQuery, но хочу отметить, что это не конкурент jQuery — jpack, решает другую задачу.
Репозиторий: github.com/arturgspb/jpack/
Примеров и пакетов пока мало — просто из-за того, что возможно и не будет смысла дальше развивать, если дело гиблое людям будет не интересно.
Для тех, кому лень поднимать проект:
<!-- Подключаем основной и единственный файл -->
<script data-main="scripts/main" src="../js/jpack.js"></script>
<script type="text/javascript">
<!-- Настраиваем путь подключения пакетов (по-умолчанию /js/packages/) -->
jpack.setPackagesPath('../js/packages');
<!-- Настраиваем какие пакеты/модули подгрузить -->
jpack.load('jpack/utils');
jpack.load('jpack/system/out');
</script>
А в body пишите:
<script type="text/javascript">
jpack.run(function(){
var date1 = '2012-01-02'
var date2 = '2012-02-02';
var counter = jpack.utils.datetime.getDateDiff(
new Date(date1), new Date(date2)
);
jpack.system.out.println('Разница времени: ' + date1 + ' и ' + date2 + ':');
jpack.system.out.println('Недель: ' + counter.week);
jpack.system.out.println('Дней: ' + counter.day);
});
</script>
Для заключения. Я понимаю, что подгрузка скриптов разными файлами не оптимальна — проект еще совсем молод и хотелось показать рабочую модель а не оптимальную структуру. Хотелось бы узнать мнения именно по модели работы библиотеки. Как улучшить саму суть.
Спасибо за внимание.
Автор: arturgspb