gin

go-admin在线开发平台学习-2[程序结构分析]

点点圈 提交于 2021-02-18 15:36:48
紧接着上一篇,本文我们对go-admin下载后的源码进行分析。 首先对项目所使用的第三方库进行分析,了解作者使用的库是否是通用的官方库可以有助于我们更快地阅读程序。接着对项目的main()方法进行分析,因为程序使用cli的方式启动,对cli不同的命令进行分析。基于此俩点开始工作。 go-admin中使用的第三方库 cobra 强大的cli封装,支持命令嵌套 cast 简单安全的类型转换 casbin 轻量级开源访问控制框架,采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等 gorm 一个神奇的,对开发人员友好的 Golang ORM 库 sentinel-golang 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性。 opentracing-go 分布式追踪库 cron 定时任务库,支持cron表达式 启动分析 main.go作为程序第一个入口文件,main()方法作为程序入口 使用corboa命令行的方式进行启动,有多个不同的命令,如下所示 查看系统版本 go-admin version 查看系统配置 go-admin config 服务启动 go-admin

postgres 索引

心不动则不痛 提交于 2021-02-13 11:54:28
索引 是一种特殊的查询表,可以使用搜索引擎的数据库以加快数据检索。简单地说,索引是表中的数据的一个指针,在一个数据库中的索引是非常相似,如:一本书的目录。 例如,如果想在一本书中引用的所有页面讨论某个话题,先参考索引按字母顺序列出所有目录主题,然后转到一个或多个特定的页码。 www.yiibai.com 索引有助于加快SELECT查询和WHERE子句,但它会减慢数据的输入,UPDATE和INSERT语句。索引可以创建或删除的数据没有影响。 www.yiibai.com 创建索引涉及CREATE INDEX语句,它允许命名的索引,索引指定表的一列或多列,并指示索引是否在升序或降序排列。 索引也可以是唯一的,类似UNIQUE约束,在列上有一个索引的列或组合索引防止重复项。 CREATE INDEX命令: CREATE INDEX index_name ON table_name ; 索引类型 PostgreSQL提供了几种索引类型:B-树,哈希,GIST,SP-GiST和GIN。每个索引类型使用不同的算法,是最适合于不同类型的查询。默认情况下,CREATE INDEX命令创建B-tree索引,适合最常见的情况。 1. B-Tree: CREATE TABLE test1 ( id integer, content varchar ); CREATE INDEX test1_id

自己做的js甘特图插件

本小妞迷上赌 提交于 2021-01-26 03:15:52
版权所有,禁止转载 内容都在代码中,上图上代码! 代码 <! DOCTYPE html > < html > < head > < title > ganttu.html </ title > < meta name ="keywords" content ="keyword1,keyword2,keyword3" > < meta name ="content-type" content ="text/html; charset=UTF-8" > < meta name ="reason" content ="甘特图的实际进度与计划进度可能不符,为了展示实际进度与计划进度的差异和方便统计,自己写了个甘特图框架" > < meta name ="mast" content ="使用代码之前请留言,禁止转载..." > < meta name ="description" content ="liuyuhang 的甘特图,当前版本1.0,2019-02-19" > < meta name ="description" content ="时间日期格式:yyyy-mm-dd" > < meta name ="description" content ="①计划进度与实际进度双重进度体系" > < meta name ="description" content ="②有前置任务连接线"

刚入门学习GO语言需要注意什么?有哪些框架?

十年热恋 提交于 2021-01-19 10:59:27
  GO语言是一个开源的编程语言,能让构造简单、可靠且高效的软件变得更加容易,因此现在越来越多的人都开始学习GO语言。那么0基础入门学习GO语言需要注意哪些问题?我们一起来看看吧。   刚入门Go语言小白需要注意以下五点:   1、注意书写代码的一些规范吧,特别是注意大小写、英文标点符号区别等,在特别的位置写上注释。   2、主要是理解伪代码所描述的算法,伪代码要注意是不能直接运行的。   3、注意编译器版本与书籍上所介绍版本是否一致,也注意特殊符号,印刷版本可能与实际不一致。   4、书上的版本和当前所用的版本是否一致,有些情况下书上版本在现在来用已经过时了。   5、逻辑走通;给自己信心,其实起步阶段不难的。   Go语言常见web框架   Beego:开源的高性能 Go 语言 Web 框架。    https://github.com/astaxie/beego    https://beego.me   Buffalo:使用 Go 语言快速构建 Web 应用。    https://github.com/gobuffalo/buffalo    https://gobuffalo.io   Echo:简约的高性能 Go 语言 Web 框架。    https://github.com/labstack/echo    https://echo.labstack.com  

Go的Pipe应用场景,往服务器提交multipart请求

风流意气都作罢 提交于 2021-01-17 16:52:47
multipart 请求是多部件请求体,一般来多用于上传文件等场景,由于文件上传,请求体会比较大,就不适合在内存中构建完整的请求体(例如使用 bytes.Buffer )。 这种情况就可以考虑使用 Pipe ,它会返回一个 Writer 和一个 Reader ,管道流,顾名思义,一头读,一头写。读取磁盘文件,写入网络,并不会缓存在内存中。非常适合这种场景。 func Pipe() (*PipeReader, *PipeWriter) { p := &pipe{ wrCh: make(chan []byte), rdCh: make(chan int), done: make(chan struct{}), } return &PipeReader{p}, &PipeWriter{p} } Demo package main import ( "context" "encoding/json" "fmt" "github.com/gin-gonic/gin" "io" "io/ioutil" "log" "mime/multipart" "net/http" "net/textproto" "strings" "time" ) func main(){ // Http 服务 ctx, cancel := context.WithCancel(context.Background())

RL101

若如初见. 提交于 2021-01-17 10:57:32
DQN[1, 2] 是 Q-Learning 的一个扩展,可以归类为改进价值函数的参数化表示(使用神经网络来建模,而非简单的线性非线性表达),此外也更适用于“大”(或无穷)状态空间--相比与基于表格型方法,此外也简化了输入的表达形式(以 Atari game 为例)--使用连续 N 帧的 raw pixels 而非 handcrafted features(这里其实就是典型的深度学习套路了,宛如 CNN 在 ImagNet 上的屠榜)。 DQN 最早出现在 2013 年 [1],也是我手写梯度传播的年份。 DQN[2] 使用如下方法更新模型参数: 这里分为两类模型参数 Target 和 Online ,下标 i 处理的不是很合理,因为它们是独立不同步更新的,准确的来说 Online 就是标准的深度学习梯度更新,而 Target 只做周期性的拷贝 的“更新”,这也是 Q-Learning 作为 off-policy 类方法的特点。 这里以 google/dopamine 里的 DQN CartPole-v0 为例,解释其核心代码,CartPole-v0 是一个平衡类的游戏,智能体需要根据环境的 Observation 作出对应的 Action,环境给予 Reward 和新的 Observation: 截图自 https://github.com/openai/gym/wiki

go module 基本使用

一笑奈何 提交于 2021-01-14 16:03:12
前言 # go的版本以至1.13,一直以来令人诟病的依赖管理也有了官方的方向,但是看了一下目前很多blog文章还是比较老的. 所以这里对 go mod 做一个大致的说明 正文 # 前提 # go版本为1.13及以上 官方文档 # 如果你想更深层次的了解GO MODULE的意义及开发者们的顾虑,可以直接访问官方文档(EN) https://github.com/golang/go/wiki/Modules go module介绍 # go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用 go module可以将某个项目(文件夹)下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等 使用go module之后我们可不用将代码放置在src下了 具体的请往下看 开启go module # go在1.13版本默认是auto,代表 当项目在 GOPATH/src 外且项目根目录有 go.mod 文件时,开启 go module. 也就是说,如果你不把代码放置在 GOPATH/src 下则默认使用 MODULE 管理. 不好意思看错了,1.13+的版本判断开不开启MODULE的依据是根目录下有没有go.mod文件 我们也可手动更改为 on(全部开启)/off(全部不开启) 这里演示设置为 on windows: set GO111MODULE=on mac:

Golang 根据Gorm和Gin开发一个后台管理系统

回眸只為那壹抹淺笑 提交于 2021-01-13 08:24:33
\\\\\\\\\\\ English | 简体中文 Project Guidelines Web UI Framework:element-ui Server Framework:gin Grom Framework: gorm 1. Basic Introduction 1.1 Project structure │ ├─conf (Config file) │ ├─docs (swagger APIs docs) │ ├─log (log file) │ ├─public (public static file) │ ├─static (head icon) ├─src │ ├─controller (Controller) │ ├─middleware (Middleware) │ ├─models (Model entity) │ ├─pkg (Project private package) │ ├─adapter (Casbin adapter) │ ├─app (Gin service response) │ ├─codes (Response code) │ ├─error (Project private error) │ ├─gredis (Redis) │ ├─query (Songo parase to SQL line) │ ├─setting

Golang 根据Gorm和Gin开发一个后台管理系统

眉间皱痕 提交于 2021-01-13 07:50:42
\\\\\\\\\\\ 项目后端地址: https://github .com/olongfen/gorm-gin-admin 项目前端地址: https://github.com/olongfen/user_admin 项目指导文档 Web UI Framework:element-ui Server Framework:gin Grom Framework: gorm 1. 基本介绍 1.1 项目结构 │ ├─conf (Config file) │ ├─docs (swagger APIs docs) │ ├─log (log file) │ ├─public (public static file) │ ├─static (head icon) ├─src │ ├─controller (Controller) │ ├─middleware (Middleware) │ ├─models (Model entity) │ ├─pkg (Project private package) │ ├─adapter (Casbin adapter) │ ├─app (Gin service response) │ ├─codes (Response code) │ ├─error (Project private error) │ ├─gredis (Redis) │ ├

怎样预训练GNN能实现更好的迁移效果?北邮等提出自监督预训练策略

微笑、不失礼 提交于 2021-01-12 09:58:45
预训练与微调之间的差异能否缓解?来自北京邮电大学、腾讯、新加坡管理大学和鹏城实验室的研究者进行了分析研究,并提出了一种针对 GNN 的自监督预训练策略。 机器之心报道,作者:小舟、陈萍。 图神经网络(GNN)已经成为图表示学习的实际标准,它通过递归地聚集图邻域的信息来获得有效的节点表示。尽管 GNN 可以从头开始训练,但近来一些研究表明:对 GNN 进行预训练以学习可用于下游任务的可迁移知识能够提升 SOTA 性能。 但是,传统的 GNN 预训练方法遵循以下两个步骤: 1)在大量未标注数据上进行预训练; 2)在下游标注数据上进行模型微调。 由于这两个步骤的优化目标不同,因此二者存在很大的差距。 近日, 来自北京邮电大学和腾讯等机构的研究者进行了分析研究以显示预训练和微调之间的差异 。为了缓解这种差异,研究者提出了 L2PGNN,这是一种针对 GNN 的自监督预训练策略。 论文链接: https:// yuanfulu.github.io/publ ication/AAAI-L2PGNN.pdf 该方法的关键点是 L2P-GNN 试图学习在预训练过程中以可迁移先验知识的形式进行微调。为了将局部信息和全局信息都编码为先验信息,研究者进一步为 L2P-GNN 设计了在节点和图级别双重适应(dual adaptation)的机制。最后研究者使用蛋白质图公开集合和书目图的新汇编进行预训练