gpt4 book ai didi

javascript - 关于将 Web 应用程序源代码从 Coffeescript 迁移到 javascript 的建议

转载 作者:行者123 更新时间:2023-12-02 15:24:28 27 4
gpt4 key购买 nike

我继承了开发一个中等复杂的 Rails 应用程序的责任,这意味着除了尝试理解许多不是我自己编写的代码之外,还要学习 Ruby 和 Rails。该项目还包含一个用 Coffeescript 编写的重要 Backbone.js 应用程序。由于我将在很长一段时间内成为该项目的唯一开发人员,并且由于我不了解 Coffeescript,因此我计划将整个源代码直接转移到 Javascript。

我想知道执行此操作的最佳方法是什么。编译为 JavaScript 很容易,但是需要进行大量重构才能使代码看起来“正常”。

通过替换诸如

之类的内容来清理垃圾
var a;
a = 1;

var a = 1;

足够简单,或者甚至不值得费心。我更担心项目的整体结构。 Coffeescript 生成的文件的开头类似于 Backbone View 代码:

(function() {
var extend = function(child, parent) {
for (var key in parent) {
if (hasProp.call(parent, key)) child[key] = parent[key];
} function ctor() {
this.constructor = child;
}
ctor.prototype = parent.prototype;
child.prototype = new ctor();
child.__super__ = parent.prototype; return child;
},
hasProp = {}.hasOwnProperty;

App.Views.MyClass = (function(superClass) {
extend(MyClass, superClass);

function MyClass() {
return MyClass.__super__.constructor.apply(this, arguments);
}
# rest of the code here...

});
}).call(this);

我只是想知道处理这个问题的明智方法是什么,但我还没有找到任何类型的“最佳实践”来完成我想做的事情。

什么是最好的:将所有内容检查到 git 中并继续?使用 extend 的 Backbone/Underscore 版本而不是在每个文件的顶部重新定义相同的函数?使用完全不同的方法将所有单独的文件串在一起?

只是寻找一个大方向。我会弄清楚细节。

最佳答案

您可以尝试使用类似 decaffeinate 的工具如果您可以使用 ES6。

否则,如果您确定要移植到 Javascript,那么您最好手动重写,而不是尝试修复生成的代码。

首先一次重新创建一个文件,然后编写单元测试。这不仅可以帮助您更好地理解该项目,而且您还将学习 Coffeescript(并且可能还会学到一些好的技术)。

如果您阅读 overview在 Coffeescript 网站上,它提供了在两种语言之间进行转换的翻译表。每次遇到不理解的语法时,看看当您将其输入 js2.coffee 时它会生成什么。关于从 Coffeescript 迁移到 ES6 还有另一个很好的引用 here .

关于javascript - 关于将 Web 应用程序源代码从 Coffeescript 迁移到 javascript 的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33806437/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com