Потенциальный монстр|Трудности веб-разработки
Под кофеек какие-то грустные мысли в голову лезут.
Чем больше развиваешь проект, тем монструозней он становится. Его рост не подконтролен — ведь нужно вот здесь прикрутить важную функциональность, а вот сюда — рюшечку. Количество полезных и не совсем функций растет. Дерево подключаемых файлов обзаводится все новыми ветками, на которых вынужденно вырастают новые сучья с одним-единственным (пока еще) листочком. Что, конечно, лучше слишком простой схемы, но все же.
Но куда хуже обстоит дело с обращениями к базе. Например, если взять Wordpress — легко посмотреть, сколько он раз стукается к БД, прежде чем выведет страничку до конца.
Вставляем в wp-config.php строчку:
define('SAVEQUERIES', true);
и куда-нибудь в шаблон темки:
<?php
if (current_user_can('switch_themes')){
global $wpdb;
echo "<pre>";
print_r($wpdb->queries);
echo "</pre>";
}
?>
И наблюдаем список из 20 и больше пунктов. Там, где достаточно четырех-пяти.
Движок расползается в разные стороны, как монстр из Акиры, все раздуваясь, выпячивая внутренние органы, которые надо срочно закрыть хоть тонкой кожицей, чтобы, не дай бог, они не взорвались от малейшего касания. И вот вместо обычного и ничем не примечательного мальчика мы имеем (кхм-кхм) огромного мутанта (который еще ближе к зачаточному состоянию, чем раньше).
А ведь приходится еще и поддерживать совместимость с предыдущими версиями, в которых все было сделано совсем не так и неправильно. Наконец-то добираешься до кусков, которые давно пора переделать, и избавиться от устаревшего подхода и организации. И хваленая инкапсуляция не везде срабатывает, заставляя обратиться к методике объявления кода deprecated.
Скажем, если залезть в deprecated.php (все в том же пресловутом Вордпрессе), можно увидеть более тысячи строк кода, который оставлен для тех плагинов и шаблонов, что игнорируют прогресс. Тем, кто не может прописать в wp-config.php:
define('WP_DEBUG', true);
Или попросту поставить себе специальный плагин, который высветит вызовы устаревших функций в плагинах и теме и даже предложит их заменить.
Все же хорошо, что на некоторые проекты работают тысячи людей, ваяящих всякие экономически нерентабельные, но такие полезные вещи. Но даже пусть хоть миллион специалистов и просто неумелых фанатов будет задарма помогать развитию движка, это не избавит от необходимости писать подробную документацию, чтобы юзверь, не дай бог, не сел копаться во внутренностях, когда что-то и так уже сделано в основном функционале. Конечно, ее писать так лениво — скажем, зачем пресловутому wp-config описание возможностей? Правильно, пусть фанаты радуются своим находкам.
А уже когда проектик уже окопался на большей части рынка, можно уже забить на привычный и удобный интерфейс и сделать что-нибудь настолько же красивое, насколько и не жизнеспособное.
Этот раздутый донельзя пестицидами помидор, который теперь в каждом третьем доме и на каждой четвертой тарелке, никак не сместить с насиженного места — даже если кто-то предложит более быстрое и элегантное решение, и даже вложит в это деньги. Сдвинуть такую махину под силу будет еще нескоро, только тогда, когда ей будет уже тяжело передвигаться самой. Чтобы этого не произошло, разработчику надо не только править баги и вовсю стараться не допустить проваливания на рынке, постоянно копаясь в коде и переписывая его, переписывая, переписывая.
И все же хорошо, когда проект — свой, родной, в котором знакома каждая точка с запятой. А когда мучаешься с чужим наслоением кода разных лет для того, чтобы сделать из него не просто клон, но что-то более менее свое... Ей богу, проще плюнуть и переписать все заново.




Да уж, но за то как удобно))
Ну кто спорит. Просто когда начинаешь делать на чужом что-то серьезное, понимаешь, что без мата в нашей профессии не обойтись.
Киса, как ты прав :)
Ню-ню.
А как тебе Maxsite CMS?
Да вот никак совсем не соберусь посмотреть движок от maxsite.
Гм. Странный пост.
Если проект большой и мощный, то проект большой и мощный. Странная прямая пропорциональность, да?
Если хочется кучу всякой гадости, вроде плагинов, редактирования страниц, темплейтов, интегрирования чего попало куда попало — естественно, за это приходится платить. Платить очень дорого.
А какое можно сделать «элегантное решение»? Чтобы оно обладало тем же функционалом? Можно только повторить монстра.
Если не хочется монстра — надо писать самому свой движок под конкретные нужды. Будет в сотни раз быстрее и удобнее. Я даже собирался одно время. Но, естественно, это долго и бессмысленно.
Элегантное решение — это как раз решение под проект, а не всесильная CMS. Использование нормального фреймворка сильно облегчает жизнь. Ну, или дорезка CMS под себя, что занимает не меньше времени — т.к. требуется копаться в чужом коде.
Резать можно, конечно.
Но, с другой стороны, у меня сугубо потребительское отношение к блого-движку: я хочу, чтобы поставил — и оно тупо работало и само апдейтилось :)
Не хочется тратить какое-то время на доводку этой фигни, когда куча своей хорошей работы.
Тем более — потом ещё прийдётся апдейты аккуратно ставить...
Но не спорю, что своё решение — всегда самое красивое и удобное ^) Просто в случае вордпресса обычно расход сил на альтернативу не оправдывается.
Даже с блогами та же ситуация — все зависит от целей. ВП как никак универсальный движок, то же к блогам на Друпале и подобных. Вот поэтому для тлогов сделали НаноГраббр и Гелато, которые, кстати, тоже имеют недостатки, и в первую очередь — слишком малую поддержку. Для блогов, состоящих из одних картинок тоже желательно свое решение, а его, ан, нет.
Но про расходы сил на альтернативы — верно, если речь только о себе. Но если есть востребованность среди целой группы людей, то вполне и вполне.