Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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_Jquery_Firebug - Fatal编程技术网

如何掌握一个复杂的JavaScript项目?

如何掌握一个复杂的JavaScript项目?,javascript,jquery,firebug,Javascript,Jquery,Firebug,我正在使用Firebug来帮助了解JavaScript(+JQuery)代码中发生了什么。我主要使用它来打印成吨的console.log语句。这可能不是保持项目领先的最有效方式。随着它从仅有的几个功能发展到超过一百个,我开始对如何将所有功能组合在一起感到困惑。我的意思是,它在某种程度上是有效的,但当我现在看代码的时候,我几乎感觉它是别人写的,因为它太令人困惑了 现在,每当我在Firebug中运行我的应用程序时,控制台上就会出现大量的console.log语句,我一直把它放在那里,因为每次我取出一

我正在使用Firebug来帮助了解JavaScript(+JQuery)代码中发生了什么。我主要使用它来打印成吨的
console.log
语句。这可能不是保持项目领先的最有效方式。随着它从仅有的几个功能发展到超过一百个,我开始对如何将所有功能组合在一起感到困惑。我的意思是,它在某种程度上是有效的,但当我现在看代码的时候,我几乎感觉它是别人写的,因为它太令人困惑了

现在,每当我在Firebug中运行我的应用程序时,控制台上就会出现大量的
console.log
语句,我一直把它放在那里,因为每次我取出一些应用程序时,我都会重新创建它。我认为,这比完全没有日志记录更让人困惑。我从来没有真正探索过真正的调试——断点、监视变量等等——这是重新控制这个项目的好方法还是有其他工具可以帮助

我曾考虑尝试绘制所有CSS的图表,并尝试将类和ID映射到JavaScript中相应的函数。该项目基于一组复杂的应用程序状态组合,使用了大量丰富的交互和显示/隐藏功能,可能与Flash/Flex应用程序更接近


任何可能有助于重新控制本项目的工具或方法的建议将不胜感激。当我开始这个项目的时候,我感觉很好,因为它看起来很好,人们会称赞它有多酷,但现在我觉得它像是一个失败,因为我甚至不认为我可以在面试中解释它是如何工作的,如果我不得不解释的话。

如果它变得太复杂,你做得太多了,所以保持简单(即:把它分成可管理和可重复使用的部分,这样你就不用拥有一艘泰坦尼克号,而是拥有许多小型救生艇)。这可能是任何人都能给你的最好的非技术性建议,而且是有效的。

你可能想研究在你的代码中引入实际的单元测试。有多种javacscript单元测试平台可用,例如。如果你已经安装了FireBug,这是一个很短的过渡到快乐舒适区


试一试,即使是少量的单元测试覆盖也会帮助您放松心情!

保持代码的条理化。使用名称空间将其分解为逻辑模块。寻找常见的交互模式并开发通用的可重用代码可能也是明智的


我尝试将每一项新功能都作为jQuery插件来编写。这迫使我编写与样式和标记无关的可重用代码。

每当程序开始从您身边溜走时,您都需要停下来仔细看看如何将其拆分。考虑将js拆分为单独的文件,这样您就不必保留任何你可以视为“完成”的东西都可以被制作成一个界面,在这个界面上你不再关心它的本质


这都是为了隐藏混乱。无论是OO还是过程。许多人对PHP和C的问题与JavaScript的问题相同,所以你可以搜索“PHP意大利面”并获得一些好的提示。

使用一个好的JavaScript调试器,如Firebug和debugger语句,向JavaScript添加断点。完成后请小心删除断点。

我在一个Web2.0中使用了许多JavaScript等。我将给出一些帮助我的提示:

尝试,帮助完成代码、验证等(使用ext-je、Jquery插件)

试试,帮助我解决问题,特别是在处理Internet Explorer时

尝试查看您的网站等级

尝试一下,这个工具可以创建许多测试用例,比如:单击任意位置,等待一些文本出现在某些位置,将一些字符串写入某些字段,生成日志

记得把Id放在你能放的任何地方

定义代码约定可能会有所帮助。(-)

[更新]我在我的书签中找到了一个非常棒的视频:看看

希望这些简单的提示能有所帮助


干杯!

您可能需要考虑使用GWT

  • 优越的支持
  • 班级
  • 重构能力
  • 无名称空间约定-使用包

要了解更全面的“原因”列表,请阅读GWT团队给出的原因。

有一件事帮助我处理了我继承的复杂JavaScript代码库。使用它,您可以获得格式良好的代码执行路径(有点像Firebug的配置文件,但按照调用方法的顺序排列)

我不知道jQuery是否有类似的功能,但它可能值得研究,因为它可以避免在代码库中乱放日志语句,而您可能(或可能不需要)必须删除这些日志语句


一旦你知道事情是如何运作的,你就可以使用这里的一些优秀技巧来重新组织它。

格式总是很受欢迎的。这是真正的wall-o-text。同意。我尝试了一些段落中断。没有什么比
做得太多
,你需要做你需要做的。孩子,我很高兴Bricklin和Franston没有这样做当VisiCalc代码开始变得复杂时,停止工作。这确实是一个很好的评论,但是我担心只有真正的javascript初学者才会欣赏它!+1