程序员必备的30条防御式编程思想原则

在分析若干线上问题之后,会发现很多问题并不是非常罕见的难题,而是由一个个较为明显的小错误积累而来,为什么会犯小错误?或许是因为侥幸心理,或许是因为只看到了局部的利益。从某一个例子来看,确实会有“偶因一着错,便为人上人”的侥幸,但是统计大量案例可以发现,大部分情况并不会有正面的结果。

本文汇编我在需求评审、编码、项目上线几个阶段总结的原则,这些原则虽然不能直接解决问题,但是可以尽可能地优化每一步行为,从防御式编程思维方式、行为习惯层面尽量避免错误的发生。

交流沟通时的原则

不同场景,使用不同的沟通工具

通过IM(即时通讯工具)打字是常见的沟通方式,成本低,适合简单问题的沟通以及团队内各种信息的通知。但如果一个复杂的问题,打字3分钟还说不清楚、无任何进展,应该立刻换一种更高效的沟通方式,比如语音或面谈。

语音沟通相比文字沟通,有了语气,可以避免纯文字语气生硬的问题,而且在单位时间内有更多的信息输出量,效率更高。有时会看到两个人在群里一人一句,讨论了5分钟,结果发现说的不是一件事情。如果及时换用语音,可能1分钟就发现问题所在了。

见面沟通相比语音,增加了表情,能更好地表达强烈的诉求。特别是遇到非常紧急的问题时,直接见面不失为最好的方法。有时候都出线上问题了,还在等别人通过IM回复,可能会影响最佳的止损时间。

避免确认偏误,反对的观点可能会带来更多启示

确认偏误,指的是只听“好”消息——即能印证自己观念的消息,而对“坏”消息赶尽杀绝——拒绝接受与自己观念不同的消息、想法。这种现象会导致自己无法接受一个长远有益的反对意见。

这种情况在大数据时代看信息流的时候会更明显,经过精准的算法,在有一个观点、喜欢某类观点的时候。精准的推荐算法,只为持续推荐给自己认同观点的信息。不会有反面的信息来纠正错误的观点。这样强化错误的观点,会让自己处于信息茧房之中无法自拨。

这是因为大脑的结构非常复杂,由理性的我和感性的我组成,对于别人的反对意见,感性的我会默认把别人的反对意见当成攻击。

所以我们就要训练感性的我,对于别人的观点,要仔细思考,再做行动。反对的观点,可能道出了自己想法中潜在的风险,甚至是一个更好方案的启蒙。通过训练主动辩证思考的能力,区分“听起来舒服的观点”与”对自己长远有利的观点“。

举例论证,只能作为决策的参考意见

无论是自己思考问题,还是讨论问题的时候,经常会出现以下两种观点。

  • 上一个项目,我使用了技术方案A,效果非常好,所以这个项目也使用技术方案A吧。

  • 我有一个同学,遇到这样的问题,他就是这样解决的,所以我们也可以这样做。

把一次偶然的成功,当成必然的结论的现象。既可能出现在讨论中,也可能出现在自己的经验中。这些经验可以当成决策的一个参考案例,但不能直接当成必然的结论。科学的方法应该根据不同的场景,不同背景,做大规模的统计,这样才能根据不同场景做更好的决策。

创意择优,自己调整权重再做决策

无论是技术方案的讨论,还是一个有争论问题的交流,大家都会从自己的角度有不同的观点。每个人都有自己更关注的点,所处位置不同,关注点则不同。如果需要自己做决策,那么在讨论的过程中,要理解每一个想法背后的原因,这样才能明白其底层逻辑,从自己的角度判断其权重。综合考虑不同角度的想法,这样才能站在自己的角度,更全面地考虑、决策问题。

李开复在选择毕业论文课题时,就涉及风险与稳定两类课题的决择。

  • 如果选择深度学习,可能会延期毕业,风险高,但是如果成功了则一举成名。

  • 如果选择普通的课题,能按时毕业,无风险,但是不会取得非常大的成就。

对于不同人,承受的风险是不同的,那么他们的选择也会不同,当然了,其长远收益也不同。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值