Неправильные инструменты и прокрастинация
Эту заметку я уже публиковал в 2014 году, но решил ее немного отредактировать и опубликовать в новой редакции, так как актуальности она не потеряла.
Во время чтения книги замечательных ребят из 37signals (сейчас Basecamp), почти в самом конце книги я прочитал весьма интересную мысль. В моей голове она тоже крутилась, но у меня не получалось её сформулировать. К тому же, я прекрасно чувствовал описанное в книге, но не мог понять, почему так происходит. Мысль заключается в том, что важно окружить себя правильными рабочими инструментами, которые будут помогать в работе, а не мешать или отвлекать. Это мысль стара как мир, но тем не менее проявляется почти всегда и везде.
Я долгое время работал и хорошо знаком с CMS MODX, поддерживал сайт сообщества, участвовал в разработке продукта и каждый раз, когда пытался с ним плотно поработать, у меня возникало странное внутреннее чувство, как будто чего-то не хватает. Особенно это чувство усиливалось, когда я начинал работать с другими фреймворками.
Всем, знакомым с MODX, известно, что система работает не так, как большинство фреймворков. Все исходные коды конечного сайта, а в частности шаблоны, отдельные куски кода, виджеты — хранятся в базе данных. Это всё прекрасно работает, обрабатывается и сохраняется в кэш. Рядовые пользователи и не совсем программисты просто в восторге от работы с MODX, так как в ней нет ограничений и всё делается предельно просто, но хранить исходники в базе данных тот еще моветон.
Свой текущий сайт я изначально хотел сделать на MODX и какое-то время он на нём работал, но правки кода в браузере или подключения по SSH вгоняли меня в состояние великого уныния. Спасибо Артему Сапегину, благодаря его заметке “WordPress → Эгея → DocPad” я перевел сайт на DocPad и теперь поддерживать сайт одно удовольствие. Все исходные файлы, документы и заметки находятся на GitHub. Обновления на сайт выкладываются запуском одной команды. Максимальная автоматизация.
Note! Это заметка от 2014 года и написанное в параграфе выше хоть и правда в тот момент времени, сейчас не совсем актуально. Как обстоят дела сейчас – читайте в заметке “Реинкарнация сайта”.
Когда же я хочу обновить сайт на MODX, я обычно делаю слепок базы данных со всем исходным кодом, копирую всю папку на сервер, загружаю слепок в базу данных на сервере. Отличное решение, когда я один работаю над сайтом. Но что делать, если работает несколько человек? Я создал шаблон в базе данных с ID 1 и Вася с ID 1. Что делать?
Другой случай: на сайте миллион товаров, три десятка снипетов, десяток шаблонов, а мне всего лишь одну строчку подправить нужно. Скачивать себе гигабайты данных, исправлять и загружать обратно? Пока я поправлю код, кто-то может ещё записей в базу даных добавить. Неприемлемо.
На самом деле в этой борьбе я перебрал уже немало способов и инструментов, но реально работающего без нареканий пока не нашел. И возвращаясь к ощущениям скажу, что это и было той самой непонятной проблемой, которая не дает мне покоя, когда я собираюсь сделать что-то на MODX. Из-за этого был потерян не один проект, просто потому что садясь за него появлялась мысль, как улучшить процесс работы так, чтобы он не был головной болью. И я пытался решать эту проблему вместо того, чтобы быстро собрать сайт и забыть про него. Это видимо и называется прокрастинация.
Сейчас я большую часть времени работаю с Symfony, начал изучать Laravel и немного использовал nodejs. Везде код хранится в файлах, доступна возможность хранить версии с помощью git, а в базе данных хранятся только пользовательские данные и исходный код от них не зависит. Это правильные инструменты для меня сейчас. Осталось приложить усилия и сделать так, чтобы и MODX стал правильным инструментом, а не головной болью разработчика.
Подводя итог, хотелось бы посоветовать всем пересмотреть те инструменты, с которыми вы работаете и осмотреться вокруг, вдруг отвертка лежит в соседнем ящике, пока вы пытаетесь забить шуруп молотком?
Сябры, акрамя блога, я амаль што рэгулярна пішу адмысловую рассылку пра праграмванне і тэхналогіі, дзе раз на двы тыдні збіраю самыя цікавыя навіны тэхналогій і раблю агляд цікавых інструментаў, якія мне трапіліся. Таму хутчэй падпісвайцеся, каб не прапусціць штосці цікавае наступным разам!