欢迎光临
我们一直在努力

Vue + Laravel 项目团队开发规范

最近参与的项目开发被告知需要遵循代码编写守则,对自己有很大的启发,便同大家分享下~

前端

Vue组件

  • 页面命名大驼峰(PageOne)
  • 组件命名小驼峰(componentOne)
  • 弹出框以modal开头小驼峰(modalTypeChoice)
  • 使用tab缩进(两个空格)
  • 类名等使用双引号

JavaScript

  • 变量名小驼峰
  • 方法名大驼峰
  • 句末不加分号
  • +, -, * 等运算符前后加空格
  • for, if 等条件判断语句后带空格
for (var i = 0; i < len; i++) {
    var num = 1 + 2;
}
  • 比较时使用三等号
  • 字符串使用单引号
  • 使用tab缩进(两个空格)
  • 变量使用前必须定义
  • 行末不能带空格
  • 使用v-for时,必须绑定index和key
  • 函数名后加空格,括号后也加空格
function FunctionName () {
    // input something there
}

Stylus

  • 类命名使用中划线(this-is-a-class)
  • 使用缩进来表示层级关系(tab=两个空格)
  • 不带冒号
  • 不带分号
  • 不带花括号
 .status
     margin-top 100px
     display inline-block
     .status-item
         text-align left
         margin-top 20px
         span 
             display inline-block
             &.color
                 width 20px
                 height 15px

前端代码格式化处理:(项目根目录下)

./node_modules/.bin/eslint /文件目录/文件名 –fix

后端

一、Api接口

必须 遵照 RESTful 接口规范,规范相关文章阅读:

  1. 理解 RESTful 架构: http://www.ruanyifeng.com/blog/2011/09/restful.html
  2. RESTful API 规范(详细版):https://i6448038.github.io/2017/06/28/rest-接口规范/
  3. Github API 参考: https://developer.github.com/v3/

二、控制器

必须 优先使用 Restful 资源控制器.

必须 使用资源的复数形式,如:

类名:PhotosController

文件名:PhotosController.php

保持短小精炼

必须 保持控制器文件代码行数最小化,还有可读性。

  • 不应该 为「方法」书写注释,这要求方法取名要足够合理,不需要过多注释;
  • 应该 为一些复杂的逻辑代码块书写注释,主要介绍产品逻辑 – 为什么要这么做。;
  • 不应该 在控制器中书写「私有方法」,控制器里 应该 只存放「路由动作方法」;
  • 绝不 遗留「死方法」,就是没有用到的方法,控制器里的所有方法,都应该被使用到,否则应该删除;
  • 绝不 在控制器里批量注释掉代码,无用的逻辑代码就必须清除掉。

三、数据模型

所有的数据模型文件,都 必须 存放在:app/Models/ 文件夹中。

命名空间

namespace App\Models;

所有的 Eloquent 数据模型 都 必须 继承统一的基类 App/Models/Model,此基类存放位置为 /app/Models/Model.php

命名规范

数据模型相关的命名规范:

  • 数据模型类名 必须 为「单数」, 如:App\Models\Photo
  • 类文件名 必须 为「单数」,如:app/Models/Photo.php
  • 数据库表名字 必须 为「复数」,多个单词情况下使用「Snake Case」 如:photos, my_photos
  • 数据库表迁移名字 必须 为「复数」,如:2014_08_08_234417_create_photos_table.php
  • 数据填充文件名 必须 为「复数」,如:PhotosTableSeeder.php
  • 数据库字段名 必须 为「Snake Case」,如:view_count, is_vip
  • 数据库表主键 必须 为「id」
  • 数据库表外键 必须 为「resource_id」,如:user_id, post_id
  • 数据模型变量 必须 为「resource_id」,如:$user_id, $post_id

关于 SQL 文件

  • 绝不 使用命令行或者 PHPMyAdmin 直接创建索引或表。必须 使用 数据库迁移 去创建表结构,并提交版本控制器中;
  • 绝不 为了共享对数据库更改就直接导出 SQL,所有修改都 必须 使用 数据库迁移 ,并提交版本控制器中;
  • 绝不 直接向数据库手动写入伪造的测试数据。必须 使用 数据填充 来插入假数据,并提交版本控制器中。

全局作用域

Laravel 的 Model 全局作用域 允许我们为给定模型的所有查询添加默认的条件约束。
所有的全局作用域都 必须 统一使用 闭包定义全局作用域,如下:

/**
 * 数据模型的启动方法
 *
 * @return void
 */
protected static function boot()
{
    parent::boot();

    static::addGlobalScope('age', function(Builder $builder) {
        $builder->where('age', '>', 200);
    });
}

四、代码规范

必须 遵循 PRS 规范

  1. 规范介绍(主要看PRS-1和PRS-2):https://laravel-china.org/docs/psr
  2. PHP_CodeSniffer编码规范检查工具的安装和使用:https://qq52o.me/2458.html

通过命令检查及自动格式化

  • phpcs /文件目录/文件名.php
  • phpcbf /文件目录/文件名.php

Git 代码提交

基本要求

项目远程仓库仅有 master 和 dev 两个分支。

  • master 分支是发布版本的最新代码
  • dev 分支是开发版本的最新代码

团队成员代码开发步骤要求:

必须 先将最新 dev 分支拉取到本地
必须 由最新 dev 分支为母版,创建本地开发分支
功能开发完成并通过自测后,必须 将本地开发分支合并到 dev 分支上,再进行提交
本地开发分支不允许提交到远程仓库
每个开发需求/缺陷,都必须单独创建本地开发分支,杜绝一个分支开发多个需求/缺陷

代码提交 commit 书写规范:

commit 文案由三部分组成:

  1. emoji
  2. 需求/缺陷编号 (在 teambition 上查看,每个需求/缺陷都有唯一编号)
  3. 简单描述

例:

git commit -m “🎨[SCRUM-342]: an example”

常用 emoji 及其含义一栏

emoji代码 含义
🎉 初次提交
✨ 引入新功能
💄 更新 UI 和样式文件
🚧 工作进行中
🐛 修复bug
🔨 代码重构
🔧 修改配置文件
✅ 增加测试

赞(0)
版权归原作者所有,如有侵权请告知。达维营-前端网 » Vue + Laravel 项目团队开发规范

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址