精华内容
下载资源
问答
  • 开发规范
    千次阅读
    2021-12-01 10:18:29

    本规范基于 Vue.js风格指南,并在此基础上做出强调、补充
    同时基于常规的html、js、css等通用前端编码规范

    [强制] 必须使用vue devtools 进行辅助开发

    一直以为这个工具是vue开发标配,直到认识了很多不使用这个工具的前端小伙伴
    需要做到开发工具内0报错、0警告

    [强制] 一切有顺序

    单文件组件的顶级元素,顺序顺序为 <template><script><style>,不可变动

    <script>的import顺序,分模块,拆分来写

    // 首先引入npm包里的内容
    import { mapState, mapActions } from 'vuex';
    
    // 其次引入全局的一些组件、方法
    import commonTree from '@/views/common/commonTree';
    import { formatDate } from '@/utils/utils.js';
    
    // 最后引入当前业务模块的组件、方法
    import editUser from './coms/editUser.vue';
    import handleEditDataMin from './mixins/handleEditData';
    

    data里面的数据,按模块顺序,分开书写

    data (){
      return {
    	xx1,
    	xx2,
    	
    	qq1,
    	qq2
      }
    }
    

    vue2 的option对象,属性需要按顺序排列

    从上到下的顺序如下:

    • name
    • mixins
    • components
    • props
    • data
    • filters
    • directive
    • computed
    • watch
    • 生命周期(按执行顺序)
    • methods

    template代码编写

    不使用v-html
    [强制] v-for必须添加key
    不写过于复杂的表达式,使用计算属性来代替
    一切从简

    • 指令使用缩写,使用 :data="xx",代替v-bind:data="xx";使用 @click="xx",代替 v-on:click="xx"
    • 方法不传参的话,不需要写(),比如使用 @click="fn",而不是 @click="fn()"

    style代码编写

    [强制] 需要加上scoped作用域
    在template最外层dom添加样式,style里面,将样式统一包起来。如下面代码

    <template>
      <div class="userManage">...</div>
    </template>
    ...
    
    <style type="scss" scoped>
      .userManage{
        ...
      }
    </style>
    

    命名与语义化

    |--userManage
    |----coms
    |----mixins
    |----userManage.vue
    

    如上面架构,尽可能将单vue文件语义化,避免使用index.vue命名
    如果有index.vue,需要配置语义化的name属性
    界面内部的非通用组件,放置到当前文件夹下的coms文件夹
    界面类单vue文件,使用小驼峰命名;组件类单vue文件,使用大驼峰命名

    mixin使用注意

    mixin文件放置mixin文件夹内,即使里面只有一个文件
    只有复杂业务模块才拆分mixin,其余应当使用公用方法代替,减少mixin的使用
    如果有多模块都使用的data数据,需要放置到主vue文件中

    需要放到全局的通用内容

    • 全局请求方法 this.$http.post(...)
    • 全局接口地址对象 this.URL.getUserList)
    • 必要的全局组件,比如通用表格组件
    • 必要的全局过滤器,比如日期格式化过滤器、千分符过滤器
    • 必要的全局自定义指令,比如控制权限的v-auth、控制按钮不可重复连续点击的防抖v-debounce

    vue组件开发

    prop 定义应该尽量详细,类型需要定义,必需的属性需要定义 required: true
    比较复杂的组件,除了代码里面写有注释之外,需要写一下api文档,以及相关基础使用demo

    父子组件传值、vuex

    尽量减少使用 this.$parentthis.$ref 来进行组件传值调用
    不使用eventbus之类的互相调用数据
    不滥用vuex,如果数据不需要共享的话,不需要通过vuex来管理

    vue router

    按模块来拆分router子文件,而不是写在一个大而全的router.js文件中
    同理,vuex的store也需要按模块进行拆分

    单vue文件大小控制

    行数红线为1000行,黄线为500行
    可以通过拆分子组件、公用方法、mixin、拆出style样式等方法减少单个vue文件大小

    图片引用

    图片直接上oss,vue项目中,直接引入图片的cdn地址,便于打包、缓存

    vscode插件配合

    使用Vetur来做vue组件的格式化操作

    欢迎查阅本专栏其余前端相关规范

    更多相关内容
  • 阿里巴巴JAVA开发规范word 编程规约 异常日志 MySQL 规约 工程规约 阿里巴巴JAVA开发规范word 编程规约 异常日志 MySQL 规约 工程规约 阿里巴巴JAVA开发规范word 编程规约 异常日志 MySQL 规约 工程规约 阿里巴巴...
  • 软件开发规范(国标)-全文档,项目亲用模板,符合国家标准
  • Web前端开发规范手册 提高团队协作效率  便于前端开发以及后期优化维护  方便新进的成员快速上手  输出高质量的代码
  • 数据库设计开发规范-阿里.pdf

    热门讨论 2017-06-23 16:26:55
    数据库设计开发规范-阿里.pdf
  • 计算机软件开发规范_GB_8566-88
  • 前端开发规范详解

    千次阅读 2021-01-21 14:46:46
    如果开发团队就一个人的话,那么自己写的代码就是规范,随着公司业务的扩展,团队不断壮大,这时候就要开始考虑协作和编码规范问题了。 一个人走的更快,一群人可以走的更远,前提是统一的策略,还要不断地反省和...

    引言

    如果开发团队就一个人的话,那么自己写的代码就是规范,随着公司业务的扩展,团队不断壮大,这时候就要开始考虑协作和编码规范问题了。

    一个人走的更快,一群人可以走的更远,前提是统一的策略,还要不断地反省和优化。

    什么是规范?

    规范,名词意义上:即明文规定或约定俗成的标准,如:道德规范、技术规范等。动词意义上:是指按照既定标准、规范的要求进行操作,使某一行为或活动达到或超越规定的标准,如:规范管理、规范操作。

    为什么要有规范?

    • 降低新成员融入团队的成本, 同时也一定程度避免挖坑;
    • 提高开发效率、团队协作效率, 降低沟通成本;
    • 实现高度统一的代码风格,方便review, 另外一方面可以提高项目的可维护性;
    • 规范是实现自动化的基础;
    • 规范是一个团队知识沉淀的直接输出;

    规范包括哪些内容?

    如前面提到的,前端协作规范并不单单指‘编码规范’,这个规范涉及到前端开发活动的方方面面,例如代码库的管理、前后端协作、代码规范、兼容性规范;

    不仅仅是前端团队内部需要协作,一个完整的软件生命周期内,我们需要和产品/设计、后端(或者原生客户端团队)、测试进行协作, 我们需要覆盖这些内容。

    下面就开始介绍,如果你是前端团队的Leader,我会怎么制定前端规范,这个规范需要包含哪些内容?

    1、前端开发规范

    主要从以下几个方面来概述前端的开发规范

    • 目录构建规范
    • 代码命名规范
    • 开发文档的书写规范

    1.1、目录构建规范

    1.1.1、设计目的

    是与项目开发的目录结构保持一致,便于项目的构建与管理。

    1.1.2、资源分类

    (1)源代码资源:指开发者编写的源代码,包括htmlcsstemplate等。

    (2)内容资源:指希望作为内容提供给访问者的资源,包括图片、字体、flashpdf等,最常用的应该就是readme.md文件。

    1.1.3、具体规范

    我们从命名原则、根目录、业务逻辑等方面进行目录构建

    (1)命名原则

    - 简洁明了(如下:)
      * src 源代码   
      * img  图片资源    image images
      * js  JavaScript脚本  
      * dep 第三方依赖包     development package
    - 不使用复数(如下:)
      * 不使用 imgs   docs  
    

    (2)根目录(root)结构按职能划分

    -  src 源代码(逻辑)
    -  doc  文档 
    -  dep  第三方依赖包
    -  test 测试
    

    (3)根据业务逻辑进行文件夹的划分

    - src目录名词解释:
      - common 公共资源
      - public/static 静态资源
      - component 组件
      - view/tpl 模板文件
    
    -- src
      -- common 公共资源 
        -- img
          -- logo.png
          -- sprites.png
        -- css
          -- reset.css
        -- js
          -- conf.js 项目的配置文件
      -- public/static 静态资源
        -- js
        -- css
        -- tpl
          -- index.html
          -- shopcar.html
        -- img
      -- component 组件 
        -- home 
        -- shopcar
        -- login
        -- register
        -- user
        -- list
        -- detail
      -- view/tpl 项目模板,tpl是template的缩写
    

    (4)总结

    以上目录开发规范有两种使用途径:

    • 使用前端工程化工具如webpackgulp等进行手动打造
    • 利用框架提供的脚手架工具进行修改

    1.2、前端代码规范

    这部分内容我们从以下两个方面进行讲解:

    • CSS命名规范
      • BEM规范
      • OOCSS规范
    • JavaScript编写规范
      • ESLint
      • JSLint

    1.2.1、CSS命名规范

    (1)BEM规范

    概念: Block Element Modifier,它是一种前端命名方法,旨在帮助开发者实现模块化、可复用、高可维护性和结构化的CSS代码。 BEM是定义了一种css class的命名规范,每个名称及其组成部分都是存在一定的含义。

    使用 BEM 命名规范,理论上讲,每行 css 代码都只有一个选择器。

    BEM代表 块(block),元素(element),修饰符(modifier),我们常用这三个实体开发组件。

    在选择器中,由以下三种符号来表示扩展的关系:

    -   中划线 :仅作为连字符使用,表示某个块或者某个子元素的多单词之间的连接记号;
    __  双下划线:双下划线用来连接块和块的子元素;
    _   单下划线:单下划线用来描述一个块或者块的子元素的一种状态;
    
    示例:type-block__element_modifier
    

    块(block)

    一个块是设计或布局的一部分,它有具体且唯一地意义 ,要么是语义上的要么是视觉上的。

    在大多数情况下,任何独立的页面元素(或复杂或简单)都可以被视作一个块。它的HTML容器会有一个唯一的CSS类名,也就是这个块的名字。

    针对块的CSS类名会加一些前缀( ui-),这些前缀在CSS中有类似 命名空间 的作用。

    一个块的正式(实际上是半正式的)定义有下面三个基本原则:

    1. CSS中只能使用类名(不能是ID)。
    2. 每一个块名应该有一个命名空间(前缀)
    3. 每一条CSS规则必须属于一个块。

    例如:一个自定义列表 .list 是一个块,通常自定义列表是算在 mod 类别的,在这种情况下,一个 list 列表的block写法应该为:

    .list   
    

    元素(element)

    块中的子元素是块的子元素,并且子元素的子元素在 bem 里也被认为是块的直接子元素。一个块中元素的类名必须用父级块的名称作为前缀。

    如上面的例子,li.item 是列表的一个子元素,

    .list{}
    .list .item{}
    
    .list{}
    .list__item{}
    

    修饰符(modifier)

    一个“修饰符”可以理解为一个块的特定状态,标识着它持有一个特定的属性。

    用一个例子来解释最好不过了。一个表示按钮的块默认有三个大小:小,中,大。为了避免创建三个不同的块,最好是在块上加修饰符。这个修饰符应该有个名字(比如:size )和值( smallnormal 或者 big )。

    如上面的例子中,表示一个选中的列表,和一个激活的列表项

    .list{}
    .list.select{}
    .list .item{}
    .list .item.active{}
    
    .list{}
    .list_select{}
    .list__item{}
    .list__item_active{}
    

    书写原则

    1. 原则上不会出现2层以上选择器嵌套

    使用BEM原则,用命名来解耦,所有类名都为一层,增加效率和复用性

    1. 两层选择器嵌套出现在.mod-xxx__item_current子元素的情况,如下:

    使用推荐的嵌套写法

    常规写法:

    .xxx{}
    .xxx__item{}
    .xxx__item_current{}
    // 嵌套写法
    .xxx__item_current .mod-xxx__link{}
    

    推荐:

    .xxx{}
    .xxx__item{}
    .xxx__item_hightlight{}
    .xxx__product-name{}
    .xxx__link{}
    .xxx__ming-zi-ke-yi-hen-chang{}
    
    // 嵌套写法
    .xxx__item_current{
        .xxx__link{}
    }
    

    对应的HTML结构如下:

    <ul class="xxx">
        <li class="xxx__item">第一项
            <div class="xxx__product-name">我是名称</div>
            <span class="xxx__ming-zi-ke-yi-hen-chang">看类名</span>
            <a href="#" class="xxx__link">我是link</a>
        <li>
        <li class="xxx__item xxx__item_current">第二项 且 当前选择项
            <div class="xxx__product-name">我是名称</div>
            <a href="#" class="xxx__item-link">我是link</a>
        <li>
        <li class="xxx__item xxx__item_hightlight">第三项 且 特殊高亮
             <div class="xxx__product-name">我是名称</div>
            <a href="#" class="xxx__item-link">我是link</a>
        <li>
    </ul>
    

    BEM 解决问题

    组件之间的完全解耦,不会造成命名空间的污染,如:.mod-xxx ul li 的写法带来的潜在的嵌套风险。

    性能

    BEM 命名会使得 Class 类名变长,但经过 gzip 压缩后这个带宽开销可以忽略不计

    xxx__item_hightlight
    

    (2)OOCSS规范

    概念:Object Oriented CSS,面向对象的CSS,旨在编写高可复用、低耦合和高扩展的CSS代码。

    OOCSS是以面向对象的思想去定义样式,将抽象和实现分离,抽离公共代码。

    最典型的oocss规范使用案例:bootstrap

    区分结构与样式

    在定义一个可重用性的组件库时,我们仅创建基础的结构(html)和基础的类名,不应该创建类似于border, width, height, background等样式规则,这样使组件库更灵活和可扩展性。组件库在不同环境下的样式所要求不一样,若未能区分其结构和样式,给其添加样式,会使其变成一个特定的组件库,而难以重用。

    以下是一个基础库创建的样式:

    .metadata{
      font-size: 1.2em;
      text-align: left;
      margin: 10px 0;
    }
    

    若在给其添加更多的样式:

    .metadata{
        font-size: 1.2em;
        margin: 10px 0;
        /*在基础组件上新加的样式*/
        width: 500px;
        background-color: #efefef;
        color: #fff;
    }
    

    这样就使前面创建的基础组件metadata变成了一个特定的组件了,使其在其他场景下较难复用。

    区分容器和内容

    把容器和内容独立分区,使内容能作用于任何容器下。

    #sidebar h3 {
      font-family: Arial, Helvetica, sans-serif;
      font-size: .8em;
      line-height: 1;
      color: #777;
      text-shadow: rgba(0, 0, 0, .3) 3px 3px 6px;
    }
    

    上面我们定义了一个id为sidebarh3的样式,但是我们发现在footerh3的样式也基本一致,仅个别不一样,那么我们可能会这样写样式:

    #sidebar h3, #footer h3 {
      font-family: Arial, Helvetica, sans-serif;
      font-size: 2em;
      line-height: 1;
      color: #777;
      text-shadow: rgba(0, 0, 0, .3) 3px 3px 6px;
    }
    
    #footer h3 {
      font-size: 1.5em;
      text-shadow: rgba(0, 0, 0, .3) 2px 2px 4px;
    }
    

    甚至我们可能会用更糟糕的方式来写这个样式:

    #sidebar h3 {
      font-family: Arial, Helvetica, sans-serif;
      font-size: 2em;
      line-height: 1;
      color: #777;
      text-shadow: rgba(0, 0, 0, .3) 3px 3px 6px;
    }
    
    #footer h3 {
      font-family: Arial, Helvetica, sans-serif;
      font-size: 1.5em;
      line-height: 1;
      color: #777;
      text-shadow: rgba(0, 0, 0, .3) 2px 2px 4px;
    }
    

    我们可以看到上面的代码中出现了不必要的duplicating styles。而OOCSS鼓励我们应该思考在不同元素中哪些样式是通用的,然后将这些通用的样式从模块、组件、对象等中抽离出来,使其能在任何地方能够复用,而不依赖于某个特定的容器。

    .title-heading {
      font-family: Arial, Helvetica, sans-serif;
      font-size: 2em;
      line-height: 1;
      color: #777;
      text-shadow: rgba(0, 0, 0, .3) 3px 3px 6px;
    }
    #footer .title-heading {
      font-size: 1.5em;
      text-shadow: rgba(0, 0, 0, .3) 2px 2px 4px;
    }
    

    1.2.2、JavaScript编写规范

    代码规范通常包括以下几个方面:

    • 变量和函数的命名规则
    • 空格,缩进,注释的使用规则。
    • 其他常用规范……

    规范的代码可以更易于阅读与维护。

    代码规范一般在开发前规定,可以跟你的团队成员来协商设置。

    常见的JavaScript代码规范校验工具有:

    • ESLint
    • JSLint
    • JSHint

    (1)ESLint

    官网: https://cn.eslint.org/

    ESLint 是在 ECMAScript/JavaScript 代码中识别和报告模式匹配的工具,它的目标是保证代码的一致性和避免错误。在许多方面,它和 JSLintJSHint 相似,除了少数的例外:

    • ESLint 使用 Espree 解析 JavaScript
    • ESLint 使用 AST 去分析代码中的模式
    • ESLint 是完全插件化的。每一个规则都是一个插件并且你可以在运行时添加更多的规则。

    以上来自官网。简单来说,ESLint就是一个代码风格检测工具。

    如何使用:

    # 安装
    npm install -g eslint
    
    # 如果你第一次使用 ESLint,你必须使用 –init 命令新建一个配置文件
    eslint --init
    
    # 使用 ESLint 检测任何 JavaScript 文件:
    eslint test.js test2.js
    
    # ESLint 中一些规则运行命令它可以帮你自动修复
    eslint test.js --fix
    

    规则定义:

    • JavaScript - 使用 .eslintrc.js 然后输出一个配置对象。
    • YAML - 使用 .eslintrc.yaml.eslintrc.yml 去定义配置的结构。
    • JSON -使用 .eslintrc.json 去定义配置的结构,ESLintJSON 文件允许 JavaScript 风格的注释。
    • Deprecated -使用 .eslintrc,可以使 JSON 也可以是 YAML
    • package.json - 在 package.json 里创建一个 eslintConfig 属性,在那里定义你的配置。

    ESLint规范配置参考:https://cn.eslint.org/docs/rules/

    (2)JSLint

    官网: https://www.jslint.com/

    JSLint是一款不错的前端javascript代码校验工具,可以检查代码规范化,压缩JSCSS等,但是他的语法规范检查有时会比较“苛刻”。

    (3)JSHint

    官网: https://jshint.com/

    JSHint比起JSLint而言,会更加轻量级一些。它能够找出代码中的语法错误,并且建议更好的一种编码风格。当然,它也不是强制性的非要你根据它规定的编码风格来做。因为它提供了一系列的配置,你可以随时关掉某些你觉得不必要的错误提示。

    如何使用:

    # 安装
    npm install jshint -g
    
    # 在要扫描的目录下运行命令
    jshint . >> jshint_result.txt
    

    这样扫描结果都写到jshint_result.txt的文件。
    相比JSLint那么严格的规则,其实很多我都觉得是个人偏好问题,JSHint更加合理。

    JSHint是一个全局的函数:

    var result = JSHINT(source, options);
    

    JSHint()方法解释:

    • 第一个参数source : 必选项。表示需要检查的代码,js或者json,可以传一个字符串或者一个数组。如果传字符串,需要用 ’\r’ 或者 ’\n’来分隔一行一行的代码;如果传数组,则每一个数组元素表示一行的代码。
    • 第二个参数option : 可选项。表示代码检查的配置项。大部分的都是bool类型的,也有一部分,例如predef,可以是一个array,含有全局变量或者全局方法;或者是一个objectkey是全局变量或者方法,value是一个bool值,表示是否被定义过。
    • 返回值:如果代码没有问题,JSHint会返回一个true;否则返回false

    关于第2个参数的配置项(部分):

    propdescription
    asi是否使用自动插入分号
    bitwise如果是true,则禁止使用位运算符
    boss如果是true,则允许在if/for/while的条件中使用=做赋值操作
    curly如果是true,则要求在if/while的模块时使用TAB结构
    debug如果是true,则允许使用debugger的语句
    eqeqeq如果是true,则要求在所有的比较时使用=和!
    eqnull如果是true,则允许使用== null
    evil如果是true,则允许使用eval方法
    forin如果是true,则不允许for in在没有hasOwnProperty时使用
    immed如果是true,则要求“立即调用”(immediate invocations)必须使用括号包起来
    laxbreak如果是true,则不检查换行,那么自动插入分号的选项必须开启。
    maxerr默认是50。 表示多少错误时,jshint停止分析代码
    newcap如果是true,则构造函数必须大写
    noarg如果是true,则不允许使用arguments.caller和arguments.callee
    noempty如果是true,则不允许使用空函数
    nonew如果是true,则不允许不做赋值的构造函数,例如new UIWindow();
    nomen如果是true,则不允许在名称首部和尾部加下划线
    onevar如果是true,则在一个函数中只能出现一次var
    passfail如果是true,则在遇到第一个错误的时候就终止
    plusplus如果是true,则不允许使用++或者- -的操作
    regexp如果是true,则正则中不允许使用.或者[^…]
    undef如果是ture,则所有的局部变量必须先声明之后才能使用
    sub如果是true,则允许使用各种写法获取属性(一般使用.来获取一个对象的属性值)
    strict如果是true,则需要使用strict的用法, 详见http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
    white如果是true,则需要严格使用空格用法。

    (4)三种规范工具的对比

    ESLintJSLintJSHint这三个工具各有特色,我只是做一下对比,选择的话,看个人需求就好了。

    JSLint

    优点

    • 配置是老道已经定好的,开箱即用。

    不足

    • 有限的配置选项,很多规则不能禁用
    • 规范严格,凡是不符合老道所认为的好的风格的,都会有警告(这一项就看你是否完全认同老道了)
    • 扩展性差
    • 无法根据错误定位到对应的规则

    JSHint

    优点

    • 有了很多参数可以配置
    • 支持配置文件,方便使用
    • 支持了一些常用类库
    • 支持了基本的ES6

    不足

    • 不支持自定义规则
    • 无法根据错误定位到对应的规则

    ESLint

    优点

    • 默认规则里面包含了JSLintJSHint的规则,易于迁移(这肯定是故意的XD)
    • 可配置为警告错误两个等级,或者直接禁用掉
    • 支持插件扩展
    • 可以自定义规则
    • 可以根据错误定位到对应的规则
    • 支持ES6
    • 唯一一个支持JSX的工具

    不足

    • 需要进行一些自定义配置(因为太灵活了嘛,不过文档是很详细的)
    • (它比其他两个都要慢)

    1.3、开发文档编写规范

    这部分内容从以下几个部分进行说明

    • html规范
    • css规范
    • js规范

    1.3.1、HTML规范

    (1)标签上属性的顺序建议如下

    • class ( class 是为高可复用组件设计的,所以应处在第一位)
    • id name (id 更加具体且应该尽量少使用,所以将它放在第二位)
    • data-*
    • src for type href value
    • placeholder title alt
    • aria-* role
    • required readonly disabled

    (2)id/class 命名规则: BEM OOCSS SMACSS(扩展)

    (3)注释规范(最好用英文)

    <div class="container">
    <!-- 头部--start -->
    <header></header>
    <!-- 头部--end -->
    <!-- 内容--start -->
    <div class="content">
    </div>
    <!-- 内容--end -->
    <!-- 底部--start -->
    <footer>
    </footer>
    <!-- 底部--end -->
    </div>
    

    1.3.2、CSS规范

    属性顺序:

    • 位置属性 position top right z-index display float
    • 大小 width height padding margin
    • 文字系列 font line-height letter-spacing color text-align
    • 背景 background border
    • 其他 animation transition

    尽量不使用标签选择器:

    .content ul.first-child
    
    <div class="content">
      <ul>
          <li>
              <a href=""></a>
              <a href=""></a>
              <a href=""></a>
          </li>
       </ul>
       <ul>
          <li>
              <a href=""></a>
              <a href=""></a>
              <a href=""></a>
          </li>
       </ul>
    </div>
    

    属性尽量使用简化缩写:

    body{
       margin: 10px 0;
       background: url('./img.png') center;
    }
    

    **去掉小数点前面的 0 **

    body{
      margin: 10px .8px;
      background: url('./img.png') center;
    }
    

    1.3.3、JS规范

    变量名

    变量名推荐使用驼峰法来命名(camelCase):

    firstName = "John";
    lastName = "Doe";
    
    price = 19.90;
    tax = 0.20;
    
    fullPrice = price + (price * tax);
    

    空格与运算符

    通常运算符 ( = + - * / ) 前后需要添加空格:

    实例:

    var x = y + z;
    var values = ["Volvo", "Saab", "Fiat"];
    

    代码缩进

    通常使用 4 个空格符号来缩进代码块:

    函数:

    function toCelsius(fahrenheit) {
      return (5 / 9) * (fahrenheit - 32);
    }
    

    语句规则

    简单语句的通用规则:一条语句通常以分号作为结束符。

    实例:

    var values = ["Volvo", "Saab", "Fiat"];
    
    var person = {
      firstName: "John",
      lastName: "Doe",
      age: 50,
      eyeColor: "blue"
    };
    

    复杂语句的通用规则:

    • 将左花括号放在第一行的结尾。
    • 左花括号前添加一空格。
    • 将右花括号独立放在一行。
    • 不要以分号结束一个复杂的声明。

    函数:

    function toCelsius(fahrenheit) {
      return (5 / 9) * (fahrenheit - 32);
    }
    

    循环:

    for (i = 0; i < 5; i++) {
      x += i;
    }
    

    条件语句:

    if (time < 20) {
      greeting = "Good day";
    } else {
      greeting = "Good evening";
    }
    

    对象规则

    对象定义的规则:

    • 将左花括号与类名放在同一行。
    • 冒号与属性值间有个空格。
    • 字符串使用双引号,数字不需要。
    • 最后一个属性-值对后面不要添加逗号。
    • 将右花括号独立放在一行,并以分号作为结束符号。

    实例:

    var person = {
      firstName: "John",
      lastName: "Doe",
      age: 50,
      eyeColor: "blue"
    };
    

    短的对象代码可以直接写成一行:

    实例:

    var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
    

    命名规则

    一般很多代码语言的命名规则都是类似的,例如:

    • 变量和函数为小驼峰法标识, 即除第一个单词之外,其他单词首字母大写( lowerCamelCase
    • 全局变量为大写 (UPPERCASE )
    • 常量 (如 PI) 为大写 (UPPERCASE )

    变量命名你是否使用这几种规则: hyp-hens, camelCase, 或 under_scores ?

    HTMLCSS 的横杠(-)字符:

    HTML5 属性可以以 data- (如:data-quantity, data-price) 作为前缀。

    CSS 使用 - 来连接属性名 (font-size)。

    - 通常在 JavaScript 中被认为是减法,所以不允许使用。

    下划线:

    很多程序员比较喜欢使用下划线(如:date_of_birth), 特别是在 SQL 数据库中。

    PHP 语言通常都使用下划线。

    帕斯卡拼写法(PascalCase):

    帕斯卡拼写法(PascalCase) 在 C 语言中语言较多。

    驼峰法:

    JavaScript 中通常推荐使用驼峰法,jQuery 及其他 JavaScript 库都使用驼峰法。

    变量名不要以 $ 作为开始标记,会与很多 JavaScript 库冲突。

    文件扩展名

    HTML 文件后缀可以是 .html (或 .htm)。

    CSS 文件后缀是 .css

    JavaScript 文件后缀是 .js

    使用小写文件名

    大多 Web 服务器 (Apache, Unix) 对大小写敏感: london.jpg 不能通过 London.jpg 访问。

    其他 Web 服务器 (Microsoft, IIS) 对大小写不敏感: london.jpg 可以通过 London.jpglondon.jpg 访问。

    你必须保持统一的风格,我们建议统一使用小写的文件名。

    2、工作流程规范

    我们从 日报 、 周报以及邮件格式三个方面来了解工作流程规范。

    2.1、工作日报

    工作日报又称为工作日志, 工作日志是指针对自己的工作,每天记录工作的内容、所花费的时间以及在工作过程中遇到的问题,解决问题的思路和方法。最好可以详细客观的记录下你所面对的选择、观点、观察、方法、结果和决定,这样每天日事日清,经过长期的积累,才能达到通过工作日志提高自己的工作技能。

    工作日报是对当天工作的反馈, 当天已经做了的主要工作和进展,当日经验和教训以及反思,明日的打算等等。

    具体总结下来,大概包含以下的方面:

    • 上午你做什么
    • 下午你做了什么
    • 遇到什么问题?是否有解决?
    • 明天的计划?(明天准备做什么)
    • 最后在内容最后面跟上日期

    示例:

    领导:
    	上午工作内容如下:
    		项目首页布局完成,首页逻辑和交互代码还差2个轮播未完成
    
    	下午工作内容如下: 
    		项目首页逻辑和交互代码全部完成
    		
    	遇到的困难如下:
    		首页轮播书写实现防抖有些困难,但是已经解决
    		遇到了xxx问题,是否已经解决
    		
    	明天工作计划如下: 
    		项目分类页完成
    		项目详情页完成
    		
         请领导熟知!
         
         谢谢
         
         									技术部 - 前端 - XXX
         									2020/01/01
    

    2.2、工作周报

    工作周报,简称周报,是每周一次的工作报告。相关概念有工作日报、工作月报、周例会、工作总结、工作计划等**。**

    工作周报的内容包括工作计划、工作总结、上级回复等,适用于公司、部门、团队、社会团体、项目组等各种组织,是最常见的组织管理基本方法之一。

    示例:

    2016.07.25-2016.07.29周报:
    
      1. 本周工作主要内容:
         - 完成了宏视云h5播放器升级及大数据上报;
         - 修复xk-h5播放器bug:在三星手机自带浏览器无法进行滑动seek; 
         - admin-console后台管理系统初步完成终端访问页面和数据统计概览页面的制作;
         
      2. 工作中存在的主要问题:
         - webserver大数据展示页面移植到admin-console后台管理系统存在bootstrap与jquery.easyui冲突等几个兼容性问题;
         - 解决这个问题的思路可能不是最有效的方法,可能使用iframe会快些;使用iframe存在如何在easyui页面控制iframe页面及如何在浏览器窗口改变时,iframe也跟着改变等问题;
         
      3. 下周工作计划:
         - 完成上周未完成的admin-console大数据展示页面的制作;
         - 完成工作以后,如果有时间的话尝试下用iframe解决;
         - 询问师兄有没有可以帮忙做的工作;
    

    2.3、邮件发送格式

    在日常办公中,发送邮件是最常见的工作汇报形式,也是比较正式的一种形式,所以要掌握基本的邮件发送格式。

    常用的邮件格式参考:

    1. 明确邮件发送谁?
    
       - 参与者: 一定要想清楚, 如果不清楚, 记得问一下你直接上司(同事)
    
    2. 邮件的主题: 
    
       - 主题必须有且仅有一个
       - 必要时, 可以添加: 【请批阅】 、 等字眼
    
    3. 邮件正文
    
       - 称呼要明确: 
    
       - 条理分明
         举例:
    
    
     各位领导好:
         以下内容是xxx 请熟知/请批阅
     ```
    
    1. 署名:

      • 什么部门 什么职位 什么姓名 什么时间
    2. 附件

      • 需要说明附件是做什么的?
    3. 转发;

      • 需要对原邮件进行说明。,然后写清楚自己的意图
    展开全文
  • Android开发规范

    2016-04-05 09:24:11
    这是Android开发要求及规范,不熟悉的童鞋可以看一看哦!
  • Android开发规范文档,上传的为docx版本方便修改。
  • 【小程序专栏】总结uniapp开发小程序的开发规范

    千次阅读 多人点赞 2022-07-11 09:34:38
    遵循Vue 单文件组件 (SFC) 规范、组件及接口规范、全局样式与局部样式、尺寸响应式、字体的使用、请使用flex布局方式

    一、项目结构

    在完成uniapp项目的创建之后,其项目目录结构如下所示。我们下面对项目结构进行简单的介绍,如果你看完介绍的内容,仍然无法理解,建议您先去学习一下vue。因为uniapp是基于vue核心语法进行开发,所以学习vue是必要的。
    在这里插入图片描述

    • .hbuilderx是开发该项目使用的工具HBuilderX的开发配置目录,一般不需要手工修改其内容。有了该目录别人在导入项目的时候,会默认使用你的开发工具配置信息。因为每个人使用开发工具的习惯不同,所以该目录一般不上传到版本管理仓库。
    • pages是所有vue页面的存放目录,可以根据自己的规划在pages目录下面创建子目录
    • static目录通常存放项目引用的静态资源,比如:图片、图标、字体等
    • unpackage各个平台的打包文件存放目录,项目打包之后的结果文件就存放在这个目录下。
    • App.vue是项目的根组件,即Vue单页面入口文件,在该页面可以监听应用级别的生命周期函数。
    • main.js是项目的js入口文件,将vue页面实例化,并整合vue页面所需要的组件插件等内容。
    • index.html是项目的首页,项目的入口页面。main.js实例化之后的vue页面结果,最终将渲染到首页中。
    • manifest.json是应用的配置文件,用于指定应用程序的名称、图标、权限、启动页面设置、插件等信息。
    • pages.json是对应用的显示页面进行配置,比如文件路径、窗口样式、原生导航栏配置等内容。
    • uni.scss文件主要是用于控制应用页面的整体显示风格,预置了一些SCSS的变量,比如文字颜色、背景颜色、边框颜色、图片尺寸等等

    最后,一般来说我们还需要手动建立一个components目录,用于存放vue的components组件。

    二、开发规范

    遵循Vue 单文件组件 (SFC) 规范

    <template>
    	<view class="content">
    		<image class="logo" src="/static/logo.png"></image>
    		<view class="text-area">
    			<text class="title">{{title}}</text>
    		</view>
    	</view>
    </template>
    
    <script>
    	export default {
    		data() {
    			return {
    				title: 'Hello'
    			}
    		},
    		onLoad() {
    
    		},
    		methods: {
    
    		}
    	}
    </script>
    
    <style>
    //这里可以书写css、sass、less等样式及样式预处理器
    </style>
    
    
    • 一个vue的文件中只能包含一个顶级的<template></template>模板
    • 一个vue文件只能包含一个<script></script>脚本定义
    • 一个vue文件可以包含一个或多个<style></style>样式定义

    uniapp的页面开发遵循 Vue 单文件组件 (SFC) 规范。另外,uniapp不能使用js进行html文档的DOM操作,请严格遵循vue的MVVM的数据绑定开发方式。

    组件及接口规范

    需要注意的是,在uniapp中不能使用标准的html标签,uniapp组件名称及使用方式的定义更贴近微信小程序,优先参考:uni-app 组件文档,可以辅助参考微信小程序组件文档。比如:

    • <view>标签在uniapp中的含义与标准html中的<div>标签能力相当
    • 如果你希望定义图片,不能直接使用html中的img,你应该使用uniapp的组件标签image

    uniapp的接口能力(JS API)非常接近微信小程序规范,但需将前缀 wx 替换为 uni,详见uni-app接口规范

    三、css样式规范

    全局样式与局部样式

    uni.scss文件中预置了一些全局样式scss变量,这些变量用于定义应用的整体样式风格,比如:文字颜色、背景颜色、边框颜色等等。 需要注意的是这个文件不要随意修改,如果要更改的话只能修改变量的值,不要修改变量的名。那么如果我们希望增加一些自定义的全局样式,应该怎么去做呢?参考下面的方法:

    • 首先,自己写一个样式文件,比如:app.scss ,该文件中自定义样式书写。将该文件放置于/static/style目录下
    • 其次在app.scss文件的开头,引入uni.scss文件,引入语句为:@import '~@/uni.scss';
    • 最后在App,vue的样式中,引入这个自定义全局样式文件
     <style>
        @import '~@/static/style/app.scss';
     </style>
    

    uniapp的局部样式实现是以vue文件为单位的,在某个vue文件内定义的样式,只在该vue的渲染范围内生效。

    尺寸响应式

    uniapp框架为了更好的适配不同的移动端屏幕,设置了750rpx为屏幕的基准宽度。如果屏幕宽度小,rpx显示效果会等比缩小;如果屏幕宽度大,rpx显示效果会等比例放大。举例说明: 如果设计稿的元素宽度是600px,某元素X的宽度是100px,那么该元素X在uniapp里面设置的宽度应该是:750 * 100 /600 = 125rpx。

    如果大家觉得自己手动计算比较麻烦,可以在文件manifest.json中设置transformPx的值为true,项目会自动将px转换为rpx

    字体的使用

    uniapp支持字体的引用方式分为2种情况,如果字体文件小于 40kb,uniapp会自动将其转化为 base64 格式;将字体文件放置到static目录下,然后通过font-face定义字体。

     @font-face {
         font-family: 'test-icon';
         src: url('~@/static/iconfont.ttf');
     }
    

    如果字体文件大于等于 40kb, 需开发者自己转换将字体文件转换成Base64字符串,否则使用将不生效;将转换之后的Base64字符串粘贴到下文的位置,完成字体的定义。

    @font-face {
        font-family:  'test-icon';
        font-weight: normal;
        font-style: normal;
        src: url(data:font/truetype;charset=utf-8;base64,转换的base64内容) format('truetype');  
    }
    

    字体的使用方式是通用的css样式,使用font-family即可。

    请使用flex布局方式

    为更好的支持跨平台,uniapp框架建议使用css的Flex方式布局。

    展开全文
  • Unity技术-开发规范

    千次阅读 多人点赞 2022-01-23 09:47:18
    熬夜再战Android从青铜到王者-开发效率插件篇 点击跳转=>Unity粒子特效系列-龙卷风预制体做好了,unitypackage包直接用! 点击跳转=>姐姐喊我解锁套娃新技能:FairyGUI在Unity中实现List嵌套List/立体画廊等,...

    我的身世奠定了我的位置,一身的荣华,无限的权力,我更喜欢的是和你在一起!

    往期文章分享

    点击跳转=>熬夜再战Android从青铜到王者-开发效率插件篇
    点击跳转=>Unity粒子特效系列-龙卷风预制体做好了,unitypackage包直接用!
    点击跳转=>姐姐喊我解锁套娃新技能:FairyGUI在Unity中实现List嵌套List/立体画廊等,玩出花儿来
    点击跳转=>Unity新手必备5款宝藏插件–价值上千元白嫖最新版
    爆肝万字C#基础入门大总结【建议收藏】
    Android修行手册-玩转TextView,想不到有这么多属性
    【万字】修行Android Studio技巧到出神入化,快速涨薪【建议收藏】
    Android修行手册之从头到尾学Kotlin【全】

    本文约5.3千字,新手阅读需要6分钟,复习需要2分钟收藏随时查阅不再迷路

    👉关于作者

    众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
    专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
    有什么需要欢迎私我,交流群让学习不再孤单

    在这里插入图片描述

    👉前提

    为什么要规范/规范的目的

    Unity开发通常需要和三维,美术,设计等并行开发,沟通交流频繁,而且中大项目还可能多人开发,所以一个好的项目规范,能提升开发效率。优点多多:

    • 1.方便代码的交流和分片维护,使代码清晰人人都读得懂,可维护强;
    • 2.前期开发团队管理效率高,分工明确,有效避免写了后面搞不明白前面,防止了恶性加班;
    • 3.后期更新/维护速度快,逻辑明确,项目清晰;
    • 4.规范的代码虽然不一定带来高性能,但一定是优雅的,赏心悦目的,不枯燥提升心情愉悦性;
      良好的规范很重要,任谁也不想在“脏乱”的环境工作

    👉实践过程

    😜文件目录规范

    image.png

    😜一级目录

    01_Scenes】:存放所有场景,方便快速找到对应场景,如果场景有先后顺序命名可以挂上编号

    02_UI】:存放2D方面的资源,比如图片精灵等,如果过多可以分二级文件夹,其命名规则和用到的地方相对应

    03_Model】:存放3D资源,模型材质等所有相关内容

    04_NetAndData】:存放网络通信和本地数据库等相关内容,比如:服务器访问,本地存储等

    05_Utils】:存放平时用到的封装工具类,比如:Screen屏幕类,Time类,Math类,文件操作类,时间类,字符串类等等

    06_Scripts】:存放脚本,偏向于存放二处及以上使用次数的脚本,像那些单独使用的脚本且跟控件/模型有关联的,把她们放到一起即可

    07_Audio】:存放声音文件

    08_Others】:存放其他文件,暂时不清楚放在哪个分类下的文件,可以以后再分类

    09_Test】:测试文件夹,平时测试功能,下个测试脚本啥的,都放到这,产品发布之前可以直接删除

    Plugins】:系统默认文件会自动识别,为插件目录,存放扩展Unity编辑器的代码工具,编译的时候不会打包进去

    Prefab】:系统默认文件会自动识别,存放经常反复利用的对象或资源,充分复用

    Resources】:系统默认文件会自动识别,默认的资源路径,发布的时候会自动打包进去,在代码中可以直接访问

    有更合适的可以再增加

    😜二级目录

    可以根据自己项目需要增加对应的文件夹,比如存放3D资源的【03_Model】文件夹和存放2D资源的【02_UI】文件夹

    3D你可以按照模型分类,也可以按照资源分类

    image.png

    Animators】:动画控制器 相关的资源文件。

    Materials】:材质 相关的资源文件。

    Shaders】:着色器 相关的资源文件。

    Scripts】:脚本 相关的资源文件。

    Textures】:纹理 相关的资源文件。

    或者

    ModelOne】:存整个模型的所有东西,材质/模型/纹理等

    ModelTwo】:同上,存另一个模型的全部

    如上,资源明确,调理清晰, 一看就知道项目层级,至于更深的三四级目录,看项目需要,灵活设置。

    😜文件名规范

    • 1.大驼峰命名法,每个单词首字母大写,并且能够表现出改文件的功能意义。比如有个手模型,可以起名字为:ModelHand
    • 2.同级下且名称相同的文件,命名用下划线”_”加编号来区分,比如:Scene_01,Scene_02,Scene_03,Scene_04
    • 3.同属于一个整体的各个资源名称尽量要一致,比如手模型包含了贴图和对应的脚本,起名:ModelHand,ScriptHand,TexturesHand或者HandModel,HandScript,HandTextures
    • 4.命名尽量使用英文,如果多人协同合作英文有障碍的话,使用拼音,但一定要全拼且符合大驼峰命名。比如手电模型:起名ShouDian,可别来SD,让人误会成SD卡或者傻蛋,非常不推荐缩写。

    😜资源规范

    • 1.命名遵循上面的上面文件命名规范
    • 2.图片资源统一尽量使用png格式
    • 3.图片不要过于追求效果,在不影响视觉的前提下能小就小一些
    • 4.可以提前使用TinyPng软件来进行图片压缩,我在Android中也强烈推荐过,超级神器,效果显著
    • 5.多人协作坐标模式提前商定好,统一的坐标系能帮助更好的观看模型效果,否则会导致场景乱套
    • 6.移动设备面数控制300-1500,PC端建议范围是1500-4000,整个屏幕建议控制在7500面以下
    • 7.贴图尺寸为2的N次方,最大不超过1024*1024,特殊情况再进行特殊处理

    😜代码规范

    • 1.驼峰命名法,且命名要表达出符合她的意思,要么英文要么频音,强烈反对缩写
    • 2.注释尽可能写详细,便于维护和后期查阅
    • 3.禁止在频繁更新的函数(Update/OnGui)中使用协程,声明变量,等创建类操作,对性能造成影响
    • 4.对可能造成功能失效,影响业务流程的代码添加异常捕获,便于调试
    • 5.尽可能将计算量大的耗时任务放到子线程进行,避免堵塞
    • 6.其他规范待补充

    👉其他

    📢作者:小空和小芝中的小空
    📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
    📢欢迎点赞👍收藏🌟留言📝

    展开全文
  • 对于正在从事Web前端开工作的人来说,了解Web前端开发规范是很重要的.因为只有这样才能保证高效快速的完成工作,今天小千就来和大家分享一下新手初学Web前端需要注意的Web前端开发规范有哪些!希望对小伙伴们有所...
  • 计算机软件开发规范 GB 8566-88

    热门讨论 2011-07-21 08:51:33
    详细规定计算机软件开发过程胡各个阶段及没法儿阶段胡任务、实施步骤、实施要求 、完成标志及交付文件。为软件开人员和管理人员提供一系列之有效的准则、方法和规范
  • 阿里开发规范(精简版)

    万次阅读 多人点赞 2018-03-14 10:28:56
    Java开发规范 命名 【规范】类名使用UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外: ( 领域模型的相关命名 )DO / BO / DTO / VO 等。 正例: MarcoPolo / UserDO / XmlService / TcpUdpDeal / ...
  • 大数据之路之平台数据开发规范

    千次阅读 2019-07-20 22:32:08
    一 数据开发规范 命名标准 这个命名包含了表命名,项目命名,作业命名等,拿表名来说,一般都是按系统来为首,业务做次之,接着是表名,最后还加上一些备注信息,demo是 系统_业务_表名_备注,比如来自外部互联网的...
  • iOS开发规范

    千次阅读 2022-01-07 20:45:42
    转载:一份走心的iOS开发规范 - 云+社区 - 腾讯云
  • 阿里开发规范终极版整理(精简)

    万次阅读 多人点赞 2017-09-21 11:01:56
    Java开发规范 命名 【规范】类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外: ( 领域模型的相关命名 )DO / BO / DTO / VO 等。 正例: MarcoPolo / UserDO / XmlService / TcpUdpDeal / ...
  • web前端开发规范

    千次阅读 2018-05-22 17:49:07
    web前端开发规范麦子学院何虎老师的开发web前端开发规范课程笔记web前端开发规范的意义1、提高团队的协作能力 2、提高代码的复用利用率 3、可以写出质量更高,效率更好的代码 4、为后期维护提供更好的支持规范1、...
  • 项目过程管理(十)开发规范

    千次阅读 2019-02-28 16:15:27
    例如移动开发可参考《移动开发代码规范与格式化工具》。 代码的文件组织(目录结构)规范应在README.md中说明。 其它一些准则: 类名、函数名、变量名仔细斟酌,要能代表意义,不要怕长。由此就尽量不要对这些东西写...
  • 服务端开发规范文档

    千次阅读 2018-04-27 15:08:20
    xxx项目服务端开发规范文档 前言 技术选型 服务端:NodeJS(使用ThinkJS框架) 客户端:vuejs(ElementUI)/webpack 数据库:MySQL 接口规范 Http通信 - 通信数据格式:JSON - HTTP请求:统一使用...
  • 数仓建模—数仓开发规范

    万次阅读 2021-11-11 17:09:52
    数仓开发规范 凡事无规矩不立,所以你会经常看到各种各样的规范,面对规范需要遵守,但是不能盲目,例如我们开发人员最常看到的就是《Mysql 开发规范》、《Java 编程手册》、《Java 开发规范》 之类的东西,这些东西...
  • 前端开发规范参考

    万次阅读 2021-09-27 14:38:50
    前言:前端开发规范参考分享 前端开发规范参考一、规范目的二、通用规范三、框架开发规范1、项目使用框架2、学习资料四、编码规范1、HTML2、CSS+LESS3、REACT+TS五、图片使用规范六、团队约定七、图片大小规则八、...
  • C# winform项目开发规范

    千次阅读 2018-11-30 17:58:48
    虽然用C# winform开发项目有段时间了,但之前没系统学过,也没人指导,平时做项目都是从需求出发,学习对应的知识。老师给的评价是:虽然功能都能实现,但还欠点火候。最近给审计局的学长做个审计管理系统,需求...
  • 移动端开发规范

    千次阅读 2019-08-16 10:13:23
    移动端开发规范 引言:最近得空,整理一些平时工作中要求的开发规范,浅薄之处还请大家多指教。 目录 移动端开发规范 代码规范 基本原则 代码清晰 一致性 通用规范 类命名 方法命名 变量命名 常量...
  • 1. 前端的开发规范 目录构建的规范 命名原则: 简洁 比如: src 源代码 img 图片资源 js JavaScript脚本 dep 第三方依赖包 不使用复数 比如: 不使用 imgs docs 根目录(root)结构按职能划分 比如: 1. src 源...
  • 移动应用安全开发规范-安卓基础篇

    千次阅读 2018-05-06 18:06:15
    周末参加了线下安卓巴士论坛组织的“安卓开发者的修炼之道”,几位嘉宾分享的内容都很赞。...第一位嘉宾林魏,深圳爱加密科技公司攻防实验室负责人,分享的主题是《移动应用安全开发规范-安卓基础篇》。...
  • 阿里2019开发规范最新版(1.5)

    万次阅读 多人点赞 2019-09-21 11:48:28
    阿里2019开发规范最新版 阿里2019开发规范最新版 阿里2019开发规范最新版 阿里2019开发规范最新版 网盘地址(永久有效):链接:https://pan.baidu.com/s/1KjiJh29y0kLRAL3-sZSVmw 密码:agnc ...
  • 1、 数据库开发规范

    千次阅读 2018-06-03 18:07:03
    第1章 数据库开发规范的制定
  • uniapp最大的优势就是整合7端开发规范在一起,配合Vue让前端开发人员可以开发出“具有基本功能”的APP(对比flutter来说,uniapp对前端更友好),可以快速开发多端应用。一次编译,多端运行。 接口丰富。DCloud有h5 ...
  • 软件设计和开发规范(国标)

    千次阅读 2019-08-02 09:08:42
    软件开发规范,包括:1-操作手册(GB8567——88).doc2-测试分析报告(GB8567——88).doc3-测试计划(GB8567——88).doc 4-概要设计说明书(GB8567——88).doc5-开发进度月报(GB8567——88).doc 6-可行性研究...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,021,858
精华内容 408,743
关键字:

开发规范

友情链接: ipx41.rar