文档开发者中心
我的

从编码之道看事物之理(前篇)

“对一种技艺进行观察,并将所思所想运用到另一种技艺中,使得诸般妙用在一人的头脑中不断反思,新思维也就不期而至了”——弗朗西斯.培根        


前段时间粗略计算了一下,从自己进入我司到现在的7.5年中,开发以及维护的RTL超过18.8W行;对于一个IC开发人员来说,这应该是一个不小的数字;让人庆幸的是,当前自己并没有对代码感到厌烦,反而看到一些优秀的代码仍会激动,甚至产生一些特别的感触。      


前一段时间突发奇想:代码有似人生——编写代码的方式也映射着自己对待人生的方法——编码之道中体现着人生之理。这里有一个平凡的案例,待处理的问题如下图所示:




要处理上图所示的问题,通常可以看到两种方法:


  方法一:


       if ( B ) begin

       if( C ) begin …   end

       else   begin …   end

       end

       else if( C ) begin    …    end

       else           begin    …    end


   方法二:


       if ( C )       begin   … end

       else if( B ) begin  …  end

       else          begin   … end


针对同一个问题空间,这两种编码方法在功能层面完全相同,当然从耗费的笔墨来看,后者明显更优,然而进一步来看笔墨或许不仅仅是笔墨,几乎每一个编码人员都知道,前者犯错误的几率更高,前者的处理效率更低,总之,大家基本都会认同方法一不可取。



那么这个事关编码的问题和标题中的人生又有什么关系呢? 相信很多同学都见过下图,重要&不紧急事务的 优先级高于紧急&不重要的事务,其原因在于如果优先处理后者,那么前者很容易变成 紧急&重要的task,那么正在处理中的事项必然就会被打断,进而失去做事的连贯性,最终需要花费更多精力。




道理如此、如此道理,然而在编码中、在生活中,为什么我们又会不断地犯相同的错误呢,或许根因在于我们的惰性,从来都是“行”先于“知”,没有躬身于“知行合一”,无法融会执行的关系,最终看到的就是支离破碎的代码,甚至于支离破碎的人生。


by:HW-YS

点赞
1
收藏
回复
2
分享
举报
浏览602 发布于2019-08-30 06:32未知归属地
全部评论
最多点赞
最新发布
最早发布

顶顶,让更多人看到


2楼回复于2019-10-11 06:02 未知归属地

不太了解,顶一下吧


1楼回复于2019-08-30 09:06 未知归属地
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。