javascript - 重构javascript。解耦标记或单独的模块

标签 javascript refactoring

我正在尝试使大型(约 10K 行)javascript 代码库更易于维护。几乎所有代码都包含在一个庞大的类中。我想做一些重构,但我不想完全重写代码。

关于如何重新组织代码,我有两个想法,但我不确定哪一个是最好的。 (我也对其他想法持开放态度)您如何看待这些方法中的每一种?你会如何决定哪个是最好的?

想法 1 – 将标记与业务逻辑分离。 对于应该向用户显示什么以及如何显示,我们有一套有点复杂的规则。这种方法会将其拆分为“我们展示什么?”和“我们如何展示它?”

想法 2 – 将单独的组件分解为它们自己的类。 这段代码中有几个有些不相交的组件。如果这个代码库是 Facebook 的——这种方法将涉及分离照片和新闻源的代码。

最佳答案

如果我们谈论 Javascript,您很可能在浏览器中使用它。既然如此,您的大部分代码都是关于 View 的。 MVC 模式对您帮助不大,因为您的大部分代码都将处理 View 。

请记住,Javascript 不是基于类的,而是基于原型(prototype)的。它也是功能性的。函数式编程擅长处理数据。这样做时尝试使用 Javascript 的功能方面。

我建议您尝试将您的项目拆分为一个通用框架,用于为您的所有 View 检索、操作和推送数据;然后将您的 View 代码拆分为组件。

如果我们谈论的是 10k 行,则您必须开发某种主干来处理常见任务。如果您不使用 jQuery,在重新组织代码后,将您的实现与 jQuery 的解决方案进行比较,如果您发现有改进,则可以开始在代码内部进行重构。

如果你有机会看看 Ext JS 源代码:http://www.sencha.com/products/extjs/download/ext-js-4.0.2a/213

关于javascript - 重构javascript。解耦标记或单独的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7707673/

相关文章:

c++ - 绘制游戏组件的重构代码

javascript - 如何从 Web 浏览器的控制台隐藏 ajax 请求

javascript - 在 JS 中平铺图像的最简单方法

refactoring - 哪些工具可以帮助翻译(如法语 -> 英语而不是 C++ -> java)源代码?

java - 如何在 Eclipse 中批量修复 Java 包

android - 查找和替换 Android Studio

javascript - 带 LIMIT 的 MySQL 查询并按 block 更新数据

javascript - import 与 typescript 1.6 和 es6 语法的内联使用

javascript - 将所有输入[type ='checkbox']存储在从多个类名降序的变量中

java - Android 对所有 Activity 使用独特的 onDestroy