gpt4 book ai didi

api - 如果您想创建具有模块化的应用程序,最好的资源是什么?

转载 作者:行者123 更新时间:2023-12-04 23:34:30 26 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

4年前关闭。




Improve this question




在我对较新的 Web 平台/应用程序(例如 Drupal、Wordpress 和 Salesforce)的分析中,他们中的许多人基于模块化的概念来创建他们的软件:开发人员可以创建新的扩展和应用程序,而无需更改“核心”中的代码。 "由主要开发人员维护的系统。特别是,我知道 Drupal 使用“钩子(Hook)”系统,但我对实现它的引擎或设计知之甚少。

如果您要走上创建应用程序的道路,并且想要一个允许模块化的系统,您从哪里开始?这是一个特殊的设计模式大家都知道吗?有没有手册 这种范式倾向于赞同?他们有吗网站 从头开始讨论这种类型的发展?

我知道有些人直接指向 OOP,但这似乎完全不是一回事。

我计划的这个特定系统更倾向于 Salesforce,但它不是 CRM 系统。

为了这个问题,请忽略购买与构建参数 ,因为这种考虑已经在进行中。现在,我正在研究构建方面。

最佳答案

有两种方法可以绕过这里,选择哪一种取决于您的软件的行为方式。

一种方法是plugin route , 人们可以在哪里 安装新代码 进入应用程序修改相关方面。这条路线要求您的应用程序是可安装的,而不仅仅是作为服务提供(或者您安装和审查第三方发送的代码,这是一场噩梦)。

另一种方法是提供 API ,可以被有关方面调用并使应用程序将控制权转移到位于其他地方的代码(例如 Facebook 应用程序)或使应用程序按照 API 命令启用开发人员的方式执行操作(例如 Google map )。

即使机制不同并且如何实际实现它们也不同,无论如何,您必须定义

  • 我会让用户有什么自由?
  • 我将为程序员提供哪些服务来定制应用程序?

  • 最重要的是:
  • 如何在我的代码中启用此功能,同时保持安全和健壮。这通常是通过对代码进行沙箱处理、验证输入并可能为用户提供有限的功能来完成的。

  • 在这种情况下,钩子(Hook)是代码中的预定义位置,调用所有已注册插件的钩子(Hook)函数,如果已定义,则会修改应用程序的标准行为。例如,如果你有一个渲染背景的函数,你可以拥有
    function renderBackground() {
    foreach (Plugin p in getRegisteredPlugins()) {
    if (p.rendersBackground) p.renderBackground();
    }
    //Standard background code if nothing got executed (or it still runs,
    //according to needs)
    }

    在这种情况下,您拥有插件可以实现以更改背景的“renderBackground” Hook 。

    以 API 方式,用户应用程序将调用您的服务来渲染背景
    //other code
    Background b = Salesforce2.AjaxRequest('getBackground',RGB(255,10,0));
    //the app now has the result of calling you

    这也都与 Hollywood principle有关。 ,这是一个很好的应用,但有时它只是不实用。

    关于api - 如果您想创建具有模块化的应用程序,最好的资源是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/413247/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com