求一份cocos2d-js游戏开发的规范

求一份cocos2d-js游戏开发的规范~

问题1:
一直使用java进行代码编写,所以对js的代码书写规范不是很清楚。
例如变量的命名,看到一些例子里,有的加“_”前缀,有的不加。

问题2:
在看《JavaScript 高级程序设计(第2版)》的“6.1.2构造函数模式”时,产生了一个疑问:
例如:
var HelloWorldLayer = cc.Layer.extend({
sprite:null,

ctor:function () {},

f1:function(){},
f2:function(){}
});
向如上这样定义类,在创建对象时
var h1=new HelloWorldLayer();
var h2=new HelloWorldLayer();
HelloWorldLayer中的方法在每个实例上都会重新创建一遍。

不知道我上边的理解是否正确,如果理解正确,是否有必要解决这种问题,还是说这种重复创建方法对性能没有影响?

问题3:
使用java开发时,因为不涉及到UI上的展示,所以在进行mvc进行模块划分时比较容易;使用js进行游戏开发时,加入了UI层,所以不知道如何进行模块的划分:
例如java里针对于道具类,我的划分是:
ItemModel.java:道具的数据对象,存储id、名称等数据;
ItemManager.java:用来就行道具数据的加载、获取等操作;(load();getById(int id))
ItemServer.java:有来跟其他模块交互的接口(addItem();subItem());
但是在js里,不知道该如何区分了。。
看了下引擎中自带的飞机的游戏例子,里边的划分不是我想象的那么细。
是不是js的游戏开发仿着飞机的架构就行了,还是说,因为飞机的游戏模块比较少,不用那么细分
(如果是这样,那么假设要构建一个比较复杂的游戏,在架构的设计上有没有什么可以参考的);

问题1:

加“_”通常是一种约定,表明这个属性或者方法是私有属性或方法
因为JavaScript没有属性访问限定符,所以才有这样的约定

问题2:

的确会产生实例创建的开销,但是一般来说,JS对象创建的开销没有Java那么大,所以除非是频繁创建大量的对象,一般情况下不会有什么问题

问题3:

UI相关的应该属于MVC的View层

最后:

JavaScript和Java的区别基本上是老婆饼和老婆的区别,它们是完全不同的语言,要说相似性,可能Python和Go从设计理念上都比Java要更接近JavaScript。学习JavaScript的话最好抛弃Java的经验和思路。你手上的《JavaScript高级程序设计》是本好书,深入研究它,有什么不明白的,可以通过实践慢慢体会~

再补充一下,JavaScript是纯语言概念,Java其实更多时候不仅仅是一门语言了,已经把设计模式的概念融合进去。关于MVC,JavaScript实际上有很多比较成熟的MVC框架,只不过遗憾的是,因为JavaScript曾经是一门面向Web前端开发领域的专用语言,所以这些MVC框架大多数都是针对Web前端开发定制的,所以不适合游戏开发。但是MVC的思想依然是可以用的。

编码规范我们建议使用google制定的《JavaScriptStyleGuide》,在引擎发布包的Doc里面有自带一份。