(2018)转型Java从0到1技术创业回顾系列(1)

1 篇文章 0 订阅
1 篇文章 0 订阅

约定定义

在整个开发团队从0到1的过程中,我们也积累了很多刚需的问题。这以后也是我们的不断升华的基石。

1. Header Code定义

规则:2位大系统 + 2位子系统 + 4位业务代码

Eg:

# 20——支付系统,01——控制服务,0001——支付单不存在
20010001

# 20——支付系统,02——订单服务,0002——验证不通过
20020002

与多语言集成最佳实践

首先看看响应结构:

{
  "data": {
    //response's data
  },
  "header": {
    "code": "string",
    "message": "string"
  }
}

字段说明:

  • header:响应头部
  • header.code:服务端响应的代码
  • header.message:消息
  • data:数据体

其次,资源文件定义:

messages_en_CN.properties

20011007=取消订单:{0}失败. {1}
20011008=请登陆
20011009=会员不匹配
20011010=订单已过期

messages_en_US.properties

20011007=Cancel order:{0} failed. {1}
20011008=You need login.
20011009=Your member does not match.
20011010=The order has expired.

再定义Code对应的异常,绑定到Code

public class CancelOrderException extends SigmaException {


    public CancelOrderException() {
    }

    public CancelOrderException(String message) {
        super(message);
    }

    public CancelOrderException(String message, Throwable cause) {
        super(message, cause);
    }

    public CancelOrderException(Throwable cause) {
        super(cause);
    }

    public CancelOrderException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
    }

    @Override
    public String getErrorCode() {
        //public static final String CANCEL_ORDER_FAILED = "20011007";
        return ResponseCodes.CANCEL_ORDER_FAILED;
    }
}

最后,抛出异常:

throw new CancelOrderException().withArguments(orderId, getOrderStatus);

2. Redis变量定义

系统简写分割符中缀后缀
{source | projectCode}分号{orderId}:不同的流程后缀香蕉:{orderId}

Eg:

  • trp:12345:lsf
  • trp:12345:prc
  • trp:12345:booking
  • kount:order:1234
  • kount:order:1245
  • paypal:expiry:123
  • paypal:expiry:124

3. GIT提交规范

格式:

类别#ID 分支 操作 desc:描述

  • 类别:task,story,bug, issues。task:指禅道的任务,story:禅道的需求,bug:禅道的bug ,issues:指gitlab的Issues 。
  • ID对应禅道或者Gitlab的ID
  • 分支:具体的分支,eg: feature-1.0 或者release-1.0
  • 操作:[DEV] [BUG] [REF] 。DEV对应功能开发,BUG对应BUG修复,REF对应重构。
  • 描述:突出代码的修改

GITLAB示例:
在这里插入图片描述

4. 项目目录结构

优先采用多模块结构

XXX项目层次结构示例:

  • XXX——根pom
    • XXX-ms——微服务,提供web API调用
    • XXX-dashboard——站点,提供后台维护
    • XXX-rest——提供Online API,对外,对移动端。
    • XXX-contract——契约,提供Feign调用接口,定义rest或者ms的接口。
    • XXX-common——公共工具
    • XXX-task——任务POM
      • XXX-YYY-task——具体任务1
      • XXX-ZZZ-task——具体任务2
    • XXX-consumer——消费者POM
      • XXX-YYY-consumer——具体消费者1
      • XXX-ZZZ-consumer——具体消费者2
    • XXX-domain——领域层POM
      • XXX-domain-impl——实现层
      • XXX-domain-modeling——建模层
  • XXX是项目名
  • YYY是子模块名
  • 其他的酌情命名

5. GITFLOW + GITLAB

最佳实践:

  • Issue + feature’s branch实现功能的不断增强;
    在开发Sigma框架的过程中用得比较多。
  • Protect Branches:master、release-*、feature-*、hotfix
    多人协作得时候,广泛使用。
  • Set default branch
    方便切分支。
  • Set Member Access,限制非管理角色,不能合并到受保护的分支
    让Code Review有专门的人做。
  • 及时Rebase
    保证最小的冲突解决
  • 提交之前要合并,本地解决冲突,比如,将feature-1.0合并到feature-1.0#task1234
    自治合并
  • 一个任务或一个BUG或一个ISSUE,对应一个分支
  • 同一个分支可以发起多次合并请求。
  • 在可估计的提交次数以内,优先使用rebase。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值