Попытавшись разобраться в причинах, я пришёл к заключению, что депрессию нагоняет нынешний вид кода. Вака, изначально имевшая не слишком опрятный код, разрастаясь в openSpace стала довольно удручающим зрелищем. Ядро программы совершенно не разбито на модули, код местами крайне запутан, расширять его становится всё труднее, многие из последних изменений напоминают какие-то костыли. И хотя задача по рефакторингу кода была поставлена на этап pre-1.0, стало ясно, что, не занявшись рефакторингом сейчас, туда мы просто не доберёмся. Короче, "мы новый мир построим". В новогодние каникулы я начну писать openSpace с нуля. Разработка будет вестись в расчёте на PHP 5 с упором на модульность, компартментацию кода и его безопасность (никаких больше вызовов GnuPG через странного вида Perl-обёртки). Часть процедур, которые и сейчас имеют разумный вид, будут заимствованы с минимальными изменениями или вообще без них. Возможно, коснусь и структуры БД: сейчас она не оптимальна ни по объёму, ни по скорости, но я пока не имею чёткого плана её универсальной оптимизации. В процессе UTF-8 будет сделана основной и единственной кодировкой программы. Ждать скорого выхода openSpace 2.0 не стоит. Скорее всего, доведение кода до сколь-нибудь вразумительного состояния займёт не менее полугода. [Добавлено]: К сожалению, не удалось найти время, чтобы к сроку упаковать дистрибутив 0.8.24a. Если ничего не стрясётся, выпущу его в понедельник. |