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

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

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



一、服务端


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


目录
打赏
0
0
0
0
43
分享
相关文章
推三返一系统开发|成熟案例|源码部署
“新零售”的商业生态构建将涵盖网上页面
《数据治理简易速速上手小册》第1章 数据治理概述(2024 最新版)
《数据治理简易速速上手小册》第1章 数据治理概述(2024 最新版)
198 0
「 前端开发规范 」10人小团队前端开发规范参考这篇就够了!
引自《阿里规约》的开头片段: ----现代软件架构的复杂性需要协同开发完成,如何高效地协同呢?无规矩不成方圆,无规范难以协同,比如,制订交通法规表面上是要限制行车权,实际上是保障公众的人身安全,试想如果没有限速,没有红绿灯,谁还敢上路行驶。对软件来说,适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一方式一起做事,提升协作效率,降低沟通成本。代码的字里行间流淌的是软件系统的血液,质量的提升是尽可能少踩坑,杜绝踩重复的坑,切实提升系统稳定性,码出质量。
20927 4
「 前端开发规范 」10人小团队前端开发规范参考这篇就够了!
Go语言学习路线 - 7.进阶篇:一名软件工程师的价值沉淀
通过前面几讲的分享,相信大家已经能清楚地看到一名普通软件工程师的发展路线:不断学习技能,提高研发效能,实现业务功能。 如果我们尝试回头看,可能会对自己的定位存在疑问:这些日常CRUD的开发工作,很多不具备太高的技术难度,可以靠人力堆积来实现。那么,如何在研发团队里打造自己的技术壁垒、体现个人价值呢?
103 0
【团队技术知识分享 一】技术分享规范指南
【团队技术知识分享 一】技术分享规范指南
510 0
2021全栈开发不完全指南(持续更新……)
2021全栈开发不完全指南(持续更新……)
157 0
阿里巴巴前端规约及配套工具
「阿里巴巴前端规约」是在阿里经济体内广泛使用的一套前端编码和工程规范,致力于通过统一编码风格、普及最佳实践和代码缺陷检查帮助团队降低协作成本、提升前端项目的可维护性和稳定性。 本项目主要包括「规约文档」和「配套工具」两部分,目前只开放了「配套工具」部分,你可以使用 F2ELint 等配套工具来为项目接入规约
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等