作者littleshan (我要加入剑道社!)
看板GameDesign
标题Re: [鲁蛇] 新手写game分享微薄心得
时间Sun Dec 1 12:42:01 2013
※ 引述《rubric (其实我正在找第几篇)》之铭言:
: ===========心得分享开始
: 1. 命名变数时,名称尽量写得愈清楚愈好
: (不一定是愈长,但能在何时何地,甚至是几天後看见这个变数,
: 都能让自己立即看懂最重要)
我个人原则是 scope 愈大的变数名字要愈完整
: 2. 命名变数时,可注解:
: a. 该变数的用途、名称
: b. 该变数的值是如何被决定、在哪个method里被决定的
: 甚至有些可附上决定该变数的值的式子,例如:
: c. 该变数取得後将被用在哪个method、或是用在哪个位置
b 和 c 基本上不切实际
因为你要写的太多了
而且这些资讯其实 IDE 可以帮你查出来
如果把这些资讯全部记下来
日後改写 code 时还要全部更新所有注解
通常会导致你的注解与 code 并不吻合
而错误的注解其实比没有注解更糟糕
: 3. 每当进入一个method时,可以考虑print出"已经进入XX method或thread里"
: 如此一来就可以在程式出问题时,观察到究竟是进入哪个method、判断式
: 或回圈中时出问题。
: (老实说这一点是因为我不会用eclipse附的debug功能
去学 debugger 吧
: 4. 遇到多於一个bug时,先处理看起来比较简单的bug,
: 有时复杂的bug反而因此随着消失。
绝对不要因为它消失就以为它被修好了 XD
: 5. 有时尽管是很小的修改,但也要认真跑跑看程式;否则修改的地方累积愈来愈多
: 的时候,最後出现bug时,反倒不知道是当初修改的哪个部分出问题。
: (听起来很基本,但这一点我吃了很大的亏
要写 unit test 让测试自动化
手动测试很烦又容易出错
: 最後几点是纯粹个人习惯:
: a. 我会每当要做怎麽样的修改,或增加什麽功能,
: 我都会在记事本上写下流水帐(或任何闪过脑海的事情) 如下:
: <目前正在修改某某bug... 目前浏览到第几行...
: 记得增加某某功能... 衣服洗好还没挂等等...>
: 然後将已经完成的部分删除
: b. 每过一段时间(例如说3天)等等,重新浏览并精简所有程式码
: 你会发现有很多地方可以省略,或是忘了那些变数是在做什麽
: (这时就可以替该变数加上注解),甚至是简化程式码,
: 很不幸地抓到新的bug等等XD
: c. 每当有一次(觉得可能会出问题)的修改,都要存一份修改前的档案
用版本控制系统
新手用 git 可能难了些
hg 算是不错的选择
: 不好意思罗嗦了这麽多
: 以上纯属新手的心得,欢迎讨论分享 ~(‧ω‧‵)~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.3.139
1F:→ LayerZ:纯推b,c不实际@@ 12/01 14:39
2F:→ LayerZ:根据封装概念,里面的东西不给外部使用,给外部使用的东西 12/01 14:40
3F:→ LayerZ:不管任何地方都可以使用,要去描述哪边定义哪边使用就.. 12/01 14:41
4F:→ LayerZ:这是理论上,有时候会有一些特殊目的(省效能记忆体?) 12/01 14:42
5F:→ LayerZ:都是直接在旁边加注解了事XDD 其实这个变数/函式在哪边用 12/01 14:43
6F:→ LayerZ:电脑都找的到@@ 12/01 14:43
7F:推 rubric:受教了 一午休完就这麽多知识,真开心( ̄▽ ̄)b 12/01 17:42
8F:→ rubric:确实有些不能因为消失就以为好了,没理解bug出现原因 12/01 17:43
9F:→ rubric:就继续有其风险 12/01 17:44
10F:→ rubric:debugger 看起来好难XD 12/01 17:53
11F:→ doomleika:debugger其实不难,省下的时间跟printf魔术差很多 12/01 18:46
12F:→ siriusu:推 12/02 20:29