当前位置:首页 > 嵌入式 > 技术让梦想更伟大
[导读]据说,赵国的首都邯郸的人走路的姿态很好看,动作非常优雅、轻快。燕国有一个少年听到这个传说,非常羡慕邯郸人,就走了很远的路去赵国,想学习邯郸人走路的方法。刚开始,他整天站在街头,仔细研究每个人走路的姿态,再慢慢模仿他们,可是都没有成功。后来,他想可能是受到过去走路习惯的影响,所以,...


据说,赵国的首都邯郸的人走路的姿态很好看,动作非常优雅、轻快。燕国有一个少年听到这个传说,非常羡慕邯郸人,就走了很远的路去赵国,想学习邯郸人走路的方法。刚开始,他整天站在街头,仔细研究每个人走路的姿态,再慢慢模仿他们,可是都没有成功。后来,他想可能是受到过去走路习惯的影响,所以,他决定要忘掉以前走路的方法。从那时候起,他更专心研究邯郸人走路的姿势,不过,再怎么努力他还是学不会,最后他只好放弃。可是,因为他把以前走路的方法忘得一干二净,已经不知道该怎么走路,只好一路爬着回去。http://www.hydcd.com/cy/gushi/0236hd.htm

不知不觉间,代码也写了二十余载,我已成精了。借着过来人的身份和语气,有一件事情我一直都特别喜欢吐槽:无论过去多少年,中国的嵌入式软件开发者群体似乎一直对一个叫做“编码规范”的东西趋之若鹜,仿佛是什么了不得的武林秘籍,学会了就可以叱咤武林让让人不敢小觑又亦或是什么内功心法,需要每日研读或与它人细细品读交流,以求它日可以参透其中奥秘,从此内力大增,用心跳就可以虐死对手


君不见,曾几何时《某为编程规范》在网上被广泛传抄,互联网时代虽然无法“洛阳纸贵”,却曾经引得某公司的公关部门到处发函让站长们删帖;时过境迁,虽然某为的编程规范也不至于热度全无,但对冠名于国外大厂大公司的编码规范的追捧却已悄然成为当下的热门——仿佛如果说不出自己使用的规范来自哪个大门派,都不好意思跟人家打招呼


可拉倒吧!
在兄弟们浪费太多时间之前,可曾了解过自己苦苦追寻和模仿的究竟是个什么东西?

【编码规范的本质是什么?】

要理解编码规范的本质,其实并不复杂:
  • 编码规范是在一定范围内强制推行的编码习惯;这里的编码习惯通常来自于对团队有控制力的一个或者少数几个人


这里,你会很容易注意到三个关键字:“一定范围”、“强制推行”和“编码习惯”。抓住这三点,编码规范的本质就像“任意不在同一直线上的三点确定一个平面”一样——没得跑了。


首先来说说这个“编码习惯”,其实很好理解,它就是字面意思——一个人写代码时候的某种习惯,高情商叫风格,低情商叫“我就爱这么干,别问我为啥,我要么不知道,要么等我编个理由告诉你”。总之呢,编码习惯带有强烈的主观性、基本上可以认为缺乏强有力的客观依据,在稳定性和一致性方面其实就是水中花镜中月——不能说完全没有,只能说毫无可信度。


不信么?今天你看了一个大牛的代码,觉得:


“哇!好牛逼”,

“大牛这么做一定有什么深意”


然后不自觉的就学着人家的编码规范来了。过了几天,你可能又碰到了另外的大牛,或者是什么明星开源项目……咋说呢……如果用男女关系来形容兄弟们的行为,那就是妥妥的渣男/渣女——没得洗


你跟我说说,哪儿来的稳定性和一致性?还不如先问问“你是谁的粉”比较靠谱。


很多时候,一个程序员自己的编码习惯可能一辈子都没有鲤鱼跃龙门——成为编码规范的机会;但如果有朝一日,你满足了以下两个条件,你的编码习惯就是妥妥的编码规范了:

  1. 拥有了一个完全由自己掌控的团队或者项目;

  2. 拥有了执行决定的强制力;(比如KPI审核,扣工资之类)


此时,只要你乐意,完全可以在“你控制的范围内”“强制”推行你自己的编码习惯——恭喜你,一个只属于你的编码规范就诞生了。

【编码规范的“原罪”】

搞懂了编码规范诞生的原因,接下来很自然的,就要聊一聊伴随编码规范一起诞生的“原罪”了。
要理解什么是编码规范的原罪,首先必须要讲清楚“编码规范”(或者说“遵守编码规范”)的意义。然而,有些东西你非要向字典一样去从正面解释往往非常抽象,但稍微打个比方,就简单明朗了——实际上:
编码规范的作用几乎完全等效于人类自然语言文字中的书法。

简单说,编码习惯就是关于“你如何写字的”,而编码规范就是“一群人所遵守的书法风格”。这么一比方,也许你立马注意到了:
  • 无论是编码规范还是编码习惯,都只跟描述“你写字丑不丑”、“漂不漂亮”的一个“主观性非常强的”、甚至还带有“艺术性玄学”的评价标准有关;


  • 我们日常写代码其实可以类比为写文章,这意味着:

    • 你可以用非常漂亮的手写体写出狗屁不通的文章;

    • 你也可以在赶时间的情况下,用一种只有自己看得懂的方式,快速而高效的写出优秀的作品;

    • 书法除了草书,往往暗示着——费时间;何况草书往往暗示着,除了那几个评论家,普通人基本看不懂。

    • 书法好坏和写文章所需的遣词造句的技法,以及文章整体的修辞、结构安排完全无关。


说的再直白一点:当你在追求“如何写出精修文章时”,追求“书法”,是浅薄的,而且毫无意义的当你在追求如何写出好的程序时,你需要的是数据结构、算法、操作系统、软件工程、设计模式、开发思维之类的知识,而不是关于如何把代码写的多么漂亮,多么“规范”的书法——或者说表面功夫。认真说起来,连这里“怎样算作代码写的规范”,从一开始就只是某几个人的主观概念罢了。
正如景秀文章往往也是用赏心悦目的书法写出来的;注重表面的编码规范也并非是什么大罪大恶需要我们弃之如粪土。要知道这其中区别,就必须要谈一谈编码规范的原罪。
  • 原罪1:肤浅引战的导火索


正如我在之前一篇文章《真刀真枪模块化(1)——一本糊涂账》所提到的那样:
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭