GithubHelp home page GithubHelp logo

misakiart / laya-go Goto Github PK

View Code? Open in Web Editor NEW

This project forked from layasugar/laya-template

0.0 0.0 0.0 651 KB

服务基本框架,templete

License: Apache License 2.0

Go 91.34% Dockerfile 8.66%

laya-go's Introduction

laya-go

gin+gorm+go-redis为基本骨架打造的目录结构,方便开发,开箱即用

配置文件的使用

  • 运行服务时配置,具体配置请参照conf/app.json,按照结构配置,base和log和mem提供默认配置可以不配
  • 别问为什么用json,问就是不知道
  • 参考配置说明

api模板

  • github链接
  • 总的来说就是自己的日常开发形成的一套习惯,代码拉下来就可以运行,方便新api或者web项目的快速搭建 组件都是目前golang比较火的组件

启动运行

  1. clone代码
    • git clone https://github.com/layatips/laya-go.git
  2. 修改配置conf/app.json
  3. 启动
    • go run github.com/layatips/laya-go
  4. docker方式启动
    • docker build -t laya-go:1.0 . && docker run --name laya-go -p 10080:10080 --network devops --network-alias laya-go laya-go:1.0

route

controller

  • 参考controller/base.go

model

  • 传统的ddd模式
  • page业务层
  • data数据层
  • dao连接或者请求层

middleware

  • 请参考gin的middleware
  • app.WebServer.Use(middleware.LogInParams)

log

  • uber开源的zap日志github链接
  • 使用方式一(会打印request_id)
glogs.InfoFR(c,format,...interface)
glogs.WarnFR(c,format,...interface)
glogs.ErrorFR(c,format,...interface)
  • 使用方式二(不会打印request_id)
glogs.InfoF(format,...interface)
glogs.WarnF(format,...interface)
  • 可自己拓展

zipkin链路追踪

span := glogs.StartTrace(c,funcName)
your code ...
glogs.StopTrace(span)

钉钉通知

  • 使用
var d = &glogs.AlarmData{
  RobotKey: robotKey,
  RobotHost: robotHost,
  Title:       "这是标题",
  Description: "这是问题描述",
  Content: map[string]interface{}{
      "adasdasd": "sadasssss",
      "sadddd":   "11111111",
  }}
glogs.SendAlarm(d)

cache(go实现的memcache)

  • github链接
  • 使用data.GetMem(),data.SetMem(),data.DelMem()

错误代码

  • 定义在global/errno/里面
  • 使用utils.SystemErr
  • 返回的是error类型,response里面会根据error不同而加载错误信息

utils

  • time.go是基于sql.nulltime自己实现的
  • helps是辅助工具类
  • redis_lock是实现的redis锁

未来版本规划

  • 实现一个协程池,并可选开启和关闭,让异步任务简单化
  • 配置热重载

推荐工具

数据库直接生成gorm的struct
  • github链接
  • db2struct --host localhost -d database --package db -p 123456 --user root --guregu --gorm -t tableName --struct structName
hey 压测工具

laya-go's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.