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

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

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



一、服务端


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


目录
相关文章
|
测试技术 数据库 安全
带你读《C++代码整洁之道:C++17 可持续软件开发模式实践》之二:构建安全体系
如果想用C++语言编写出易维护的、扩展性良好的以及生命力强的软件,那么,对于所有的软件开发人员、软件设计人员、对现代C++代码感兴趣或想降低开发成本的项目领导者来说,本书都是必需品。如果你想自学编写整洁的C++代码,那么本书也是你需要的。本书旨在通过一些示例帮助各个技术层次的开发人员编写出易懂的、灵活的、可维护的和高效的C++代码。即使你是一名资深的开发工程师,在本书中也可以找到有价值的知识点。
|
4月前
|
设计模式 Java 测试技术
Java后端开发的最佳工程实践与规范
Java后端开发的最佳工程实践与规范
|
5月前
|
移动开发 安全
程序技术好文:软件项目解决方案模板
程序技术好文:软件项目解决方案模板
27 0
|
架构师 测试技术 API
深入浅出聊一聊自动化架构!
深入浅出聊一聊自动化架构!
171 1
|
架构师 大数据 Java
做好一个IT产品,如何进行技术技术选型?- 由最近遇到的一款采用Delphi 技术栈的产品引发的思考
做好一个IT产品,如何进行技术技术选型?- 由最近遇到的一款采用Delphi 技术栈的产品引发的思考
|
机器学习/深度学习 SQL 人工智能
应用开发者的疑问:大模型是真正的银弹吗?
通过本文作者想和大家简单讨论下大模型的局限以及真正的适用场景。
83999 30
应用开发者的疑问:大模型是真正的银弹吗?
|
移动开发 缓存 JavaScript
「 前端开发规范 」10人小团队前端开发规范参考这篇就够了!
引自《阿里规约》的开头片段: ----现代软件架构的复杂性需要协同开发完成,如何高效地协同呢?无规矩不成方圆,无规范难以协同,比如,制订交通法规表面上是要限制行车权,实际上是保障公众的人身安全,试想如果没有限速,没有红绿灯,谁还敢上路行驶。对软件来说,适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一方式一起做事,提升协作效率,降低沟通成本。代码的字里行间流淌的是软件系统的血液,质量的提升是尽可能少踩坑,杜绝踩重复的坑,切实提升系统稳定性,码出质量。
20646 4
「 前端开发规范 」10人小团队前端开发规范参考这篇就够了!
|
机器学习/深度学习 SQL 人工智能
应用开发者的疑问:大模型是银弹吗?
ChatGPT 火了之后,大模型似乎被当成了真正的银弹,所有的体验问题都试图通过大模型解决。本文想和大家简单讨论下大模型的局限以及真正的适用场景。由于本人不是专业搞算法的,大佬们多多拍砖。
764 0
【团队技术知识分享 一】技术分享规范指南
【团队技术知识分享 一】技术分享规范指南
396 0
|
设计模式 开发框架 Java
设计模式: 实际场景的落地应用(含开源项目和生产环境实践)--持续更新中
设计模式: 实际场景的落地应用(含开源项目和生产环境实践)--持续更新中
1194 2
设计模式: 实际场景的落地应用(含开源项目和生产环境实践)--持续更新中