Articles of 编码风格

一个应用程序中的不同的variables名称约定

这是一个非常微不足道的问题。 我只是好奇如何以“专业”的方式来处理这个问题。 我试图坚持variables命名约定。 对于NodeJs我正在做camelCasing。 对于数据库,我正在使用PostgreSQL并使用underscore_casing。 现在问题出现在我从PostgreSQL查询数据时。 我将得到一个用户对象以下格式, {user_id: 1, account_type : "Admin"} 我可以直接将这个对象传递给服务器端渲染,并且必须使用下划线框来访问account_type。 当然,我可以手动创build一个新的用户JSON对象与属性userId和accountType但这是不必要的工作。 是否可以遵循两种语言的variables命名约定,并避免在某些文件中混合使用variables名? 什么是保持组织的好方法?

清理Javascript / Nodejs代码

我是新来的JavaScript / nodejs,我正在努力清理它的一些代码。 我正在使用asynchronous nodejs库来处理使代码的asynchronous部分更容易。 现在代码看起来像这样: Object.prototype.method = function(){ var self = this; // bunch of code async.forEach(self.someArr, function(someObj, callback){ self.somefunc(someObj.someProp, function(err, aNewObj) { if (err) { return callback(err); } self.someOtherArr.push(aNewObj.someOtherProp); callback(); }); }, callback); } 不过,我想用另一个在对象原型上定义的命名函数replace匿名函数。 由于代码结构的方式,我不知道如何创build一个新的函数传递到async.forEach同时保持适当的self价值。 我想要它看起来像: AnObject.prototype.method = function(){ var self = this; // bunch of code async.forEach(self.someArr, self._newMethod, callback); } AnObject.prototype._newMethod […]

在node.js中的编码风格

样式1: 具有构造函数/原型的对象 function DB(url) { this.url = url; } DB.prototype.info = function (callback) { http.get(this.url + '/info', callback); }; 样式2: closures function DB(url) { return { info: async.apply(http.get, url + '/info') }; } 这只是一个例子,假设涉及更多的原型方法和私有方法。 我已经在post1和2中看到,闭包风格在nodejs中比其他更受欢迎。 请帮我澄清为什么在nodejs中使用this.something语法不好。 你可以给出你的意见,哪一个更好,但我最需要知道什么是在nodejs中使用每种风格的优点和缺点 。

命名闭包是否污染了全局/窗口对象?

根据这个节点风格指南 ,给封闭一个名字是一个好的做法: 对 req.on('end', function onEnd() { console.log('winning'); }); 错误 req.on('end', function() { console.log('losing'); }); 不过,我已经习惯了 function someName() { someStatements(); } …语法作为为该函数创build全局variablessomeName或window.someName东西。 这是一个很好的做法,还是一个非常糟糕的风格指南?

在JavaScriptcallback中,错误参数的正确位置是什么?

我正在写一个JavaScript函数,需要callback。 如果出现错误,callback将被传递一个错误参数。 什么是最好的/最标准的调用约定? callback的错误参数应该是第一还是最后? 我应该传递一个'errorMsg'string,或一个new Error('errorMsg')对象? 也就是说,什么是更正确的 – 这个代码: foo = function(bar, callback) { … if (error) { callback('troz not found'); } else { callback(null, result); } } 或者这个代码: foo = function(bar, callback) { … if (error) { callback(null, 'troz not found'); } else { callback(result); } } 或这个: foo = function(bar, callback) { … […]

使用断言在node.js中进行防御性编程

考虑到有时节点中的错误消息特别无用,我喜欢在我的函数中自由使用断言,这样编程错误就会被尽快捕获,并且我可以得到一条通常指出问题的消息。 function doSomething(arg1, arg2){ assert(!arg1, "arg1 is undefined"); assert(!arg2, "arg2 is undefined"); assert(!arg1.expectedFn, "arg1 does not have expectedFn"); arg1.expectedFn(function(blah){ … } } 这是在节点/ JavaScript程序中做的特别糟糕的事情? 这是否对性能有影响?