怎样编写格式优美的代码

合集下载

粮食仓储基础代码 编制说明

粮食仓储基础代码 编制说明

《粮食仓储基础代码》行业标准编制说明1任务来源2014年10月,为贯彻落实国务院第52次常务会议精神,全面摸清我国粮食仓储设施总量、结构、布局、状态等基本情况,更好地服务于“粮安工程”建设、新建1000亿斤仓容和“十三五”规划编制等中心任务,健全粮食仓储设施保护制度,全面推动粮食行业信息化建设进程,国家粮食局决定开展全国粮食仓储设施专项调查工作。

本次专项调查是国家粮食局安排今后粮仓建设规划、制订粮食收储政策、安排政策性粮食收储任务、落实维修改造提升功能项目、实行粮仓保护制度以及开展中央储备粮代储资格认定工作的重要依据,其调查范围包括达到一定规模的从事粮食收储、加工、中转等业务的企业及军粮供应点等其它涉粮企业。

为配合本次专项调查,根据国家粮食局《全国粮食仓储设施专项调查方案》的部署与组织实施要求,国家信息中心负责编制了《仓库标识标准》和《粮食电子地图规范》等专项调查标准,以确保粮食仓房、库点、货位(廒间)等数据的标准化与规范化,本次专项调查共形成了8项标准规范成果。

2015年,为继续巩固粮食仓储设施专项调查成果,确保粮食仓储业务数据标准的延续性,国家信息中心在国家粮食局与标准质量中心的指导下,将粮食仓储设施专项调查的8项标准规范成果申请提升为粮食行业标准;经过国家粮食局标准质量中心的对粮食行业信息化标准立项、粮食行业科研项目成果等多方面统筹安排,将粮食仓储设施专项调查标准规范成果与粮食行业其他项目标准规范成果进行了拆分或合并处理,最终形成了《粮油存储设施标识编码规则》《粮食仓储基础代码》《粮食仓储电子地图地理要素》《粮食仓储电子地图图示表达》等4项行业标准立项建议。

本标准是其中的一项。

本标准根据国家粮食局标准质量管理办公室下达的《2015年度粮食行业粮油标准制修订计划》(质检办便函[2015]26号),由国家信息中心负责组织编写,国家粮食局科学研究院、国贸工程设计院、河南工业大学、南京财经大学、航天信息股份有限公司参与编写。

09_软件实现

09_软件实现

• 注释的位置应该与被描述的代码相邻,应该写在程序代码的上方 并且和代码左对齐 • 变量定义和分支语句(条件分支、循环语句等)必须写注释,因 为这些语句往往是程序实现某一特定功能的关键。
22
编码规范的要求
• 命名规则
– 标识符的命名应当直观,可以望文知义,最好采用英文单词 或其组合; – 标识符的长度应当符合 “最小长度下的最大信息 ”原则,过长的 英文单词应该采用一些通用而合理的缩写或者应用领域专业 术语的缩写; – 程序中不要出现仅依靠大小写来区分的相似标识符; – 程序中不要出现局部变量和全局变量同名的现象,免得引起 误解; – 变量名应当使用 “名词 ”或者 “形容词+名词 ”的形式; – 函数名应当使用 “动词 ”或者 “动词+名词 ”的形式。
Code Optimization
5
软件编码的工作
• 程序设计
– 理解软件的需求说明和设计模型 – 补充遗漏的或剩余的详细设计 – 设计程序代码的结构
• 设计审查
– 检查设计结果 – 记录发现的设计缺陷(类型、来源、严重性)
• 编写代码
– 应用编码规范进行代码编写 – 所编写代码应该是易验证的
6
软件编码的工作
8
单元代码评审
配置管理 配置管理 配置管理单元代码 代码变更 软件测试
单元开发计划 编码规范 软件设计基线 程序代码 程序代码
新的设计基线 (输入文档)
程序员的秉性
• 具备诚实的品性
– 勤奋的程序员在调试无穷多的 Bug 时,已经深深地体会了 “诚 实 ”的意义
• 信奉简单实用主义
– 程序员的基本工作是将复杂的问题转化为计算机能处理的一 些简单的程序
软件实现
计算机学软件教学部

文件编号管理规定

文件编号管理规定

Date:14/07/01 文件版本A/0 Page 1/111.目的:为规范公司文件、表格的编写、修订、审批和管理流程,以确保文件的规范化和系统化,满足管理要求。

2.定义文件分类:公司文件分可控文件和非可控文件二大体系,可控文件按四级管理2.1一级文件:管理手册;简述本品质系统如何满足国际标准要求。

代号用QM表示2.2二级文件:程序文件;规定何人,于何时,在什么地方做什么事。

代号用QP表示2.3三级文件:作业文件,包括工作指示或流程、作业指导书、车间管理办法、仓库管理办法、文件和资料编写导则、产品标识细则等,用WI表示2.4四级文件:表单、记录,用以收集数据,传递信息,控制作业流程或证明及作业流程执行所留下的记录.代号用QR表示非可控文件分外来文件、其他行政管理公司发文及公司协议、技术资料等等。

2.5公司各部分代号如下:行政部---XZ 财务部---CW 办公室---BG 采购部---CG 生产部---SC扣带部---KD 包装部---BZ 打磨部---DM 收发中心---SF 开料机---KL钻床部---ZC 锣床部—LC 啤压部—BY数控机床—CNC 工模部—GM电加工—DJ 后勤部—HQ例如三级文件—图纸管理规定文件表头可设置为图纸管理规定WI-JS-01Date:14/07/01 文件版本A/0 Page 1/13.管理程序3.1第一级文件(QM)编写管理体系手册由管理者代表或管理者代表组织编写,手册的格式不固定,但必须符合如下的要求:a、手册要参考ISO9001《质量管理体系要求》和ISO14001《环境管理体系要求及使用指南》编制;b、手册的编号为QM,由文控员进行统一编号。

c、手册有版本和生效日期的控制,其首次版本为A/0版,生效日期为手册发行日期;d、手册中使用的公司名称必须与注册名称相同;3.2 第二级文件(QP)编写程序文件(QP)的编写程序文件由相关的文控员负责组织编写。

公司文件编号

公司文件编号

1. 目的:有效管理公司内部文件、技术文件及记录表单等文件编号具有唯一性、统一性、识别性、控制性,达到信息资料可追溯性、可延伸性的有效运转。

2. 适用范围:适用于公司内部所有文件、技术文件及表单记录文件的管理。

3. 文件用语定义:3.1 一级文件:管理手册;3.2 二级文件:作业标准书、设备说明书、检验标准书、QC工程图等技术文件;3.3 三级文件:表单、记录。

4. 文件编号原则:4.1 文件编号要求:一般文件编号由企业标准代号Q、公司名称(用公司拼音简称“JY”)、文件型(文件级别)、部门代码(用部门英文字母最前一个字母大写)、文件日期/文件名称代码(三到四个数字或字母)、文件编号/版本号(用三个数字或从v1.0开始)组成。

4.2 文件编号格式:4.2.1 主文件编号格式——管理手册(Ⅰ级文件)例如:Q/JY-PA 001-2012Q——企业标准代号JY——公司名称简称PA——文件型简称001——文件流水编号2012——文件编写年号4.2.24.2.3 技术文件编写格式——技术规范要求(Ⅱ级文件)例如:Q/JY- TD-WPS 001-2012Q——企业标准代号JY——公司名称简写TD——部门代码WPS——技术文件类型简称001——文件流水编号2012——文件编写年号4.2.4 操作文件编写格式——日常使用文件(Ⅲ级文件)例如:Q/JY- PO-PED 001-2012Q——企业标准代号JY——公司名称简写PO——部门代码PED——记录表单代码001——文件流水编号2012——文件编写年号5. 部门英文代码如下:PO——办公室TD——技术部PD——生产部HRD——人力资源部GAD——财务部END——工程部POD——市场营销部GW BD——国外业务部GL BD——国内业务部6. 记录表单代码如下:PA——管理文件PM——质量安全文件PP——程序文件WPQP——焊接工艺评定任务书WPS——焊接工艺指导书PQR——工艺评定试验记录PWI——作业指导书文件PR——记录表单文件PED——外来文件7.。

A1.电阻器代码编制细则

A1.电阻器代码编制细则

A1.电阻器分类编码细则Y1Y2Y3Y4Y5Y6Y7Y8Y9Y10Y1=1Y2Y300010203040506070809名称金属膜氧化膜合成碳膜线绕玻璃釉(代号)J Y H X I Y2Y310111213141516171819名称金属膜氧化膜合成碳膜线绕玻璃釉(代号)J Y H X I Y2Y320212223242526272829名称金属膜氧化膜合成碳膜线绕玻璃釉(代号J Y H X I Y2Y330313233343536373839名称(代号Y2Y350515253545556575859名称代号非标电阻压敏电阻MY 热敏电阻M 光敏电阻RM(云科军用)铂电阻Y40123456789功率0.050.0630.10.1250.20.250.5(W)(1/20)(1/16)(1/10)(1/8)(1/5)(1/4)(1/2)Y5Y6Y7Y8阻值Y90123456789封装插脚04020603080512061210201025121812其它Y100123456789电阻精度±0.1%C级±0.25%D级±0.5%F级±1%G级±2%J级±5%±10%特例Y1Y2Y3Y4Y5Y6Y7Y8Y9Y101E24/E96系列/排阻9阻值序列号Y5Y6Y7Y8 电阻值举例E96系列阻值0.562Ω 5.62Ω56.2Ω562Ω 5.62k Ω56.2k Ω562k Ω 5.62M Ω56.2M ΩY5Y6Y7Y8(E96)表示 R5625R6256R2562056215622562356245625E24系列阻值 5.6Ω56Ω560Ω 5.6K Ω56k Ω560k Ω 5.6M Ω56M Ω560 M ΩY5Y6Y7Y8(E24)表示5R6005600561056205630564056505660567电位器阻值100Ω200Ω1K Ω10K Ω50k Ω100k Ω1M ΩY5Y6Y7Y8 电位器表示0101020101020103050301040105Y5Y6Y7Y8(网络电阻)447074729473M*阻值4*470Ω7*4.7 k Ω9*47 k Ω电位器其他12E96系列其它其它电位器排阻(网络电阻)有公共脚排阻无公共脚排阻E24系列E24系列其它E96系列系列 1.0 1.1 1.2 1.3 1.5 1.6 1.8 2.0 2.2 2.4E24 2.73 3.3 3.6 3.9 4.3 4.7 5.1 5.6 6.26.87.58.29.1100102105107110115118121124127130133137140143147150154158162165169174178182187191196200205210215221226232237243249255261E96267274280287294301309316324332340348357365374383392402412422432442453464475487499511523536549562576590604619634649665681698715732750768787806825845866887909953976表中所列数值是标称值,实际使用时表中数值再乘以10n ,其中n为0或正整数。

贷款统计分类及编码标准(试行)

贷款统计分类及编码标准(试行)

6.4 地区 04 地区 表 示:RegionCode 编码方法:6 位数字
— 11 —
代 码 表:
B/T 2260
820000
境外 000XXX 及港 详见 GB/T 2659
澳台
说明
采用 GB/T 2260 的县(区)级数字码。
前 3 位用“000”填充,后 3 位采用 GB/T 2659 的 3 位国别阿拉伯数字代 码(港澳台编码暂采用该标准编码)。
—8—
代 码 表:
代码
名称
说明
A 政府部门
A01
中央政府
A02
地方政府
A03
社会保障基金
B 金融机构部门
B01
货币当局
指在我国境内通过政治程序建立的、对其 他单位拥有立法、司法和行政权的法律实 体及附属单位。 管理一个国家全国事务的国家机构的总 称,负责统一领导全国地方行政工作,集 中掌握国家的国防、外交、财政等行政职 权部门。 指管理一个国家区域性事务的政府组织 机构。 根据国家有关法律、法规和政策的规定, 为实施社会保障制度而建立起来、专款专 用的资金。 主要从事金融媒介以及与金融媒介密切 相关的辅助金融活动的常住单位。
代码
名称
说明
CS01 CS02
大型 中型
详见银发〔2009〕35 号。
CS03
小型
— 13 —
6.8 贷款合同期限
24 贷款合同期限
表 示:LoanContractTermsCode
编码方法:两位大写字母+两位数字
代 码 表:
代码
名称
CT01 短期贷款
CT02 中期贷款
CT03 长期贷款
说明 指贷款期限在 1 年以内(含 1 年)的贷款。 指贷款期限在 1 年以上(不含 1 年)5 年以下(含 5 年)的贷款。 指贷款期限在 5 年(不含 5 年)以上的贷款。

A Byte of Python


我感谢你以及你的《A Byte of Python》,我发现这是学习Python最好的途径。我 现在15岁,住在埃及,我的名字叫Ahmed。Python是我学习的第二个编程语言,我 在学校学习了Visual Basic 6,但我并不喜欢它,可是我真的喜欢学习Python。我 成功地编写了地址簿程序。我打算尝试编写、阅读更多Python程序(如果你有意给 我推荐一些有帮助的源代码)。我也将开始学习Java,如果你能告诉我在哪里可以 找到向你的教程一样好的Java教程,那将对我有很大帮助。多谢。
教材历史
我为我编写的“Diamond”软件编写简化安装过程的安装程序时,我第一次开始使用Python。 我不得不在Python还是Perl上绑定Qt库进行选择。我在网上做了一些研究,偶然发现了[Eric S. Raymond的一篇文章] (/success&story=esr), Raymond是一个著 名的、值得尊敬的黑客。其中他谈道,Python是如何成为他最喜爱的编程语言的。我也发现 PyQt的绑定比Perl-QT更加成熟。所以我决定选择Python。
原始字符串 小结 示例代码 问题及解答 学习指南 视频 讨论 新闻 安装库 图形软件
GUI工具小结 各种实现
A Byte of Python
/static/doc/byte_of_python.html
3/90
13-10-12
函数程序设计(为高级读者) 小结 免费/自由和开放源码软件 本书的诞生 初长成 现在 关于作者 修订历史 翻译 阿拉伯语 巴西葡萄牙语 加泰罗尼亚语 中文 繁体中文 法语 德语 希腊语 印尼语 意大利语 日语 蒙古语 挪威语(bokm氓l) 波兰语 葡萄牙语 罗马尼亚语 俄语和乌克兰语 斯洛伐克语 瑞典语 土耳其语

hyperf 面试题

hyperf 面试题1.列出5 个常用Python 标准库?os, math, random, time, pymysql,re2.Python 内建数据类型有哪些?数字,字符串,列表,元组,字典,集合,Bytes,布尔等3.简述with 方法打开处理文件帮我我们做了什么?file = open('a.txt','w')try:file.write('test')except:passfinally:file.close()# with方法相当于以上代码finally中的file.close()操作4.列出Python 中可变数据类型和不可变数据类型,为什么?不可变数据类型:数字、字符串、元组,变量不允许修改,值改变后,id 也会变;可变数据类型:集合、列表、字典,值改变后,id不会变5.Python 获取当前日期?import timenow = time.strftime("%Y-%m-%d %H:%M:%S %A")print(now)6.统计字符串每个单词出现的次数import stringstr_input = "Hello world, hello python"str_test = str_input.lower()intab = string.punctuationouttab = " "*32trantab = str.maketrans(intab,outtab)str_test.translate(trantab)li_test = str_test.split(" ")rst = {}for item in li_test:if item in rst.keys():rst[item] = rst[item] + 1else:rst[item] = 1print(rst)返回{'hello': 2, 'world,': 1, 'python': 1}7.用python 删除文件和用linux 命令删除文件方法import os# python删除文件os.remove(path)# python删除目录os.removedirs(path)linux删除文件rm [选项] 文件选项说明:-f -force 忽略不存在的文件,强制删除,无任何提示-i --interactive 进行交互式地删除-r | -R --recursive 递归式地删除列出的目录下的所有目录和文件-v --verbose 详细显示进行的步骤8.写一段自定义异常代码class ShortInputException(Exception):'''自定义异常类'''def __init__(self, length, atleast):self.length = lengthself.atleast = atleasttry:s = input('please input:')if len(s) < 3:raise ShortInputException(len(s), 3)except ShortInputException as e:print('输入长度是%s,长度至少是%s' %(e.length, e.atleast)) else:print('nothing...')如果输入字符长度小于3,那么将会抛出ShortInputException 异常:please input:qw输入长度是2,长度至少是39.举例说明异常模块中try except else finally 的相关意义try:------code-----except Exception as e: # 抛出异常之后将会执行print(e)else: # 没有异常将会执行print('no Exception')finally: # 有没有异常都会执行print('execute is finish')10.遇到bug 如何处理查看报错行和错误类型,debug找出问题所在进行处理。

易湘生-承包经营权编码规则 2013124ppt

承包期内,承包地块外在属性(例如:名称、作 物类型等)变化,但界址没有发生变化,承包地 块编码保持不变。
承包地块界址发生变化,承包地块代码在相应的 最大承包地块顺序码后续编,原承包地块代码作 废,作废代码不得再赋予其他承包地块。
编码规则-承包地块
承包地块编码示例
山西省阳泉市平定县岔口乡冯家峪村三组第 328块承包地
山西省阳泉市平定县岔口乡冯家峪村三组李四 140321201205030007
140321
205
0007
山西省阳泉市平定县岔口乡冯家峪村三组李四
201
03
编码规则-承包地块
承包地块概念
由农村土地承包经营权权属界线所封闭 的土地。
承包地块代码结构
×××××××××××××× ×××××
在承包方代码结构中,第一段采用发包方代码 赋码规则;
第二段采用系列顺序码,由四位数字构成,具 体划分为:0001~8000表示本集体经济组织 农户,8001~9000表示本集体经济组织的个 人及其本集体经济组织以外的个人,9001~ 9999表示本集体经济组织的单位及其本集体 经济组织以外的单位。
已经分别属于村内两个以上农村集体经济 组织的农民集体所有的,由村内各该农村 集体经济组织或者村民小组经营、管理。
已经属于乡(镇)农民集体所有的,由乡 (镇)农村集体经济组织经营、管理。
编码规则-发包方
发包方类型

村 土 地 承 包
第 十 二 条

农民集体所有的土地依法属于村农民集体 所有的,由村集体经济组织或者村民委员 会发包。
区+地块
集体土地所有权
调查技术规定 乡(镇)(3位)+行政村(3位) (国土资发 +宗地(3位)

做简报的软件有哪些

做简报的软件有哪些现代社会,演示文稿已经成为商业、教育等领域的重要工具之一。

怎样设计一份简洁清晰、富有创意的演示文稿呢?合适的软件是必不可少的一环。

本篇文章将为大家介绍几种目前市面上常见的做简报的软件。

1. Microsoft PowerPoint对于许多人而言,做简报的软件第一时间肯定会想到 Microsoft PowerPoint。

这一领域的畅销软件尤其适用于需要大量图片、文字或者多媒体的演示文稿。

再配以丰富的 PPT 模板,即便不是专业设计人员也可以轻松制作出高质量的文稿。

不过,这款软件也有其缺点,比如复杂度高达惊人,初学时起步难,精细的版面布局、背景音乐等都需要投入大量心思和时间。

此外,PPT 文件也相对较大,在选择远程在线演示时可能会导致加载问题。

2. Prezi与 PPT 不同,Prezi 非线性展示,以图像或者动画为展示主题的枢纽,具有跨越多个屏幕的协调性和创意感。

这一款软件被许多人视为 PPT 的一种“翻版”,然而通过创新的介绍方式,它仍然能备受欢迎。

Prezi 特别适合那些需要关注领域发展的领域,或是不想使用传统 ppt 演示的用户,但对于那些需要制作过程更加简单的用户来说,Prezi 的学习和使用也是需要时间的。

此外,Prezi 的体验易被“过度制作”破坏,一旦治疗不当,这一软件可能会对观众的视觉效果产生负面影响。

3. KeynoteMac 电脑上安装的Keynote 是一种能够帮助设计高度个性化的演示文稿的软件,具有简洁而优美的设计。

与 PPT 相比,它没有那么多的模板和工具,但是其方式更加直观,这对于开发用户自己的创意演示文稿项目来说是一个优势。

Keynote 不仅支持文本、图像和音频,还支持三维动画特效。

使用此软件时,用户可以体验高级视觉编辑控件,以及易于导航的插图界面和示意图库等。

当然,与所有苹果产品一样,Keynote 也是苹果公司的封闭式软件,不支持其他操作系统,如 Windows 或 Android。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

怎样编写格式优美的代码 作者:yangw80

序 很多初学者会被人一眼就看出来是初学者,为什么?原因很多。其中,代码格式是很重要的一项。不注重代码格式,不仅别人看起来不舒服,还会影响自己对 代码的阅读。虽然错误的格式不会产生编译错误,但却会让你更容易犯错,并且更难排查错误。所以,学会编写格式优美的代码,是初学者必须要学的一课。

优秀的代码格式并不是唯一的,有很多种风格。本文仅讲解常见的 C/C++ 语言编码规则,而其它规则相信大家在学习工作中会慢慢接触到。

以下讲解编写代码时在格式上一些常见的注意事项。 1. 正确缩进 所谓缩进,是指在某一行代码的左端留出一部分空白。采用缩进的目的为了清楚的定义一个块的开始和结束,这样会使程序更加清晰易读。虽然目前主流的开发平台都具备智能缩进的功能,但是很多时候修改代码还是需要自己注意缩进问题。

下面的范例代码是求解 100 以内的质数,该范例中有多种缩进情况的例子: #include #include

void main() { printf("2"); int col = 1;

for (int n = 3; n <= 100; n += 2) { for (int m = 3; m <= sqrt(n); m += 2) if (n % m == 0) break;

if (m > sqrt(n)) printf("%c%d", (col++ % 5) ? '\t' : '\n', n); }

printf("\n"); } 除此以外,还有很多地方的范例代码有正确缩进,例如 MSDN、VC 自带的范例等。

可以看到,每行代码前的缩进清晰的表明了代码的结构,正确的缩进可以帮助开发者更清晰有效地阅读代码并发现逻辑错误。所以,掌握正确的缩进格式,是编写规范代码的第一课。

2. 学会用 tab 键缩进和对齐代码 当代码中需要缩进时,简单的按一下 tab 键就好。通常一个 tab 符占用 4 个空格的位置。每个 tab 符可以准确的将光标定位到下一个 tab 位,即 4 的整倍数的位置后面。例如,光标在行首时,按 tab 键,光标将会定位到第 4 个字符后面;光标在第 6 个字符后面时,按 tab 键,光标将会定位到第 8 个字符后面。

根据 tab 符的这个特性,除了用来缩进外,tab 键还可以用在很多地方,比如用来对齐代码。下面的范例片段用 tab 符将代码排列得很整齐:

switch(item) { case EMPTY: setfillstyle(BLACK); break; case WALL: setfillstyle(LIGHTGRAY); break; case PLAYER_A: setfillstyle(BLUE); break; case PLAYER_B: setfillstyle(RED); break; case PLAYER_DEAD:setfillstyle(MAGENTA); break; }

3. 适当增加空行 虽然空行在 C/C++ 语言中没有多大实际的目的,但是通过适当的插入空行能大大提高代码的可读性。一般情况下,在逻辑上相关联的代码块之间会插入一个或多个空行。例如,头文件 组、宏定义组、全局变量组之间、两个函数之间,还有函数之间以及函数内部的逻辑片断之间,都可以适当插入空行。插入空行的数量并没有严格规定,而是根据程 序的规模和代码风格来适度调整。比如,一个只有 30 行左右的代码,不同的函数间插入一个空行就可以;如果是 300 行左右的代码,可以在函数间插入 3 个空行。

第 1 点的范例代码比较简短,含有少量插入空行的范例。在 EasyX 官网有更多的范例,插入空行的情况也不尽相同。这些需要在学习编程的过程中慢慢体会。

4. 适当增加空格 除了使用空行外,通过使用空格来提高代码的可读性性也是程序员常用的手段。和空行一样,空格的使用也没有强制性的规定,仅仅是为了增强代码的可读性。一般情况下,以下位置可以适当插入空格:

(1) 等号的前后; (2) 数学运算符的前后,关键字和括号之间插入空格; (3) 比较运算符的前后; (4) 后面有代码的分号后面; (5) 分割不同参数的逗号后面;为了和上下行的代码对齐,有时候需要插入两个空格;如果需要插入更多空格才能和上下代码对齐,通常会使用 tab 键。

5. 适当增加注释 不写注释的编码习惯是不可取的。在较关键的语句、函数或代码片段周围以一定方式增加注释,会令代码简洁易懂,描述清晰的注释可以让阅读代码的人像阅读散文一样舒心。

注释的方式有很多种,以下列举常见的注释方式。 (1) 语句之前的注释,例如: // 初始化绘图窗口 initgraph(640, 480);

(2) 语句右边的注释,例如: while(true) { int cmd = GetCmd(); // 获取用户命令 if (!DealCmd(cmd)) break; // 处理命令 if (!DealGame()) break; // 处理游戏 Sleep(200); // 延时 }

(3) 语句内的注释,例如: double springF = SPRINGK /* 弹力系数 */ * (len - SEGLEN); (4) 代码首部的描述性注释,例如,easyx 官网的很多范例顶部都有这么一段: /////////////////////////////////////////////////// // 程序名称:xxxxxxxx // 编译环境:Visual C++ 6.0 / 2010,EasyX_20120603(beta) // 作 者:xxxx // 最后修改:2012-x-xx //

(5) 函数首部的描述性注释 ,例如: // 获取用户命令 int GetCmd() { ...... }

(6) 变量后面的描述性注释(对齐注释会更漂亮),例如: struct Mover { COLORREF color; // 颜色 float x, y; // 坐标 float vX, vY; // 速度 };

Phil Haack 曾经说过:“一旦一行代码被敲到文件中, 你就已经要开始维护那一行代码了。”所以,我们自己就是好(或者坏)注释的第一个受益者(或者受害者)。

6. 太长的代码要折行 当一行代码很长的时候(比如函数的参数比较多、判断语句的条件比较多),为了更清晰,可以把一行长代码分成多行书写,例如:

(1) 分行写多个判断语句。看以下代码: if (ball.x > field.width || ball.x < 0 || ball.y > field.height || ball.y < 0) { ...... }

可以分行写成这样(其实这个例子中的代码不算长,不分行也没事,这里只是举个例子):

if (ball.x > field.width || ball.x < 0 // 判断 x 坐标 || ball.y > field.height || ball.y < 0) // 判断 y 坐标 { ... }

(2) 分行写多个参数。微软在 MSDN 中的很多例子都是这样做的,例如下面这段摘自 MSDN 的代码:

hwnd = CreateWindow( "MainWClass", // name of window class "Sample", // title-bar string WS_OVERLAPPEDWINDOW, // top-level window CW_USEDEFAULT, // default horizontal position CW_USEDEFAULT, // default vertical position CW_USEDEFAULT, // default width CW_USEDEFAULT, // default height (HWND) NULL, // no owner window (HMENU) NULL, // use class menu hinstance, // handle to application instance (LPVOID) NULL); // no window-creation data

7. 适当调整代码的表达方式 一些语句功能是相似的,适当将一些语句换一个表达方式,可以令代码更清晰。看以下代码:

ball.x = 320; ball.y = 240; if (new) ball.color = BLACK; else ball.color = NEW; ball.dx = rand() % 6 - 3; ball.dy = rand() % 6 - 3;

前面这段代码没有错,但是如果修改为下面这样,会更清晰: ball.x = 320; ball.y = 240; ball.color = new ? BLACK : NEW; ball.dx = rand() % 6 - 3; ball.dy = rand() % 6 - 3;

8. 习惯很重要

相关文档
最新文档