{"action":"closed","issue":{"url":"https://api.github.com/repos/ckcz123/mota-js/issues/36","repository_url":"https://api.github.com/repos/ckcz123/mota-js","labels_url":"https://api.github.com/repos/ckcz123/mota-js/issues/36/labels{/name}","comments_url":"https://api.github.com/repos/ckcz123/mota-js/issues/36/comments","events_url":"https://api.github.com/repos/ckcz123/mota-js/issues/36/events","html_url":"https://github.com/ckcz123/mota-js/issues/36","id":288394570,"number":36,"title":"关于数据结构、项目结构以及原型链的重构","user":{"login":"i2Echo","id":9511013,"avatar_url":"https://avatars2.githubusercontent.com/u/9511013?v=4","gravatar_id":"","url":"https://api.github.com/users/i2Echo","html_url":"https://github.com/i2Echo","followers_url":"https://api.github.com/users/i2Echo/followers","following_url":"https://api.github.com/users/i2Echo/following{/other_user}","gists_url":"https://api.github.com/users/i2Echo/gists{/gist_id}","starred_url":"https://api.github.com/users/i2Echo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/i2Echo/subscriptions","organizations_url":"https://api.github.com/users/i2Echo/orgs","repos_url":"https://api.github.com/users/i2Echo/repos","events_url":"https://api.github.com/users/i2Echo/events{/privacy}","received_events_url":"https://api.github.com/users/i2Echo/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-01-14T09:24:37Z","updated_at":"2018-03-19T05:39:33Z","closed_at":"2018-03-19T05:39:33Z","author_association":"CONTRIBUTOR","body":"根据编辑器的一些需求得到以下需要改进的问题，版本放到V2.0.1：\r\n## 待解决问题\r\n### 当前数据结构的一致性和完整性不太好\r\n* 主要的问题都在新建comment.js有所体现，下面简单列几项\r\n* 可增删的同类型数据应该用数组（enemy，item， event等都不符）\r\n* event数据结构一定得改，现在这种形式很不友好，也不符合上一条\r\n* 对象编号应直接放入对象属性中，并且最好统一一下，比如cls这个属性，现在很混乱（图片资源里表示所在图片，map event表示分类，item中又有小分类，应该区分一下\r\n* 属性尽量全部定义在对象属性中（完整性），每个不同功能需要那些属性就读取出来，目前主要的item，enemy等都不符合\r\n* 。。。\r\n### 项目结构方面，数据和对象方法应该完全解耦\r\n* itemjs, enemyjs, mapjs等都不应该含有非逻辑数据，应只有操作数据的各种方法；\r\n* v2.0虽解耦了一些，但是并未完全分离,并且分离的不够合理\r\n* 这一条也联系着数据结构吧，最好每个对象属性集中起来，然后每个enemyjs，itemjs之类的就做相关set，get等操作。\r\n* 数据放入如下结构：\r\ndatas/\r\n|--comment.js\r\n|--item.data.js\r\n|--enemy.data.js\r\n|-- ...\r\n### 原型链混乱需要重构\r\n* 这个也不好怎么说，就是有的做的事不太对它在程序中的位置，main和core的一些交叉关系看的也很难受，main既然是入口，应该只做资源，data，加载，然后初始化各个类，item，enemy做的也不太对，这个实例化应该只是实例化一个对象(一个具体物品或怪物)，不应该是实例化一个整体【不太确定哪种好，但依照新数据结构来说应当如此】。。其他多多少少有点这种问题吧\r\n\r\n## 解决后有利方面\r\n* 数据结构一致性完整性有利于编辑器的CURD，以及后面的数据库化\r\n* 数据解耦也是方便上一步\r\n* 代码结构变舒畅和可读性提高\r\n\r\n## 解决方案\r\n* comment.js表示所有数据的结构以及说明注释，按照这个分离和修改数据\r\n* 同上按照数据结构重构项目文件结构\r\n* 尝试修改一下，但现在项目代码量很大，很容易引入bug。。。"}}
{"actor":{"display_login":"ckcz123"}}