C语言学习--编程思想(创造与防御)

创造性编程思维

在这个简单的练习中要告诉你如何做到创造性是不可能的, 但是我会告诉你一些涉
及到任务风险和开放思维的创造力。 恐惧会快速地扼杀创造力, 所以我采用, 并且
许多程序员也采用的这种思维方式使我不会惧怕风险, 并且看上去像个傻瓜。

  • 我不会犯错误。
  • 人们所想的并不重要。
  • 我脑子里面诞生的想法才是最好的。

我只是暂时接受了这种思维, 并且在应用中用了一些小技巧。 为了这样做我会提出
一些想法, 寻找创造性的解决方案, 开一些奇奇怪怪的脑洞, 并且不会害怕发明一
些古怪的东西。 在这种思维方式下, 我通常会编写出第一个版本的糟糕代码, 用于
将想法描述出来。
然而, 当我完成我的创造性原型时, 我会将它扔掉, 并且将它变得严谨和可考。 其
它人在这里常犯的一个错误就是将创造性思维引入它们的实现阶段。 这样会产生一
种非常不同的破坏性思维, 它是创造性思维的阴暗面:

  • 编写完美的软件是可行的。
  • 我的大脑告诉我了真相, 它不会发现任何错误, 所以我写了完美的软件。
  • 我的代码就是我自己, 批判它的人也在批判我。

这些都是错误的。 你经常会碰到一些程序员, 它们对自己创造的软件具有强烈的荣
誉感。 这很正常, 但是这种荣誉感会成为客观上改进作品的阻力。 由于这种荣誉感
和它们对作品的依恋, 它们会一直相信它们编写的东西是完美的。 只要它们忽视其
它人的对这些代码的观点, 它们就可以保护它们的玻璃心, 并且永远不会改进。

同时具有创造性思维和编写可靠软件的技巧是, 采用防御性编程的思维。

防御性编程思维

在你做出创造性原型, 并且对你的想法感觉良好之后, 就应该切换到防御性思维
了。 防御性思维的程序员大致上会否定你的代码, 并且相信下面这些事情:

  • 软件中存在错误。
  • 你并不是你的软件, 但你需要为错误负责。
  • 你永远不可能消除所有错误, 只能降低它们的可能性。

这种思维方式让你诚实地对待你的代码, 并且为改进批判地分析它。 注意上面并没
有说你充满了错误, 只是说你的代码充满错误。 这是一个需要理解的关键, 因为它
给了你编写下一个实现的客观力量。
就像创造性思维, 防御性编程思维也有阴暗面。 防御性程序员是一个惧怕任何事情
的偏执狂, 这种恐惧使他们远离可能的错误或避免犯错误。 当你尝试做到严格一致
或正确时这很好, 但是它是创造力和专注的杀手。

八个防御性编程策略

一旦你接受了这一思维, 你可以重新编写你的原型, 并且遵循下面的八个策略, 它
们被我用于尽可能把代码变得可靠。 当我编写代码的“实际”版本, 我会严格按照下
面的策略, 并且尝试消除尽可能多的错误, 以一些会破坏我软件的人的方式思考。

  • 永远不要信任输入
    永远不要提供的输入, 并总是校验它。
  • 避免错误
    如果错误可能发生, 不管可能性多低都要避免它。
  • 过早暴露错误
    过早暴露错误, 并且评估发生了什么、 在哪里发生以及如何修复。
  • 记录假设
    清楚地记录所有先决条件, 后置条件以及不变量。
  • 防止过多的文档
    不要在实现阶段就编写文档, 它们可以在代码完成时编写。
  • 使一切自动化
    使一切自动化, 尤其是测试。
  • 简单化和清晰化
    永远简化你的代码, 在没有牺牲安全性的同时变得最小和最整洁。
  • 质疑权威
    不要盲目遵循或拒绝
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值