【问题标题】:Real world project structure with Sencha ArchitectSencha Architect 的真实世界项目结构
【发布时间】:2013-03-07 19:09:29
【问题描述】:

我是 Sencha ExtJS 和 Architect MVC 的新手,但我一般了解 MVC 和其他一些 JQuery 库。

我想问在构建现实世界的系统时,在 Architect 2 中布局 Sencha 应用程序结构的正确方法是什么?

例如,我们的应用中有以下部门,它们具有不同的功能:

Accounting, Controlling, Quality Assurance, Customer Services, Human Resources, Logistics, Purchasing, Sales, Records Management ...

方法 1: 将它们写在不同的 Sencha Architect 项目中。缝合主布局页面 + 主要区域 + 页眉/页脚 + 侧栏页面。 (在我们的例子中使用 MVC.NET)

--- 优点:

  • 多个程序员可以在敏捷中处理不同的子项目 环境。

  • 每个项目都更小,更容易升级或替换。

--- 缺点:

  • 我们有不同的 Sencha Architect 项目,例如主要区域,侧栏,页眉,页脚。他们如何相互协作?我们现在只使用 JQuery 在它们之间传递信息,但感觉有点 hacky。

方法 2: 将它们全部写在一个大型 Sencha Architect 项目中。因此,它在一个包含所有内容的 app.html 页面中启动。

--- 优点:

  • 现在项目中的每个组件都可以相互协作。

  • 真正的单页应用多合一 app.html 看起来不错。

--- 缺点:

  • 如果多个程序员同时在一个 Sencha Architect 项目上工作,会很困难。

  • 这是一个大而复杂的应用程序。虽然分为简单的 App、Store、M、V、C 类别,但我们可以在更大的项目中对组件进行名称崩溃。

  • 加载速度可能是个问题?我只是在这里猜测,因为我们不知道 Sencha Architect MVC 设计是部分加载相关窗口和组件还是一起加载所有内容。

问题是,如果我们采用第一种方法,我们如何在不同项目之间进行沟通?如果我们采用第二种方法,Sencha Architech 2 是否旨在以这种方式构建现实世界的项目?把所有东西都堆在一个大项目里?

【问题讨论】:

    标签: extjs sencha-architect


    【解决方案1】:

    首先我要说的是,您以所有正确的方式思考这个问题。你的优点和缺点都很明显。

    其次,我是 Sencha Architect 团队的一名工程师。

    我的建议是拥有更松散耦合的单独项目,并且可能通过门户/仪表板应用程序连接。胶水应用程序可以用任何东西编写,包括 Architect 中的 Ext JS。

    我这么说的原因很简单,我不喜欢把所有的鸡蛋都放在一个篮子里,如果你构建了单页应用程序,你就会知道当它们工作时它们真的会嗡嗡作响。但是,当发生未捕获的 javascript 异常时,它可能会迫使该用户必须进行完全刷新才能回到快乐状态。当然,如果你是完美的,这将永远不会发生:p 谁是完美的?

    我构建了 Architect,它实际上是一个非常大的单页应用程序。作为一个团队,我们都尽最大努力使每个系统都能够在尽可能少地依赖任何其他系统的情况下工作。我们使用事件、发布/订阅、适配器和插件模式等...

    这些系统在很大程度上被分成单独的命名空间和目录,就像所有软件一样,它们可以帮助开发人员进行划分。建筑师今天并不完全支持这个想法。但是,通过约定,您可以接近。例如HRController, HRNewEmployeeForm, HREmployeeGrid

    但是,如果将 HR 作为一个单独的应用程序,假设您的应用程序名称为 HR,则可以为您提供 HR.EmployeeController、HR.NewEmployeeForm。每个应用程序都是一个单独的项目,还允许开发团队在其部署方式上更加敏捷!!重大胜利。

    其他用户采用了这种方法,其中一位用户使用托管 iframe 方法将他的所有项目绘制在一起 http://www.sencha.com/forum/showthread.php?243179

    Asp.Net MVC 是另一种很好的方法,它可能会为您提供一些功能,例如用户身份验证等...

    希望这会有所帮助!

    【讨论】:

    • 抱歉回复晚了。感谢您分享经验。似乎采取第二种方法是要走的路。您能否解释一下更侧重于组件之间传递信息的内容?例如我有一个跨越几个独立项目的仪表板项目,当其中一个项目进行了更改时,我们如何以适当的 ExtJS 方式反映此仪表板项目的更新?也就是项目之间的沟通。
    猜你喜欢
    • 2011-06-03
    • 2011-02-19
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多