网络安全检测|网络安全服务|网络安全扫描-香港墨客投资移动版

主页 > 业界资讯 > ddos防御

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

  变量是代码中最小的单位,命名的好坏与可读性好坏有较大关系。比如命名是keyString,看意思应该是key值的字符串,如果在使用的时候用的是value,这会给别人阅读造成很大的障碍。

  编码:不要使用特殊技巧

  非常复杂的炫技代码,其价值在可读性面前不值一提。如果能开源,那也算是秀出风采,否则就是自嗨。

  Commit message 虽不起眼,但蕴藏大信息

  Commit message可以当成一个索引,不仅方便回顾迭代的流程,还方便回滚。每一个commit message,都应该和模块、函数的单一目的类似,尽量只有一个功能的修改。并且commit message最好有固定的格式,比如[分支名][修改的内容]。想要更详细的话,可以再加上[代码类型],区分是功能,还是bug的修复。甚至可以再加上[bugId],可以链接到相应的bug空间。这种习惯在集成,回滚时就体会到价值。

  代码评审,是输入、输出之后的反馈,是进步最快的方式之一

  代码评审:别人发现我的错误时,应该心存感激,而不是试图辩解。正如同健身的时候,先看书中的理论,再实践,最后找教练反馈。有时候我们认为自己做的动作是对的,但是在输出之后找教练反馈,可以纠正很多不注意的细节导致的错误。代码评审也是如此,有时候认为自己写得完美无缺,但实际可能漏洞百出。

  If else平衡,失败的数据也需要

  对于一些逻辑的处理,输出成功结果进行透传。虽然只需要处理成功的情况,但是失败的情况也要处理。失败的数据虽然暂时没用,但可以统计失败率,以及分析问题。

  测试阶段的原则

  涉及用户操作的产品功能,交叉测试更容易发现问题

  每个用户都有不同的操作习惯,对于涉及用户操作的产品功能,如果一直是同一名QA测试,可能因为其固定的操作习惯,导致不容易发现一些隐藏的bug。这个时候尽可量多的“用户”操作,从不同的操作习惯来体验,则更容易发现问题。如果能进一步扩大范围,不同岗位的同学一起使用、体验、吐槽,则能更早地发现真实用户的体验问题。

  无法解决的困难问题,试试研究的思路

  有时候会遇到一个很困难的问题,一天都解决不了。主要是两种情况:

  思路错了。

  未知的知识太多了。

  如果是思路错了,这个时候不妨以退为退,想一想为什么要开发这个功能,甚至退回到需求层面,是不是可以有其他更简单的解决思路。从更高的视野来看,可以避免陷入局部细节而无法自拨。

  如果是未知的知识太多,可以不直接解决这个问题,而是带着研究的想法,把相关的知识全部学一遍,有可能这个困难就迎刃而解了。如果时间有限,可以问别人,并做好记录,后续再亲自总结,抓住解决问题所带来的成长机会。

  上线之后的原则

  以正合,以奇胜

  几乎没有靠运气的出奇制胜,只有以拥有足够正面实力为前提,并且有一些额外的力量,才能取得最终的胜利,在做项目时也是如此。

  要想更快,更高效地完成一个项目,离不开日常的积累。项目上线不是结束,而是成长的开始。一个项目可以提供很多经验与素材,当成自己输入、输出的一种反馈,找到不足之处,避免下次犯同样的错误。

  在公司光环之下成长,而不是单打独斗

  闲暇时间干什么,找个副业?短期来看,确实能有一些额外的收入,但长远来看,即使多出来30%的收入,并不会有本质的变化,无非是能更换一些更高档的电子产品、服饰、日用品。个人的力量太弱小,单打独斗不如在公司的光环下,更高效完成项目的前提下获得个人的成长。

  一方面是因为公司的平台有更多资源,另外基于公司项目的成长,边际交付成本较低。基于现有的项目,深挖与之相关的底层原理,这样才能更快的积累与成长。在做简单项目的时候,底层原理的作用不明显,但对于非常复杂的项目,需要底层原理支撑的时候,自己积累沉淀的技术就会发挥出明显的效果。

  面对线上问题,焦虑毫无意义,重要的是寻找当下解决方案

  面对线上问题,担忧过去或焦虑未来都没有用。关注当下,冷静积极地寻求解决方案。失败既能化为动力,驱动个人成长,也能毁掉自己,这取决于我们如何应对失败。能打败自己的不是任何人与事,而是自己。出了线上问题,有两件事情要做:

  针对现状,如何解决。

  复盘分析原因,避免下次犯同样的错误。

(责任编辑:admin)