CMS или CMF?

Главные вкладки

Аватар пользователя Tankha Tankha 24 мая 2009 в 13:34

Не знаю будет ли это сообщение полезным, но в процессе размышления и работы над своей задачей пришел к тому, что не совсем хорошо понимал чего я хочу от Drupal и я решил записать свои мысли.
Контент-менеджерские системы все имеют одно общее свойство - они хорошо справляются с теми задачами для которых уже есть типовые решения и плохо - с теми задачами, для которых таких решений нет. Попытка слепить из готовых модулей что-то свое, пользуясь некоторыми границами универсальности этих модулей, приводит к постоянному балансированию на грани "а может плюнуть и сделать всё с начала своими руками?".
У меня это было до тех пор, пока я не понял что все стандартные средства и дополнительные модули можно условно разделить на две группы.
1. Работа с данными
2. Оформление вывода, внешний вид.

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

Если хотябы частично разделить для себя внутренние задачи и вид вывода, то всё становится намного легче - у конкретных модулей используются конкретные функции, а вывод делается руками. Конечно это разделение условно, потому, что обработка процессов все равно подразумевает некоторую юзабельность без проникновения в "програмную вербализацию" :), но все-таки достаточно ощущаемо.

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

Вообщем незнаю у кого как это происходило, но мои попытки объять необъятное, лавируя между возможностями и ограничениями разных модулей и средств привела меня к тому, что я четко разделил для себя два направления - внутренние функции использовать максимально уже из готовых, а внешний вид максимально делать вручную. Никаких Views вообщем. Smile Тем более, что они сжирают все ресурсы и сильно тормозят работу.
Вообще любые попытки универсализировать вывод приводят к двум последствиям.
1. Как нигде здесь резко начинают ощущаться рамки возможностей.
2. От попытки разработчиков заложить универсальность очень ощутимо увеличиваетя нагрузка и ресурсопотребление, в результате чего снижается производительность.

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

Какой смысл использовать громоздких и капризных роботов для того, чтобы приготовить себе пищу? Проще это сделать самому. А "громоздким и капризным" оставить всю черновую подготовительную работу.

P.S.
Прошу прощения что так много написал, но уж очень накипело. Smile Может кто-то пришел к тому-же или прошел через то-же...

Комментарии

Аватар пользователя Geldora Geldora 24 мая 2009 в 14:25

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

а) я в принципе не поняла к чему ваш пост относился - к тому что стоит или не стоит использовать Друпал? или что?

б) но с выделенным мной куском я полностью согласна. Со временем поняла, что все "узконаправленные" модули - это нехорошо, лучше обойтись либо ядром, либо вьювс и сск, какие бы тяжелыми (как в плане хостинга, так и понимания) они не казались.

Пример - я делала у себя на сайте раздел Вопрос и Ответов, даже здесь статью писала - какой специальный модуль лучше использовать. Потребовался почти год, чтобы понять что лучше всего стандартный Форум, в крайнем случае дополненные сск.

Аватар пользователя Tankha Tankha 24 мая 2009 в 18:00

Geldora
Очень знакомо. В конечном итоге приходишь к тому что вывод нужно делать руками через темизацию.
Кстати CCK раза в три меньше ест ресурсов чем к примеру Views. Их почему-то часто упоминают вместе как самые ресурсоемкие, но это не совсем справедливо в отношении CCK.

По поводу стоит - не стоит.
Сам мучался этим вопросом долго. Потом понял что мне от Drupal нужно далеко не всё что viewит на переднем плане и стало сразу как-то легче. Smile Стал смотреть на Drupal больше как на CMF.

mensh@drupal.org
Сейчас, - вытру нос и поправлю покосившиеся очки :)...
Так вот. Интересно мнение других по этим же поводам на самом деле.

Аватар пользователя mensh@drupal.org mensh@drupal.org 24 мая 2009 в 18:36

Какие обиды.
Я сам, например, многие вопросы решаю врукопашную, да и пишу сразу на xhtml.
Не люблю нагромождение всякой лишней хрени.
CCK и Views, кстати, за 3,5 года использования друпала не разу не пользовал.
Без них удавалось обходиться.

Аватар пользователя PVasili PVasili 24 мая 2009 в 18:48

Tankha - с чем проблемы?

  1. Нужен уникальный функционал - пишем модуль с 0.
  2. Нужны свои особенности - доделываем существующее.
  3. Лень(время) или все устраивает - используем существующие > 3500 модулей.

В огромном большинстве п.3 подходит ну + ещё темизация.

Drupal предоставляет для вас большую API прокладку между базой и конечным HTML.
При этом - использована большая куча абстрагирований и универсальностей для различных технологий/форматов/и т.д.
Ну и в довершении - в основе лежит довольно простая парадигма.

Ну и как в любом софте есть +/- которые все и так знают Smile

Аватар пользователя RISK RISK 24 мая 2009 в 21:59

Ну и как в любом софте есть +/- которые все и так знают Smile

Вспомнился доклад Ильи Азарова о программировании в Drupal и критика недостатков Drupal, после которого Аксель сказал, что если бы он не знал Друпал, то после такого доклада использовать его бы побоялся Lol

Аватар пользователя Tankha Tankha 24 мая 2009 в 22:15

Ну и как в любом софте есть +/- которые все и так знают Smile
Есть вещи которые очевидны (вернее - не видны уже) спецам, но очень туго идут сначала. Для меня всё что я написал было очень большим открытием, - намного большим, чем разные полезные хитрости искушенных. Smile

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

Аватар пользователя gor gor 24 мая 2009 в 23:26

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

Аватар пользователя kyky kyky 25 мая 2009 в 4:12

Автор, вы, очевидно, всецело зависите от чужих модулей. Решение любой проблемы зависит от того, написал ли уже кто-нибудь модуль с нужным фунционалом.
Хотя модулей уже > 3500, всегда найдется нестандартная задача или требование, ведь процесс не стоит на месте. Сегодня уже есть неплохие мануалы по разработке модулей даже на русском, так что можно решить любую задачу свои модулем.

Аватар пользователя finraag@drupal.org finraag@drupal.org 25 июля 2009 в 12:41

CMS для того и CMS чтобы несведущий пользователь мог без особого труда решить свою незатейливую задачу. А так получается - каждый кто только решил заняться сайтостроем должен стать программером - писать модули, копаться в настройках.