在工作过程中,听到同事说起,硬编码和软编码,大脑大概明白其意思,具体一想,如何专业的表述这对孪生概念呢,需要展开来了解一下。
在网上查阅这两个概念,由于当前短视频较火,这两个概念在视频编解码方面有所指,硬编码是利用硬件芯片本身GPU、DSP等非CPU去给视频编码,而软编码则指是通过软件本身或者CPU对视频进行编码。
而目前我在工作中接触的这两个概念主要是针对代码的灵活性和可扩展性角度来讲的,更多的是一种设计思想。
硬编码
简单直白的说就是写死值,之前博主在一家公司写代码的时候,称这种在代码中是一种坏味道,例如,if(a == 10),这个10一看不知道是什么意思,直接用的魔数。亦或解析某个路径下的文件,写代码时,直接将这个文件路径固定,不管以后是否挪到了其他路径,默认它就永远是在那个路径下,没有考虑变化。
软编码
一句话来说,定好地方,方便后续修改和扩展。在大型软件编码中,软编码很重要,会有很多地方用到相同的值,如果是在某个地方定义好值,在代码中用它的别称,如果后续这个值有变化,可以很方便的修改,只需在一处修改。软编码可以理解为以不变应万变,这个不变是指在代码中大部分逻辑不需要动,变是指后续市场需求的变化而需要软件做的一些适配,而这种适配只需要修改某些小角落。