【问题标题】:What are some of Drupal's shortcomings? [closed]Drupal 有哪些不足之处? [关闭]
【发布时间】:2010-10-01 15:56:26
【问题描述】:

Drupal 是一个非常“无所不能”的 CMS。有些模块允许您添加几乎任何功能,这很棒。但是,感觉很多功能(v5 和 v6)似乎分散在各处,对用户来说不直观。作为一名开发人员,我有一种使用泡泡糖和细绳将网站拼凑在一起的感觉。

例如,要将文本添加到默认搜索框(单击时会消失),您必须添加一些 jQuery 代码或覆盖主题。我还发现菜单系统比应有的复杂。

只有我有这种观点吗?你会对 Drupal 的核心做出哪些改变(如果有的话)?

【问题讨论】:

标签: php drupal content-management-system complexity-theory


【解决方案1】:

对我来说,Drupal 最大的缺点是大部分实时 Drupal 站点都存储在数据库中。由于没有自动方式在系统之间迁移内容或配置,因此必须手动完成对实时站点的更改,或者通过过于复杂的代码来处理。

【讨论】:

  • 同上。有很多建议的解决方案,但没有什么是事实上的,这会在单独的 Drupal 安装中引起很多问题和头发拉扯。
  • 哦,说得好。我一定已经解决了那个特别令人头疼的开发问题。
  • 当然。有一些方法可以减轻疼痛,但它们是变通方法。如果您习惯于将功能/配置与数据完全分离,那么它就是真正的 PITA。
  • 这也是我最大的缺点。
  • 您可以在网上找到的“一堆建议的解决方案”可归结为以下几类: - 仅在您不使用特定功能时才有效(例如 CCK) - 仅在您使用特定功能时才有效 使用特定功能(例如 CCK) - 需要模块来记录所做的更改并重放它们的功能,但也不是在所有情况下都有效 - 根本不工作的功能。我不知道 Drupal 7 的更改是否会克服这个问题并充分分离配置和数据。我活在希望中:)
【解决方案2】:

Drupal 最大的缺点之一是它在面向非程序员网站构建者的交钥匙工具和面向开发人员构建复杂 web 应用程序的框架之间徘徊。它为两个群体提供了一些很酷的东西,但是对一个群体的让步总是会绊倒另一个群体。

Drupal 社区的发展趋势是明确构建开发人员 API,然后在 API 之上分层管理 UI 和最终用户 UI。这是一件好事,但仍然有很多遗留架构。该项目本周已经 8 岁了,每个站点都需要混合以不同速度发展的模块。

如果有人还没有构建一个模块来满足你的需求,那么在不修改核心代码的情况下有效利用系统需要了解许多不同的内部 API、许多独特的 drupal 数据结构,并研究一些偶尔时髦的工作流程。随着人们需要做一些棘手的事情并且没有专业知识(或时间)来研究“正确”的做事方式,许多非常糟糕且无法维护的网站正在四处流传。

(免责声明:我刚刚为一本关于 Drupal 的书合着了几章,而且我全职从事 Drupal 工作,所以我离“公正”还差得远。但我确实喜欢认为我保持观点。我也喜欢 Django。)

【讨论】:

    【解决方案3】:

    Drupal 将让您开箱即用地完成 80% 的工作,但最后的 20% 需要数月时间。

    【讨论】:

    • 几个月又几个月,哎呀,他们升级了,几个月
    • 升级您的大量自定义模块是一项痛苦的任务。我不知道,为什么新版本不向后兼容?它只会让你在竞争中慢下来。
    【解决方案4】:

    缺乏真正的面向对象设计意味着您经常不得不依靠其他开发人员的远见来留下“挂钩”功能来让您改变某些行为。

    使用 Drupal 5 我也遇到过这样的情况:完成相对简单的设计更改的唯一方法是修补 Drupal 本身(然后确保在每个新的正式 Drupal 版本中重新应用补丁)。但是,公平地说,您应该已经看到 Drupal 4 中的情况有多糟糕。

    我也很恼火,当我花时间识别当前 Drupal 生产版本中的错误或怪癖时,我提交了一个补丁,但补丁从未提交,因为基本上只有安全错误在当前版本中得到修复稳定版本。

    【讨论】:

    • “真正的 OO 设计”是否会自动使代码/事件挂钩无效?继续。
    • 好吧,我用我的术语玩得又快又松。但你完全知道我的意思。 :) 在实践中,Drupal 不利于继承、多态等概念。
    • 我实际上认为您将其总结为“恼火”。每次我被要求从事 Drupal 工作时,我都会感到恶心,认为不久的将来会出现一些核心黑客攻击。
    【解决方案5】:

    Drupal 是一个令人印象深刻的系统。它的所有功能都非常小,而且它的模块系统非常强大。但正如 Eli 所说,您的许多任务将依赖于其他开发人员以特定方式完成某事。

    Drupal 社区内部对其设计存在争议。 Drupal 在 PHP 的 OOP 功能强大之前就已经存在,但现在已经存在,经常讨论如何更改系统以使用面向对象的数据结构。根据您的口味,这可能对您作为开发人员不利。我自己对此有两种看法。

    对于新手来说,该系统似乎也非常“神奇”,因为它以某种方式完成了所有这些疯狂的事情,几乎没有任何解释。 “我只是定义了一个函数,Drupal怎么知道怎么调用它?!”

    但是,我必须说,总的来说,我是 Drupal 的忠实粉丝。这是一个很好的系统,每个主要版本都能更好地加载。我已经等不及 7 点了。

    【讨论】:

    • 作为一个 Drupal 新人,我完全同意你在“神奇”方面的看法。这很令人困惑。 “所以 hook_foo 调用 drupal_magic_api 调用 drupal_make_website 调用 drupal_sign_up_for_godaddy_domain_name_and_bill_my_credit_card?”
    【解决方案6】:

    Drupal 很适合入门,但您花费更多时间“撤消”而不是实际完成工作。这一直在改变,尤其是随着 Drupal 6 的发布,公平地说,它在贡献的模块中更加明显。

    正如 Sean 所说,管理迁移也是一个问题。我仍然不知道将更改从开发站点移动到实时站点的好方法。

    我不确定我会在当前核心中进行任何更改,并且大多数缺陷正在解决中。图像管理需要工作,默认的管理界面有点混乱,在不涉及视图/面板等的情况下制作更复杂的布局可能需要一些工作。

    【讨论】:

      【解决方案7】:

      我发现它非常复杂。作为一名 php 开发人员,我每天都因与 php 无关但与 drupal 本身有关的问题而烦恼。如何/为什么/什么时候做X?它是一只需要驯服的大野兽。文档仅限于一些非常好的指南,一大堆糟糕的指南,甚至更多似乎总是在谷歌中弹出的无用论坛主题。

      后端的可用性是垃圾。自定义主题还会改变包的“管理”部分的布局,这可能会非常令人沮丧,并导致布局不够美观。

      如果您正在使用 html 切片器,则不可能使用尚未专门为 drupal 创建的 html。它几乎迫使你使用 drupal-html,有很多 div,每个 div 有 5 个详细的类等。本质上,html/css 的人不能指望在这个级别了解 drupal。

      我不喜欢它依赖文件名(10 个字长,它们之间有非常细微的区别)来构建主题的方式。

      话虽如此,它可以做的一些事情非常酷,可以为您节省几天和几天的自定义 php 开发

      【讨论】:

        【解决方案8】:

        Drupal 为非程序员提供了强大的工具,他们可以用更少的时间轻松建立一个功能齐全的网站。但问题是 Drupal 的学习曲线太高了。

        如果一个人是 drupal 的新手并且想要定制一些东西,那么如果他想以正确的方式去做这将需要很多时间。在 drupal 中有很多方法可以做一件事情,找出他最适合新手的方法是一件令人头疼的事情。

        【讨论】:

          【解决方案9】:

          我认为它的高学习曲线是唯一的缺点,因为大多数公司都在努力寻找优秀的 Drupal 人才。 http://drupalize.me/http://buildamodule.com/ 在降低这种高学习曲线方面做得非常好。

          【讨论】:

            【解决方案10】:

            我发现与 modx 或 joomla/mambo 等其他 cms 相比,默认管理界面不是很直观

            【讨论】:

              【解决方案11】:

              它是用 PHP4 编写的。这将从版本 7 开始更改。您当然可以在 php5 中编写自己的模块。作为一名经验丰富的 Drupal 开发人员,我发现由于我对 php5 的接触有限,我的简历受到了影响。

              它不是运行 SOAP 等服务的最佳选择。调用整个 Drupal 堆栈来提供 Web 服务对性能的影响太大了。服务模块仍在开发中。

              没有数据库事务支持。当您将其扩展到极端负载时,这将成为一个问题。

              最好从命令行运行测试。这在 simpletest 1.x 中是可能的,但当前版本不能很好地支持它。 Simpletest还不够成熟。干净的 Drupal 安装可能会导致测试失败。一些默认包含的测试会强制您使用您可能不需要的内容类型和模块,并且您无法在不破解 simpletest 模块的情况下禁用它们。

              【讨论】:

                【解决方案12】:

                它的安全记录似乎很糟糕:http://secunia.com/advisories/search/?search=Drupal

                【讨论】:

                • 与什么相比不好?其中大部分是第 3 方模块,而不是 Drupal 本身。
                • 我的评论不见了? IIRC 我说过,模块是人们推荐 Drupal 的主要原因。您可以通过在 Secunia 上的相同搜索将其与其他产品进行比较。我不卖 CMS,也不为卖 CMS 的人工作。我没有最喜欢的 CMS。
                • 还需要注意的是,Secunia 仅发布明确宣​​布的漏洞报告。我曾与其他 CMS 软件包合作,这些软件包将重要的安全修复程序放入次要版本中,根本没有任何公告。 Drupal 有一个 15 人的团队,负责审查核心和所有 3500 个插件。
                • ...并根据政策正式宣布安全补丁,无论多么小。
                • @Eaton:谢谢。我在stackoverflow.com/questions/455234/… 引用了你
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2010-10-05
                • 2011-06-03
                • 1970-01-01
                • 1970-01-01
                • 2011-02-19
                • 2010-11-22
                相关资源
                最近更新 更多