编码
代码整洁
- 不要为了编码规范争吵,对于编码规范要有正确的态度;
- 好的编码规范服务于代码的意图,绝对不是什么艺术探索;
- 好的编码规范是为了减少错误,而不是创作ASCII码的艺术;
- 牢记代码是为他人而写的;
- 不要把调整排版和修改功能同时放在一次提交中,需要分别提交到版本控制系统;
- 不要复制代码,将重复的代码提交到一个共有函数中,通过参数来控制变化部分;
- 确保每一句注释都有其价值。代码本身通常都能说明What 和 How 的问题。注释通常是为了解释 Why——不解释其然,解释其所以然; 8.不要把代码注释掉。这会让其他人感到困惑并妨碍他们修改代码;
- 让代码每天都比前一天更好。消除你遇到的所有不必要的重复;
- 重温自己以前写的代码可以看出你的编码技巧是进步了还是退步了。
- 你既可以通过添加代码改善系统,也可以通过删除代码改善系统。
- 学习代码的最佳方法是修改它,然后从错误中学习。
- 混乱的代码无所不在,要未雨绸缪。准备一些应对它们的法宝,并且能运用自如。 13.遇到“糟糕”的代码,要克制自己的厌恶情绪,想办法进行一些切合实际的改善。
- 慎选战场。权衡是否应该投入时间和精力来“清理”糟糕的代码。置之不理可能更务实。
- 遵循童子军军规。只要修改代码,就让它变得比修改之前更好。
- 对于烂代码,不必追究责任。
- 不要忽略代码中的任何错误。不要推迟到以后出错再处理,“以后”处理通常表示不会处理。
- 合理使用异常。掌握编程语言中异常的用法和规则。
- 在编写代码时考虑所有可能的执行路径。不要拖延对“异常”情况的处理,因为拖延往往会变成忽略,代码将因此产生 bug。
- 通过合理使用工程实践,避免 bug 进入代码。不要期望快速生成的代码是高质量的。
- 断言和日志(即使是不起眼的 printf)都是有效地消除 bug 的工具。要高效使用。
- 尽快修复 bug。不要让它们堆积起来,将你的代码变成垃圾坑。
- 在编写代码的同时编写测试。不要推迟,否则测试的效率将非常低。
- 简单的代码需要设计。它与过于简化的代码不是一回事
- 停下来思考一下。不要写愚蠢的代码。
- 承认错误和失误的编码决策。从错误中学习。
- 集中精神。在编写代码时不要漫不经心。
- 不要试图让代码不可改变。如果产品中有不可更改的代码,那么产品就会腐化。
- 产生“好的代码”不是别人的问题。这是你的责任。你有能力做出改变,带来进步。
- 避免复制–粘贴代码。可以将公用的逻辑放到公有函数和公共库中,而不是忍受重复的代码和重复的 bug。
- 不要忽视别人的代码。与其编写自己的版本,不如使用现有的第三方库。
- 使用版本控制系统。它既不是可选的,也不是最好拥有的工具,而是开发工作的支柱。没有它,你的工作成果就时刻处于危险当中。
- 在版本控制系统中存储软件项目包含的每个文件。但是要存储尽量少的文件,不要包含任何不必要的文件。
- 提交要小而频繁。
- 处于不断学习的状态。对学习新的东西充满期待。
- 学会享受学习。要学习什么呢?学习一种新技术、学习一种新技能、学习如何与他人合作、学习一个新的问题域、学习如何学习、学习完全不同的东西。
- 使用尽可能多的信息源来提高学习质量。
- 学习时记笔记。即使你会把笔记扔掉,也要这样做
- 对于某个话题,通过教来学效果很好
- 一个重要的学习技巧是边做边学
- 通过实际使用来巩固所学知识。运行示例代码,回答问题,创建示例项目。
- 当你达到胜任的状态时,一定不要自满。在编写代码的时候一定要让大脑充分参与,以避免愚蠢、潜藏危险的错误。
- 要警惕停滞不前。从定义上讲,追求成为一个更好的程序员并不是一种舒适的生活方式。
- 投入时间和精力来提高技艺。这是一项值得的投资,会有回报的。
- 不要变成技能单一、只会一招的人。作为开发人员,你需要去发现新的挑战,不断学习和成长。
- 优秀的程序员了解多种语言和多种惯用法,从而拓宽了解决方案的选择范围。这改进了他们编写的代码。
- 为了用一种语言编写出最好的代码,你应该遵循它的风格和惯用法,而不是强推自己的那一套。
- 好的程序员也是好的沟通者。他们听、说、读、写、编都很好。
- 不要期望一夜之间就成为语言大师,但也不要在学习的过程中感到沮丧
- 照顾好自己。工作时保持良好坐姿。
- 使用已有的代码,而不是自己从头开始编写。把时间用在更重要的事情上。
- 代码的作用是与计算机进行沟通。为保证指令按照你的意图执行,它们必须清楚而明确。
- 代码的作用是与其他人进行沟通,也包括你自己。代码必须是清晰明了的,这样其他人才能维护。
- 更多的注释并不一定使你的代码更好。表达清晰的代码不需要额外的注释来支撑。
可以做些改变
- 停止使用相同的工具。也许会有更好的方法让你的生活更轻松,你需要去了解它们。
- 停止对每个问题使用相同的编程语言。不要用高射炮打蚊子。
- 开始使用不同的操作系统。学习如何正确使用它们。即使不喜欢,也花一段时间去尝试,真正了解其优点和缺点。
- 开始使用一个不同的文本编辑器。
- 学习键盘快捷键,看看它如何影响你的工作流程。有意识地停止使用鼠标。
- 学习你在当前的工作中不需要的一个新话题,比如加深对数学或排序算法的了解。
- 开始你的业余项目。是的,利用你宝贵的业余时间做个“极客”,并且开放源代码。