go 代码依赖管理工具mod使用

什么是go mod Go.mod是Golang1.11版本新引入的官方包管理工具用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。类似于php的composer,java的maven; Go.mod其实就是一个Modules,关于Modules的官方定义为: Modules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性。Modules替换旧的基于GOPATH的方法,来指定使用哪些源文件。 Modules和传统的...阅读全文

关于 Python_你一定没读过的8个技巧

介绍 Python 功能和小技巧的文章网上有无数篇,比如变量解压缩,partial 偏函数,枚举可迭代对象... 但关于 Python 我们能说的还有很多。所以今天我将向大家展示一些我知道和有使用过的特性,这些特性在其它文章或博客中很少被提及:### 消毒字符串输入对用户输入内容进行消毒几乎适用于你写的每一个程序。通常来说转换字符大小写的操作就足够了,有时候用 Regex 正则表达式就能完成,但对于比较复杂的情况,我们有更好的办法:```user_input = "This\nstring ha...阅读全文

简书 2019-12-14 19:32:40 是程序员吖

第二十七章:Go语言与RPC

1. RPC 概述 RPC 是Remote Procedure Call Protocol 的简写,其中文意思是远程过程调用协议 ,就是通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC将本地调用变为远程服务器上调用,这为系统处理能力和吞吐量带来了更大的提升,在OSI网络通信模型中RPC跨越了传输层和应用层. 我们通俗的理解就是像调用本地函数一样区调用远程的函数,实现函数调用模式的网络化.那么这个远程到底是多远,既可以是物理上的远程也可以是逻辑上的远程. 因为PRC的这种...阅读全文

简书 2019-12-14 19:32:40 captain89

golang goroutine

package main import ( "fmt" "sync" "time" ) /* WaitGroup用于等待一组线程的结束。父线程调用Add方法来设定应等待的线程的数量。每个被等待的线程在结束时应调用Done方法。 同时,主线程里可以调用Wait方法阻塞至所有线程结束。 */ var wg sync.WaitGroup func test(i int){ fmt.Println("test func...", i) time.Sleep(time.Second) // 表示gorou...阅读全文

简书 2019-12-14 13:32:41 就超棒

Go教程第八篇:Array和Slice

Array和Slice 欢迎来到《Golang系列教程》的第八篇,在这篇教程中,我们将处理Go中的Array和Slice。 Array 数组是同一类型的元素的集合,比如,5,8,9,79,76是一组整型,他们就可以组成一个数组。在Go中不同类型的值不允许放入到同一个数组中。 数组声明 数组声明: [n]T n表明了数组元素的个数,T表明的是元素的数据类型。另外,元素个数n也是类型的一部分(这点我们会在稍后讲解)。Go提供了多种声明数组的方式,我们来一个个看下。 package main impo...阅读全文

简书 2019-12-14 13:32:40 Tesfaye

Go 语言圣经-习题汇总(Go 程序设计语言/The Go Programming Language)

本文针对 Go 语言圣经 - 《Go 程序设计语言/The Go Programming Language》的所有习题进行筛选去重后,选取了一些比较典型的案例(80%以上)进行解析解答,分为两个版本,分别适合有原书和没有原书的童鞋进行学习巩固,本文将持续更新。 原书版 第一章:入门 1.1:修改 echo 程序输出 os.Args[0],即命令的名称。 1.2:修改 echo 程序,输出参数的索引和值,每行一个。 1.3:尝试测量可能低效的程序和使用 strings.Join 的程序在执行时间上...阅读全文

Segmentfault 2019-12-14 21:32:41 shadows

云原生的不同解释及正确含义

云原生的解释可以说五花八门,本文从不同角度探讨云原生的内涵以及如何从不同维度准确理解它的含义。 云原生起源 网上有些文章提到云原生是“Pivotal公司的Matt Stine于2013年首次提出云原生(CloudNative)的概念”。我搜索了英文“CloudNative”,阅读了首页的所有文章,里面没有一篇提到“Matt Stine首次提出云原生”,但它们每一篇都提到了“云原生计算基金会”的定义。“Matt Stine”确实写了一本书,叫《迁移到云原生架构》,他以前确实在Pivotal公司工作...阅读全文

Segmentfault 2019-12-14 21:32:41 倚天码农

【go语言系统调用】通用IO模型

所有执行I/O操作的系统调用,都使用一个非负整数(文件描述符)来描述打开的文件(文件、管道、socket、终端、设备)。 常见的3种文件描述符: 文件描述符 用途 POSIX名称 stdio流 0 标准输入 STDIN_FILENO stdin 1 标准输出 STDOUT_FILENO stdout 2 标准错误 STDERR_FILENO stderr 通用IO模型的4个系统调用 下面的四个系统调用为c语言的形式 fd = open(pathname, flags, mode):pathnam...阅读全文

Segmentfault 2019-12-14 21:32:40 geange

一行命令实现mysql转go struct

Githubd地址 中文文档 | DOCUMENT okcli 可以将指定数据表生成为对应的model文件,目前支持将列名、数据类型、默认值、注释带入指定model中,就像如下文件: import "time" type ( Student struct { Id int32 `db:"id"` Name string `db:"name"` // the student's name Gender int8 `db:"gender"` // the student's gender,0-mal...阅读全文

Segmentfault 2019-12-14 21:32:38 Keson

golang应用快速搭建框架jotnar

jotnar 是一个golang项目快速搭建的框架,它本身是集成其它常用的框架,以达到快速开发的目的 Github项目地址 安装 go get -u github.com/paulyung541/jotnar 初始化 项目里经常会使用命令行来初始化,或者是使用配置文件。我们每新开一些项目,都会用到这些基础的功能,但是每次都去写,难免会枯燥,也不利于项目集成。使用jotnar则将这些烦琐的操作集成进来,能够非常快速地搭建一个项目 配置初始化 将命令行传参或者配置文件的设置加载到内存中,并在任何地方...阅读全文

Segmentfault 2019-12-14 21:32:38 Paul

golang mail 实现ssl发送邮件

由于我们使用的阿里云服务器不能telnet 25端口,发送ssl时候感觉很蹩脚,就自己写了一个go mail 发送1、文档结构2、main.go// main.go package main import ( "flag" "fmt" "io/ioutil" "log" "net/smtp" "os" "sslmail/mymail" "strings" ) func SendMail(fromuser, password, subject, host, port, bodyfile, body...阅读全文

51CTO博客 2019-12-13 10:58:40 xingzhehxiang

Go Web 编程之 程序结构

概述 一个典型的 Go Web 程序结构如下,摘自《Go Web 编程》: 客户端发送请求; 服务器中的多路复用器收到请求; 多路复用器根据请求的 URL 找到注册的处理器,将请求交由处理器处理; 处理器执行程序逻辑,必要时与数据库进行交互,得到处理结果; 处理器调用模板引擎将指定的模板和上一步得到的结果渲染成客户端可识别的数据格式(通常是 HTML); 最后将数据通过响应返回给客户端; 客户端拿到数据,执行对应的操作,如渲染出来呈现给用户。 本文介绍如何创建多路复用器,如何注册处理器,最后再简...阅读全文

掘金 2019年12月13日 darjun

Go Web 编程之 程序结构

概述 一个典型的 Go Web 程序结构如下,摘自《Go Web 编程》: 客户端发送请求; 服务器中的多路复用器收到请求; 多路复用器根据请求的 URL 找到注册的处理器,将请求交由处理器处理; 处理器执行程序逻辑,必要时与数据库进行交互,得到处理结果; 处理器调用模板引擎将指定的模板和上一步得到的结果渲染成客户端可识别的数据格式(通常是 HTML); 最后将数据通过响应返回给客户端; 客户端拿到数据,执行对应的操作,如渲染出来呈现给用户。 本文介绍如何创建多路复用器,如何注册处理器,最后再简...阅读全文

Segmentfault 2019-12-14 21:32:40 darjun

新一代供应链电商系统 Beahu SCM 重磅上线

什么是供应链 百度百科告诉我:“围绕核心企业,通过对信息流,物流,资金流的控制,从采购原材料开始,制成中间产品及最终产品,最后由销售网络把产品送到消费者手中。它是将供应商,制造商,分销商,零售商,直到最终用户连成一个整体的功能网链模式”。 简单的说,就是物品从[供应方]到[销售方]到[需求方]的过程。当然,这个过程中牵涉到很多角色,这些角色相互联系,组成了复杂的网状模式。一个企业可能同时担当供应方和销售方里面的多个角色,这样供应链的链条将会被缩短。物流,从[供应方]到[需求方];资金流从[需求方...阅读全文

简书 2019-12-13 21:32:44 成都光大网络

Golang关于匿名结构体的一些总结

我们的故事的主人公是一个刚毕业的大学生小明: type User struct { RealName string Age int } user := User{RealName:"小明",Age:21} 25岁的时候他有了一辆车,于是我们为他定义一个车子的结构体: type Cart struct{ Brand string Price float64 } type User struct { RealName string Age int Cart Cart } cart := Cart{B...阅读全文

简书 2019-12-13 21:32:42 游天小虾

如何搭建一个数字货币交易所?

如果从0开始去搭建一个数字货币交易所,会涉及到方方面面很多因素,我们从中梳理出其中的四大关键要素:核心技术、安全、全球合规、流动性。我们目前手上有一套完整的源码,包含前后端,线上稳定运行2年以上,持续优化中 1、后台管理系统是 php 开发 2、交易所主程序是:采用 golang 开发,框架采用的是 Golang gin web3、前端框架:vue4、撮合引擎:viabtc,撮合性能 10000+tps5、已完成主流币种的对接工作6、钱包是冷热分离的,20%资金是在热钱包,80%资金在冷钱包7、...阅读全文

简书 2019-12-13 21:32:41 报告大师

使用docker构建vim-golang开发环境

使用docker构建vim-golang开发环境 原理 docker可以构建一个属于自己的开发环境容器,需要使用时,下载镜像,开箱即用,避免每次都搭建开发环境,浪费不少的时间。 路线图Road Map vim-golang 开发环境 spacemacs Org-mode --放弃,鸡肋 目的(抓住主要矛盾,围绕目标来展开工作) 搭建基于Docker的开箱即用的,工作和开发环境 支持golang开发 支持TypeScript的开发 需要解决的问题 vim插件vim-airline,状态栏图标不显示...阅读全文

简书 2019-12-13 21:32:40 笑吧小鸟

GO 手机的学习项目

我收集的几个: 基于 BeeGo 的:: https://github.com/yuedun/metal (刚看了,还在持续更新) 基于 beego 开发的博客,管理后台系统,包含功能:登录,用户管理,权限管理,多线程获取数据,定时任务,爬虫,markdown,七牛上传图片。 https://github.com/mikezss/skl-go (也在更新中) skl api,企业级后台 API 开发平台。使用 beego 语言架构。开发平台内嵌了用户、用户组、机构、角色、权限、多语言、枚举、OA...阅读全文

简书 2019-12-13 21:32:40 阿布多12

golang interface:传指针还是对像

当定义了一个interface,传参时需要注意实现函数对interface的实现是基于指针的还是对像的。传参时需要与实现对应,否则会编译报错。 如下例Hello对Callback 的实现是基于指针的func (h *Hello) Myprint(str string) ,则在testCallback(&Hello{})时传的是指针;不能用testCallback(Hello{})。 如果改成func (h Hello) Myprint(str string),则可以用testCallback(H...阅读全文

简书 2019-12-13 21:32:40 孙敏刚