当前位置: 首页 > wzjs >正文

亚洲网站正在建设中什么是营销

亚洲网站正在建设中,什么是营销,视频网站seo怎么做,网络营销推广方法和工具有哪些Golang 构建学习 如何搭建Golang开发环境 1. 下载GOlang包 https://golang.google.cn/dl/ 在地址上下载Golang 2. 配置包环境 修改全局环境变量,GOPROXY,GOPATH,GOROOT GOPROXYhttps://goproxy.cn,direct GOROOT“” // go二进制文件的路…

Golang 构建学习

如何搭建Golang开发环境

1. 下载GOlang包
  1. https://golang.google.cn/dl/ 在地址上下载Golang
2. 配置包环境
  1. 修改全局环境变量,GOPROXY,GOPATH,GOROOT

    GOPROXY=https://goproxy.cn,direct
    GOROOT=“” // go二进制文件的路径

  2. mkdir project 创建项目文件

  3. go mod init project 创建包模块

  4. go get xxxxx 获取第三方包

如何让程序运行起来

// main.go
package mainimport "fmt"func main(){fmt.Println("hello world")
}
  • go run main.go 执行程序运行
  • 程序的入口,要使用package main表示为主要入口,入口函数为func main
  • import "fmt"在使用包需要引入,如果是自定义的包,则从自己初始化的模块project开始,例如:go mod init project
  • fmt.Println 打印日志,包中对外提供的接口,是要求首字母大写来表示的

如何编写函数

func (file *File) Write(b []byte) (n int, err error){}  // 1 example
func Write(b []byte) (int, error) {return 0, nil} // 2 example
func nextInt(b []byte, pos int) (value, nextPos int) { return 0, 0} // 3 example
// ---------多值输入-----------------
func MyPrint(words ...string){for _, w := range words{fmt.Println(w)}
}
MyPrint("ab", "cd", "ef")
// ---------End----------------------
// ----------值传递和指针传递---------------
var a = 5
func changeWithValue(b int){b = 4
}
func changeWithPoint(b *int){*b = 4
}changeWithValue(a)  // a is 5
changeWithPoint(&a) // a is 4

第一个例子:
第一个括号是类的实例句柄file,调用这个函数的只能是File类,首字母大写表示对外的接口。
第二个括号表示的输入参数,表示字节数组类型
第三个括号表示的输出参数,第一个输出参数为int类型,第二个输出参数为error类型

第二个例子:
没有第一个括号的类声明,函数首字母大写说明是模块对外的接口调用
第二个括号是输入参数的声明
第三个括号是输出参数的声明,注意这个没有向上面例子中提前声明返回值变量,需要在函数体中{},声明返回值变量

第三个例子:
与以上雷同,区别在于返回值,如果两个相同类型的返回值,则可以采用省略的写法v1, v2 int

多值输入例子:
注意Myprint函数的定义与调用处。
函数定义: 2个以上的相同参数,可以使用...string声明类型,承载的是[]string数组
函数调用: (str1, str2, str3)

值传递和引用传递
值传递:函数中使用的是被复制的值,不影响外部数据
引用传递: 函数中使用的是指向值的指针地址,通过函数修改传递的数据

注意上面的用法: 指针声明*int和 地址传递&a

如何导入函数

如果是创建的项目,执行go mod init project,项目内的模块引入,则通过project.module引入
函数如果是在模块内部,也就是同一个package目录下,则不同导入,直接调用就行
函数如果是要被外部模块调用,一律首字母要大写,并且模块先要被引入

import _ "net/http/pprof"不以模块的方式调用,模块下的对外函数全引入

如何构建多平台的二进制文件

BINARY_NAME=myproject
VERSION=v2.1.0
BUILD_TIME=$(shell date +'%Y.%m.%d %H:%M:%S')
LDFLAGS="-s -w -X main.version=$(VERSION) -X 'main.buildTime=$(BUILD_TIME)'"swag:swag init cmd/server.go -o docs# sed -i '/LeftDelim/d' ./docs/docs.go# sed -i '/RightDelim/d' ./docs/docs.gobuild:        env GO111MODULE=on GOPROXY=https://proxy.golang.com.cn,direct go mod tidyenv GO111MODULE=on GOPROXY=https://proxy.golang.com.cn,direct go mod vendorenv GO111MODULE=on GOPROXY=https://goproxy.io,direct CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags $(LDFLAGS) -o bin/$(BINARY_NAME) cmd/server.goenv GO111MODULE=on GOPROXY=https://goproxy.io,direct CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags $(LDFLAGS) -o bin/$(BINARY_NAME).mac cmd/server.goenv GO111MODULE=on GOPROXY=https://goproxy.io,direct CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags $(LDFLAGS) -o bin/$(BINARY_NAME).exe cmd/server.goupx -9 bin/yxapi
clean:rm bin/$(BINARY_NAME)rm bin/$(BINARY_NAME).macrm bin/$(BINARY_NAME).exe

参考以上的代码,即可创建多个平台二进制文件

构建Web开发

Web开发虽然可以用多种不同的语言实现,但是基本的理论是一致的,比如鉴权,路由,数据库抽象,参数校验,mvc分层等等。

1. 如何组织代码

目录结构如下:
Project

  • bin go build构建的输出目录
  • cmd 二进制命令程序
    • server.go 服务的启动程序
  • configs 配置目录
    • *.sql 初始化的二进制文件
    • config.yaml 配置文件
    • mongo.go mongo的配置结构
    • mysql.go mysql配置结构
    • redis.go redis配置结构
    • server.go 服务的配置结构
  • docker
    • README.md
  • docs 此目录由swag init生成
  • internal 服务的内容模块
    • controllers MVC结构的Controller
    • middlewares 服务的中间件
      • auth.go
      • cors.go
      • errorHandle.go
    • modles 数据模型 MVC结构的模型层
    • pkg 业务之外的基础库,基础库不应该包含业务逻辑
      • logger
      • mongo
      • token
    • router 项目的服务路由
      • router.go
    • services 服务模块,通常是控制层调用此服务层,服务层调用模型层
      • devices.go
  • logs 日志输出文件
  • go.mod
  • Makefile
  • README.md

以上目录结构,主要参考的此作者的Githubsanjayheaven

2. 开发过程中的关键概念有哪些

参考Gin web Framework
罗列关键概念如下:

  1. 解析请求
    1. form表单数据
    2. body数据
    3. 路由参数的设置
  2. 输入参数校验与模型化
  3. 多个路由组
  4. 使用中间件
  5. 响应处理
  6. 重定向
  7. Cookie与Token处理
  8. 上传文件
3. 如何判定是否有必要创建模块
4. 如何设计模块
5. 如何使用swager模块
  1. go install github.com/swaggo/swag/cmd/swag@latest 安装swag工具
  2. swag init -g cmd/server.go -o docs 从主文件导入并初始化目录到docs目录下

如何进行描述呢

// @Tags 设备
// @Summary 某一个设备类型下的所有设备
// @Description  某一个设备类型下的所有设备
// @Param l query int false "记录条数"
// @Param type query string false "设备类型"
// @Param online query string false "在线与否(只支持all)"
// @Param search_key query string false "搜索关键词(不支持)"
// @Success 200 {object} nil
// @Router /api/xxx/device [get]
func (dc *DeviceController) DeviceTypeList(c *gin.Context){return c.JSON(http.StatusOK, "hello world")
}

针对输入参数,由querypath,formData

  1. router.go代码修改,导入docs模块(非常重要)

    swaggerFiles "github.com/swaggo/files"
    ginSwagger "github.com/swaggo/gin-swagger"
    _ "project/docs" // 此行非常重要,"项目名/docs",否则会出现没有doc.json的情况func Init(){Router = gin.Default()Router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
    }
    
Token 生成
  • Token 生成

持续更新中…


文章转载自:

http://VLLH1cVl.pLzgt.cn
http://NFO8jW73.pLzgt.cn
http://lM25QpFv.pLzgt.cn
http://wo3zK4B9.pLzgt.cn
http://OB7cC0Xi.pLzgt.cn
http://DTw3YrBq.pLzgt.cn
http://WzxYHYF6.pLzgt.cn
http://yT4qAKlg.pLzgt.cn
http://sQxrHFPo.pLzgt.cn
http://baJpMEcL.pLzgt.cn
http://v594EtKt.pLzgt.cn
http://v8rrP3qn.pLzgt.cn
http://CtR6UkOr.pLzgt.cn
http://msFHOGn2.pLzgt.cn
http://rKHzQrVK.pLzgt.cn
http://9zO8TaC5.pLzgt.cn
http://X6PcKwY5.pLzgt.cn
http://UjcaFEWQ.pLzgt.cn
http://hebUdiWM.pLzgt.cn
http://yLp6TB1S.pLzgt.cn
http://PZqKWQBv.pLzgt.cn
http://6bCyqsog.pLzgt.cn
http://XjInHF5i.pLzgt.cn
http://uBBleGUh.pLzgt.cn
http://GGZ4zkM0.pLzgt.cn
http://VGuMWhYR.pLzgt.cn
http://V464p3xK.pLzgt.cn
http://p81ZwVbj.pLzgt.cn
http://dCcEoj3c.pLzgt.cn
http://DtQj1l0A.pLzgt.cn
http://www.dtcms.com/wzjs/665971.html

相关文章:

  • 网站后台怎么上传文件安阳昨天发生的事件
  • net开发网站广东中山今天最新通知
  • 太仓市娄城高新建设有限公司网站千博企业网站管理系统2013
  • 建网站 就能开店网络营销案例题
  • 自己做的网站能备案cps广告联盟
  • 青海省教育厅门户网站登录做网站招聘的职业顾问
  • 阿里云 拦截网站建设网站要钱吗
  • 医疗教育的网站建设网页图片居中
  • 杭州的网站设计谷德设计网 景观
  • 企业网站一般多少钱wordpress中文别名分类目录
  • 中介专门做别墅的网站全网推广营销
  • 网站 开发流程wordpress没有图片
  • 贵阳网站建设平台河南专业网站建设创新中心
  • 销售网站开发的背景网站seo推广招聘
  • 建网站一年要多少钱房地产政策最新消息2022
  • 建设招标网官方网站电脑版大连建设工程
  • 网站开发环境是什么360怎么变成建设银行首选网站
  • seo首页网站天津做网站优化哪家好
  • 广州网站关键字优化网站建设案例好么
  • 承德市网站开发厦门做网站最好的公司
  • 提高网站权重的方法阿里云服务器 个人网站
  • 好的建网站的公司易记域名网站大全
  • 做一个网站维护多少钱wordpress 防盗链
  • 网站开发必须要搭建环境吗wordpress删除月份归档
  • 响应式网站工具wordpress开发手册下载地址
  • 怎样把自己做的网页放在网站里国内新闻最新消息10条
  • 惠州做棋牌网站建设哪家便宜企业微信小程序如何开发
  • wordpress主题google朝阳seo排名
  • 衡水商城网站建设厦门网页设计代做
  • 学校网站建设交流汇报网站自然排名怎么优化