游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6457|回复: 4

如何做到快速编程又少Bug?一个关于给自己埋雷的故事

[复制链接]

1万

主题

1万

帖子

3万

积分

论坛元老

Rank: 8Rank: 8

积分
36572
发表于 2015-12-3 16:07:16 | 显示全部楼层 |阅读模式
本帖最后由 小篱 于 2015-12-3 16:08 编辑

201307241901111966.jpg

  GameRes游资网授权发布 文 / 瀚阳

三个程序员被要求穿过一片田地,到达另一侧的房子。

菜鸟程序员目测了一下之间很短的距离,说:“不远!我只要十分钟。”

资深程序员看了一眼田地,想了一会,说:“我应该能在一天内过去。”菜鸟程序员很惊讶。

大神程序员看了一眼田地,说:“看起来要十分钟,但我觉得十五分钟应该够了。” 资深程序员冷笑了一声。

菜鸟程序员出发了,但只过了一会,地雷爆炸了,炸出了巨大的洞。这下他必须偏移预定的路线,原路返回,反复尝试穿过田地。最后他花了两天到达目的地,到的时候颤颤发抖,还受了伤。

资深程序员一出发就匍匐前进,仔细地拍打地面,寻找地雷,只有在安全的时候才前进。他在一天的时间内小心谨慎地缓慢爬过了这片地,只触发了几个地雷。

大神程序员出发之后径直穿过了田地,十分果断。他只用了十分钟就到了另一边。

“你是怎么做到的?”另外两个人问道,“那些地雷怎么没有伤到你?”

“很简单,”他回答道,“我最初就没有埋地雷。”

——译文引自伯乐在线

  地雷从何而来?

  与大神一起工作的时候就是这种感觉,也是我的第一印象「代码整洁而且没有地雷」。可是反过来想,为什么有的人就是习惯于埋雷呢?难道看不到后果吗?再深一层来讲,没人愿意给自己埋地雷,主要还是没有对习惯引起重视。培养起好的编程习惯是非常重要的。编程中的坏习惯,是很多程序员上升的天花板,十年原地踏步的原因。想要写出好代码,一定要常常问自己「我还能做的更好吗?」(好吧,这是算法课的口号)。只有想不断提升的人,才会注意去扣各种各样的细节,使得自己做得比前一次好。下面总结一下,常见的「地雷」有哪些:

  没有提前构建

  • 没有规划完整系统的生命周期,内存泄露到处都是。
  • 系统没有设计好,存在不少重复功能的类。
  • 系统的行为没有定义好,接口设计不完整,写了创建不写删除。

  没有重视代码的可读性

  • 代码没有经过提炼,到处都是重复代码,改一个功能常常要改很多处代码。
  • 缺少抽象,将具体实现暴露得到处都是。比如一个状态机在外部设置它的状态切换。
  • 代码没有紧贴语义。

  没有重视开发效率

  • 到处都是繁杂重复的配置项,通过约定可以省去很多配置。
  • 很多中间代码,比如解析xml、解析协议等等的工作,通过元编程可以将这些中间工作自动化。

  没有重视数据

  • 数据没有处理好,敏感数据要保护好,比如角色的属性,到处都是直接赋值的话,很容易出错,要把直接改变限制在少数的某几个函数里。
  • 某些系统知道得太多,比如数据层就不应该知道显示层的东西,显示和数据掺杂在一起。
  • 数据依赖于代码,比如写在C++的模板里面,没有为数据设计序列化文件。

  没有测试

  • TDD会加快编程速度,主要是分离关注点和缩短反馈周期。在一个大型系统里添加代码,如何确保你的代码按预期执行,测试显然是快速获得反馈的手段之一。

  更深层的原因

  “我不是什么伟大的程序员,我只是一个有着很多好习惯的程序员”—-Kent Beck

  在《程序员修炼之道》里,第一条就是「关心你的技艺」。如果你不在乎能否漂亮地开发出软件,你又如何要耗费生命去开发软件呢?

  相关阅读成为一名优秀的游戏程序员的几个修炼要点

17

主题

583

帖子

1899

积分

金牌会员

Rank: 6Rank: 6

积分
1899
发表于 2015-12-3 17:30:49 | 显示全部楼层
说那么多没个鸟用,菜鸟自己乐意埋雷吗?大神怎么练成的知道吗,一个好程序大神,要经历10几到20年的磨练才能造就;

3

主题

173

帖子

747

积分

高级会员

Rank: 4

积分
747
发表于 2015-12-4 13:30:02 | 显示全部楼层
程序大神是要靠钱去喂的,哪个大神手上没沾过项目的尸体甚至是公司的尸体。。。

5

主题

41

帖子

169

积分

注册会员

Rank: 2

积分
169
发表于 2015-12-4 16:58:36 | 显示全部楼层
所谓大神就是被雷劈多了才成为大神的

1

主题

77

帖子

243

积分

中级会员

Rank: 3Rank: 3

积分
243
发表于 2015-12-11 15:17:53 | 显示全部楼层
跟玩游戏一个道理即便是天赋凌然的大神级程序员!也是踩着雷区遍体鳞伤过来的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-24 00:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表