Go语言中文网 为您找到相关结果 150

GO语言学习: 项目构建 及编译 初步

一个GO工程中主要包含以下三个目录: src:源代码文件 pkg:包文件 bin:相关bin文件 step1: 建立工程文件夹 goproject step2: 在工程文件夹中建立src,pkg,bin文件夹 step3: 在GOPATH中添加projiect路径 例 e:/goproject step4: 如工程中有自己的包examplepackage,那在src文件夹下建立以包名命名的文件夹 例 examplepackage step5;在src文件架下编写主程序代码代码 goproject.go step6;在examplepackage文件夹中编写 examplepackage.go 和 包测试文件 examplepackage_test.go step7; 编译调试包 go bui...阅读全文

博文 2015-06-04 18:00:00 phlong999

还有比这更好的消息吗?— Go支持Android和iOS

minux大神就说了: 代码在 https://bitbucket.org/minux/goios 的 ios3 分支。 初步的文档在 misc/ios/README。交叉编译需要 iOS SDK,得在 OS X 上面开发。理论上如果你能在 Linux 架设交叉编译环境的话,在 Linux 上开发也不是不行。 我计划把这个 port 加入到 Go 1.5。按照 Brad 给出的 1.5 预览, 应该问题不大。http://talks.golang.org/2014/state-of-the-gopher.slide#40 现在的问题是如何架设 builder。 哎,断断续续搞了3年,终于搞定了。我觉得用 Go 开发 iOS 程序比用 Go 开发 Andro...阅读全文

如何优雅地等待所有的goroutine退出

Table of Contents 1. 通过Channel传递退出信号 2. 使用waitgroup goroutine和channel是Go语言非常棒的特色,它们提供了一种非常轻便易用的并发能力。但是当您的应用进程中有很多goroutine的时候,如何在主流程中等待所有的goroutine 退出呢? 1 通过Channel传递退出信号 Go的一大设计哲学就是:通过Channel共享数据,而不是通过共享内存共享数据。主流程可以通过channel向任何goroutine发送停止信号,就像下面这样: func run(done chan int) { for { select { case <-done: fmt.Println("exiting...") done <- 1 break de...阅读全文

Go--包引用介绍

最近在学习Go编程,本文简单的叙述如何在Go编程中使用包(包管理)。 和其他大多数语言一样,Go也存在包,并使用package关键字定义一个包。首先介绍在程序中如何引入包,引入包有以下几种方式: 1. 最简单的方式引入一个包的方式是直接引入包,例如: import "fmt" import "os" 2. 也可以通过下面的方式将包一块引入,并写在括号内: inport ( "fmt" "os" ) 通过上面的方式,可以引入系统包或第三方的包,下面重点介绍如何引入自定义的包和函数: 一般我们将主程序放在src的mian文件夹下(主程序中包含main函数,并将主程序的包名写为package main),将其他模块放在相应的文件夹下,例如下图所示 主函数在main.go文件中,主函数名也可以为其他...阅读全文

博文 2015-11-02 03:00:01 sunshiming

自己封装的golang 操作数据库方法

这个是我用Go写的第一个东东,可能还存在些BUG没有测试到。这里主要是提供一个参考。各位可以改写成自己的风格。 在命令行下输入如下两条命令,进行安装 go get github.com/male110/SimpleDb go install github.com/male110/SimpleDb Go语言的数据库操作,只能用Rows.Scan来一次性读取所有列。感觉很不习惯,我还是习惯按照列名来一列列的取数据。所以我自己封装了一个数据结构MyRows,MyRows实现了一个函数,GetValue(name string, value interface{})可以按列名来取数据。如下所示: err = rows.GetValue("IsBoy", &isBoy) if err != nil {...阅读全文

博文 2014-10-04 19:27:14 王岩0001

总结2019常用书单网站

# 总结2019,展望2020新的一年,新的目标,2019定的那些目标是不是都已经实现,2020是否已经指定了新的目标。2019年在手机上花费了大量的时间和金钱。全家人的手机,大概算了一下,能花了有小一万了。你花在手机上的时间越多越可能觉得自己像个文盲当我们看到夕阳西下我们想到的是:“卧槽!好多鸟!”“艾玛,真好看!” 我们早已忘记了:“落霞与孤鹜齐飞,秋水共长天一色”看见一轮明月,我们想到的是“卧槽真尼玛圆。”而不是“但愿人长久,千里共婵娟”,跟心仪对象聊天,吹不出文艺有趣彩虹屁看到稍带点文化的段子接不上梗哪怕是发生了令人气愤的社会新闻也不能完整表达自己的观点只好当个“金句复读机” 更可怕的是,随着语言水平的退步思维能力也随之下降,不着四六的论调频出一篇文章超过600字高呼“太长不看”一条...阅读全文

博文 2020-02-12 07:32:54 思考让人长寿

iOS和Android的开发库 Gomobile

Gomobile是一个应用于iOS和Android的优秀跨平台开发库,为开发者提供用于创建Android和iOS 移动平台代码的工具。 ### 环境设置 我们需要Go 1.5及以上版本(版本越高越好)。  然后,我们需要安装Gomobile:

go get golang.org/x/mobile/cmd/gomobile
注:该命令可能需要几分钟的时间。 至于构建Java代码,你则需要Android SDK,并安装Java(OpenJDK就够了)。 [下载](https://developer.android.com/sdk/index.html#...阅读全文

开源项目 2016-03-15 16:00:00 golang

GO -- ORM 框架

这几天在做实训项目,刚好学Go语言,就想使用Go来搭建 socket 服务器 !但是感觉Go 使用sql来注入数据库有点缺陷,最后Golang群上的大神建议使用ORM框架,使用一下确实好用,下面是参照这本的一个简单例子,希望能帮到大家 Code package main import ( "database/sql" "github.com/astaxie/beedb" _ "github.com/ziutek/mymysql/godrv" "time" ) ///////////////////////// type Userinfo struct { Uid int `PK` //如果表的主键不是 id,那么需要加上 pk 注释,显式的说这个字段是主键 Userna...阅读全文

博文 2014-10-10 23:00:00 laohan_

golang日志处理

golang程序日志记录 package main import ( "flag" "fmt" "log" "os" "runtime" ) var ( logFileName = flag.String("log", "cServer.log", "Log file name") ) func main() { runtime.GOMAXPROCS(runtime.NumCPU()) flag.Parse() //set logfile Stdout logFile, logErr := os.OpenFile(*logFileName, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666) if logErr != nil { fmt.Println("Fai...阅读全文

博文 2014-10-04 19:26:52 liaojie

Mac+Sublime+Golang 环境配置所学

关于环境变量: GOPATH是一个路径列表,类似于PATH的设置: GOPATH=/home/USER/go:/home/USER/workspace_go:***在你建好工作空间后,即可开始配置GOPATH了(配置文件是~/.bash_profile)。export GOPATH=/Users/用户名/go:/Users/用户名/Documents/workspace/workspace_go在mac下设置环境变量: 1,打开 应用程序 -> 实用工具 -> 终端;2,在终端中定位到自己用户的主目录,输入: cd ~ ;3,创建一个空文件,输入:touch .bash_profile ;4,编辑这个文件,输入:open .bash_profile ;5,在这个文件中输入:export PA...阅读全文

博文 2014-10-09 16:00:01 guidovanrossum

用 Go Plugin 构建模块化系统

自从 golang 1.8以后,提供了一个 Plugin 的机制使得 golang能够加载 so 动态链接库文件。 这样可以对外发布动态链接库而不需要把源码共享给对方去进行编译,还可以做到按需加载相应的插件来实现动态开启插件相应的功能。 官方文档在此:https://golang.org/pkg/plugin/ 编写一个 Plugin 基本有以下几步: 1.Plguin 需要有自己的 main package 2.编译的时候,使用 go build -buildmode=plugin file.go 来编译 3.使用 plugin.Open(path string) 来打开.so文件,同一插件只能打开一次,重复打开会报错 4.使用 plugin.LookUp(name string) 来获取...阅读全文

博文 2019-04-14 22:34:43 faunjoe

beego orm

ORM官方文档为:https://github.com/beego/beedoc/blob/master/zh-CN/mvc/model/orm.md beego orm是支持database/sql标准接口的ORM库,所以理论上来说,只要数据库驱动支持database/sql接口就可以无缝的接入beego orm。目前的驱动包括下面几个: Mysql: [github/go-mysql-driver/mysql](https://github.com/go-sql-driver/mysql) PostgreSQL: [github.com/lib/pq](https://github.com/lib/pq) SQLite: [github.com/mattn/go-sqlite3](htt...阅读全文

博文 2018-12-06 17:34:44 b77bb494e846

建站宝盒小程序竟让企业用户量突破300万?

互联网的新事物每天都在产生,这些新事物的出现,无疑使得一批人获取了红利,目前微信推出了主打产品——微信小程序。自小程序上线后,小程序一直是个热门话题,现在越来越火,入驻的品牌商家也越来越多。 微信小程序是一种无需下载安装即可使用的应用,只需用户扫一扫或者搜索即可打开应用。体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题, ![00.png](https://static.studygolang.com/180504/c69f7a6d3ac205365a9cc1d4a8e80fa2.png) 现如今它为什么能够那么“火”,那是因为它只需搜索或者扫一扫,即可使用,无需下载和安装的环节,让人和功能的连接变得更加简单直接。 微信小程序的出现无疑是一个时代的进步...阅读全文

Go开源项目 - gorp使用方法

gorp 是一个Go开源ORM框架. Go关系型数据库持久化 我很含糊的称gorp是一个ORM框架. Go还没有真正的对象, 至少没有一个经典的感觉和Smalltalk/Java一样的,这是"O". gorp不知道任何你struct之间的关系(以后会实现,现在还在TODO list中). 所以"R"也是有质疑的(但是我使用这个名字,因为感觉上更贴切). "M"是没有问题的. 给定一些Go结构和一个数据库, gorp应该可以减少你的重复代码. 我希望gorp能节省你的时间并简化从数据库获取数据的苦活来帮助你把精力投入到算法上而不是基础设施上面. 数据库驱动 gorp使用Go1 database/sql包. 一个完整可用的兼容驱动程序如下: http://code.google.com/p/go...阅读全文

博文 2014-10-09 16:55:55 ztiandan

go语言之beego框架orm的使用

models.go ============================ package main import ( "github.com/astaxie/beego/orm" ) type User struct { Id int Name string Profile *Profile `orm:"rel(one)"` // OneToOne relation } type Profile struct { Id int Age int16 User *User `orm:"reverse(one)"` // 设置反向关系(可选) } func init() { // 需要在init中注册定义的model orm.RegisterModel(new(User), new(Profi...阅读全文

博文 2015-06-17 23:05:56 zistxym

go语言使用protobuf与c++做数据通信。

首先,安装google的protobuf。安装流程请参见我以前的博客 http://blog.csdn.net/eclipser1987/article/details/8525383 安装proto的go语言插件 go get code.google.com/p/goprotobuf/{proto,protoc-gen-go} 编写一个简单的事例,go与c++网络通信: RegMessage.proto package cn.vicky.model.seri; message RegMessage { required int32 id = 1; // 主键,唯一 required string username = 2; // 帐号 required string password = ...阅读全文

博文 2014-10-06 09:42:32 eclipser1987

gorm快速使用

## gorm ORM 就是通过实例对象的语法,完成关系型数据库的操作的技术,是"对象-关系映射"(Object/Relational Mapping) 的缩写. gorm, github.com/jinzhu/gorm 全特性 ORM (几乎包含所有特性). ## 模型定义 模型一般都是普通的 Golang 的结构体,Go 的基本数据类型,或者指针。sql.Scanner 和 driver.Valuer,同时也支持接口。 ### gorm.Model gorm.Model 是一个包含一些基本字段的结构体,包含的字段有 ID,CreatedAt, UpdatedAt, DeletedAt。 你可以用它来嵌入到你的模型中,或者也可以用它来建立自己的模型.GORM 默认使用 ID 作为主键名。 ...阅读全文

博文 2019-12-26 19:03:28 bytemode

golang包sql查询结果树形化反射扫描器

### 主要功能 > 可以搭配gorm的sql结果扫描函数Scan、Find等,将结果直接传入本包提供的树形化函数(ScanToTreeData),快速实现树形化 > 支持无限级树形化(自己嵌套自己)、有限级个性化树形化 > github 仓库地址,欢迎使用,反馈使用意见,顺便点点 star https://github.com/qifengzhang007/sql_res_to_tree ### 核心代码段 ```code // 接受树形结果的结构体要求如下: // 1.主键必须使用 primaryKey:"yes" 标签定义,类型必须是 int int64 in32 等int系列,不能使用 string 等其他类型...阅读全文

开源项目 2021-02-22 00:04:16 张三丰

golang plugin热更新尝试

电视剧《萌妃驾到》即将和观众见面,剧中很多皇妃的扮演者颜值演技都在线,在电视剧《萌妃驾到》中曲碗碗扮演者尤其受关注,那么剧中曲碗碗扮演者是谁,还演过哪些电视剧? ======================================= 薇.信.关.注.工.众.号:戏说影院 点击影院入口→阅读原文→输入"片名"搜索→即可观看! ======================================= 该剧主要讲述了萌妃步萌与皇上温楼两人在一路“逗智逗勇”的过程中相恋的故事。 在宣布定档的同时,该剧还发布了定档海报,海报尽显独特“萌式美学”。《萌妃驾到》剧中女主步萌由90后人气小花旦金晨饰演,在已公布的定档海报中,步萌作为芳华宫主位,一身唐装俏皮又不失妩媚。而饰演男主温楼的全能偶像艺...阅读全文

golang 多个项目时如何配置(使用gb在非GOPATH路径下构建项目)

方案1:将每个项目路径写入GOPATH 写了个脚本SetGoPath.sh #!/bin/bash if [[ $GOPATH =~ .*$PWD.* ]] then echo "currnet dir is already in GOPATH" else export GOPATH=$GOPATH:$PWD echo "fininsh setting $PWD in GOPATH" fi 在项目主目录中运行source SetGoPath.sh 将当期项目路径写入GOPATH 方案2 使用gb替代go来构建项目 这个gb就是一个替代go的build 和 test的工具,可以让项目在任意路径时运行构建 github地址:https://github.com/constabula... 首先要...阅读全文

博文 2017-03-16 10:00:54 kel

Golang下的ORM框架gorm的介绍和使用

前言:gorm是Golang语言中一款性能极好的ORM库,对开发人员相对是比较友好的。当然还有另外一个xorm库也是比较出名的,感兴趣的也可以看看这个库,接下来主要介绍下gorm库的一些基本使用。 GORM介绍和快速入门 功能概览 全功能ORM(无限接近)关联(Has One, Has Many, Belongs To, Many To Many, 多态)钩子函数Hook(在创建/保存/更新/删除/查找之前或之后)预加载事务复合主键SQL 生成器数据库自动迁移自定义日志可扩展性, 可基于 GORM 回调编写插件所有功能都被测试覆盖开发者友好 安装 我们都知道,在golang中需要使用一些驱动包来对指定数据库进行操作,比如MySQL需要使用github.com/go-sql-driver/my...阅读全文

博文 2020-03-15 10:34:25 BGBiao

使用go-mysql-elasticsearch将mysql实时同步到es

注意: mysql binlog必须是ROW模式 ,并且binlog_row_image必须为full 要同步的mysql数据表必须包含主键,否则直接忽略 不支持程序运行过程中修改表结构 要赋予用于连接mysql的账户RELOAD权限以及REPLICATION权限, SUPER权限: GRANT REPLICATION SLAVE ON *.* TO 'elastic'@'127.0.0.1'; GRANT RELOAD ON *.* TO 'elastic'@'127.0.0.1'; UPDATE mysql.user SET Super_Priv='Y' WHERE user='elastic' AND host='127.0.0.1'; 1.安装golang 下载地址 https://...阅读全文

博文 2019-06-01 15:34:39 崔允

废旧金属液压打包机多少钱

废旧金属液压打包机多少钱【电同微156-9027-3307】属打包机,箱式剪切机,龙门剪切机都输液液压打包机,只是形式不一致,对打包的材质有所不同,价格也相差很大,不能一个而论,下面就给大家说一下金属液压打包机的区分。 传统的单机情况下,通过内存或者数据的主键就可以维护一个唯一ID,但随着业务增长,免不了增加主机和分库分表,在这种情况下如何表示一个唯一的订单或者用户呢?这就是分布式唯一ID的意义。如果并非此场景,利用数据库自增值或者时间戳随机种子(为避免1ms内碰撞,可以再维护几位顺序位,可以参考后文snowflake算法)即可。当然由于绝大多数分布式唯一ID算法效率很高,想用也是可以的。分布式唯一ID的要求分布式唯一ID的要求可以拆解为三个层面:不重复。本质上不要求随机,单纯递增也可以,因...阅读全文

博文 2020-02-13 09:32:45 艾比3434

用Golang写一个搜索引擎

用Golang写一个搜索引擎 猜你喜欢 golang入门-- 一个2D的图形库学习 golang入门--一个简单的http client golang的第一个deadlock LiteJob,一个Golang的本地任务调度器 再次自我黑客马拉松--不用第三方库实现一个基于golang的web service 如何利用golang 反射值来定义一个变量 用Golang写一个搜索引擎 用Golang写一个搜索引擎(0x01) 用Golang写一个搜索引擎(0x02) 用Golang写一个搜索引擎(0x03) 前面已经说了倒排索引的基本原理了,原理非常简单,也很好理解,关键是如何设计第二个倒排表,倒排表的第二列也很好设计,第一列就是关键了,为了满足快速查找的性能,设计第一列的结构,我们需要满足以下...阅读全文

博文 2016-04-14 17:00:04 daisongwan

Prometheus 系统监控方案 二 安装与配置

下载Prometheus 下载最新安装包,本文说的都是在Linux x64下面内容,其它平台没尝试过,请选择合适的下载。 Prometheus 主程序,主要是负责存储、抓取、聚合、查询方面。 Alertmanager 程序,主要是负责实现报警功能。 Pushgateway 程序,主要是实现接收由Client push过来的指标数据,在指定的时间间隔,由主程序来抓取。 *_exporter 这类是不同系统已经实现了的集成。 下载解压,一般默认的配置就可以运行。 tar xvfz prometheus-*.tar.gz cd prometheus-* go写的东西,直接打包成二进制包了,其本上没有别的依赖。 下面我们主要来了解一下他的配置文件,这是一个非常重要的步聚。 配置Prometheus监...阅读全文

程序员吐槽自己阿里p7面试微软被拒,网友:你就是高级一点的码农

我想一提起阿里巴巴,我们就互相到马云这位大佬。然而阿里巴巴也是我国巨头企业霸主之一,在国际上也十分具有知名度。众所周知阿里员工的待遇和福利是非常优渥的,因此也吸引了很多年轻人的目光。但是阿里和国际知名企业如谷歌、微软等相较于技术来说还是有着一定的差距。 就有一位阿里工作的程序员想去微软养老。他说自己是P7级了,工作累想去微软养老,想要一个principal(微软的内部级别,类似于国内大厂的项目经理)。结果被拒了... 就楼主的吐槽而言,一位亚马逊工作的员工说出了自己的看法,在美国,他相信阿里巴巴对微软来说仍然有很大的差距,尤其是在科研方面,阿里的P7是不超过一个更高层次的码农而已,怎么能对标微软的principal了。事实就是如此,国内的阿里、百度却是离微软谷歌等国际性的大企业还存在差距。 ...阅读全文

博文 2018-09-19 21:52:02 Java1324

Golang分布式设计模式之-----星型拓扑分形设计

Golang分布式设计模式之-----星型拓扑分形设计 上一篇分层设计中,利用了简单的流水线原理,实现了简单的状态转移的设计。如下 这一篇我们将考虑另外一种情况。例如,linux内核中的进程管理。所有的进程都有一个父进程。当子进程正常运行时候,与父进程基本无通信。但当子进程死亡时,要通知其父进程,让父进程进行资源回收。当父进程死亡时,两种情况,子进程随着父进程一起死亡,或者将子进程交由父进程的父进程管理。类似于下图 其中每个进程都有自己的父进程,也有可能会有自己的子进程。 在这种管理中,父子关系,或者说是管理者与被管理者的关系。被管理者,可以独自运行,但要将其的一些状态告知管理者,或者管理者,可以定期获取被管理者的状态。 下面以一个p2p下载器为例: 一、职能划分,形成管理者与被管理者 1)...阅读全文

博文 2015-01-21 09:17:51 screscent

scrud - Go struct/SQL CRUD & Go write SQL

scrud - Go struct/SQL CRUD & Go write SQL === 想要的几乎都有,如果没有的话,请[提交请求](https://github.com/cxr29/scrud/pulls) ### 安装 ```go get github.com/cxr29/scrud``` ### CRUD ```Go import "github.com/cxr29/scrud" import _ "github.com/go-sql-driver/mysql" db, err := scrud.Open("mysql", "user:password@/database") // A, B is struct or *struct n, ...阅读全文

GO支持协程。linux系统是抢占式多任务。

那么 操作系统 会把 CPU的释放 的 功能交给 程序么? 我越用越不明白啊。 那个 《GO语言编程》里说 GO的并行机制 还不完善。 不是 本人测试。也没有他的测试数据。 是不是 就是因为 操作系统和 语言本身对于 CPU的抢占 有冲突。。 请版主 polaris 给一点 指点。。非常 感谢。...阅读全文

Go语言-单元测试

今天闲来无事看了下GO语言,首先是看了酷壳耗子大牛的文章,然后下载安装,配置环境等等,由于我下载的是安装版,所以环境变量什么的不用自己配置。然后又刚好去图书馆借了两本书:《Go语言编程》许式伟/吕桂华编著,《Go语言 云动力》樊虹编著,接着就开始看。。 好了,废话不多说,直接进入主题: 在《Go语言编程》我看到他有一些例子,在书的第二章最后,讲的是两种排序的Go语言实现(快速排序和冒泡排序)本文的源代码来自《Go语言编程》许式伟/吕桂华编著 排序本身不重要,因为之前用C,java也实现过,重要的是练练写Go语言,熟悉下语法。 环境: 我设置的GOPATH为:G:\go 然后所有文件及目录如下: 主程序(sorter.go):G:\go\src 排序算法(bubblesort.go、qsort...阅读全文

博文 2015-05-03 16:00:02 Spring_cb

Golang应用开发框架 - GoFrame

image.png GF(Go Frame)是一款模块化、松耦合、生产级的Go应用开发框架。提供了常用的核心开发组件,如:缓存、日志、文件、时间、队列、数组、集合、字符串、定时器、命令行、文件锁、内存锁、对象池、连接池、数据校验、数据编码、文件监控、定时任务、数据库ORM、TCP/UDP组件、进程管理/通信、 并发安全容器等等。并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、路由注册、配置管理、模板引擎等等,支持热重启、热更新、多域名、多端口、多服务、HTTPS、Rewrite等特性。 安装 go get -u github.com/gogf/gf 或者 go.mod: require github.com/gogf/gf latest 限制 golan...阅读全文

博文 2019-04-25 00:34:40 极粉

定义 http 接口,以及 struct tag 的一点点经验,想法,求大神教育,菜鸟一同探讨

本人菜鸟,师父让我定义 与前台的 http 接口,我就做了,当然过程中被喷惨了。写写我最后的方法,以及我为什么这么写,欢迎大家探讨。 前提,所有接口 POST,json 方式 1.接口最后定义方式,基本上是大模块上是按照功能划分的,小模块上按照界面上需要的数据定义的。其实对后台来说,最好的方法就是不看界面,提供基本接口,让前台去组合。但是前台说 考虑到流量,手机耗电问题,所以最后无条件的 前台需要什么给什么,不需要的后台帮忙处理掉。这样做的坏处就是,后台代码写的比较乱,因为每个前台需要的界面都要单独一个结构体,命名上也比较难命名(因为后台自己的数据结构跟前台需要的差不多,只是少了个别字段),我现在也不知道好的接口到底应该怎么样定义。求大神狠狠教育一下我。 2.因为是 json,...阅读全文

Gorm的使用心得和一些常用扩展(一)

Gorm是golang的一个orm框架,它提供了对数据库操作的封装,使用起来相当便利。 但在项目开发中,代码写的多了,还是发现在它之上还是有再次封装的空间,比如说添加错误日志、或者是一些使用频率非常高的对单个表的条件查询、分页查询、数据更新等。再则是,关于相同的功能操作,gorm也提供多种实现方式,对新学多少有些困惑,不知道该用哪个好。 于是,我基于自己在项目中的使用经验和编码习惯,做了如下一些扩展,供大家参考。 准备 为了兼容gorm的使用方法,我使用了内嵌类型来扩展。 定义如下: type DBExtension struct { *gorm.DB logger DBLogger } 复制代码这样子定义的wrapper对象是最小侵入式的扩展,不仅可以直接点出gorm的原有方法,也可以点出...阅读全文

博文 2019-07-13 22:04:19 raining1127

Golang之wait.Until 简单测试用例

测试目的,验证wait.Until的用法 //测试wait.Until() 的用途 package main import ( "fmt" "k8s.io/apimachinery/pkg/util/wait" "time" ) type stop struct { } func main() { stopCh := make(chan struct{}) //初始化一个计数器 i := 0 go wait.Until(func() { fmt.Printf("----%d----\n", i) i++ }, time.Second, stopCh) time.Sleep(time.Second * 10) stopCh <- stop{} // 下面的形式,也是可以的 //stopCh <...阅读全文

博文 2018-07-02 21:35:46 故新

網站連線有問題

最近一個月,遇到幾次連線不上的情況,每次都持續超過一天,於是簽到就斷了... 一開始以為網站掛了,後來發現不是,這真讓人不開心... 不是每條線路來源都有問題,但就是有些線路會開不了. 好像 http 是有連上,但轉到 https 卻無法取得回應... 我用自己兩條線路測,主線走 https 不通,用副線就行. 會是什麼問題呢? ![uncon.jpg](https://static.studygolang.com/171222/dbf111e105df73fc476f78add0d535a5.jpg...阅读全文

浅谈滚服游戏如果实现一键合服

[原文链接](http://www.bugclosed.com/post/12) : http://www.bugclosed.com/post/12 ## 背景 近几年的游戏行业中,出现了各种各样的滚服游戏,包括页游,手游,H5游戏等等。滚服游戏和大服游戏的区别在于同时游戏人数,大服游戏是有很多用户在一起玩,甚至几十上百万玩家。而滚服游戏则一般会设计游戏在线上限,比如3000,达到上限则新开一组服务器,并引导用户进入新区。 滚服模式是游戏类型,技术架构和急功近利的坑钱策略等因素共同决定的,大服游戏包括绝大部分端游,以及类COC这样类型的游戏。另外,虽然像英雄联盟,王者荣耀这样的游戏也分服架构,但是这个并不是我理解中的“滚服游戏“,首先他们虽然分服,但是每个服的人数上限也是可以高达几十万,他...阅读全文

博文 2018-05-24 16:15:26 pert

Go控制并发数量的几种方式

因为go语言层面支持并发,所以面试中经常会问到并发的问题,比如说控制go并发数量的方式有哪些?下面是我个人整理的两个例子,如果有不对的地方请轻喷。 func waitGroup() { count := 10 wg := sync.WaitGroup{} for i := 0; i < count; i++ { wg.Add(1) go func(j int) { fmt.Print(j) wg.Done() // 也可使用 wg.Add(-1) }(i) } wg.Wait() } 上面主要用到的是go中sync包下的waitGroup,这也是在工作中比较常见的实现方式,关键点就是把握好Add方法的位置,Wait方法则是等待所有的协程执行完毕 func channel() { count ...阅读全文

博文 2020-02-27 17:32:40 iuoui

惨痛教训 beego路由失败

今天上午 + 中午折腾快3个小时 路由模块疯狂失败,怎么改都是404,在即将绝望之际,群主大人帮忙查找出问题所在:import导包路径错误!!!! 之所以产生这个错误,是因为我个人习惯,给项目做备份直接copy,然后取新名称,结果就是导包失败,而ide不报错。。。。。真怀念eclipse和Idea啊 我们的golang群是197713362,欢迎做golang的朋友加入,大家还是很热心...阅读全文

博文 2015-06-17 20:12:40 u012210379

h5游戏--招聘精英go语言主程序2名

岗位职责: 游戏服务器端开发 任职要求: 1、有两年以上的项目开发经验 2、熟悉Go语言,熟悉C++、了解javascript、c等语言的开发 3、熟悉常见的缓存服务、NoSQL存储系统、消息队列组件、mongodb等 4、有高负载、高并发开发设计经验 5、有游戏开发设计经验者优先 薪酬30-50k,六险一金,年度国外度假等 简历接收邮箱:liqianhui@hortorgames.co...阅读全文

我们是如何做数据库运维和优化

摘要: 8月24日阿里云数据库技术峰会上,阿里云高级DBA专家玄惭带来面对超大规模的数据库集群,尤其是在每年像双11这样重大促销活动中,阿里云是如何进行运维和优化的。本文主要介绍了天象和CloudDBA两个产品,包括他们的起源、基于系统画像仓库的应用、产品化等,最后对RDS产品的可诊断性建设和可运维性建设作了补充。 8月24日阿里云数据库技术峰会上,阿里云高级DBA专家玄惭带来面对超大规模的数据库集群,尤其是在每年像双11这样重大促销活动中,阿里云是如何进行运维和优化的。本文主要介绍了天象和CloudDBA两个产品,包括他们的起源、基于系统画像仓库的应用、产品化等,最后对RDS产品的可诊断性建设和可运维性建设作了补充。 随着云数据库时代的到来,它的运维体系不仅仅包括保持...阅读全文

MyMySQL 的 database/sql 接口使用

最近看到不少朋友对 Golang 中操作 MySQL 数据库有疑问,那么就此内容给大家分享一下吧。 MyMySQL 的原作者是来自波兰的 ziutek,他根据 MySQL 的协议标准使用 Golang 实现了 MyMySQL 包。根据他的介绍,这个包可以用在 MySQL 4.1 或更高版本上,并且在 5.0、5.1 版本上经过项目的实际验证。 只要用 MySQL 做过项目的朋友一定遇到过编码问题,set names 几乎成为了中文环境下使用 MySQL 的标配。那么 Golang 也不能例外。不过由于 database/sql 使用了随机的连接池,且未提供任何方法让所有连接都执行某个操作,于是这个麻烦事儿就落到了驱动的肩上。对于中文什么的,大老外一向不怎么在意。我提交了这个 issue 给 ...阅读全文

博文 2014-10-09 16:15:45 mikespook

mysql,sqlserver数据库单表数据过大的处理方式

经常混迹于技术社区,频繁看到这个题目,今天干脆在自己博客重复一遍解决办法: **针对mysql,sqlserver等关系型数据库单表数据过大的处理方式** **如果不是**[**阿里云**](https://2bit.cn/aliyunWeb?opengps284)**的**[**分布式数据库 DRDS**](https://2bit.cn/drds?opengps284)** 那种多机器集群方案的话: 先考虑表分区 ;然后考虑分表 ;然后考虑分库。** 这个题目是我所经历过的,我做的是GPS应用,早期版本就是选用的关系型数据库Sql Server。当时我选取的方案就是第一种:表分区。 表分区的优势是,如果表结构合理,可以不涉及到程序修改。也就是说,对程序来讲依然是单表读写的效果! 所有轨迹...阅读全文

博文 2019-04-01 13:53:54 jiyulin

go语言beego框架 orm实现insertOrUpdate功能

在beego1.6.1版本orm中并未提供insertOrUpdate,但是自己做项目时遇到了这个需求,顾写了一个自己的实现,暂只支持mysql与postgres。实现原理是数据自带可实现insertorupdate的功能语句。 mysql:-ON DUPLICATE KEY UPDATE postgres : -ON CONFLICT DO UPDATE SET 然后去orm实现中自己拼装sql语句 好了,亮代码: func (d *dbBase) InsertOrUpdate(q dbQuerier, mi *modelInfo,ind reflect.Value, tz *time.Location, dn string, args …string) (int64, error) { ...阅读全文

博文 2016-09-07 04:00:22 fudali133