《C++项目开发实战入门》攻坚战

《C++项目开发实战入门》攻坚战

2019.3.24:

过程
  • 辞职专心学习编程已经1月足,由几十行代码转向几千行的路很长。刚开始最好的方法是模仿,其实原来我是不信邪的,因为浮躁。
  • 但是信了这个邪,不一定不撞邪。直到看到知乎的回答(什么样的人学习很难学好?),惊觉自己虽然很较真的在看,但是缺乏系统性的、框架式思考,只是跟着代码走,对于刚起步的菜鸟来说很幸运。紧接着就是一个bug,解决了当然觉得搞笑,却切切实实地卡了4天多。
  • 症状:坦克小游戏,子弹碰撞总是向上跑。
  • 原因1:对源码里面的坐标系转换产生幻想,想当然的认为是由设备坐标系转换为笛卡尔坐标系。当初还拉着学数学专业的老铁研究了半天,尴尬。调了2天之后才发现,0角度怎么朝上?卧槽,原来源码里面的逻辑坐标就是x轴朝上的。恨当初先去瞎猜测了,调bug和写不一样,它不是架构过程,应该先跟着调试步骤收集信息,理解代码。
  • 原因2:对程序运行流程完全懵,无法进行数据的追踪。理解了角度的问题之后,依然反复查看碰撞检测函数,无果。终于,不知道何处放断点的情况下,翻开了《深入浅出MFC》,才算开始窥探MFC的调用流程。终于在前一天晚上追踪到了数据流转的方法。今日一早,继续追踪数据,发现原来是源码中的验证条件,把指向角度的指针是否为空,误加了*号,变成用角度本身来判定,而角度初始化为0,所以始终没有对角度赋值过,因而传回前进函数的时候,总是初始值0。很可爱的bug。
总结
  • 1.像写代码一样看代码,自上而下地理解、猜测、判断它的作用。
  • 2.多调试代码,验证自己对代码的理解,最好是追踪数据,还能辅助自己理解调用过程。
  • 3.遇到完全陌生的领域,翻翻书很有用,还顺带把书看了。
题外话
  • 最近在反思自己是不是真的对编程感兴趣,说没兴趣吧,坚持自学6年没有抛弃。说有兴趣吧,可我又很少体会到编程对我的吸引,是不是当时夸下的海口,加上内在的好胜心走到了今天。不管什么答案,就像谈对象一样,发现对方的优美之处,让大家都活的舒心,至少大家都努力了。
  • 这段时间,爱玩的LOL,被编程取代了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值