Что такое некоторые недостатки Drupal? [закрытый]

Существует очень мало реальных случаев использования, когда возможность оценить String как фрагмент кода Java необходима или желательна. То есть, спрашивать, как это сделать, действительно проблема XY : у вас действительно есть другая проблема, которая может быть решена по-другому.

Сначала спросите себя, где это String, из которого вы хотите оценить?

  • Другая часть моей программы сгенерировала его: так, вы хотите, чтобы одна часть вашей программы определяла вид чтобы выполнить, но не выполнить операцию, и вторую часть, которая выполняет выбранную операцию. Вместо генерации и затем оценки String используйте шаблон дизайна Strategy , Command или Builder , в зависимости от вашего конкретного случая.
  • Пользователь вводит данные: пользователь может ввести что угодно , включая команды, которые при исполнении могут привести к неправильной работе вашей программы, сбою, раскрытию информации, которая должна быть секретной, повреждению постоянной информации (например, содержимое базы данных) и другие подобные гадости. Единственный способ предотвратить это - это проанализировать String самостоятельно, проверить, что это не злонамеренно, а затем оценить его. Но синтаксический анализ его - большая часть работы, которую запросила функция eval, поэтому вы ничего не спасли. Хуже того, проверка того, что произвольный Java не был вредоносным, является невозможным , потому что проверка является проблемой остановки .
  • Это пользовательский ввод, но синтаксис и семантика допустимого текста для оценки сильно ограничены: никакой объект общего назначения не может легко реализовать анализатор и оценщик общего назначения для любого ограниченного синтаксиса и семантики, которые вы выбрали. Что вам нужно сделать, так это реализовать анализатор и оценщик для выбранного вами синтаксиса и семантики. Если задача проста, вы можете написать простой рекурсивный спуск или парсер конечного состояния вручную. Если задача сложная, вы можете использовать компилятор compiler-compiler (например, ANTLR), чтобы выполнить некоторую работу для вас.
  • Я просто хочу реализовать настольный калькулятор! : Домашнее задание, а? Если бы вы могли реализовать оценку входного выражения с помощью предоставленной функции eval, это не было бы большой частью домашнего задания, не так ли? Ваша программа будет длиться три строки. Ваш инструктор, вероятно, ожидает, что вы напишете код для простого арифметического анализатора / оценщика. Существует хорошо известный алгоритм shunting-yard , который может вам пригодиться.

34
задан Matt 24 January 2009 в 16:11
поделиться

11 ответов

Отсутствие истинного объектно-ориентированного проектирования означает, что часто необходимо полагаться на предвидение других разработчиков для отъезда функций "рычага", чтобы позволить Вам изменить определенное поведение.

Используя Drupal 5 я также работал в к ситуациям, где единственный способ завершить относительно простое конструктивное изменение состоит в том, чтобы исправить сам Drupal (и затем, несомненно, должен будет повторно применить патчи с каждым новым официальным выпуском Drupal). Но, честно говоря, необходимо было видеть, как плохо это было в Drupal 4.

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

23
ответ дан Eli 10 October 2019 в 13:19
поделиться

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

44
ответ дан Sean McSomething 10 October 2019 в 13:19
поделиться

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

растущая тенденция в сообществе Drupal должна явно создать API разработчика, затем администрирование слоя UI и конечный пользователь UI сверху API. Это - хорошая вещь, но существует также все еще большая архитектура прежней версии. Проект оказался 8 годами на этой неделе, и каждый сайт требует соединения модулей, которые развиваются в различных шагах.

, Если кто-то уже не создал модуль, который делает то, что Вы хотите, эффективно усиливая систему, не взламывая базовый код, требует понимания много различных внутренних API, много unique-to-drupal структур данных, и учащийся на некоторых иногда броских рабочих процессах. Много ужасно плохих и невозможных, чтобы поддерживать сайты плавает вокруг в связи с людьми, которые должны были сделать хитрый материал и не имели экспертных знаний (или время) для исследования "правильного" способа сделать вещи.

(Правовая оговорка: Я просто написал в соавторстве несколько глав для книги о Drupal, и я делаю полный рабочий день работы Drupal, таким образом, я являюсь почти настолько совсем не 'несмещенным', как можно добраться. Но мне действительно нравится думать, что я сохраняю перспективу. Я основа Django, также.)

35
ответ дан Eaton 10 October 2019 в 13:19
поделиться

Drupal хорош для начала работы, но Вы проводите больше времени, 'отменяя', чем фактическое добивание цели. Это изменялось особенно с выпуском Drupal 6, и быть справедливым это более очевидно во внесенных модулях.

Руководящие миграции являются также проблемой, как сказал Sean. Я все еще не знаю о хорошем методе перемещения изменений от dev сайта до живого.

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

6
ответ дан canen 10 October 2019 в 13:19
поделиться

Drupal получит Вас 80% выхода там из поля, но что последние 20% займут месяцы и месяцы.

27
ответ дан Nick Sergeant 10 October 2019 в 13:19
поделиться

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

существуют дебаты в сообществе Drupal по, он - дизайн. Drupal был вокруг, прежде чем функции OOP PHP были сильны, но теперь, когда они, существует частая дискуссия об изменении системы для использования объектно-ориентированных структур данных. В зависимости от Ваших вкусов это могло быть оборотной стороной Вам как разработчик. Я - два ума об этом сам.

система, может также казаться, является "очень волшебной" вновь прибывшим, в том так или иначе она делает весь этот сумасшедший материал с небольшим объяснением. "Я только что определил функцию, как двойка, Drupal знает, как назвать его?!"

Однако я должен сказать, что в целом я - большой поклонник Drupal. Это - хорошая система, которая получает загрузки лучше с каждой основной версией. Я для нельзя ожидать 7.

7
ответ дан Sean Edwards 10 October 2019 в 13:19
поделиться

Drupal дает мощные инструменты Не программисты, Они могут легко создать полнофункциональный сайт с меньшим количеством времени. Но проблема состоит в том, что кривая обучения слишком высока для Drupal.

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

2
ответ дан Jinesh 10 October 2019 в 13:19
поделиться

Я нахожу, что администраторский интерфейс по умолчанию не очень интуитивен по сравнению с другими cms' как modx или joomla/mambo

0
ответ дан 10 October 2019 в 13:19
поделиться

Это записано в PHP4. Это изменится с версии 7. Можно записать собственные модули в php5, конечно. Поскольку закаленный разработчик Drupal и я находим, что мое резюме пострадало из-за моего ограниченного воздействия php5.

Это не является лучшим для рабочих сервисов как SOAP. Вызов целого стека Drupal для обеспечения веб-сервиса является слишком большой потери производительности. Сервисные модули находятся все еще в разработке.

Никакая поддержка транзакции базы данных. Это становится проблемой при масштабировании ее до экстремальных нагрузок.

было бы хорошо запустить тесты из командной строки. Это было возможно с simpletest 1.x, но текущая версия не поддерживает его очень хорошо. Simpletest не является достаточно сформировавшимся. Чистая установка Drupal может провалить тесты. Некоторые включенные тесты значения по умолчанию вынуждают Вас использовать типы контента и модули, в которых Вы, возможно, не нуждаетесь, и Вы не можете отключить их, не взламывая simpletest модуль.

0
ответ дан Rimian 10 October 2019 в 13:19
поделиться

Это имеет на вид плохую запись безопасности: http://secunia.com/advisories/search/?search=Drupal

-1
ответ дан stesch 10 October 2019 в 13:19
поделиться

Я считаю это ужасно сложным. Как разработчик php я ежедневно вырываю себе волосы из-за проблем, которые не имеют ничего общего с php, а связаны с самим drupal. как / почему / когда он делает X? это большой зверь, которого нужно приручить. документация ограничена несколькими очень хорошими руководствами, множеством дерьмовых руководств и еще большим количеством бесполезных веток форумов, которые всегда, кажется, всплывают в Google.

юзабилити на бэкэнде - дерьмо. настраиваемая тема также изменит макет «административной» части пакета, что может быть крайне неприятным и приведет к менее чем красивым макетам.

если вы работаете с слайсерами html, невозможно использовать HTML, который не был создан специально для drupal. это в значительной степени заставляет вас использовать drupal-html с большим количеством div, 5 подробных классов на div и т. д. по своей природе,

4
ответ дан 27 November 2019 в 15:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: