Дорого времени суток, товарищи друпаловцы!
Предлагаю рассмотреть вопрос разработки под Drupal. Все мы знаем, что в Друпале одну и ту же задачу можно решить разными средствами. Можно использовать готовые решения, модоули, а можно писать самому. Как то так получилось, что свой путь изучения Друпала я начал с изучения его движка, API, готовыми модулями пользовался мало. Если возникала задача, что-нибудь вывести, отобразить, реализовать, я быстренько писал модуль и все "красиво" там реализовывал. Толчком к написанию этого поста послужило просьба заказчика подправить его представления в модуле views2. Пришлось вникнуть в работу этого модуля... Подобное представление я бы написал одной строчкой SQL-запроса.
И вот возник у меня вопрос! Для решения каких задач лучше писать функционал самому, а в каких случаях лучше не изобретать велосипед, а брать готовые решения (модули)? Конечно, это относится к написанию качественного продукта, высоко посещаемого (поменьше нагрузка на сервер).
Комментарии
Вопрос без ответа, комуто эдак, комуто так, плохо будет только тому, кто будет работать с ним. Потом...
Вопрос не конкретно про модуль views, а про общий подход решения задач. Где сами пишем, где готовые модуле используем! Какие выигрыши в производительности при использовании того или иного способа при решении конкретных задач!
Не чураюсь использовать CCK для конструирования контента. От Views потихоньку отказываюсь в пользу самописного кода, но хреначить типы контента руками меня напрягает. Views для прототипирования шикарен. Особой разницы в производительности между самописным контентом и CCK не заметил.
Если сайт поддерживать будете сами тогда лучше так как вам удобнее и правильнее по вашему мнению (у меня например все то делает вьювс решается сниппетами)
А так... если сайт будет поддерживать кто то другой тогда конечно лучше модулями ИМХО
views,panels и т.д. - прототипирование. пару часов и черновик сайта для заказчика готов, можно говорить о деталях. А потом можно отказаться от этих модулей, а можно и не отказываться - как хотите.
Все мы тестировщики Дриса
Лучше модулями, а если делается что-то серъёзное, то от Друпала остаётся немного, - всё ручками.
Все сильно зависит от соотношения двух вещей
время на разработку заказанного функционала / требуемая производительность проекта в заданных условиях.
На мой взгляд, аргументы из разряда - кто будет поддерживать потом ... - никуда не годятся.
У нас в организации, человека, который не умеет читать чужой код, на работу не берут. Одно из тестовых заданий на собеседовании, это распечатка с кодом, и 10 минут времени. человек должен сказать что этот код делает.
современные языки программирования, в частности php, это вам не ассемблер. Тут даже отладчик не нужен чтобы разобрать логику работы приложения.
Конечно бывают исключения, когда код очень сложный, но как следствие этого, этот код обычно решает те задачи, которые не возможно решить существующими модулями. А следовательно, в любом случае понадобился бы реверс.
А вот заодно скажите,уважаемые: во вьюсах 2 сразу можно посмотреть запросы.Это готовый код,который можно юзать,выключив сами вьюсы?
Нет, это только SQL-запрос. Но можно отключить Views UI - после настроек списков этот модуль можеть отдохнуть.
Dan очень интересно ответил
Да, если вас этот код устраивает - можете использовать, но не надо забывать, что там далеко не все, что может понадобиться. Об остальном придется позаботиться самостоятельно.
Чаще клавиатурой, редко мышкой.
Мотивы все теже свой код , заточеный под задачу лучше чем универсальные модули, заточеные под мышку (CCK, VIEWS, Panels etc)
Я имел ввиду,это готовый (почти готовый) к употреблению код,который можно вставить в page.tpl.php или там в template.php,либо это внутрення конструкция самих вьюсов?
Нет. Если вы знаете, что делать с результатом запроса - то можете им воспользоваться. Вот у меня до недавнего времени с построением запросов были сложности.
Ну Вам же чётко ответили:
Это просто запрос к БД.А вот сможете ли Вы его "обернуть" по всем правилам Друпал - это вопрос.
Другими словами, в данном случае и конкретно для Вас "это не готовый к употреблению код, это внутренняя конструкция самих вьюсов".
Что то все про views да про views. Хотелось бы еще примеры модулей, которые можно смело использовать в хороших разработках, которые не уступают по производительности самописным решениям. Это, как говорится, те случаи, где лучше не "изобретать велосипед"
Кроме производительности и трудоемкости, есть еще один интересный аспект - переносимость и вторичное использование кода