长久以来一直在思考这个事情:如何能够更快更好的写出优雅高效稳定的代码,一个优秀老练的程序员和新兵会有那些本质的不同,而新兵逐渐成长的路上所积累的东西是什么。
这里首先排除主观能动性部分,从群体角度看,同样基本素质的senior相对junior并不会在写出优秀代码的渴望有更大的优势。
到写这个文章的时候,我想到的答案之一是:洞察背后的道理,找到解决办法,沉淀成习惯。
TheCase
这个是促使我写这个文章的问题,最开始写一个很简单的类是类似这样的:
public Test
{
int a,b,c,d;
};
看起来非常的简洁,正常情况下使用没有问题,但是我已经设计和编程了超过12小时,时间也超过凌晨,尽管我还是杀气十足,不搞定不肯走,但是思维灵敏度和集中力在不知不觉中下降--犯错几率已经大很多。
这个类在10+各地方被使用,于是在一个不起眼的地方,有一个值没有初始化,结果是诡异的问题,进一步消耗了很多的时间来debug,找出问题。
这个问题有很多解决办法,其中比较合适的应该是这个:
struct Test{
public:
Test(int aa,int bb,int cc, int dd):a(aa),b(bb),c(cc),d(dd){};
public:
int GetA()const { return a; }
...
private:
int a,b,c,d;
};
这样从设计上就完全避免了忘记赋值的情况,这样的做法可以这样解读:
额外的那些代码,可能有人眼里会认为是“臃肿”的代码部分,在实现者看来是非常值得的,是更好的选择
我们可以这样量化评价原先的代码:
高出错几率:实现上没有错误,但是保护不够的代码,就是有更高的几率出错,这就是一个客观的概率问题,在样本足够多的时候,就是会造成伤害
实现消耗高,效率低:使用这种代码,为了避免出错,写的时候就要更加小心,你的心理负担就重,你会更快的消耗你的精力,就像运行效率低一样,这种代码在使用的时候会消耗你的资源,轻则消耗更多精力,重则导致bug,让成本质变
而且有了我昨天的切肤之痛之后,后面类似的问题会毫不犹豫的耐心的把多余的代码敲完。
TheSum
从上面的一个例子可以看出,在我们正常学习的时候,编程语言和算法书并不会提及,出错几率的设计,实现消耗这样的事情,而类似<the pragmatic programmer><code complete>在提及这样的事情的时候,对于正常人的我们,缺乏足够实践的前提下,并不会深入理解那些隐藏较深的,在编程实践方面的背后的道理。
早起的我绝对会反对上面例子的安全臃肿版,只有在大型项目中,经过长期大量的编程,切肤之痛之后,才会真正意识到后面的做法是真正更加好的。
那么回答最开始的问题,答案之一就可以是:洞察背后的道理,找到解决办法,沉淀成习惯。
分享到:
相关推荐
主要讲述神华包头煤制油化工有限公司煤制烯烃项目中污水处理及污水回用过程中,采用的两种水处理专利技术,在设计上与生产运行中的相同点和不同点,指出了在实际生产运行过程中,两种水处理专利技术存在的各类运行缺陷,...
某煤制烯烃项目回用水装置采用德国西门子公司高密度沉淀池专利技术,该装置自2010年5月底运行至今,曾多次出现影响高密度沉淀池正常运行的严重问题,具体表现为沉淀区产生高浓度黏泥无法正常排出和絮凝区产生积泥破坏...
煤基费托合成工艺中浆态床反应器的广泛应用对沉淀铁催化剂的稳定性和强度提出了更高的要求。实践证明,结构助剂,尤其是硅,能够提高沉淀铁催化剂的稳定性和强度。基于国内外目前对于费托合成沉淀铁催化剂中助剂SiO2的...
沉淀池行车控制.pdf
环保设备及应用沉淀池,环保设备及应用沉淀池课件,环保设备及应用沉淀池PPT
污水处理厂沉淀池
微信公众号:bugstack虫洞栈 沉淀、分享、成长,专注于原创专题案例,以最易学习编程的方式分享知识,让自己和他人
然而沉淀资金的法律性质模糊,孳息权属混乱,加之我国相关立法欠缺,监督管理体系滞后,直接阻碍网络第三方支付的安全性和可靠性。根据现行法规,第三方支付平台与用户间属于混藏保管合同关系,虚拟账户沉淀资金应认定为...
业务开发中如何沉淀技术.pptx
浸渍沉淀法制备钙基烟气脱硫剂,孙广林,田红景,本文基于吉布斯能量最小原理,运用HSC软件模拟,通过热力学分析得出CaS适合做脱硫剂。采用浸渍沉淀法工艺制备钙基烟气脱硫剂,通过
沉淀池排泥自动控制系统pdf,沉淀池排泥自动控制系统
《码出高效:Java 开发手册》源于影响了全球250万名开发工程师的《阿里巴巴Java开发手册》,作者静心沉淀,对Java规约的来龙去脉进行了全面而彻底的内容梳理。《码出高效:Java 开发手册》以实战为中心,以新颖的...
针对覆岩采动破坏含水层的生态修复难题,以化学沉淀物封堵采动导水通道为思路,开展了铁/钙质化学沉淀对采动破坏岩体孔隙/裂隙的修复降渗特性实验。采用单一裂缝岩样模型和石英砂管模型分别模拟地下水在破断岩层裂隙...
针对矿井煤泥水长距离排放导致大量淤泥污染巷道、影响辅助运输、人工清理困难的问题,设计了采区沉淀池,并对沉淀池结构进行了优化。通过在五采区的利用,该优化设计成功的减少了水流中的煤泥量,沉淀后的煤泥水分含量低...
沉淀过程粗化机制的计算机模拟,卢艳丽,陈铮,基于微观弹性力学理论和离散格点形式的微观扩散方程,编制了包含共格畸变能的二元立方合金沉淀过程微观组织演化的计算机模拟程序
本文整理了机器学习中大多数算法,包括:分类算法、回归算法、聚类算法、推荐系统算法、异常检测算法、关联分析算法,本文从算法介绍、算法优势、参数介绍、调优方法、使用场景、demo示例等6大方面介绍算法的全貌。
2018年高中化学专题3溶液中的离子反应第四单元沉淀溶解平衡1沉淀溶解平衡同步练习苏教版选修420180817133
第四章-沉淀分离法PPT课件.pptx