“对一种技艺进行观察,并将所思所想运用到另一种技艺中,使得诸般妙用在一人的头脑中不断反思,新思维也就不期而至了”——弗朗西斯.培根
前段时间粗略计算了一下,从自己进入我司到现在的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






































苏公安网备 32011402010933号