已阅读5页,还剩69页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C 开发编程规范和WebUI设计规范 郑州锐升软件技术有限公司 第一部分 C 开发编程规范 C 编程规范内容概要 1 基本要求2 程序3 注释4 命名5 大小写规则6 缩写7 措词 第一小节基本要求 1 1程序结构要求 1 程序结构清晰 简单易懂 单个函数的程序行数不得超过100行 2 打算干什么 要简单 直截了当 代码精简 避免垃圾程序 3 尽量使用 NET库函数和公共函数 无特殊情况不要使用外部方法调用windows的核心动态链接库API 4 不要随意定义全局变量 尽量使用局部变量 1 2可读性要求 1 可读性第一 效率第二 保证后期维护的简易 2 保持注释与代码完全一致 3 每个源程序文件 都有文件头说明 说明规格见规范 4 每个函数 都有函数头 使用XML注释 说明 说明规格见规范 5 主要变量 结构 联合 类或对象 定义或引用时 注释能反映其含义 6 处理过程的每个阶段都有相关注释说明 7 在典型算法前都有注释 同时算法在满足要求的情况下尽可能简单 8 利用缩进来显示程序的逻辑结构 缩进量一致并以VS2008自动生成为准 不采用空格进行缩进 9 循环 分支层次不要超过五层 10 注释可以与语句在同一行 也可以在上行 11 空行和空白字符也是一种特殊注释 12 一目了然的语句不加注释 13 注释的作用范围可以为 定义 引用 条件分支以及一段代码 14 注释行数 不包括程序头和函数头说明部份 应占总行数的1 5到1 3 1 3结构化要求 1禁止出现两条等价的支路 2除了在Switch关键字的作用域内 禁止GOTO语句 3用IF语句来强调只执行两组语句中的一组 禁止ELSEGOTO和ELSERETURN 4用CASE实现多路分支 5避免从循环引出多个出口 6函数只有一个出口 7不使用条件赋值语句 8避免不必要的分支 9不要轻易用条件分支去替换逻辑表达式 1 4正确性与容错性要求 1程序首先是正确 其次是优美2无法证明你的程序没有错误 因此在编写完一段程序后 应先回头检查 3改一个错误时可能产生新的错误 因此在修改前首先考虑对其它程序的影响 4所有变量在调用前必须被初始化 5对所有的用户输入 必须进行合法性检查 6尽量不要比较浮点数的相等 如 10 0 0 1 1 0 不可靠7程序与环境或状态发生关系时 必须主动去处理发生的意外事件 如文件能否逻辑锁定 打印机是否联机等 对于明确的错误 要有明确的容错代码提示用户 在这样不确定的场合都使用TryThrowCatch 8单元测试也是编程的一部份 提交联调测试的程序必须通过单元测试 9尽量使用规范的容错语句 例如 try catch finally 1 5 可重用性要求 1重复使用的完成相对独立功能的算法或代码应抽象为服务或类 服务或类应考虑OO思想 减少外界联系 考虑独立性或封装性 第二小节程序 1 程序编码力求简洁 结构清晰 避免太多的分支结构及太过于技巧性的程序 尽量不采用递归模式 2 编写程序时 亦必须想好测试的方法 换句话说 单元测试 的测试方案应在程序编写时一并拟好 3 版本封存以后的修改一定要将老语句用 封闭 不能自行删除或修改 4 对于比较大的函数 每个block和特殊的函数调用 都必须注明其功能 第三小节注释 原则上注释要求使用中文 文件开始注释内容包括 公司名称 版权 作者名称 时间 模块用途 背景介绍等 复杂的算法需要加上流程说明 函数注释包括 输入 输出 函数描述 流程处理 全局变量 调用样例等 复杂的函数需要加上变量用途说明 程序中注释包括 修改时间和作者 方便理解的注释等 引用一 文件开头的注释模板 文件名 Copyright c 郑州锐升软件技术有限公司 创建人 日期 修改人 日期 描述 版本 引用二 函数开头的注释模板 引用三 程序中的注释模板 注释内容 第四小节命名 名称应该说明 什么 而不是 如何 通过避免使用公开基础实现 它们会发生改变 的名称 可以保留简化复杂性的抽象层 例如 可以使用GetNextStudent 而不是GetNextArrayElement 命名原则是 选择正确名称时的困难可能表明需要进一步分析或定义项的目的 使名称足够长以便有一定的意义 并且足够短以避免冗长 唯一名称在编程上仅用于将各项区分开 表现力强的名称是为了帮助人们阅读 因此 提供人们可以理解的名称是有意义的 不过 请确保选择的名称符合适用语言的规则和标准 以下几点是推荐的命名方法 1 避免容易被主观解释的难懂的名称 如方面名AnalyzeThis 或者属性名xxK8 这样的名称会导致多义性 2 在类属性的名称中包含类名是多余的 如Book BookTitle 而是应该使用Book Title 3 只要合适 在变量名的末尾或开头加计算限定符 Avg Sum Min Max Index 4 在变量名中使用互补对 如min max begin end和open close 5 布尔变量名应该包含Is 这意味着Yes No或True False值 如fileIsFound 6 在命名状态变量时 避免使用诸如Flag的术语 状态变量不同于布尔变量的地方是它可以具有两个以上的可能值 不是使用documentFlag 而是使用更具描述性的名称 如documentFormatType 此项只供参考 7 即使对于可能仅出现在几个代码行中的生存期很短的变量 仍然使用有意义的名称 仅对于短循环索引使用单字母变量名 如i或j 可能的情况下 尽量不要使用原义数字或原义字符串 如Fori 1To7 而是使用命名常数 如Fori 1ToNUM DAYS IN WEEK以便于维护和理解 4 1控件命名 4 2变量 常量 const 和宏定义 4 2 1普通变量 4 2 3数据库对象 4 2 4常量 const 和宏定义常量和宏定义必须具有一定的实际意义 常量和宏定义在 include和函数定义之间 常量和宏定义必须全部以大写字母来撰写 中间可根据意义的连续性用下划线连接 每一条定义的右侧必须有一简单的注释 说明其作用 如publicconststringPAGE TITLE Welcome 4 3命名空间1 命名命名空间时的一般性规则是使用公司名称 后跟技术名称和可选的功能与设计 如下所示 CompanyName TechnologyName Feature Design 例如 namespaceRaise Internship 郑州锐升软件技术有限公司实习栈系统namespaceRaise Internship SystemManager 锐升实习栈系统系统管理2 命名空间使用Pascal大小写 用逗号分隔开 3 TechnologyName指的是该项目的英文缩写 或软件名 4 命名空间和类不能使用同样的名字 例如 有一个类被命名为Debug后 就不要再使用Debug作为一个名称空间名 4 4函数函数原型说明包括引用外来函数及内部函数 外部引用必须在右侧注明函数来源 模块名及文件名 如是内部函数 只要注释其定义文件名 第一个字母必须使用大写字母 要求用大小写字母组合规范函数命名 必要时可用下划线间隔 示例如下 voidPrintTrackData voidShowChar int int char 4 5方法1使用动词或动词短语命名方法 2使用Pascal大小写 3以下是正确命名的方法的实例 RemoveAll GetCharArray Invoke 4 6事件1 对事件处理程序名称使用EventHandler后缀 2 指定两个名为sender和e的参数 sender参数表示引发事件的对象 sender参数始终是object类型的 即使在可以使用更为特定的类型时也如此 与事件相关联的状态封装在名为e的事件类的实例中 对e参数类型使用适当而特定的事件类 3 用EventArgs后缀命名事件参数类 4 考虑用动词命名事件 5 使用动名词 动词的 ing 形式 创建表示事件前的概念的事件名称 用过去式表示事件后 例如 可以取消的Close事件应当具有Closing事件和Closed事件 不要使用BeforeXxx AfterXxx命名模式 6 不要在类型的事件声明上使用前缀或者后缀 例如 使用Close 而不要使用OnClose 7 通常情况下 对于可以在派生类中重写的事件 应在类型上提供一个受保护的方法 称为OnXxx 此方法只应具有事件参数e 因为发送方总是类型的实例 以下示例阐释具有适当名称和参数的事件处理程序 publicdelegatevoidMouseEventHandler objectsender MouseEventArgse 以下示例阐释正确命名的事件参数类 publicclassMouseEventArgs EventArgs intx inty publicMouseEventArgs intx inty this x x this y y publicintX get returnx publicintY get returny 4 7类1 使用Pascal大小写 2 用名词或名词短语命名类 3 使用全称避免缩写 除非缩写已是一种公认的约定 如URL HTML4 不要使用类型前缀 如在类名称上对类使用C前缀 例如 使用类名称FileStream 而不是CFileStream 5 不要使用下划线字符 6 有时候需要提供以字母I开始的类名称 虽然该类不是接口 只要I是作为类名称组成部分的整个单词的第一个字母 这便是适当的 例如 类名称IdentityStore是适当的 在适当的地方 使用复合单词命名派生的类 派生类名称的第二个部分应当是基类的名称 例如 ApplicationException对于从名为Exception的类派生的类是适当的名称 原因ApplicationException是一种Exception 请在应用该规则时进行合理的判断 例如 Button对于从Control派生的类是适当的名称 尽管按钮是一种控件 但是将Control作为类名称的一部分将使名称不必要地加长 publicclassFileStreampublicclassButtonpublicclassString 4 8接口1 用名词或名词短语 或者描述行为的形容词命名接口 例如 接口名称IComponent使用描述性名词 接口名称ICustomAttributeProvider使用名词短语 名称IPersistable使用形容词 2 使用Pascal大小写 3 少用缩写 4 给接口名称加上字母I前缀 以指示该类型为接口 在定义类 接口对 其中类是接口的标准实现 时使用相似的名称 两个名称的区别应该只是接口名称上有字母I前缀 5 不要使用下划线字符 6 当类是接口的标准执行时 定义这一对类 接口组合就要使用相似的名称 两个名称的不同之处只是接口名前有一个I前缀 以下是正确命名的接口的示例 publicinterfaceIServiceProviderpublicinterfaceIFormatable以下代码示例阐释如何定义IComponent接口及其标准实现Component类 publicinterfaceIComponent publicclassComponent IComponent 4 9属性 Attribute 应该总是将后缀Attribute添加到自定义属性类 以下是正确命名的属性类的示例 publicclassObsoleteAttribute 4 10枚举 Enum 枚举 Enum 值类型从Enum类继承 以下规则概枚举的命名指南 1对于Enum类型和值名称使用Pascal大小写 2少用缩写 3不要在Enum类型名称上使用Enum后缀 4对大多数Enum类型使用单数名称 但是对作为位域的Enum类型使用复数名称 5总是将FlagsAttribute添加到位域Enum类型 4 11参数1 使用描述性参数名称 参数名称应当具有足够的描述性 以便参数的名称及其类型可用于在大多数情况下确定它的含义 2 对参数名称使用Camel大小写 3 使用描述参数的含义的名称 而不要使用描述参数的类型的名称 开发工具将提供有关参数的类型的有意义的信息 因此 通过描述意义 可以更好地使用参数的名称 少用基于类型的参数名称 仅在适合使用它们的地方使用它们 4 不要使用保留的参数 保留的参数是专用参数 如果需要 可以在未来的版本中公开它们 相反 如果在类库的未来版本中需要更多的数据 请为方法添加新的重载 5 不要给参数名称加匈牙利语类型表示法的前缀 以下是正确命名的参数的示例 TypeGetType stringtypeName stringFormat stringformat args Asobject 4 12属性 property 以下规则概述属性的命名指南 1使用名词或名词短语命名属性 2使用Pascal大小写 3不要使用匈牙利语表示法 4考虑用与属性的基础类型相同的名称创建属性 例如 如果声明名为Color的属性 则属性的类型同样应该是Color 请参阅本主题中后面的示例 以下代码示例阐释正确的属性命名 publicclassSampleClass publicColorBackColor CodeforGetandSetaccessorsgoeshere 以下代码示例阐释提供其名称与类型相同的属性 publicenumColor InsertcodeforEnumhere publicclassControl publicColorColor get Insertcodehere set Insertcodehere 以下代码示例不正确 原因是Color属性是Integer类型的 publicenumColor InsertcodeforEnumhere publicclassControl publicintColor Insertcodehere 在不正确的示例中 不可能引用Color枚举的成员 Color Xxx将被解释为访问一个成员 该成员首先获取Color属性 C 中为int类型 的值 然后再访问该值的某个成员 该成员必须是System Int32的实例成员 4 13结构结构体类型命名必须全部用大写字母 原则上前面以下划线开始 结构体变量命名必须用大小写字母组合 第一个字母必须使用大写字母 必要时可用下划线间隔 对于私有数据区 必须注明其所属的进程 全局数据定义只需注意其用途 示例如下 typedefstruct charszProductName 20 charszAuthor 20 charszReleaseDate 16 charszVersion 10 unsignedlongMaxTables unsignedlongUsedTables DBS DATABASE DBS DATABASEGdataBase 4 14字段 静态字段以下规则概述字段的命名指南 1 private protected使用Camel大小写 2 public使用Pascal大小写 最好多用属性 少用public 3 拼写出字段名称中使用的所有单词 仅在开发人员一般都能理解时使用缩写 字段名称不要使用大写字母 下面是正确命名的字段的示例 classSampleClass stringurl stringdestinationUrl 4 不要对字段名使用匈牙利语表示法 好的名称描述语义 而非类型 5 不要对字段名或静态字段名应用前缀 具体说来 不要对字段名称应用前缀来区分静态和非静态字段 例如 应用g 或s 前缀是不正确的 6 对预定义对象实例使用公共静态只读字段 如果存在对象的预定义实例 则将它们声明为对象本身的公共静态只读字段 使用Pascal大小写 原因是字段是公共的 下面的代码示例阐释公共静态只读字段的正确使用 publicstructColor publicstaticreadonlyColorRed newColor 0 x0000FF publicColor intrgb Insertcodehere publicColor byter byteg byteb Insertcodehere publicbyteRedValue get returnColor 以下规则概述静态字段的命名指南 1 使用名词 名词短语或者名词的缩写命名静态字段 2 使用Pascal大小写 3 对静态字段名称使用匈牙利语表示法前缀 4 建议尽可能使用静态属性而不是公共静态字段 4 15集合集合是一组组合在一起的类似的类型化对象 如哈希表 查询 堆栈 字典和列表 集合的命名建议用复数 第五小节大小写规则 大写标识符中的所有字母都大写 仅对于由两个或者更少字母组成的标识符使用该约定 例如 System IOSystem Web UI下表汇总了大写规则 并提供了不同类型的标识符的示例 第六小节缩写 为了避免混淆和保证跨语言交互操作 请遵循有关区缩写的使用的下列规则 1不要将缩写或缩略形式用作标识符名称的组成部分 例如 使用GetWindow 而不要使用GetWin 2不要使用计算机领域中未被普遍接受的缩写 3在适当的时候 使用众所周知的缩写替换冗长的词组名称 例如 用UI作为UserInterface缩写 用OLAP作为On lineAnalyticalProcessing的缩写 4在使用缩写时 对于超过两个字符长度的缩写请使用Pascal大小写或Camel大小写 例如 使用HtmlButton或HTMLButton 但是 应当大写仅有两个字符的缩写 如 System IO 而不是System Io 5不要在标识符或参数名称中使用缩写 如果必须使用缩写 对于由多于两个字符所组成的缩写请使用Camel大小写 虽然这和单词的标准缩写相冲突 最后一小节措辞 避免使用与常用的 NET框架命名空间重复的类名称 例如 不要将以下任何名称用作类名称 System Collections Forms或UI 有关 NET框架命名空间的列表 请参阅类库 另外 避免使用和以下关键字冲突的标识符 第二部分 WebUI设计规范 WebUI设计规范内容概要 1 易用性2 规范性3 合理性4 美观与协调性5 菜单 导航位置6 安全性考虑 前言 网站的页面是网站与用户交互的最直接层面 页面的好坏决定用户对网站的第一印象 设计良好的网站页面能给用户带来轻松愉悦的感受 使用户对网站流连忘返 口口传颂 极大增加网站的知名度和访问量 而如果页面设计不合理 则会使用户对网站丧失兴趣 那么 即使网站有再强大的功能 再好的创意 也无法展现给用户 更无法达到进一步吸引用户的目的 目前网站页面的UI设计 已经引起软件设计人员的高度重视 业界一致认为 网站页面的表现力 是一个网站能否成功的重要一步 第一小节易用性 页面的功能点应该易懂 用词准确 摒弃模棱两可的字眼 要与同一界面上的其他功能易于区分 能望文知意最好 使用户直接就能知道该页面的功能并进行相关的正确作 易用性细则 1 完成同一或相近功能的元素集中放置 减少鼠标移动的距离 方便用户查找 2 按功能将页面划分局域块 并要有功能说明或标题 3 页面要支持键盘自动浏览按钮功能 即按Tab键的自动切换功能 4 界面上首先应输入的和重要信息的控件在Tab顺序中应当靠前 位置也应放在窗口上较醒目的位置 5 默认按钮要支持Enter及选操作 即按Enter后自动执行默认按钮对应操作 6 可写控件检测到非法输入后应给出说明并能自动获得焦点 7 Tab键的顺序与控件排列顺序要一直 目前流行总体从上到下 同时行间从左到右的方式 8 复选框和选项框按选择几率的高底而先后排列 9 复选框和选项框要有默认选项 10 选项数相同时多用选项框而不用下拉列表框 11 界面空间较小时使用下拉框而不用选框 12 选项数较少时使用选项框 相反使用下拉列表框 第二小节规范性 统一的页面规范可以方便用户根据上下文查找使用相关功能 统一的命名规范可以方便开发人员之间的协作 规范性细则 一 网站设计及基本框架结构 Banner 网页的头部区域 一般包含网页的logo和其他一些元素 Navibar 网页的导航栏 Container 网页的主要部分 其中还可在设计左 中 右模块 Footer 包含网站的附近信息 如版权 联系方式等 二 需要注意的几点 1 尽量考虑为元素命名其本身的作用或 用意 达到语义化 不要使用表面形式的命名 2 控件命名规则 按照下发的 锐升软件C 开发规范 整理 执行 3 使用统一字体 页面的body中 中文采用 宋体 待定 字体大小 12px 英文采用Arial 待定 Footer中版权等信息的字体大小 10px 字体颜色为黑色 4 模块的标题使用黑体或者微软雅黑 字体大小 12px 5 所有控件尽量使用大小统一的字体属性 Gredview等复杂控件的标题使用黑体或者微软雅黑 字体大小 12px 其中显示的数据内容 字体应与body相一致 Lable等简单控件的字体应与body相一致 6 控件功能要专一 一个控件只做单一功能 不可复用 7 提示信息应遵循以下准则 a 口语化 客气 多用您 请 不要用或少用专业术语 杜绝错别字 b 断句逗号句号顿号分号的用法 提示信息比较多的话 应该分段 c 针对用户所发出的警告 信息 错误 应使用用户能够明白的描述方式 严禁将系统输出给开发人员的错误信息直接输出给用户 输出的表示方法采用JavaScript 调用其中的相应表示方法 如alert表示警告 d 使用统一的语言描述 例如一个关闭功能按钮 可以描述为退出 返回 关闭 则应该统一规定 e 根据用户不同采用相应的词语语气语调 如专用软件 可以出现很多专业属于 用户为儿童 这可以语气亲切和蔼 老年用户则应该成熟稳重 制定标准遵循之 第三小节合理性 屏幕对角线相交的位置是用户直视的地方 正上方四分之一处为易吸引用户注意力的位置 在放置窗体时要注意利用这两个位置 合理性细则 1 重要的命令按钮与使用较频繁的按钮要放在页面上注目的位置 2 错误使用容易引起页面退出或关闭的按钮不应该放在易点位置 横排开头或最后与竖排最后为易点位置 3 与正在进行的操作无关的按钮应该加以屏蔽 4 对可能造成数据无法恢复的操作必须提供确认信息 给用户放弃选择的机会 5 非法的输入或操作应有足够的提示说明 6 对运行过程中出现问题而引起错误的地方要有提示 让用户明白错误出处 避免形成无限期的等待 7 提示 警告 或错误说明应该清楚 明了 恰当 第四小节美观与协调性 页面应该大小适合美学观点 色彩搭配协调舒适 能在有效的范围内吸引用户的注意力 美观与协调性细则 1 页面应该在浏览器中自动居中显示 页面宽度要适中 2 布局要合理 不宜过于密集 也不能过于空旷 合理的利用空间 3 按钮大小基本相近 忌用太长的名称 免得占用过多的页面位置 4 按钮的大小要与页面的大小和空间要协调 5 避免空旷的界面上放置很大的按钮 6 放置完控件后界面不应有很大的空缺位置 7 字体的大小要与界面的大小比例协调 通常使用的字体中宋体9 12较为美观
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2347-2025海水温度测量仪校准规范
- 2025年初中二年级政治上学期时事政治试卷
- 成都市 2024-2025 学年小学五年级语文期中模拟试卷(答案全解全析)
- 2025年社区康复护理试题及答案
- 2025年初中三年级化学上学期模拟测试
- 2025年出境领队实务试题及答案
- 2025年园医证试题及答案
- 第二章 声现象 第5节跨学科实践制作隔音房间模型 人教版八年级物理上册
- 2025年初中一年级数学上学期代数专项训练试卷
- 2025年土地租赁协议简化版合同
- 公益集市相亲活动方案
- 委托保管扣押物品协议书
- 危化品企业安全标准化自评报告(有内容)
- DB31/T 367-2017黄浦江游览船及码头运营设施与服务质量要求
- 移模协议书范本
- 锂电池生产中的潜在安全风险及其控制措施
- 车间工装模具管理制度
- 长城汽车公司管理制度
- 口腔影像委托协议书
- 砌体工程的质量标准与施工要求
- 医院运营管理课件
评论
0/150
提交评论