javascript - 谁能为大型 Web 应用程序推荐一个好的客户端架构和结构?

标签 javascript design-patterns architecture client-side

<分区>

我正在构建一个大型网络应用程序。它在未来会增长,所以我需要为我的应用程序提供良好的后端和前端架构。在网站的后面,我使用 Zend Framework,所以架构对我来说还可以。但在前端,在没有良好架构的情况下使用 javascript 和 ajax 会使后期更改变得困难和困惑。

目前,我正在使用自己的架构。我对整个应用程序有一个大对象,比如 BigObject。当模块添加到站点时,我会扩展它。说我有一个上传模块。我用这个:


BigObject.upload={
    //initialization
    init:function(){
    },
    //I tried to use what I named semi-MVC architecture!!!
    controllers:{
        //index is a controller
        someController:{
            init:function(){
                //initialization
            },
            someAction:function(){
                //Code goes here
                //call a model if necessary
                //call view script
                BigObject.upload.views.someController.someAction();
            }
        }
    },
    models:{
        //models required for this module like loading contents with ajax.
        loadContent:function(part,callback){
        }
    }
    views:{
        init:function(){
            //initialize view
        },
        someController:{
            someAction:function(){
            }
        }
    }
}

你怎么看?这个问题有更好的解决方案吗?有没有人想过 Web 应用程序前端部分的良好结构(例如我们在后端的结构、良好的文件结构和面向对象的方法)?

最佳答案

2020 年这个问题的最新答案是使用 React + GraphQL + Styled-Components .开始使用 React 的最佳地点是官方 Create React App工具。它们是 GraphQL 的几种不同实现;在客户端,明确的领导者是 Apollo .在服务器上你有更多的选择,甚至推出你自己的服务器实现也相当容易,所以选择最适合你当前后端的东西。 Styled-Components 为您提供 JS 中的 CSS,就像 React 为您提供 JS 中的 HTML 一样。

要获得更完整和更有见地的体验,请查看 Gatsby ,它将上述所有内容整合到一个框架中。

在过去的几年里更多functional编写 JavaScript 的风格变得流行起来。如果你不习惯函数式编程,那么开始学习曲线可能有点陡峭,但首先要了解一个名为 Ramda 的库。 .

这里有几个链接可以帮助您开始使用函数式 JS

说到测试,那就Jest结合Enzyme是目前最好的选择。

最后,要获得更深入的答案,请查看 Cheng Lou 在 Spectrum of Abstraction 上的演讲。 .

关于javascript - 谁能为大型 Web 应用程序推荐一个好的客户端架构和结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3507294/

相关文章:

具有奇偶类的 Javascript DOM 操作

javascript - Amazon S3 响应不返回日期 header

javascript - 如何动态更新 d3.js 力布局图?

architecture - Hadoop 2.x 行 : How "Alpha" is "alpha"

.net 可配置业务错误消息

javascript - Highchart 的选择功能延迟更新

c# - 插入方法应该返回一个对象还是抛出异常

用于维护状态和创建提供附加功能的嵌套对象的 Javascript 模式

makefile - GNU Make 的多通配符模式规则

arrays - 为什么 Rust 以特定于体系结构的方式生成 LLVM IR,并对可变静态变量使用空数组?