【平台开发】技术整合思考(六)开发规范(持续更新)

简介: 【平台开发】技术整合思考(六)开发规范(持续更新)

这个开发规范,完全出于七镜平时的工作经验,方便七镜平台发使用,可能与业内广泛流传的开发规范有悖!



一、服务端


A、命名规范


  • 加s表示单词复数,不遵循英语语法规范,诸如不规则变换的复数表示形式统统不用考虑。
  • [2023-09-03更新]函数的入参类型函数名+Req;函数的入参命名为 interface+函数名+Req;函数的出参命名为 函数名+Resp


type GenerateTokenReq struct {
    TokenType      string `json:"token_type"`      // 令牌类型:varchar(10)  枚举
    FromId         string `json:"from_id"`         // 颁发者:varchar(36)   uuid
    Topic          string `json:"topic"`           // 主题,varchar(10)    枚举
    ToId           string `json:"to_id"`           // 受众:varchar(36)    uuid
    DurationAccess string `json:"duration_access"` //过期时间:varchar(10)
}
type GenerateTokenResp struct {
    Access  string    `json:"access"`
    Expires time.Time `json:"expires"`
}
func GenerateToken(interfaceGenerateTokenReq interface{}) (generateTokenResp GenerateTokenResp, err error) {
    /*
        令牌类型:varchar(10)    枚举
          颁发者:varchar(36)   uuid
          主题,varchar(10)    枚举
          受众:varchar(36)    uuid
          颁发时间:varchar(10)
          过期时间:varchar(10)
    */
    var generateTokenReq GenerateTokenReq
    switch interfaceGenerateTokenReq.(type) {
    case GenerateTokenReq:
        generateTokenReq = interfaceGenerateTokenReq.(GenerateTokenReq)
    default:
        return GenerateTokenResp{}, errors.New("params  type error: type  of params must be GenerateTokenReq")
    }
    ......
}


3.[2023-09-26更新]调用第三方sdk时,函数名的第一个单词应当为第三方sdk的标识(以调用腾讯云的短信api为例):


func TencentSmsSendMessage(interfaceTencentSmsSendMessageReq interface{}) (tencentSmsSendMessageResp TencentSmsSendMessageResp, err error) {
    var tencentSmsSendMessage TencentSmsSendMessageReq
    switch interfaceTencentSmsSendMessageReq.(type) {
    case TencentSmsSendMessageReq:
        tencentSmsSendMessage = interfaceTencentSmsSendMessageReq.(TencentSmsSendMessageReq)
    default:
        return TencentSmsSendMessageResp{}, errors.New("params type error: type of params must be TencentSmsSendMessageReq")
    }
    log.Println(tencentSmsSendMessage)
    return TencentSmsSendMessageResp{}, nil
}




B、接口规范


  1. 接口返回结构体中,第1级包含codecontentcountmsg4个字段。其中code表示状态码,content表示实际返回的数据,必须是以序列(数组)形式返回,count表示实际返回的数据的条数,msg表示服务端消息或描述。第2级msg,包含成功消息success和失败消息fail



type ResponseCommon struct {
    //common response body struct
    Code    int         `json:"code"`
    Content interface{} `json:"content"`
    Count   int64       `json:"count"`
    Msg     Message     `json:"msg"`
}
type Message struct {
    Success string `json:"success"`
    Fail    string `json:"fail"`
}


2.查询接口不区分详情数据和列表数据,即实际返回数据永远是序列(数组),详情数据就是数组长度为1的特殊情况。





二、客户端


  1. 导入图片时,图片变量命名规范为【图片格式_实际意义】,比如:


import PNG_DEFAULT from "./image/default.png"
import JPG_WX from './image/wx.jpg'


2.[2023-08-07更新]每一个实体对应两种展示页面,其一是详情页,其二是列表页(一般列表页作为详情页的入口)。实体详情页面命名为【实体】,实体列表页面命名为【实体-list】比如:

// 产品下载详情页
production-download 
// 新闻详情页
news
// 产品下载列表页
production-download-list
// 新闻列表页
news-list


目录
相关文章
|
Web App开发 人工智能 数据可视化
RPA 快速入门|学习笔记
快速学习 RPA 快速入门
1122 0
RPA 快速入门|学习笔记
|
Arthas Cloud Native Java
是谁在调用我?使用 arthas+jprofiler 做复杂链路分析
Arthas 是阿里巴巴开源的应用诊断利器,提供了 profiler 命令,可以生成热点火焰图。通过采样录制调用链路来做性能分析,极大提升了线上排查性能问题的效率。
是谁在调用我?使用 arthas+jprofiler 做复杂链路分析
|
Java 测试技术 开发者
阿里正式发布《Java开发手册》终极版!
本文讲的是阿里正式发布《Java开发手册》终极版!,别人都说我们是码农,但我们知道,自己是个艺术家。也许我们不过多在意自己的外表和穿着,但我们不羁的外表下,骨子里追求着代码的美、质量的美。而代码规约其实就是一个对美的定义。
76596 0
|
11月前
|
JSON Cloud Native API
API 规范和设计
今天主要和大家分享的是如何给予 Open API 3.0 标准来设计一套 API 规范。那么整体我们在讲的过程中,大约有以下五方面。 1. 大环境介绍 2. API与服务开放 3. API定义 4. 模型 5. 总结
1038 5
|
数据采集 机器学习/深度学习 存储
性能提升30%!中国电信进一步开源12B星辰大模型TeleChat-12B!魔搭社区最佳实践来啦!
中国电信人工智能研究院开源12B参数规模星辰语义大模型TeleChat-12B,相较1月开源7B版本,内容、性能和应用等方面整体效果提升30%,其中,多轮推理、安全问题等领域提升超40%。在C-eval、MMLU、AGIEVAL等国际权威榜单上,排名处于国内同级别参数开源模型的前列,进一步促进大模型开源生态繁荣,助力AI产业加速高质量发展。另据悉,中国电信人工智能研究院将于年内开源千亿级参数大模型。
|
XML 前端开发 Java
「 Java开发规范 」10人小团队Java开发规范参考这篇就够了!
Kent Beck 的简单设计四原则非常好地来指导我们的如何写出优秀的代码,如何有效地判断我们的代码是优秀的。 通过所有测试(Passes its tests):强调的是外部需求,这是代码实现最重要的 尽可能消除重复 (Minimizes duplication):代码的模块架构设计,保证代码的正交性,保证代码更容易修改 尽可能清晰表达 (Maximizes clarity):代码的可阅读性,保证代码是容易阅读的 更少代码元素 (Has fewer elements):保证代码是简洁的,在简洁和表达力之间,我们更看重表达力
「 Java开发规范 」10人小团队Java开发规范参考这篇就够了!
|
Shell
Shell export 定义全局变量(变量的作用范围)
Shell export 定义全局变量(变量的作用范围)
568 0
|
大数据 数据挖掘 Java
大数据平台开发规范示例
大数据平台开发规范示例
517 0
大数据平台开发规范示例
|
存储 缓存 弹性计算
《Java应用提速(速度与激情)》——一、maven构建提速(上)
《Java应用提速(速度与激情)》——一、maven构建提速(上)