0.重构是程序员的主力技能。

想要提升脑容量,那就开始查看事情日志。

先用profiler调查,才能开始谈优化。

注释贵精不贵多。

新手段式员的进阶之路少不了这30个小技巧

普通程序员+google=超级程序员。

单元测试总是合算的。

不要先写框架再写实现。
最好反过来,从原型中提炼框架。

代码构造清晰,其它问题都不算事儿。

好的项目作风硬派,一键测试,一键发布,一键支配; 烂的项目生性猥琐,口口相传,不立笔墨,神神秘秘。

编码不要畏惧变革,要拥抱变革。

编程之事,隔离是方向,起名是关键,测试是主角,调试是补充,版本掌握是后悔药。

一行代码一个兵。
形成建制才能有战斗力。
单位规模不宜过大,千人班,万人排易成万人坑。

重构/优化/修复Bug,同时只能作一件。

大略模块把稳封装,繁芜模块把稳分层。

人脑性能有限,整洁胜于凌乱。
读不懂的代码,考试测验整理下格式; 不好用的接口,考试测验重新封装下。

迭代速率决定事情强度。
想多快好省,就从简化开拓流程,加快迭代速率开始。

忘掉优化写代码。
过早优化等同恶意毁坏;忘掉代码作优化。
优化要基于性能测试,而不是纠结于字里行间。

最好的工具是纸笔;其次好的是markdown。

最有用的措辞是English。
其次的可能是Python。

资源、代码应一道受版本管理。
资源匹配缺点远比代码匹配缺点更难排查。

不要基于想象开拓, 要基于原型开拓。
原型的代价是快速验证想法,帮大家节省韶光

序列化首选明文文本 。
诸如二进制、稠浊、加密、压缩等等有须要时再加。

编译器永久比你懂微不雅观优化。
只能向它不善于的方向努力。

至少半数韶光将花在集成上。
韶光,韶光,韶光总是不足。

与主流见地/方法/风格/习气相悖时,先反省自己最可靠。

涌现bug主动查,不管是不是你的。
这能让你业务能力猛涨、个人形象飙升。

不知怎么选技能书时就挑薄的。
最少不会太贵,且你能看完。

Log要写韶光与分类。
并且要能重定向输出。

注释是稍差的文档。
更好的是清晰的命名。
让代码讲自己的故事。

code review最好以小组/结对的形式。
对业务有一定理解,建议会更有代价(但不绝对)。
而且不会成为包袱。
管理员个人review则很随意马虎成team的瓶颈。

老鸟和新手的一个很大差异来自于debug的能力。

0.从高层往底层找错。

很多新手碰着程序实行结果不对(尤其是图形程序员),先认为是机器毛病(浮点精度、硬件故障),然后认为是驱动有错,再认为是系统有错,末了才开始排查自己的程序。
实在99%的情形下是自己程序有错,然后那1%里面的99%是系统有bug,再接着那1%里的99%是驱动有bug,末了到硬件问题,已经微乎其微了。
该当从高层往底层查,而不是反过来。

1.科学方法

debug一样平常来说是知道征象,但缘故原由未知。
这一点和很多自然科学的情形一样,以是完备也可以用科学的方法来:

提假说->根据假说做出预言->做实验肯定或否定预言。

对应于debug,那便是假设是某个地方有问题,那么推断它一定会导致除了你看到的征象之外的其他征象,运行程序看你的推断是否成立。

节制这个方法后debug不在变成瞎找瞎试,而是有迹可循有系统可依赖的方法。