博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]一些好的原则
阅读量:4933 次
发布时间:2019-06-11

本文共 1119 字,大约阅读时间需要 3 分钟。

转自:

  • 把代码写清楚,别耍小聪明。
  • 想干什么,讲的简单点、直接点。
  • 只要有可能,使用库函数。
  • 避免使用太多的临时变量。
  • ”效率“不是牺牲清晰性的理由。
  • 让机器去干那些脏活。
  • 重复的表达式应该换成函数调用。
  • 加上括号、避免歧义。
  • 不要使用含糊不清的变量名。
  • 把不必要的分支去掉。
  • 使用语言的好特性,不要使用那些糟糕的特性。
  • 该用逻辑表达式的时候,不要使用过多的条件分支。
  • 如果逻辑表达式不好理解,就试着做下变形。
  • 选择让程序更简洁的数据表达形式。
  • 先用伪代码写,再翻译成你使用的语言。
  • 模块化。使用过程和函数。
  • 只要你能保证程序的可读性,能不用 goto 就别用 。
  • 不要给糟糕的代码打补丁 - 重写就是了。
  • 把大的程序分成一小片一小片来写,分块测试。
  • 使用递归程序来处理递归定义的数据结构。
  • 正确和错误的输入数据都要测试。
  • 确保输入不会超出程序的限制。
  • 依靠文件结束来终止输入,而不是依赖一个记数。
  • 把文件结束作为一个输入状态来处理。
  • 识别出错误的输入;如果有可能就修复它。
  • 让输入数据很容易构造出来,让输出数据不言自明。
  • 使用统一的输入格式。
  • 让输入容易校对。
  • 如有可能,提供更自由的输入格式。
  • 使用输入提示,允许使用默认值。并把它们显示出来。
  • 把输入输出放到子程序里。
  • 确保所有的变量在使用前都有初始化。
  • 不要因为一个 bug 而停止不前。
  • 打开编译程序的调试选项。
  • 常量结构用数据声明初始化,变量结构用执行代码初始化。
  • 小心 off-by-one 错误。
  • 当循环中有多个跳出点时要小心。
  • 如果什么都不做,那么也要优雅的表现出这个意思。
  • 用边界值测试程序。
  • 手工检查一些答案。
  • 防御式编程 - 为不可能的情况写几句代码。
  • 10.0 乘 0.1 很难保证永远是 1.0 。
  • 7/8 等于 0 ,而 7.0/8.0 不等于 0 。
  • 不要直接判断两个浮点数相等。
  • 先做对,再弄快。
  • 先使其可靠,再让其更快。
  • 先把代码弄干净,再让它变快。
  • 别为了获得一丁点“性能”就牺牲掉整洁。
  • 让编译器做些简单的优化。
  • 不要过分追求重用代码;下次用的时候重新组织一下即可。
  • 确保特殊的情况是真的特殊。
  • 保持简洁以获得速度。
  • 不要死磕代码来加快速度 - 找个更好的算法。
  • 用工具分析你的程序。在做“性能”改进前先评测一下。
  • 确保注释和代码一致。
  • 不要在注释里仅仅重复代码 - 让每处注释都有价值。
  • 不要给糟糕的代码做注释 - 应该重写它。
  • 给变量都起个有意义的名字。
  • 把程序重新整理一下,让阅读代码的人更容易理解。
  • 为你的数据布局写一个文档。
  • 不要过分注释。

转载于:https://www.cnblogs.com/lcinx/p/10570370.html

你可能感兴趣的文章
FlashCS5作成SWC,在Flex4中使用(1)
查看>>
《那些年啊,那些事——一个程序员的奋斗史》——91
查看>>
简单的学生管理系统
查看>>
vue-cli目录结构及说明
查看>>
JS 数据类型转换
查看>>
WeQuant交易策略—RSI
查看>>
osgearth将视点绑定到一个节点上
查看>>
PHP 当前时间秒数+数值,然后再转换成时间。
查看>>
TNS-12537,TNS-12560,TNS-00507 Linux Error: 29: Illegal seek解决
查看>>
IOS开发之Post 方式获取服务器数据
查看>>
Python使用selenium模拟点击(二)
查看>>
go语言生成一张正弦图
查看>>
OOP的几个原则-----LSP:Liskov替换原则(下)
查看>>
DevExpress更新至13.1.7
查看>>
菜谱查询接口文档
查看>>
PID204特种部队
查看>>
P2420 让我们异或吧(倍增)
查看>>
codeforces 880E. Maximum Subsequence(折半搜索+双指针)
查看>>
分享Silverlight/Windows8/WPF/WP7/HTML5一周学习导读(5月14日-5月20日)
查看>>
数据交互 axios 的使用
查看>>