阅览云风大大《游戏之旅——我的编程感悟》时,于书中看到好些我认可的、该以相同态度去饯别的建议,摘录于此处供现在与未来的自己享受:
终其整本书,尽管参阅之书本、网站、代码众多,但我自己都一向坚持一个准则:建立在充沛理解的基础上,再用自己的言语表达出来。我相信只需这样,读者才能够看到一个从独立思考视点取得的常识体系,杂乱中不失一缕联络。
其实,这些智能算法,本质上并不杂乱,都只是供给一个思路而已。举凡大自然中存在的事物,寻根究底,又有哪点是构造在杂乱的原理之上的呢?
假如全部都能够从前人那里得到,那时代岂不是在后退吗?
多年的编程阅历让我理解了一个道理:绝大多数情况下,没有解决不了的问题,只是由于平常短少练习而惧怕问题的杂乱度,畏惧的心思让咱们挑选躲避,采纳并不那么好的方案去解决问题。最后,还能够找到一个适宜的理由,比方全部以稳定全部以工期为重,以此取得心灵的安慰。
从理解编程这件事自身,我不觉得有比basic更好的挑选。
以我多年的经历,关于游戏程序的设计,除了整体结构外,考虑最多的无非就是时间和空间。有时候咱们需求空间换时间,以突破速度的极限,有时又需求时间换空间,使程序能在适宜的机器配置下流畅地运转。
学习新的技术,翻译一本相关的英文著作能够算是一条捷径了,比囫囵吞枣地读一遍英文原文要有效得多。由于责任感,使你有必要用心肠搞清楚每一个句子的意思,避免译错而误导阅览你的译作的人们。即便曾经对此有所了解,翻译完成后,也一定使自己的理解更上一层楼。
其实,技术书本的翻译,英文才能是很非必须的,相关技术常识的掌握尤显重要。
这一章,将领略一下在x86下优化代码的趣味。在阅览这些之前,期望读者理解一个道理:CPU的设计不是一成不变的,一切的优化战略和准则都可能在有一天产生天翻地覆的改动,曾经相对快的办法变得相对慢,相对慢的办法变快。在编码生计中,咱们需求不断地学习新的常识,以适应新的硬件环境。好在大准则较小准则改动得慢,不用过于忧虑常识过期,关于现已写好的代码,如非必要,也不用老是从头创新。由于一旦CPU有了革命性的改动,也意味着其绝对速度有了巨大的进步,作为游戏程序员,考虑曾经代码的效率问题大多是不用要的。
在我的程序设计哲学里,程序员的水平是和其代码长度成反比的,咱们开发的一款几十万人同时在线的大型网络游戏客户端的C 部分,统计下来不超过1M的源码,通过几年的不停保护修改,本来风貌并无太大改动。
终其整本书,尽管参阅之书本、网站、代码众多,但我自己都一向坚持一个准则:建立在充沛理解的基础上,再用自己的言语表达出来。我相信只需这样,读者才能够看到一个从独立思考视点取得的常识体系,杂乱中不失一缕联络。
只需自己能保持真诚和谦逊,存在的过错就能够得到理解;尽管整体上并不完善,但于后来者,仍旧能够从中学到一些闪光点,而避免踏上过多的弯路。无论是从一开端揭露“风魂”的源码,仍是现在以并非专家的身份写这么一本大杂烩相同的书,我想,这些于己于人都还应该是有意义的作业。
对预算才能的训练是怎么的必要,这里给出一些建议,这也是我时常无意识去做的作业。
(1)面对问题马上对时间和空间,还有解决问题需求多杂乱的代码做出反响。在使命完成后反思自己当初的预算终究有多少误差。
(2)精确地弄清问题,并确定会产生有关影响的前提条件。除了在设定条件下做出精确的预算外,还需求预算各种不同条件的产生几率。
(3)确定预算成果的精度需求到达怎样的程度。
(4)把问题分成更为细致的子问题,找到子问题之间的关系,确定哪个子问题最需求被预算。
(5)不要急于达成结论,多做思考。重要的或是没有碰到过的问题不要太相信自己的预算成果,应该用行动来验证。
C 供给了太多的灵活性,这些灵活性中布满了圈套,一不小心就会让初学者陷进去。东西越方便,就越容易被滥用,咱们应该时间警觉这一点。以我个人的阅历,总结出一条不被很多人接受,但自己却十分受用的准则:尽可能地运用结构最简单的东西来完成使命,直到这个东西不适宜。
简直任何一个有经历的程序员都理解,仿制一段写过的代码,贴在另一个当地改动几句让它能够正常作业,这种令人作呕的行为,无论何时都应该被避免。
由于这简直是大部分程序过错的根源,在多个当地表达类似的概念,意味着日后改动一个当地,就有必要记住改动类似的一切当地。而直接仿制这些代码,导致编译器并不知道这些当地的类似性,不能为你供给这种协助。而人,跟着项目的扩大,简直不可能记住自己干过多少这种仿制的动作。
程序员有时或许没有意识到他们在重复,有时是出于偷闲,这些都能够用加强对代码糟糕味道的嗅觉敏感度和进步作为编码者的责任心来到达。