关于将web应用程序源代码从Coffeescript迁移到javascript的建议
Advice on migrating a web app source code from Coffeescript to javascript
我继承了一个中等复杂的Rails应用程序的责任,这意味着除了学习Ruby和Rails之外,还要努力理解很多我自己没有写的代码。该项目还包含一个用Coffeescrapt编写的非平凡的Backbone.js应用程序。由于我将在很长一段时间内成为这个项目的唯一开发人员,而且我不知道Coffeescript,所以我计划将整个源代码转移到纯Javascript。
我想知道最好的方法是什么。编译成javascript很容易,但要让代码看起来"正常",还需要进行大量重构。
通过更换之类的东西来清理cruft
var a;
a = 1;
带有
var a = 1;
很简单,或者甚至不值得麻烦。我更担心这个项目的整体结构。Coffeescapet生成的文件开头如下主干视图代码:
(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/Undercore版本,而不是在每个文件的顶部重新定义相同的函数?使用完全不同的方法将所有单独的文件串在一起?
只是在寻找一个大致的方向。我会弄清楚细节的。
如果你能使用ES6,你可以尝试使用像脱咖啡因这样的工具。
否则,如果您确定要移植到Javascript,那么您最好手动重写,而不是试图修复生成的代码。
从一次重新创建一个文件开始,边写单元测试。这不仅有助于你更好地理解这个项目,而且你还可以学习Coffeescapet(可能还有一些好的技巧)。
如果你在Coffeescapet网站上阅读了概述,它提供了一个在两种语言之间转换的翻译表。每当你遇到不懂的语法时,看看当你把它输入到js2.coffee中时会产生什么。这里还有另一个从Coffeescept迁移到ES6的好参考。
您最终将花费更多的时间和精力(更不用说最有可能在CoffeeScript中引入试图复制超级或子类之类的错误)。与其试图重写一个正在运行的CoffeeScript web应用程序,不如深入研究并在进行过程中吸收CoffeeSript,并发现需要更改内容。停止反抗!CoffeeScript有很好的文档记录,并且已经证明它是一种非常有用的语言。学会它,它之所以可怕,是因为它是新的!
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将javascript应用程序迁移到使用AMD的提示(例如requirejs)
- 在Google Apps上从JavaScript迁移到Python
- 从Google Maps JavaScript API V2迁移到V3,编码多边形
- 将Mootools迁移到prime或primish/使用JavaScript类的最佳方式
- 将JavaScript代码迁移到具有String.prototype扩展名的node.js模块
- 为什么我的内容在从 1.5.26 迁移后两次可见,而 JavaScript 在 Joomla 3.x 上无法正常工作
- 将 JavaScript 迁移到 PHP
- 将插件从Redmine 1.x迁移到2.x - Javascript不起作用
- 如何迁移单个 (php||JavaScript||..)文件在生产中没有时间限制
- 关于将web应用程序源代码从Coffeescript迁移到javascript的建议
- 服务器迁移后出现奇怪的javascript/json错误
- 解析1.5.0之前的Javascript sdk的迁移
- GWT:是否有可能先使用GWT开始项目,然后最终迁移到完整的javascript ?
- 将内联JavaScript迁移到外部文件
- 从Silverlight迁移到Html5/JavaScript
- Javascript 编译,用于将 D3 js v3 迁移到 v4
- 从具有简单Javascript前端的Java后端迁移到MEAN堆栈
- 如何将 .change 函数从 jQuery 迁移到纯 Javascript