Четверг, 27 Март 2008
Мысль про C++
«80% времени C++ программисты тратят на борьбу с C++»
«80% времени C++ программисты тратят на борьбу с C++»
Пока ехал, подумалось, что у очень многих людей есть притензия к git’у, что у него нет сокращений для комманд (вместо ci приходиться печатать commit). Да, у него этого нет, зато есть офигенный механизм alias’ов:
git config --global alias.ci commit
Случайно наткнулся на очередную scm: codeville.
Не спалось, и решил поиграть в mq. Толком с ним поиграть не получалось очень давно. Тут получилось.
Начиная цикл заметок о программировании для Nginx, хочется рассказать о списках.
Nginx — это web-сервер который используется многими для отдачи «статики» или как «прокся». Я не исключение. Но я не хочу его хвалить, и так все делают это. Я хочу вам рассказать о проблемах в нем,, которые есть, которые никто не исправляет и мимо которых вы все удачно проходите.
После git-darcs-record было бы не честно не рассказать о darcs record в hg. Да, он там тоже есть. И включился, да и нашелся, он проще чем в git. В wiki hg есть страница про него и поверить не мог я, что он включится просто от добавления в ~/.hgrc:
[extensions]
record=
Нет, включился. 10 очков в пользу hg. И весы с очками скоро заполнят чашу hg, увы ли?
Подумалось сейчас. В IDE(Microsoft Visual Studio, например) человек обложен инструментами настолько, что ему чрезвычайно просто работать с плохим кодом. Вместо проработки интерфейса он будет пользоваться автодополнением, которое подскажет, например.
Положить работу с задачами на распределенной репозиторий и оперировать событиями.
В качестве предметной области берется разработка софта. В качестве базовой терминологии — git.
Делается репозиторий. Он может быть центральный, он может быть локальный. Предполагаем что репозиторий локальный. И его создал PM (менеджер проекта). Он создает событие «создал таск» с заданием для программиста, далее именуем его task1. Так же PM создает task2 и task3.
D (программист) клонирует (clone) к себе репозиторий PM. Он создает событие «начал делать» в task1 (если проводить аналогии с git то это запись в файл, а создание task’а это создание файла). После конца работы над task1 он создает событие «закончил работать» и событие «таск сделан».
И D и PM имеют доступ к репозиториям друг‑друга и иногда забирают новые события или таски друг от друга (pull’ят). Так же D может, если ему позволено, посылать события в репозиторий PM (push делать).
Данная схема легко маштабируется до тестировщиков и еще каких-то людей. Так же она легко превращается в централизованную.
Естественно каждое событие можно подписывать pgp-ключом или pki-сертификатом. И как‑то учитывать их при постройке отчета.
Для более понятного замысла был сделан пример реализации на bash вокруг git. Взять можно тут: http://catap.ru/repos/draft/tt.git.
Случайно наткнулся на скрипт git-darcs-record который эмулирует в git record из darcs. Рекомендую.
deb пакет для debian (наверное и на ubuntu встанет) можно взять у меня в репозитории.