Category Archives: Разработка

Life deadlock

В транзакционных СУБД, например — в Oracle, существует такое явление, как «deadlock»: когда два одновременно выполняющихся запроса хотят получить эксклюзивный доступ к двум одним и тем же ресурсам (например — строкам в таблице), но, по логике их выполнения, первый ресурс оказывается изначально захвачен одним процессом, а второй — другим.

Разработка, Управление

Django-admin в качестве интерфейса: Путь в капкан

Знакомство с django-admin поражает воображение. Непосредственно на основе моделей базы данных  вы получаете готовый веб-интерфейс. Этот интерфейс будет иметь фильтры поиска, учитывать условия для полей, подключать справочники связанных объектов. Далее, просто добавляя «подсказки» для моделей базы, вы сможете сделать интерфейс еще удобнее с минимальными трудозатратами. В общем, возникает вполне естественное желание использовать всю эту навороченную систему для того, чтобы построить пользовательский интерфейс (автоматизированное рабочее место). Так я и поступил — и это оказался путь в капкан. Если хватит задора на серию статей, то дальше расскажу о том, как из него выбраться, прихватив с собой кусочек сыра :)

Python/Django, Разработка

Почему вы не используете git-flow?

В заметке «Git workflow для вашего проекта» я сделал вольное изложение статьи “A successful Git branching model”, в которой описывается правильный способ использования git для выпуска релизов и хотфиксов. Под катом — такой же вольный перевод другой статьи «Why aren’t you using git-flow?», рассказывающей о том, как можно сильно упростить себе жизнь, если для описанных операций использовать утилиту git-flow.

Разработка

Git workflow для вашего проекта

Коллективная работа над сложным проектом (в декабре мы выпустили первый релиз SkyCover Infrastructure CD-ROM) породила очень много потребностей: надо выпускать релизы, добавлять функционал, делать хотфиксы. Захотелось иметь автоматические nightly-builds… Казалось бы, для пользователей git и github.com (каковыми мы являемся), эти возможности находятся «на кончиках пальцев» и все должно быть просто. Однако git — лишь инструмент и для достижения хорошего результата требуется следование определенной методологии. Эта статья — вольное изложение хорошо известного первоисточника. Желающие почитать подробный перевод могут погуглить «удачная модель ветвления git». К сожалению, попробовав читать пару переводов я впал в дремоту и вернулся к англоязычному оригиналу. Поэтому ниже я попробую свои силы в изложении только сути дела :)

Разработка