автоматизация рутины
Рассказ о том как я избавляюсь он некоторого колличества рутинной работы. Хотелось бы услышать кто что думает? Может кто то знает более красивые решения? Вообще занимается кто нибудь подобной ерундой? Я относительно недавно к этому пришёл.
Структура каталога js-скриптов: Код:
- js/ - Также в папке "js" лежит файл "javascript.php". Он подключает скрипты на страницу. Либо "исходники", либо сжатые файлы, в зависимости от $_SERVER['HTTP_HOST'];. В "javascript.php" дял каждого файла определён массив вида: array('version' => 'x.xx', 'pages' => array('xxx', 'yyy')), где version - версия скрипта, pages - разделы сайта к которым скрипт подключается. На сервере настроено кеширование (заголовки Expires , Cache-Control). - Сжатие скриптов производится Google Closure Compiler'ом. Есть скрипт генерирующий инструкци для командной строки запускающие сжатие скриптов. - Папки script_1, script_2, ... script_n добавлены в список исключений в настройках развёртывания WebStorm. Итого (как всё происходит): 1. Пишем код добавляя/удаляя файлы в папках script_x. Заботиться о подключении не нужно, всё настраивается один раз. Сами файлы script_1.min.js у меня достаточно большие, поэтому очень удобно в процессе разработки разбивать их на более мелкие фрагменты. 2. Правим значение version дял изменённых файлов и сжимаем файлы. 3. Заливаем папку "js" на сервер. Благодаря настройкам развёртывания зальются только сжатые скрипты и файл "javascript.php". |
В таких моделях возникает проблема слежения за зависимостями между файлами.
Допустим понадобился вам script1.js, подключили к проекту, а он, оказывается, требует себе script2.js. Ну без проблем, подключили script2.js, всё работает. Через пол-года script1.js по каким-то причинам стал не нужен, но его зависимости уже никто не помнит. script1.js исключаем из проекта, script2.js продолжает там болтаться мёртвым грузом. Второй случай: миграция скриптов между проектами. Проектами в узком смысле этого слова, просто между страницами одного проекта. Подключаем скрипт с другой страницы, а он, оказывается, хочет ещё один оттуда же, а тот в свою очередь ещё парочку. Подключаем скрипты один за другим, попутно разрешая возникающие конфликты. И вместо того, чтобы писать код, пол дня ушло на подключение своих же скриптов в свой же проект, но на другую страницу. Я предпочитаю, когда в каждом файле указаны его зависимости. У меня это выглядит, как серия комментариев //#include script.js в начале файла. В результате нужно думать, только какие функции из какого файла нужны в текущем файле, а подключаемые файлы свои зависимости сами привезут. |
у меня чуть по-другому :
Код:
- scripts процесс сборки: где-нибудь лежит Makefile (ещё не определился с его местонахожденим, но пока в каждой папке скрипта он лежит), который собирает скрипт и "компилирует", т.е. обрабатывает его в GCC в обычном\advanced режиме. пример Makefile : Код:
TARGET=anim.js пишу в Vim, там сборка под рукой : когда вношу изменения в файл, ввожу две команды Код:
:w (сохранить файл) |
Цитата:
|
Цитата:
|
Цитата:
|
B~Vladi,
Было в закладках уже. Видимо встречал тему на форуме, но забыл. Времени как то всё нет. А эта штука под виндой запустится? melky, Make-файлы и vim это не для меня. У меня стоит убунта свежая, я там даже апач настроил полностью, но привыкнуть не могу не как. Месяца 2 уже не запускал её. Если бы не было семёрки я бы точно на линукс перебрался, а так пока нет. Kolyaj, С инклудами хорошая идея, возьму на вооружение. Правда у меня пока не на столько всё сложно. |
Цитата:
|
Наш кэп,
ну то есть при разработке то, что понаписал, запускать необязательно? Ну так, ради интереса, работает ли. |
Цитата:
тут ещё зависит кое-что другое... вы в чём код пишете? я раньше любил notepad++ и не любил IDE'шки. но в нём мне не хватало навигатора по коду, что я с лёгкостью сделал в виме. в принципе, последний у меня превращён в notepad++ на линуксе. |
Часовой пояс GMT +3, время: 12:50. |