Неправильные инструменты и прокрастинация

Неправильные инструменты и прокрастинация

В настоящий момент читаю книгу замечательных ребят из 37signals (теперь просто Basecamp) и почти в самом конце прочитал весьма интересную мысль. В моей голове она тоже крутилась, но не получалось ее сформулировать. К тому же я прекрасно чувствовал описанное в книге, но не мог понять, почему так происходит.

Мыль заключается в том, что важно окружить себя правильными рабочими инструментами, которые будут помогать в работе, а не мешать или отвлекать. Это мысль стара как мир, но тем не менее проявляется почти всегда и везде.

Я уже долгое время знаком и работаю с CMS MODX, поддерживаю сайт сообщества, участвую в разработке продукта (open source) и каждый раз, когда пытаюсь с ним плотно поработать, у меня возникает странное внутреннее чувство, как будто чего-то не хватает. Особенно это чувство усилилось в последнее время, когда я начал работать с другими фреймворками.

Всем, знакомым с MODX, известно, что система работает не так, как большинство фреймворков. Все исходные коды конечного сайта, а в частности шаблоны, отдельные куски кода, виджеты — хранятся в БД. Это все прекрасно работает, обрабатывается и сохраняется в кеш. Рядовые пользователи и не совсем программисты просто в восторге от работы с MODX, так как в ней нет ограничений и все делается предельно просто. Но хранить исходники в БД   тот еще бред, подумают многие, и будут правы.

Свой текущий сайт я изначально хотел сделать на MODX и какое-то время он на нем работал, но правки кода в браузере или подключения по SSH вгоняли меня в состояние великого уныния. Спасибо Артему Сапегину, благодаря заметке в его блоге я перевел сайт на docpad (nodejs и компания) и теперь поддерживать сайт одно удовольствие. Все исходные файлы, документы, посты находятся на GitHub. Обновления на сайт выкладываются запуском одной команды. Максимальная автоматизация.

Когда же я хочу выложить сайт на MODX, я обычно делаю дамп БД со всеми исходниками, копирую всю папку на сервер, раскатываю дамп. Круто, если я один работаю над сайтом. А если несколько людей? Я создал шаблон в БД с id = 1 и Вася с id = 1. Что делать? Другой случай: на сайте миллион товаров, куча сниппетов, шаблонов 3 десятка, а мне чуть-чуть код подправить нужно. Качать себе гигабайты данных, править и заливать обратно? Так пока я поправлю код, еще записей в БД добавят. Неприемлемо.

На самом деле в этой борьбе я перебрал уже немало способов и инструментов, но реально работающего без нареканий пока не нашел. И возвращаясь к ощущениям скажу, что это и было той самой непонятной проблемой, которая не дает мне покоя, когда я собираюсь сделать что-то на MODX. Из-за этого был профукан не один проект просто потому что садясь за него появлялась мысль, как улучшить процесс деплоя так, чтобы он не был головной болью. И я пытался решить эту проблему вместо того, чтобы быстро собрать сайт и забыть про него. Это видимо и называется прокрастинация.

Сейчас я большую часть времени работаю с Symfony, начал изучать Laravel и немного использовал nodejs. Везде код хранится в файлах, версионируется гитом, а данные лежат в БД и код не зависит от них. Это правильные инструменты для меня сейчас. Осталось приложить усилия и сделать так, чтобы и MODX стал правильным инструментом, а не головной болью разработчика.

Подводя итог хотелось бы посоветовать всем пересмотреть те инструменты, с которыми вы работаете и осмотреться вокруг, вдруг молоток лежит в соседнем ящике, пока вы пытаетесь забить шуруп киянкой?