• 宅单词--代码规范


    这个作业属于哪个课程 2020春|S班
    作业要求 Beta冲刺-代码规范
    团队名称 云玩家$
    作业正文 点击
    参考文献

    一、编程规约

    (一)1.【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结 束。

    反例:name / name / $name / name / name$ / name
    2.【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
    说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼 
音命名方式 也要避免采用。 

    反例:DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量 = 3 

    3.【强制】类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO / PO / UID 等。 
正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion 

    反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion
    4.【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必 须遵从 驼峰形式。 
正例: localValue / getHttpMessage() / inputUserId
    5.【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名 字长。 

    正例:MAX_STOCK_COUNT 反例:MAX_COUNT
    6.【强制】抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾; 测试类命名以它要测试的类的名称开始,以 Test 结尾。
    7.【强制】类型与中括号紧挨相连来表示数组。 

    正例:定义整形数组 int[] arrayDemo; 在 main 参数中,使用 String[] args 来 定义 

    反例:在 main 参数中,使用 String args[]来定义。
    8.【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统 一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。
    正例:应用工具类包名为 com.alibaba.ai.util、类名为 MessageUtils(此规则 参考 spring 的框架结构)
    9.【强制】杜绝完全不规范的缩写,避免望文不知义。
    反例:AbstractClass“缩写”命名成 AbsClass;condition“缩写”命名成 condi, 此类随意缩写严重降低了代码的可阅读性。 

    10.【推荐】为了达到代码自解释的目标,任何自定义编程元素在命名时,使用尽量完整的 单词组合来表达其意。 

    正例:在 JDK 中,表达原子更新的类名为:AtomicReferenceFieldUpdater。
    反例:变量 int a 的随意命名方式。

    (二) 代码格式

    1.【强制】大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可, 不需要换行;如果是非空代码块则:
    左大括号前不换行。 

    左大括号后换行。 

    右大括号前换行。 

    右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。
    2.【强制】if/for/while/switch/do 等保留字与括号之间都必须加空格。
    3.【强制】采用 4 个空格缩进,禁止使用 tab 字符。
    说明:如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。IDEA 设置 tab 为 4 个空格时, 请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs

    (三) 注释规约

    1.类、类属性、类方法的注释必须使用 Javadoc 规范,使用/内容/格式,不得使用 // xxx 方式。
    说明:在 IDE 编辑窗口中,Javadoc 方式会提示相关注释,生成 Javadoc 可以正确输出相应注释;在 IDE 中,工程调用方法时,不进入方法即可
    悬浮提示方法、参数、返回值的意义,提高阅读效率。
    2.所有的抽象方法(包括接口中的方法)必须要用 Javadoc 注释、除 了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。
    说明:对子类的实现要求,或者调用注意事项,请一并说明。
    3.所有的类都必须添加创建者和创建日期。
    4.方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法 内部多行注释 使用/* */注释,注意与代码对齐。
    5.所有的枚举类型字段必须要有注释,说明每个数据项的用途。
    6.与其“半吊子”英文来注释,不如用中文注释把问题说清楚。专有名 词与关键字保持英文原文即可。
    反例:“TCP连接超时”解释成“传输控制协议连接超时”,理解反而费 脑筋。
    7.代码修改的同时,注释也要进行相应的修改,尤其是参数、返回值、 异常、核心逻辑等的修改。
    说明:代码与注释更新不同步,就像路网与导航软件更新不同步一样, 如果导航软件严重滞后,就失去了导航的意义。
    8.谨慎注释掉代码。在上方详细说明,而不是简单地注释掉。如果无用, 则删除。
    说明:代码被注释掉有两种可能性:(1)后续会恢复此段代码逻辑。(2) 永久不用。前者如果没有备注信息,难以知晓注释动机。后者建议直接 删掉(代码仓库保存了历史代码)。命名风格

    (四) UI框架选择

    1.PC端Vue项目UI框架优先选择:Element UI、iView
    2.移动端Vue项目UI框架:mint-ui(优先)

    (五) 文件夹、组件命名规范,组件结构规范

    1.文件夹名称应统一格式,小写开头,见名思意,page页面下的文件夹名称统一以page结尾,例如:homePage,loginPage。其余文件夹名称统一按照项目结构目录命名规范统一命名。
    2.组件名以单词大写开头,当多个单词拼写成的组件时,采用驼峰式命名规则。一般是多个单词全拼,减少简写的情况,这样增加可读性。
    组件应该都放到components文件夹下,单个页面独立一个文件夹,用来放相对应的vue文件以及页面相关的样式文件,样式少可直接写到页面组件里边,这样更符合组件化的思想。
    3.公用组件应该统一放到public文件下。
    4.基础组件:
    当项目中需要自定义比较多的基础组件的时候,比如一些button,input,icon,建议以一个统一的单词Base开头,或者放到base文件夹统一管理,这样做的目的是为了方便查找。
    5.页面级组件应该放到相对应页面文件夹下,比如一些组件只有这个页面用到,其他地方没有用到的,可以直接放到页面文件夹,然后以父组件开头命名,例如:HomeHeader.vue,HomeNav.vue。
    6.项目级组件一般放到公共文件夹public下给所有的页面使用。
    7.组件结构遵循从上往下template,script,style的结构。
    8. 组件样式
    单个组件样式一般可直接写到组件下style标签下,为了防止样式污染,可添加scoped 属性,也可以通过设置作用域来防止样式污染,写样式的时候尽量少写元素选择器,为了提高代码查找速度,可以用类选择器。

    (五) 文件格式

    UTF-8格式

    (六) Template模板文件

    1.尽量使用以.vue结束的单文件组件,方便管理,结构清晰。
    2.标签语义化,避免清一色的div元素
    3.样式class的命名:统一以小写字母开头,小写字母、下划线和数字组成。命名中尽量避免使用中文拼音,应该采用更简明有语义的英文单词进行组合。不建议使用驼峰法4.命名class属性。使用下划线的目的是为了和第三方库中的命名冲突。例如:xx_left,xx_line。
    5.多特性,分行写,提高可读性。即一个标签内有多个属性,属性分行写。
    6.自定义标签:使用自闭标签的写法。例如:,如果自定义标签中间需要传入slot,则写开始标签和结束标签,结束标签必须加/。
    7.组件/实例选项中的空行。便于阅读和代码架构清晰。

    (七) Script

    1.在 script 标签中,你应该遵守 Js 的规范和ES6规范。
    2.组件名称:必须以大写字母开头驼峰法命名。
    3.Data必须是一个函数。
    4.Props定义:提供默认值,使用type属性校验类型,使用props之前先检查prop是否存在
    5.调试信息 console.log() debugger使用完及时删除。
    6.为v-for设置Key值。使用计算 规避v-if和v-for用在一起。
    7.无特殊情况不允许使用原生API操作dom,谨慎使用this.$refs直接操作dom。
    8.使用ES6风格编码源码,定义变量使用let,定义常量使用const,使用export,import模块化。
    9.指令缩写:都用指令缩写 (用 : 表示 v-bind: 和用 @ 表示 v-on:)。

  • 相关阅读:
    CocoaPods安装使用及配置私有库及注意点
    CocoaPods 错误 target overrides the `OTHER_LDFLAGS`...
    如何判断ios设备中是否安装了某款应用
    symbol(s) not found for architecture arm64
    所有iOS设备的屏幕分辨率
    iOS禁止多点操作(按钮和Table项)
    计算日期时间间隔:
    "library not found for
    Undefined symbols for architecture i386:和"_OBJC_CLASS_$_xx", referenced from:问题解决方法
    oracle游标(转载)
  • 原文地址:https://www.cnblogs.com/cloudcoder/p/12988428.html
Copyright © 2020-2023  润新知