Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写核心javascript应用程序的成功途径是什么?_Javascript_Design Patterns_Testing_Architecture - Fatal编程技术网

编写核心javascript应用程序的成功途径是什么?

编写核心javascript应用程序的成功途径是什么?,javascript,design-patterns,testing,architecture,Javascript,Design Patterns,Testing,Architecture,我一直涉猎javascript,但直到去年左右,我才真正开始大量编写javascript。我注意到的一件事是,我的javascript开始变得如此复杂,以至于它的某些部分比服务器的应用程序代码更复杂(当然减去所有的框架代码,比如Spring或Hibernate) 这让我意识到,如果你想编写一个复杂的javascript应用程序,就像你在服务器上编写复杂的web应用程序一样,你必须开始考虑最佳实践、体系结构、文件的结构、代码的测试、创建小型应用程序的抽象方法,更多可重用组件,传递参数和发送消息的最

我一直涉猎javascript,但直到去年左右,我才真正开始大量编写javascript。我注意到的一件事是,我的javascript开始变得如此复杂,以至于它的某些部分比服务器的应用程序代码更复杂(当然减去所有的框架代码,比如Spring或Hibernate)

这让我意识到,如果你想编写一个复杂的javascript应用程序,就像你在服务器上编写复杂的web应用程序一样,你必须开始考虑最佳实践、体系结构、文件的结构、代码的测试、创建小型应用程序的抽象方法,更多可重用组件,传递参数和发送消息的最佳方式是什么,我应该传递参数还是对象文本,以及所有的最佳实践。所有这些都不是Javascript本身提供或鼓励的,每个人似乎都有自己的处理方式

当然,由于Javascript提供的api非常糟糕,我经常花无数的时间研究适合这项工作的最佳工具是什么。诸如导入文件和依赖项,甚至是基本集合库之类的功能都不是由语言处理的。让我们不要忘记IDE支持,即使是在Idea 10.5中,实际上也非常糟糕,远没有Java那么丰富,因为它具有动态特性,并且缺少用于包和导入的硬绑定

除了jquery,我真的很喜欢它,而且感觉很舒服,我还没有做出任何关于“正确”做事方式的决定。这对我来说很奇怪

每个人似乎都有自己的编码习惯——他们要么以纯函数式风格编写,要么尝试创建一个完整的经典编程模型,然后使用它。人们的编码标准和习惯用法因图书馆和个人而异。所有这些使得知道做什么是“正确的”事情成为一项令人难以置信的任务

更糟糕的是,似乎没有关于这类事情的书。这就像没有人费心去解决它一样——这与我们在Java空间或其他许多空间中的情况完全相反


对于成功地为复杂的web应用程序编写美观、健壮的javascript来说,哪条正确/成功的途径是什么?

在阅读了Douglas Crockford的文章后,我觉得我对javascript的知识得到了扩展,变得更加完整。他确实澄清了语言中最困难和最重要的部分

阅读这本书清楚地说明了不同类型的继承:新古典主义、功能性、原型。以及调用函数的不同方式:构造函数调用、应用调用、函数调用和方法调用


我会从这里开始。

我觉得在读了道格拉斯·克罗克福德的书之后,我对Javascript的知识有所扩展,变得更加完整。他确实澄清了语言中最困难和最重要的部分

阅读这本书清楚地说明了不同类型的继承:新古典主义、功能性、原型。以及调用函数的不同方式:构造函数调用、应用调用、函数调用和方法调用


我从这里开始。

第一个提示:Java!=“Javascript”。@Peter Lawrey:当然,但这并不意味着我们就应该破解它。Javascript通常用于粘性磁带编程。也许是时候让它更加成熟和结构化了,但我认为大多数开发人员都喜欢它更加动态和开放的开发?我以为“JavaScript的好部分”就是这样?但我还没读过。@Jens Schauder:这本书基本上是“如何让javascript不那么糟糕”。它实际上根本不能解决更大的应用程序问题。这是一本非常好的书——我已经读过了——但它甚至没有开始向您展示如何使用javascript构建大规模应用程序。这本书讲的是细节,而不是大局“Javascript”。@Peter Lawrey:当然,但这并不意味着我们就应该破解它。Javascript通常用于粘性磁带编程。也许是时候让它更加成熟和结构化了,但我认为大多数开发人员都喜欢它更加动态和开放的开发?我以为“JavaScript的好部分”就是这样?但我还没读过。@Jens Schauder:这本书基本上是“如何让javascript不那么糟糕”。它实际上根本不能解决更大的应用程序问题。这是一本非常好的书——我已经读过了——但它甚至没有开始向您展示如何使用javascript构建大规模应用程序。这本书讲的是细节,不是大局。我读过这本书。这些都是低级的东西。我谈论的是构建实际应用程序的大局观概念,而不仅仅是如何正确地迭代数组。哦,您考虑的是更高的体系结构级别。你可以看看乔恩·雷斯格的书。我读过这本书。这些都是低级的东西。我谈论的是构建实际应用程序的大局观概念,而不仅仅是如何正确地迭代数组。哦,您考虑的是更高的体系结构级别。你可以看看乔恩·雷斯格的书。