И снова об открытых модулях и социальных сетях

За эту неделю уже трижды слышал слова: "нам нужно готовое решение, и побыстрее, ТЗ не будет, все будет решаться по ходу пьесы".  При этом эти товарищи(не буду называть имен) предлагали сразу же назвать фиксированную цену проекта. Но сейчас не об этом. Вернее, не совсем об  этом.

Как правило, народ желающий "побыстрее" поступает просто. Или сам пытается поставить набор готовых модулей с Drupal.org/project/modules или же  находит такого программиста, который пойдет у клиента на поводу и сделает это. Сейчас покажу простой случай, когда такое бывает чревато.

Рассмотрим простой пример модуля taxonomy_filter(http://drupal.org/project/taxonomy_filter) -  готовый открытый модуль, позволяющий творить чудеса над таксономией. Человек поставил. Все красиво. Все работает. Но тут оказывется что таксономия то у него состоит не из 5-10 элементов. И всплывает вот такой баг который висит более полугода - см. по ссылке. Своими словами - модуль строит запросы так, что база начинает жестоко тормозить даже на небольших системах категорий. В моем случае у человека эта идиотская ошибка сложила сервер с другими его сайтами.

Я уже молчу о готовых модулях вида node_profile, модулях которые через CCK  + Views реализуют социальный функционал сайта, наборе  Open Groups(да, за ним тоже замечены тормоза). Они строят весьма тормозные запросы. Поначалу, когда число записей таблицах в БД небольшое - все выглядит красиво. Но ведь содержимое информционного сайта с функционалом социальной сети может расти(особенно если он востребован и наполняется пользователями). И наступает ситуация, когда для того чтоюы сгенерить страничку Drupal делает в базу больше 2-3 тысяч запросов(я видел пталогию с 12000 запросами на такой странице). Естественно такой увешанный непроверенными модулями сайт быстро шевелиться не будет и с одним пользователем, а с кучей - и подавно.

Посему, хочется сказать желающим получить быстрый результат одно. Быстро - хорошо не бывает. Наберитесь терпения и готовьтесь к  тому что нужно будет писать много кода с нуля, если у вас там идет функционал, сложнее простого набора блогов(который Drupal может штатно).