среда, 29 августа 2012 г.

Agile с ошибками

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

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

четверг, 31 мая 2012 г.

Высокая нагрузка

В компании я работаю над проектом Континент. Серверное ПО, жесткие требования. Как добиться качества? В тестовых условиях достаточно проблематично организовать тысячи клиентских машин. Что уж говорить про десятки тысяч, которые мы хотим поддерживать.

У нас были тестовые утилиты, но раньше перед нами не стояло таких амбиций. В условиях десятитысячной нагрузки эти утилиты не выдерживают никакой критики. Ну кто, скажите мне, организовывает тысячи инстанций на тредах? А до того было вообще, на процессах. Я, как человек, не очень далекий от устройства операцонных систем понимаю, что система, оперирующая тысячью активных потоков вряд ли сможет выделить каждому достаточное время для работы.

Эти мысли долго терзали меня, пока я наконец не сел, и не написал свой фреймворк сетевого нагрузочного тестирования. Правильный. :)

четверг, 27 октября 2011 г.

Что-то мне в последнее время не нравится make...

Что-то мне начал надоедать make. А так хочется быть гибким, хочется применять всякие новостные методики, но make мешается.

В принципе конечно все проблемы разрешаются, но что-то мне не хочется их решать. Да пусть этих Makefile вообще не будет. В каждом каталоге лежат, чтоб им пусто было. Лучшая система сборки та, которой нету.

Да, я, как всегда, занимаюсь велосипедостроением, но давайте обо всем по порядку.

среда, 7 сентября 2011 г.

Если не strcmp...

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

Давайте посмотрим на следующий код, который я для примера выдрал из ядра linux:
if (!strncmp(name, p, k) && p[k] == '=') {
 	p += k + 1;
	...

вторник, 30 августа 2011 г.

Давным давно, в одном редко вызываемом модуле...

Нет, все действия происходят в настоящее время. Наткнулся на интересный кусок кода:
	boost::format value("%s:%s");

value % head;

BOOST_FOREACH(value_type &item, container) {
if (item.valid()) {
value % item.value();
}
}

return 0;
}
Все совпадения с реальным кодом следует считать совпадениями, конечно я его немного поменял. :)