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

关于go module的使用

在go1.11版本以后go modules成为了go官方的依赖管理方式,替换一起的Godep。使用go modules管理依赖后会在当前的项目根目录下生成go.mod和go.sum. go.mod 在其中记录当前的项目的所有依赖,文件格式如下: module go-demos go 1.13 require github.com/x-mod/routine v1.2.7 或 module go-demos go 1.13 require ( github.com/x-mod/routine v1.2.7 ) replace ( // 针对有些被墙不能下载 可以替换成其他依赖包 golang.org/x/text v0.3.0 => github.com/golang/text v0.3.0 ...阅读全文

博文 2019-12-26 14:32:51 神奇的考拉

【go】继续go go go,ubuntu环境搭建及golang的依赖关系分析

这次是在ubuntu14.04 amd64上搭建go的编译环境,使用的IDE换成了sublime text,具体步骤参照的是 http://blog.csdn.net/aqiang912/article/details/46775409 ,我就不赘述了。 关于依赖分析,应该算是比较头疼的地方了。花了点时间看了语法,发现除了一些很不一样的地方比如类型放在变量后面等,其他大多跟C和java类似,很容易上手。 下面以一个小例子来说明golang是怎么import一个包的: 首先我们在自己的主目录下创建一个文件夹test,里面创建一个go文件,test.go,内容如下: package test import "fmt" func Test() { fmt.Printf("This is test-...阅读全文

博文 2016-07-01 02:00:00 puyangsky

go mod 使用

简介 go 1.11以后提供了新的管理依赖的方式, 使得管理依赖,尤其是依赖版本更加的明确且易于管理, 这种方式就是go mod 在项目的根目录有个go.mod的文件, 文件的内容是所有依赖的go package的集合, 以文件树的形式存在. 文件中中明确的说明了go所有依赖的路径及版本 配置 # 这三个路径一直存在 export GOPATH=$HOME/go export GOROOT=/usr/local/go export GOBIN=$GOPATH/bin # 支持 go mod 需要配置如下两个选项 # 开启go mod export GO111MODULE=on # 配置go mod使用的依赖库代理服务器 export GOPROXY=https://goproxy.io 创建...阅读全文

博文 2020-04-06 21:32:56 allenhaozi

go in action

需求 公司要实现大中台战略,以往的后台都是基于传统的技术架构实现的系统。 系统在性能及扩展性上都存在有客观的局限性。 如何将传统系统的原子性服务或组合服务提供给中台是需要解决的一个问题。 概要设计 原子性的服务,通过直连数据模型,并将其转化为RESTFULL的方式来实现。 组合服务通过接口适配转换及转化为统一RESTFULL的方式来实现。 详细设计 原子性服务设计 服务列表 服务编号 服务名称 备注 模型元数据 schema/base/${MODEL_NAME} 如果${MODE_NAME}为空,则是全部信息 模型属性元数据 schema/prop/${PROP_NAME} 如果${PROP_NAME}为空,则是全部信息 模型主键元数据 schema/primary_key/${PRIMAR...阅读全文

博文 2019-07-17 14:33:50 do_young

Notepad++配置Golang关键字高亮

1.Go语言支持包下载到后,解压会得到两个xml,一个是userDefineLang_Go.xml,一个是go.xml。http://notepad-plus.sourceforge.net/commun/userDefinedLang/go.zip2.配置Notepad++1).打开userDefineLang_Go.xml,把文件开头和结尾的注释取消掉。2).把userDefineLang_Go.xml拷贝到Notepad++的安装目录,我是放到了根目录。把go.xml拷贝到Notepad++安装目录下的 plugins\APIs 下面。3).打开Notepad++,在菜单栏中选择语言 -> 自定义语言。在弹出的对话框里点击Impor...阅读全文

博文 2018-06-27 12:34:47 々菰單

golang1.5 tar.gz 打包目录,代码分享

package main import ( "archive/tar" "compress/gzip" "fmt" "io" "io/ioutil" "os" "strings" ) func main() { fmt.Println(Gzip(".\\", "1.tar.gz")) } func Gzip(filepath, filename string) error { File, err := os.Create(filename) if err != nil { return err } defer File.Close() gw := gzip.NewWriter(File) defer gw.Close() tw := tar.NewWriter(gw) defer tw.Cl...阅读全文

博文 2016-03-08 13:00:01 fyxichen

go build和go install的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zl1zl2zl3/article/details/83615646 go build 通过go build加上要编译的Go源文件名,我们即可得到一个可执行文件,默认情况下这个文件的名字为源文件名字去掉.go后缀。 $ go build hello.go $ lshello hello.go 当然我们也 可以通过-o选项来指定其他名字: $ go build -o mygo hello.go $ lsmygo hello.go 如果我们在go-examples目录下直接执行go build命令,后面不带文件名,我们将得到一个与目录名同名的可执行文件: $ go build $ lsgo-exam...阅读全文

博文 2019-03-05 22:31:03 zl1zl2zl3

Go1.5 zip 压缩目录修正时间

package zip import ( "archive/zip" "io" "os" "path/filepath" "time" ) const zone int64 = +8 func Zip(source, target string) error { zipfile, err := os.Create(target) if err != nil { return err } defer zipfile.Close() archive := zip.NewWriter(zipfile) defer archive.Close() return filepath.Walk(source, func(path string, info os.FileInfo, err error) e...阅读全文

博文 2016-03-07 18:00:01 fyxichen

php-composer作用分析

项目开发过程中,拓展包的引入能够帮助我们快速且强大的开发我们的项目,js中的node install ,golang中的go mod而php我们用的就是composer,像这样 composer require lingyuyizhipao/http 当然你也可以用原声自己慢慢造轮子,但引入可以帮助更好更快的做更多的事情,那么composer是如何帮助我们的呢,下面来好好分析分析。其实我们的初衷是我们需要使用的对象能够给我们使用就行了,但是计算机肯定是要code加载到内存中去运行才行的啊,那就意味着每使用一个对象之前php就得require_once该对象的class文件到内存中,麻烦!spl_autoload_register 这个函数就是php专门用来解决这个问题的,它可以帮我注册一个我...阅读全文

博文 2019-05-11 12:34:50 Best博客

阿里云免费教你使用营销引擎

课程介绍 阿里云数加营销引擎可以帮助企业快速搭建或升级自有DSP/ADN/DMP系统,提供高质量的竞价、投放、受众定向、pCTR点击率预估/pCVR转化率预估、相关性评估等核心能力。 产品详情:https://data.aliyun.com/product/openad 课时列表 • 课时1:营销引擎 - 如何快速搭建自有DSP • 课时2:营销引擎 - DSP如何进行流量管理 • 课时3:营销引擎 - 如何在DSP中接入【友盟+】DIP • 课时4:营销引擎 - 广告主如何使用借助营销引擎快速搭建的DSP • 课时5:营销引擎 - 广告主如何借助【友盟+】DIP创建人群 开始学习http://click.aliyun.com/m/278...阅读全文

go-反射机制

思路 结构对象映射出来:类名,成员名,成员值 package dao import ( _ "ChbeeGoTest/models" "ChbeeGoTest/utils/myLog" "fmt" "reflect" "strings" ) type Dao struct { } var DaoInter = new(Dao) //将对象映射到表格中,返回主键ID func (this *Dao) Insert(obj interface{}) { //对象转表格 table := obj2table(obj) fmt.Println(table.TbName) //序列化列名 cloums := strings.Join(table.Cloum, ",") fmt.Println(clou...阅读全文

博文 2016-05-01 22:00:02 shuanger_

供应链

docuwiki我用着还行。但是很多地方还是有些问题。如果谁也用过。可以交流一下。1.比如怎样批量删除未使用的图片。一个一个删太麻烦了。2.还比如他的目录名能不能修改,不然一旦要改框架,就要到服务器里去做操作,有没有插件可以做这个?3.还有就是有没有办法让每一个页面都自带一个返回上一级的链接(自己写内部链接太麻烦,而且容易在修改文件位置后,导致链接不可用)4.表格内内容是否有办法垂直居中,表格本身能否水平居中5.有好用的编辑插件么?不要推荐FCK,我用了之后都变成乱码了,表示不敢用了。6.有没有好用的本地wiki编辑器?有问题也可以问我。我手里这个wiki吧,看上去也有点模样了。相互交流。 作者:知乎用户 链接:https://www.zhihu.com/question/19677718/...阅读全文

博文 2020-04-24 21:30:12 asialiugf

在linux云服务器下配置GoLang环境

1、下载go环境:Golang当然你如果可以翻墙还可以去这个网址下载:https://golang.org/dl/下载对应版本的包 2、上传下载的文件scp /Users/zt/Desktop/go1.11.2.linux-amd64.tar.gz hz@94.191.79.156:/home/hz/桌面 3、给用户添加权限(1)在root用户下运行vim /etc/sudoers 添加:对应的用户名添加权限,我的是hz 4、在服务器上解压缩 成功后去用户/usr/local查看有没有对应的go文件夹 5、配置go终端下输入cd 进如当前用户主目录vim .bashrc 在.bashrc添加对应指令export GOROOT=/usr/local/goexport GOPATH=$HOME/...阅读全文

博文 2018-12-05 09:34:42 学生黄哲

如何快速让你的网站被收录

做网站的人最重要的就是让自己的网站被很快的收录。大部分人需要大概1个月作用才会被收了,但是有的几个小时就收录,甚至十多分钟就可以,是不是很神奇。这些是很有技巧性的。下面说下简单的方法1,去搜索引擎提交自己的域名。2、申请一些分类目录网站收录,大概几分钟就可以申请几个。但也不要太多。3、去搜外,A5,落伍者论坛等发帖,留自己的链接。4,交换几个友情了链接。5、购买几个高质量的友情链接。做到上面这几点,最重要的还是你的网站主题和内容要健康积极,千万别复制网上的文章,就算复制也要稍微改下,不然搜索引擎会视为垃圾站点,没有原创内容,要么收录很迟要么完全不收了。现在不是有一种外链工具吗,可以批量的发出几千条外链。我觉得新站最好别这样做,这种外链没有什么意义,他的原理很简单,就是去各种有搜索功能的网站不...阅读全文

Golang笔记-Plugin初探

前言 最近在学习fabric 1.2版本的新特性,其中有一个是实现了交易背书和区块结果验证这两个原本由系统链码escc和vscc负责的模块的可插拔。它们的可插拔用到了Go的plugin技术,这也是我第一次知道Go Plugin的概念(虽然在Go 1.8版本就有了),于是准备探一探究竟Go Plugin是什么,怎么用。 什么是Go Plugin Golang是静态编译型语言,在编译时就将所有引用的包(库)全部加载打包到最终的可执行程序(或库文件)中,因此并不能在运行时动态加载其他共享库。Go Plugin提供了这样一种方式,能够让你在运行时动态加载外部功能。 为什么用Go Plugin 其实应该问为什么要用Plugin,我觉得原因有很多,比如: 可插拔:有了Plugin,我的程序可以根据需要随...阅读全文

博文 2018-07-29 13:34:55 tinywell

【go学习】go build与go install的区别

golang 的go build、go install 命令都是可生成可实行文件,了解它们的小区别以选择适合自己的。go install 和 go build 在没有参数时运行,都会在当前目录下编译,如果当前目录是软件主程序(package main)go build 会生成可实行文件放在当前目录中go install 则会把它放到 $GOPATH/bin 中。go install 还会把导入的依赖包编译到 $GOPATH/pkg,并缓存,如果包未做更改,下次编译则直接使用缓存。 go build 命令加参数 -i 也能达到go install 的效果。如果当前目录是非主包,则go install 直接把编译结果安装到 $GOPATH/pkg。如果项目很大,每次编译都要花很长时间,则建议使用...阅读全文

博文 2019-04-19 20:31:02 smile_yangyue

最近大家要小心招聘出国做开发的,已经有人被殴打软禁了,另外建议版主屏蔽这种帖子,避免不必要的麻烦

![image.png](https://static.studygolang.com/190708/335a86da902c9afbfc2d09b80903d0a8.png) ![image.png](https://static.studygolang.com/190708/53b523891e9752997835cf5d8ff4122c.png) ![image.png](https://static.studygolang.com/190708/1827ffaa5b6bfc737511f004da38c27e.png) ![image.png](https://static.studygolang.com/190708/1827ffaa5b6bfc737511f004da38c27e...阅读全文

博文 2019-07-08 18:04:35 ximen

用Golang写一个搜索引擎 (0x04) --- B+树

本篇较长较枯燥,请保持耐心看完。 前面两章介绍了一下倒排索引以及倒排索引字典的两种存储结构,分别是跳跃表和哈希表,本篇我们介绍另一种数据结构,他也被大量使用在信息检索领域,我在github上实现的搜索引擎的词典也是用的这个数据结构,它就是B+树。 首先,我们看看什么是树,树是程序设计中一个非常基础的数据结构,记得大学时候的数据结构课,链表,栈,队列,然后就是树了,虽然那时候想必大家都被前序遍历,中序遍历,后序遍历折腾过,不过树确实是一种非常有用的数据结构。 上一篇我们说过,表2的第一列首要解决的问题就是能快速找到对应的词,然后找到对应词的倒排列表,除了跳跃表和哈希表,B+树也能满足条件,B+树是B树的变种,我们B树我们就不看了,感兴趣的大家可以直接去google一下,我们主要讲的是B+树,下...阅读全文

博文 2017-02-09 08:18:01 吴yh坚

时间序列数据的处理

摘要: 随着云计算和IoT的发展,时间序列数据的数据量急剧膨胀,高效的分析时间序列数据,使之产生业务价值成为一个热门话题。阿里巴巴数据库事业部的HiTSDB团队为您分享时间序列数据的计算分析的一般方法以及优化手段。 演讲嘉宾简介:钟宇(悠你) 阿里巴巴 数据库高级专家,时间序列数据库HiTSDB的研发负责人。在数据库、操作系统、函数式编程等方面有丰富的经验。 本次直播视频PPT,戳这里!http://click.aliyun.com/m/51142/ 本次分享主要分为以下几个方面: 1. 时序数据库的应用场景 2. 面向分析的时序数据存储 3. 时序数据库的时序计算 4. 时序数据库的计算引擎 5. ...阅读全文

在 Go 中如何串联 HTTP 处理程序

你好,今天我想分享一下,在 `Go` 语言中串联 HTTP 处理器。 在使用 Go 之前, 我使用 Nodejs + [ExpressJS](http://expressjs.com/en/4x/api.html) 去编写 HTTP 服务器应用。 这个框架提供了很简单的方法去使用中间件和串联很多路由节点,因此,不必指定完整的路由路径来为其添加处理程序。 ![图1](https://raw.githubusercontent.com/studygolang/gctt-images/master/chain-http-hanlders/1.png) 这个想法是通过分割你的路由和处理每一个部分,串联到处理器,每个处理程序只负责一部分。它理解起来非常简单且非常容易使用和维护,所以首先我尝试在 Go...阅读全文

博文 2018-01-12 22:18:02 polaris

GO语言之路 - 目录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vivian_king/article/details/80082454 目录 GO语言之路 1 - 学习准备 GO语言之路 2 - 学习计划 GO语言之路 3 - 基础 GO语言之路 4 - Hello, GO GO语言之路 5 - 语法基础 持续更新中。。...阅读全文

博文 2018-08-22 16:32:36 vivian_king

Go语言 线程简单读写

一个线程负责读取 主线程负责写入 // test02 project main.go package main import ( "fmt" "time" ) /* 一个线程负责读取 主程序负责写入 */ //负责读取i func Process(ch chan int) { for { i := <-ch fmt.Println("Process:", i) } } func main() { fmt.Println("Hello World!") ch := make(chan int, 1) go Process(ch) count := 1 for { select { case ch <- count: count = count + 1 default: time.Sleep(1...阅读全文

博文 2015-06-17 23:02:25 body100123

理解 Google Spanner (1):数据复制与分片。

现在工作中有很多项目开始转到 Google Spanner,虽然是很牛逼的分布式数据库,但由于太新了,并且是闭源的,网上几乎没有什么资料可查,为了更好地使用它,开始了 Spanner 漫长的学习之路,一个东西只有自己能教会别人,才代表自己真的会了,因此准备进行 Google Spanner 的一系列分享,这是第一篇,主要是讲 Spanner 的数据复制与分片,最后会提到实际应用中会遇到的热点问题以及解决方案。 本文主要是通过近期对分布式存储系统原理的学习以及平常工作中的一些实践去总结出的技术分享,由于对分布式数据库以及 Spanner 的理解有限,如果文中有错误的地方,希望大家能够指出。 一、Spanner 架构 先讲讲 Spanner 的架构,很概念很牛逼的东西,虽然乍眼一看不实用,但是让...阅读全文

博文 2019-06-12 16:06:14 wangxihua916

linux 部署golang 项目

很多朋友开发环境是windows,需要把项目部署在linux上面,并且后台运行项目,现在我们直接进行操作1.先在打开cmd切换到你所在的项目文件名这里。 bee pack -be GOOS=linux2.把生成的打包文件上传到你项目的根目录,并且 把上传的文件 sudo chmod 777 权限设置为777 3.最后执行 ./main 就行了。如果想让项目在后台执行:执行 nohup ./main & ,这样就可以程序在后台运行了...阅读全文

博文 2019-07-09 15:32:48 会飞的小盒子

Golang 源码导读 Vitess-vttablet 模块(一): 主程序解析

vitess 是 facebook 开源的一款 mysql 数据库中间件,在业界有广泛应用,并且 github 上的库也在持续更新。这里,我选择其中最具代表性的 vttablet 模块,针对 go 语言开发的源码,对其具体实现进行分析。 官方给出的 vttablet 定义如 链接 ,简而言之,一个 vttablet 往下对接一个 MySQL 实例,往上对接 vitess 的其余中间件模块,是一个 MySQL 数据库的必经出入口。深入了解 vttablet 模块的源码,必将让我们对 MySQL 有进一步的了解。 这个系列的文章,主要面向 go语言 和 MySQL 数据库 有一定基础的朋友,会讲解得尽量详尽。当然,如果只是对 MySQL 感兴趣的朋友,也能收益不少。 解析主程序 1. 命令行入参...阅读全文

博文 2018-11-19 15:34:41 Junedayday

有关glide的使用报错

在使用glide包依赖管理,报错。描述如下: 1. go版本1.8.3,windows7 操作系统 2. 目录结构: ``` gowatch -------------src ---------main.go ``` 设置了两个gopath 一个是系统用的,在go的安装目录 ,另一个是当前项目将D:\goproject\gowatch设置为gopath. 3、操作 在gowatch 目录下面: glide init glide up 结果报错 ``` D:\goproject\gowatch>glide init [INFO] Generating a YAML configuration file an...阅读全文

前端项目中使用husky做预检查

具备基本工程素养的同学都会注重编码规范,而代码风格检查(Code Linting,简称 Lint)是保障代码规范一致性的重要手段。 使用 Lint 会有什么好处呢?在我看来至少具有如下 3 点: 更少的 Bug 更高的开发效率,Lint 很容易发现低级的、显而易见的错误 更高的可读性 很多时候我们lint的校验是放在持续集成阶段,大概流程如下: 代码提交 --> 跑 CI 发现问题(远程) --> 本地修复问题 --> 重新提交 --> 通过检查(远程) 但这样有一个问题,我们的 CI(持续集成) 往往不是仅仅只做 Lint工作,它还有会有很多其它的任务(如打包文件,静态资源上传 CDN 等),这样就导致特别的浪费时间,往往可能需要几分钟之后你才会发现问题,或者有的时候你根本就没有发现你的 ...阅读全文

博文 2019-07-02 18:32:57 面的技术杂坛

Golang1.7使用CGO在Go代码中定义C函数

test.h文件内容: int test(void* fn); void println(char* str); void callback(void* fn); test.c文件内容: #include int test(void* fn) { callback(fn); println("Hello,This from Clang"); return 0; } main.go文件代码: package main import ( "fmt" "unsafe" ) /* #cgo CFLAGS: -I./ #include */ import "C" /* CFLAGS 上边指示了头文件地址 LDFLAGS 下边的表明了库文件地址 都是当前文件的相对位置...阅读全文

博文 2016-10-27 07:00:02 fyxichen

有关 dep 对子目录(二级包)的拉取方式

[dep](https://github.com/golang/dep)是 Go 官方的依赖管理工具,现在已经比较成熟了,我个人也使用了一段时间,觉得很不错。 没有 glide 那么多 bug,比 godep 更加智能。 但是今天总算是发现它一个弊端了,dep 不会对二级目录进行拉取,默认要求所有 .go file 都放在顶级目录。 例如 [gin-swagger](https://github.com/swaggo/gin-swagger) 这个项目在使用的时候分别要导入顶级包和子包: ```` import "github.com/swaggo/gin-swagger" // gin-swagger middleware import "github.com/...阅读全文

小白求助 退出登录时点击链接自动跳转到根目录

登录时跳转都正常,退出时就会自动跳转到根目录,看了好几天没有找到问题原因在哪儿,遇到这种问题我们通常应该怎么去分析? ![image.png](https://static.studygolang.com/180430/f80c3b30f9eefb723461fbc58fa05ffc.png) ![image.png](https://static.studygolang.com/180430/8208f51879a7816be5070acb9557f5d9.png) ...阅读全文

Golang分布式ID生成服务

周末花了一晚上的时间,用Go写了一个ID生成服务,Github地址:go-id-alloc。 分布式ID生成,就我来看主要是2个流派,各有利弊,没有完美的实现。 1,snowflake流派。 它用于twitter的微博ID,因为是timeline按发布时间排序,所以这个算法是用毫秒时间戳作为ID的左半部,从而可以实现按时间有序。 像新浪微博也是在使用类似的ID生成算法,snowflake的好处是去中心化,但是依赖时钟的准确性,最差的情况是时钟发生了回退,那么ID就会重复;而如果不开启NTP同步时钟,那么不同节点分配的时间不同,也会影响feed流的排序,所以在我看来只能说基本可用,一旦时钟回退比较大的区间,服务是完全不可用的。美团在这方面做了一些工作,主要还是在发现回退以及报警方面的事情,可以...阅读全文

博文 2017-11-22 02:29:32 鱼儿的博客

go get golang.org/x/text 问题

首先在你的项目路径src里新建golang.org/x文件目录,如果有就不用了 目录 打开cmd,输入git clone https://github.com/golang/text.git,clone在golang.org/x目录下,或者可以到https://github.com/golang/text 下载压缩包,放到golang.org/x目录解压 在src目录下,go install -x golang.org/x/text,会在pkg目录下生成一个text.a的包文件,就成功,可以import...阅读全文

博文 2019-07-12 09:32:42 努力的夏目_1bbc

Go语言自学笔记

package main import ( "fmt" ) func main() { ch := make(chan int) /* 下面2行不能互换,主程序顺序执行,若先遇到 ch<-2,则在此阻塞了。程序不会向下执行 */ go f1(ch) //开启一个协程 ch <- 2 //向channel中传送数据 } func f1(ch chan int) { fmt.Println(<-ch) //输出数据 } 如果容量大于 0,通道就是异步的了:缓冲满载(发送)或变空(接收)之前通信不会阻塞,元素会按照发送的顺序被接收。如果容量是0或者未设置,通信仅在收发双方准备好的情况下才可以成功。 要在首要位置使用无缓冲通道来设计算法,只在不确定的情况下使用缓冲。 package main imp...阅读全文

博文 2016-11-13 01:00:00 wthfeng

MyBatis 为什么需要通用 Mapper ?

MyBatis 为什么需要通用 Mapper ? 在早期项目文档中有过类似主题的内容,但是最近我自己看文档的时候发现一个问题,文档虽然很详细,但是并不适合初次接触的人。为了方便第一次听说,第一次尝试的开发人员了解通用 Mapper,补充此文档。 一、通用 Mapper 的用途 ? 我个人最早用 MyBatis 时,先是完全手写,然后用上了 MyBatis 代码生成器(简称为 MBG) ,在使用 MBG 过程中,发现一个很麻烦的问题,如果数据库字段变化很频繁,就需要反复重新生成代码,并且由于 MBG 覆盖生成代码和追加方式生成 XML,导致每次重新生成都需要大量的比对修改。除了这个问题外,还有一个问题,仅仅基础的增删改查等方法,就已经产生了大量的 XML 内容,还没有添加一个自己手写的方法,代...阅读全文

博文 2018-10-15 13:44:39 Enjoyjava

使用golang在与数据库访问过程中的一点想法

遇到的问题 golang对于基本类型初始化的处理,是自动给基本类型赋值为默认值。比如: var i int//在这里如果不对i做任何赋值,那么i的值为零 这个特性在很多地方能够避免访问到未初始化变量的尴尬,但是由此也引出了另外一个问题,就是在进行数据库访问操作时应该如果对待这样的默认值。 现在我们假设一个场景,表A有3个字段{AID int,AField1 string,AField2 string},表B也有3个字段{ID int,BField1 string,REF_AID int},其中表B中的REF_AID是外键对应表A中的AID。对应在GO中的数据结构应该为: type A struct{ AID int//主键 AField1 string AField2 string } ty...阅读全文

博文 2017-02-09 13:22:52 derek_334892

26.笔记go语言——beedb库使用

26.笔记go语言——beedb库使用 beedb是一个Go进行ORM操作的库,它采用了Go style方式对数据库进行操作,实现了struct到数据表记录的映射。是一个十分轻量级的Go ORM框架,本意降低复杂的ORM学习曲线,尽可能在ORM的运行效率和功能之间寻求一个平衡. 安装 支持go get方式安装,是完全按照Go Style的方式来实现的。 命令行执行:go get github.com/astaxie/beedb 需要import相应的数据库驱动包、database/sql标准接口包以及beedb包 import ( "database/sql" "github.com/astaxie/beedb" _"github.com/ziutek/mymysql/godrv" ) 初始...阅读全文

博文 2017-11-28 12:01:02 notbaron

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

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

博文 2019-09-12 11:22:51 Ksloveyuan

Docker技术原理之Linux UnionFS(容器镜像)

0.前言 前面我们讨论了Docker容器实现隔离和资源限制用到的技术Linux namespace 、Linux CGroups,本篇我们来讨论Docker容器镜像用到的技术UnionFS。 1.关于UnionFS 1)什么是UnionFS 联合文件系统(Union File System):2004年由纽约州立大学石溪分校开发,它可以把多个目录(也叫分支)内容联合挂载到同一个目录下,而目录的物理位置是分开的。UnionFS允许只读和可读写目录并存,就是说可同时删除和增加内容。UnionFS应用的地方很多,比如在多个磁盘分区上合并不同文件系统的主目录,或把几张CD光盘合并成一个统一的光盘目录(归档)。另外,具有写时复制(copy-on-write)功能UnionFS可以把只读和可读写文件系统...阅读全文

博文 2018-09-20 15:34:46 _一叶_

Go lang concurrency: select with channels

package main import "fmt" func fibonacci(c, quit chan int) { x, y := 0, 1 for { select { case c <- x: x, y = y, x+y case <-quit: fmt.Println("quit") return } } } func main() { c := make(chan int) quit := make(chan int) go func() { for i := 0; i < 10; i++ { fmt.Println(<-c) } quit <- 0 }() fibonacci(c, quit) } 在go routine中不断从c中读取十次数据,由于c一开始是空的,必然阻塞在...阅读全文

博文 2015-06-18 09:09:11 resouer

正确理解GOPATH/GOROOT

**一 GOROOT就是go的安装路径** 对于linux系统而言,go语言一般安装在/usr/local目录下,所以GOROOT一般设置为/usr/local/go **二 GOPATH是作为编译后二进制的存放目的地和import包时候的搜索路径** 1 GOPATH之下主要包含三个目录:bin/pkg/src 2 bin目录主要存放可执行文件 pkg目录主要存放编译好的库文件,主要是*.a文件 src目录主要存放go的源文件 3 GOPATH设定为你的工作目录,比如我在主目录下新建一个工作目录workspace,GOPATH就设定为~/workspac...阅读全文

go语言的安装和配置,以及包引用

1.下载和安装 首先大家可以去官网下载 http://golang.org/dl/ 如果官网你看不懂的话,可以到这里下载: http://golangtc.com/download ,这里也提供了百度云的下载地址: 如果下载msi文件还需要进一步安装,安装过程也非常简单; 如果下载zip文件,直接解压了就可以用了。 2.配置 打开环境变量 然后, 紧接着编辑Path 打开cmd命令行,输入:go 如果显示 就表示成功了。 然后就可以编程了,咱们来写个“Hello world”: 我用的是Sublime Text 编译器, 然后运行: 或者 很好,我们成功的输出了Hello world! 3.包引用(下面内容来源于:http://www.cnblogs.com/sunshiming/p/492...阅读全文

博文 2016-10-05 03:00:02 sangjinchao

GO语言的环境配置

楼主为Mac版本 1. 下载GO 下载地址:http://www.golangtc.com/download  2. 配置环境变量 vim ~/.bash_profile # go的官方目录 export GOROOT=/usr/local/go # go的公共下载目录 export GOPATH=/opt/gopath source ~/.bash_profile 3.Idea 1.下载go插件 参考地址:http://jingyan.baidu.com/article/f25ef25446109c482c1b821d.html 点击 Preferences  搜索:Plugins, 点击红色位置:Browse repositories  在“Manage Repository”对话...阅读全文

博文 2016-12-01 05:00:02 江中炼

阿里云RDC自动化测试和持续集成服务上线

一、前言 在大数据推动行业发展的年代,大型企业级应用往往选择多种数据库产品,分别支持在线交易、报表生成、日志存储、离线分析等,用以驱动业务的高速发展,但这种组合式解决方案,需要精细的控制不同产品间的数据流转和一致性问题,使用难度颇高,每个数据库产品间的数据同步和冗余,也带来了很高的成本开销,进一步限制了企业级应用的发展。 近年来Gartner提出了HTAP数据库概念,一个数据库既能支持OLTP(在线事务处理),又能支持OLAP(在线分析处理),涵盖大部分企业级应用的需求,一站解决这些问题。数据库云服务供应厂商,纷纷响应支持,企业级应用案例也如雨后春笋般涌现。 HTAP数据库在架构上做了哪些创新,解决了哪些关键问题?又能为企业级应用降低哪些应用难度,减少...阅读全文

时序数据库 InfluxDB(一)

相关文章:时序数据库 InfluxDB(一)时序数据库 InfluxDB(二)时序数据库 InfluxDB(三)时序数据库 InfluxDB(四)时序数据库 InfluxDB(五)时序数据库 InfluxDB(六) 数据库种类有很多,比如传统的关系型数据库 RDBMS( 如 MySQL ),NoSQL 数据库( 如 MongoDB ),Key-Value 类型( 如 redis ),Wide column 类型( 如 HBase )等等等等,当然还有本系列文章将会介绍的时序数据库 TSDB( 如 InfluxDB )。 时序数据库 TSDB 不同的数据库针对的应用场景有不同的偏重。TSDB( time series database )时序数据库是专门以时间维度进行设计和优化的。 TSDB ...阅读全文

博文 2019-10-26 10:32:41 rife

golang 走起(八) 目录结构

golang 走起(八) 目录结构 go项目的目录结构 以下都是文件夹的名字 project | —- src | | —- test1 | | | —- test1ha.go:package test1 | | —- test2 | | | —- test2ha_linux.go:package test2 | | | —- test2ha_windows.go:package test2 | —- test3:package main | | —- test3ha.go:package main | —- test.go:package main 从上可以看到每个.go文件对应的目录结构和package的名字 import和调用时,要把对应的package名字加上,出来package m...阅读全文

博文 2016-04-21 14:00:01 zjp114695092

golang之mysql操作-GORM

GORM中文文档 读者可以直接看文档,本文只是从文档记录个人常用的一些操作。 1.安装 go get -u github.com/jinzhu/gorm 2.使用 官方一个快速入门的例子 package main import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" ) type Product struct { gorm.Model //嵌入常用字段 Code string Price uint } func main() { db, err := gorm.Open("mysql", "root:@(localhost:3306)/golang_mysql") if err != nil {...阅读全文

博文 2019-10-18 12:32:49 aside section ._1OhGeD

想获取唯一ID?常见发号器、ID分配器方案对比介绍

发号器应具有的特性: 发号器作为一个独立的系统对外提供服务、满足高可用、高并发、弱依赖、不存在单点问题 服务自我监控与治理 现有系统接入成本低 ID具有唯一性:不能出现重复的ID号 趋势递增 实现方案目前常见的发号器实现方案如下1.UUID UUID(Universally Unique Identifier)的标准型式包含32个16进制数字,以连字号分为五段,形式为8-4-4-4-12的36个字符,示例:550e8400-e29b-41d4-a716-446655440000。 优点: 性能非常高:本地生成,没有网络消耗。 缺点: 不易于存储:UUID太长,16字节128位,通常以36长度的字符串表示,很多场景不适用。 信息不安全:基于MAC地址生成UUID的算法可能会造成MAC地址泄露,...阅读全文

博文 2020-04-14 17:33:39 Charles_Wong