清晰第一。清晰性是易于维护、易于重构的程序必须具备的特征。
简洁为美。简介就是易于理解并且易于实现。
选择合适的风格,与源代码风格保持一致。
头文件
头文件的设计体现了大部分的系统设计,不合理的头文件布局是编译时世橘间过长的根因,实际上是不合理的设计。
头文件中适合放置接口的声明,不适合放置实现。
头文件应当职责单一。
头文件应向稳定的方向包含。
每一个.c文件应有一个同名的.h文件,用于声明需要对外公开的接口。
禁止头文件循环依赖。
禁止包含用不到的头文件。
头文件应当自包含。
编写内部#include保护符(#define保护)。
禁止在头文件中定义变量。
只能通过包含头文件的方式使用其他C提供的接口,禁止在C中通过extern的方式使用外部函数接口和变量。
禁止在extern "C"中包含头文件。
函数
函数设计的精髓:编写整洁函数,同事把代码有效组织起来。
一个函数仅完成一个功能。
重复代码应该尽可能提炼成函数。
避免函数过长,新增函数不超过50行。
避免函数的代码块嵌套过深,新增函数的代码块嵌套不超过4层。
可重入函数应避免使用共享变量;若需要使用,则应该通过互斥手段对其加以保护。
对参数的合法性检查,由调用者负责还是接口函数负责,应在项目组模块内统一规定。缺省由调用者负责。
对函数的错误返回码要全面处理。
设计高扇入,合理扇出(小于7)的函数。扇出是指调用其它函数的数目。扇入是指有多少上级函数调用它。
废弃代码要及时清除。
函数参数不变使用const限定。
函数应避免使用全局变量、静态局部变量和I/O *** 作,不可避免的地方应集中使用。
检查函数所有非参数输入的有效性,如数据文件、公共变量等。
函数的参数个数不超过5个。
在源文件范围内声明和定义的所有函数,除非外部可见,否则应该加static关键字。
标识符
标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。
产品、项目组内应保持同意的命名分格。
尽量避免名字中出现数字编号,除非逻辑上确实需要。
重构、修改部分代码时,应该保持和原有代码风格一致。
文件命令统一采用小写字符。因为不同系统对文件名大小写处理会有不同(windows不区分大小写,但是linux系统则区分)。
全局变量应增加“g_”前缀。
静态变量应增加“s_”前缀。
禁止使用单字节命名变量,但是允许定义i,j,k作为局部循环变量。
不建议使用匈牙利命名法。
对于数值或者字符串常量的定义,建议采用全大写字母,单词之间加下划线的方式命名。
变量
结构功能单一,不要设计面面俱到的数据结构。
不用搜陆团或者少用全局变量
防止局部变量与全局变量同名
通讯过程中使用的机构,必须注意字节序。
严禁使用未经初始化的变量作为右值。
使用面向接口编程思想,通过API访问数据。
尽量减少没有必要的数据类型默认转换与强制转换。
宏和常量
用宏定义表达式时,要使用完备的括号。
将宏定义的多条表达式放在大括号中。
使用宏时,不允许参数发生变化。
不允许直接使用魔鬼数字。
除非必要,应尽可能使用函数代替宏。
常量建议用const定义代替宏。
质量
时刻注意易混淆的 *** 作符
必须了解编译系统的内存分配方式,特别是编译系统对不同类型的变量的内存分配规则,如局部变量在何处分配、静态变量在何处分配等。
不仅关注接口,同样要关注实现。
禁止内存 *** 作越界。
禁止内存泄漏。
禁止引用已经释放的内存空间。
编程时,要防止差1错误。
switch语句必须有default分支。
函数中分配的内存,在函数退出之前要释放。
不要滥用goto语句。
时刻注意表达式是否会上溢、下溢。
程序效率
在保证软件系统的正确性、简洁、可维护性、可靠性及可测试性的前提下,提高代码的效率。
通过对数据结构、程序算法的优化来提高效率。
将不变条件的计算移到循环体外。
对于多维大数组,避免来回跳跃式访问数组成员。
创建资源库,以减少分配对象的开销。
将多次被调用的“小函数”改为inline函数或者宏实现。
注释
优秀的代码可以自我解释,不通过注释即可轻易读懂。
注释的内容要清楚、明了,含义准确,防止注释二义性。
修改代码时,维护代码周边的所有注释,以保证注释与代码的一致性。不再有用的注释要删除。
文件头部应进行注释,注释需要列出:版权说明、版本号、生成日期、作者姓名、工号、内容、功能说明、与其他文件的关系、修改日志等,头文件的注释中还应有函数功能的说明。
函数声明处注释描述函数功能、性能及用法,包括悉郑输入和输出参数、函数返回值、可重入的要求等;定义处详细描述函数功能和实现要点,如实现的简要步骤、实现的理由、设计约束等。
全局变量要有详细的注释,包括对其功能、取值范围以及存取时注意事项等的说明。
尽量采用工具可以识别的格式注释。
排版与格式
程序块采用缩进风格编写,每级缩进为4个空格。
相对独立的程序块之间、变量说明之后必须加空行。
一行只写一条语句。
对等 *** 作两边加空格,注释符与内容之间加空格。
编译
使用编译器的最高告警级别,理解所有的告警,通过修改代码而不是降低告警级别来消除所有告警。
在产品软件中,要统一编译开关、静态检查选项以及相应告警清除策略。
可测性
模块划分清晰,接口明确,耦合性小,有明确输入和输出,否则单元测试实施困难。
在统一项目组或产品组内,调测打印的日志要有统一的规定。
使用断言记录内部假设。
不能用断言来检查运行时错误。
在世界上任何一个地方或角落生产,必须是符合国际标准的“标准化产品”(美国砖)。最终满足不同客户需要的产品,只是这些部件或模块的不同方式的组装和集成而已。此外,华为的现代企业管理,必须建立在每一个管理流程规范化和标准化的基础之上。总之,标准化理念和战略的有效实施,切实促进了华为企业现代化管理的持续优化。而这种持优化的管理,有力地保障了华为全球战略的有效推进,从而有力保障了华为全球业务持续稳定的快速增长。
3.4 华为的标准化战略,扎实推动了“合作共赢”的行业生态圈建设
ICT 全球行业标准的制定和实施,有赖于整个行业各个利益相关方的积极参与和通力合作。3G 和 4G 发展经历表明:行业标准的碎片化和缺乏统一标准,会延长 ICT 新技术的商用周期。标准越多,相关技术商用周期越长。3G 网络技术,由于存在 3 个不同标准(CDMA2000,TD-SCDMA 和 WCDMA),11 年才实现规模商用。4G 网络技术,存在两个标准(TD-LTE 和 FDD-LTE),6 年实现规模商用。任何一个企业不可能独霸所有标准的制定。在各个标准组织的观念碰撞和开放合作,有利于全球行业标准的统一化,防止行业标准的碎片化,早日实现规模商用。
华为秉持“合作共竖扰赢”理念,通过积极参与 3GPP 等行业组织主持的全球行业标准制定,扎实推动了行业生态圈建设,华为相信这一点有利于整个行业的可持续发展。
3.5 大大提升了企业行业领袖的正面形象
在引入 IBM 公司进行公司内部标准化管理之前,任正非曾经幽默地自黑:“华为是一群青纱帐里走出来的土八路,还习惯于埋个察纤者地雷、端个炮楼的工作方式还不习惯于职业化、表格化、模板化、规范化的管理。重复劳动、重叠管理的地方很多,这是效率不高的根源。” 经过多年的巨额投入和持续改造,华为如今已经是一家实现了内部管理流程管理的标准化和规范化,这是华为国际化战略得以顺利推进和全球收入持续增长的制度性保障。可以这么说:离开了标准化的持续努力,不可能实现从土八路到正规军的巨大转变离开了标准化不懈投入,不可能实现土q土炮到航空母舰的华丽转身
4、华为标准化战略顺利实施的原因之剖析
华为的标准化战略之所以取得如此成功,并非出于偶然,也并非一朝一夕之功。根据笔者之观察,华为在引领全球行业标准制定方面之所以取得上述成功,主要是以下 5 个因素综合作用的结果。
4.1 坚定不移、坚持不懈地创新投入是华为标准化战略顺利推进的技术保障
这些年来华为在参与全球行业标准制定方面的巨大成功,显然离不开其持之以恒、一以贯之的技术积累,而这一切的背后,则是华为坚定不移、坚持不懈地创新投入。 数十年以来,华为在科技研发方面源源不断地巨额投入,是有目共睹的,也是国内企业之中十分罕见的,在世界范围之内,华为的研发投入比例也可谓是名列前茅的。按照《华为基本法》的规定,每年销售总额之中,华为每年投入到研发之中的经费不得低于当年销售总额的 10%。事实败薯上,近年来华为的研发投入均已超过 10%。2015 年年报显示,该年度华为研发投入占销售收入的比重,甚至超过了 15%。在 2005 年至 2015 年的 11 年期间,华为在创新研发投入方面的累计总额已经达到了 2400 亿人民币之巨。以下图标,显示了华为海外销售收入超过中中国境内销售收入的 2006 年至 2016 年逐年的创新和研发投入。
华为手机的制定程序是用户自行设置的默认程序。1、进入华为手机的设置页面,找到开发人员选项。
2、点击其中的后台程序限制,根据需要进行设置。
3、将标准限制更改为不得超辩耐过稿让三个程序,可让手机慢键灶局慢降温,还能让手机更流畅。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)