花了一周时间终于把强化模拟器给写出来了,实在没想到居然能写过 1000 行。由于模拟器的性质上要做到数据双向绑定,这次就使用了以前用过一会然后太难用弃坑的 Vue,界面直接用 Bootstrap 解决的,赞美开源项目。
1. 先考虑好需求,做好 TODO LIST
写模拟器的时候经常不知道下一步怎么走,写到一半觉得差不多了又感觉还差太远,于是拿 Google Keep 做了个 TODO LIST。大致像这样:
- 多语言支持
- 复制已有素材
- 提示溢出 exp,同名等提醒
- 大成功计算
- CSS 修改:输入对话框
- etc…
像这样把要做的需求考虑好,分清轻重缓急之后一条一条来就有效率得多了。
2. 界面先行
前端工作中差不多也是这样的吧……之前随便写了一个计算逻辑,最后写界面的时候发现完全用不上,因为功能相差实在是太远了。
比如一开始是简单的两个输入框,输入本体武器和素材武器,写界面时发现采用拖动素材图标的方式更简单,编辑则是新开 Modal 进行,所以原来的代码基本上就废案了。
或者说要考虑模块化设计思路?然而并没有学过程序设计理论(死)。
3. 小功能分开写,保证可扩展性
大概是程序设计理论的内容吧……有些可以复用的 function 之前一直喜欢写死,虽然写代码时很开心省事,等到要扩展时就 GG 了。
比如这次一个用到 localstorage 的保存功能,以及和后端通信的保存读取功能,以前直接写死了,这次把数据作为参数传进去后就好很多。
不发挥可复用性的优势还不如直接从头到尾写一条呢,虽然时间表就是这么干的(死)
4. 数据结构很重要
一个清晰的数据结构不仅程序处理起来很方便,人写的时候也不用多费脑筋。
例如
{ status: "string",
data: { firstcolumn: "string",
secondcolumn: "string" } }
就比
{ status: "string",
firstcolumnData: "string",
secondcolumnData: "string" }
甚至
["String","string","string"]
好很多。
然而这个我也没学过啊(摔)
5. Git is god.
Git 确实很难上手,不过上手了之后真的是特别方便。
版本控制就不多说了,现在小到编辑器大到 IDE 都集成了 Git,对比版本差别不要太方便。比如发现了一个莫名其妙的 BUG 但不知道先前版本是不是也有,这时直接 git checkout -b <branch>
到先前的版本上测试,结束后再 git checkout master
回来,就省得各种 Ctrl+Z
了。
还有什么设置 post-receive 自动部署啊……
这次虽然用了一周来写这玩意,不过收获良多。要不要再开个新坑呢……(不
另外还是 Webstorm 好用啊,IDE 就是 IDE,还是收钱的。虽然 4G 的内存跑这东西太吃力了…… Java 果然是内存大户吗。