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

Go基本配置(2)

1.配置server信息 1.1添加用户 cd /etc/go htpasswd -c -s passwd user 该命令会在当前目录下创建passwd文件 在go的admin界面添加passwd file path: /etc/go/passwd 重启go-server 1.2 配置artifacts repo(存档文件)路径 方法一:在GUI界面切换到admin导航栏,修改artitacts路径 方法二:在configure XML中修改 ... 注意,路径修改以后需要重启才能生效。 正确的修改步骤:先等job都comepl...阅读全文

博文 2015-03-05 17:00:00 biheyu

Swoole HTTP Server

目标 了解swoole的http_server的使用 了解swoole的tcp服务开发 实际项目中问题如粘包处理、代理热更新、用户验证等。 swoole与现有框架结合 风格 偏基础重代码 环境 PHP版本: Swoole版本:https://github.com/swoole/swoole-src zphp开发框架:https://github.com/shenzhe/zphp HTTP Server 静态文件处理 动态请求与框架结合 # 查看SWOOLE版本 $ php -r 'echo SWOOLE_VERSION;' 4.3.1 基础概念 CGI CGI(Common Gateway Interface, 通用网关接口)是HTTP服务器和一个独立的进程之间的协议,它把HTTP请求Req...阅读全文

博文 2019-04-06 01:34:39 JunChow520

golang ubuntu开发环境

下载解压: 设置环境变量:vim .profile 运行 设置VIM环境,查看在go目录下misc/vim/readme.txt 1 mkdir -p $HOME/.vim/ftdetect 2 mkdir -p $HOME/.vim/syntax 3 mkdir -p $HOME/.vim/autoload/go 4 ln -s $GOROOT/misc/vim/ftdetect/gofiletype.vim $HOME/.vim/ftdetect/ 5 ln -s $GOROOT/misc/vim/syntax/go.vim $HOME/.vim/syntax 6 ln -s $GOROOT/misc/vim/autoload/go/complete.vim $HOME/.vim/aut...阅读全文

博文 2014-10-04 19:26:09 atyou

CentOS 6.5环境下编译安装go-ethereum

安装go wget https://studygolang.com/dl/golang/go1.9.linux-amd64.tar.gz --no-check-certificate tar -zxvf go1.9.linux-amd64.tar.gz mv go /usr/local/ echo "export GOROOT=/usr/local/go" >> /etc/profile echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile source /etc/profile 升级git yum remove git yum install zlib-devel yum install perl-ExtUtils-CBuil...阅读全文

博文 2017-09-01 07:34:56 莫名FCJ

linux常用命令面试(1)

1 创建目录/data/oldboy,并且在该目录下创建文件oldboy.txt,然后在文件oldbot.txt里写入内容“inet addr:10.0.0.8 Bcast:10.0.0.225 Mask:255.255.255.0”不包含引号 方法一 [root@zxc /]# mkdir /data/oldboy -p [root@zxc /]# cd /data/oldboy/ [root@zxc oldboy]# touch oldboy.txt [root@zxc oldboy]# vim oldboy.txt innetaddr 10.0.0.8 Bcaxt 10.0.0.225 Mask 255.255.255.0 [ro...阅读全文

GOLANG 在 UBUNTU 14.04 上使用 Oracle 数据库

本文参考了以下地址的文章: https://github.com/Centny/Centny/blob/master/Articles/How%20build%20github.com%3amattn%3ago-oci8.md​ 一、安装oracle的OCI套件 1、OCI下载链接页面下载(instantclient-basic,instantclient-sdk) http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 2、解压缩到同一个目录下,比如:instantclient_12_1 3、root权限移动文件夹到目录 /usr/lib 下 2、root权限执行以下命 ##​...阅读全文

博文 2015-06-17 20:15:59 guo_rui22

关于使用go get安装go-echo时的一些问题

安装时显示下列问题请大神帮忙看一看 怎样解决 ```bash G:\GO\go\src\project>go get github.com/labstack/echo/... # cd C:\Users\Administrator\go\src\github.com\labstack\gommon; git pull --ff-only fatal: No remote repository specified. Please, specify either a URL or a remote name from which new revisions should be fetched. package github.com/labstack/gommon/color: ...阅读全文

golang+litide+ubuntu环境配置

1、下载软件包 推荐网址http://www.golangtc.com/(golang中国),下载速度比较快。 我下载的包 golang IDE : liteidex27.2.1.linux-64-qt4.tar.bz2 golang : go1.4.2.linux-amd64.tar.gz 根据自己需要下载。 2、解压软件包 tar -jxvf liteidex27.2.1.linux-64-qt4.tar.bz2 -C /usr/local tar -jxvg go1.4.2.linux-amd64.tar.gz -C /usr/local 注:-C指定解压目录 3、配置环境变量 修改/etc/profile文件 $sudo vim /etc/profile 添加内容如下: #go co...阅读全文

博文 2015-11-11 20:00:01 mxg1991

Swoole 4.0 正式版,面向生产环境的 PHP 协程引擎

Swoole虽然在2016年就支持了协程特性,但由于底层是基于setjmp/longjmp实现的stackless方案。因此在某些场景下,如call_user_func、array_map、__destruct中无法使用协程。大型应用程序中逻辑非常复杂,多人协作的团队中,开发者很容易踩到坑。在禁止场景中使用协程API会出现各种莫名其妙的问题发生。限制了协程的应用范围。 新版本4.0基于boost.context 1.60汇编代码实现了全新的协程内核。在保存PHP函数调用栈的基础上,增加了C栈的上下文存储。实现了对所有PHP语法的支持。现在在任意PHP的函数,包括call_user_func、反射、魔术方法、array_map中均可使用协程。 现在可以在PHP代码中任意位置使用协程,开发者不再...阅读全文

博文 2018-06-14 18:34:37 韩天峰

[UMU 学 golang](3) TCP Echo Server

测试需要,以前用 C + libevent 写了一个 TCP Echo Server,返回服务器时间、客户端地址信息和客户端发送的原内容。为了水一篇,现在改为 golang 实现。 package main import ( "fmt" "io" "net" "os" "time" ) const BUFFER_SIZE = 1024 * 4 var buffer = make([]byte, BUFFER_SIZE) func handleConnect(tcpConn *net.TCPConn) { if tcpConn == nil { return } for { n, err := tcpConn.Read(buffer) if err == io.EOF { fmt.Printf...阅读全文

博文 2015-09-22 16:00:02 UMU

Function call by name in Golang

The golang’s function is a code block like C’s, but it can also be assigned to a variable as its other types. If you are not familiar with the function, Codewalk: First-Class Functions in Go should be a good starting point for you. Already known it? Let’s go on. First of all, look at this PHP codes: function foobar() { echo "Hello Golang\n"; } $fun...阅读全文

博文 2014-10-09 16:17:16 mikespook

golang项目结构日记

最近再玩golang,在研究如何导入自己的模块的时候很是头疼。基本golang槽糕的设计——project既要设置$GOPATH又对项目结构有一定的要求(缺少一定的自由)(当然golang糟糕的设计远不止这方面,越是深入了解越是讨厌)。google好久才知道如何配置。网上blog里要么是同一篇文章各种转载(他喵的还不注明),要么不够清晰,各种尝试后终于成功,记录如下: 进入终端输入命令 mkdir -p goproject/src/goproject cd goproject touch install cd src/goproject touch main.go cd .. mkdir test cd test && touch test.go 此时cd 到goproject应该是如下: ...阅读全文

博文 2016-07-16 02:00:01 danny_amos

google go 安装经历

参考 http://golang.org/doc/install.html 参考google官方文档,并结合自己的经历,算是一半翻译,一般原创把,其中有许多不懂的地方,请高手指点 1, 设置环境变量 $GOROOT :go的根目录,一般设为$HOME/go,也可设为其他目录 $GOOS :目标操作系统目前他的选项有linux, darwin (注:Mac OS X 10.5 or 10.6)和nacl (注:Native Client, an incomplete port) $GOARCH :目标编译架构,他的选项有amd64 (64位 x86或amd64),386 (32位 x86或amd32), 和 arm (32位 ARM平台) $GOBIN(可选的):二进制代码存放的地方,如果你指...阅读全文

博文 2014-10-04 19:26:26 chengxuan

TODO:Golang Linux进程退出说明

TODO:Golang Linux进程退出说明 Golang使用os.Exit(code)进程退出导致当前程序退出并返回给定的状态代码。传统上,code代码为零表示成功退出,非零错误退出。 syscall.Exit可以调用不同平台的操作系统的退出。 code值为0-255,当code为非0时,os.Exit(code)会返回,对应值当状态码 exit status 128 当code为0,则正常退出。code值可自定义对应当意义进行相应业务场景使用。code的值在自然数是按从0至255的倍数进行循环,例如自然数为256,在进程退出的时候返回的是0;256-511==》code值为0-255,负数也是一样,-256到-1==》0-255。 退出码是使用情景,在linux下使用得淋漓尽致 0 命...阅读全文

博文 2016-11-15 16:00:07 一个TODO

Linux 下 Go 环境搭建以及 Gin 安装

专栏地址:技术专栏 在 https://golang.org/dl/ 下载 Go 安装包。 将安装包解压: tar -C /usr/local -xzf go1.11.4.linux-amd64.tar.gz 修改环境变量: export PATH=$PATH:/usr/local/go/bin 此时,Go 就已经安装好了,来验证一下: [root@7a7120c97a4f go]# go version go version go1.11.4 linux/amd64 接下来新建一个名为 test 的项目,目录结构如下: test/ |-- install.sh `-- src/ install.sh 文件内容如下: #!/usr/bin/env bash if [ ! -f install...阅读全文

博文 2019-01-07 19:34:45 yongxinz

PHP & Golang 函数多值返回比较

之前(由于太鸡冻而写的心得记录,《看了Go Lang 的一点介绍, 我心动了》),当时被Go语言的多值返回的便利性感动到流涕,因为这个特性确实给予了我们太多的方便和实惠,所以说Go语言是如此的紧贴工程实践呢。而PHP虽然在语言上并没有直接支持多只返回,但是却提供了一个语言结构这样的奇葩存在来赋值。 在php中,类似的语法需要 array配合 list 这个语言结构来实现。 点击这里查看官方手册对list 的用法说明。 官方是这样描述list的用途的: array list ( mixed $varname [, mixed $... ] ) <像 array() 一样,这不是真正的函数,而是语言结构。list() 用一步操作给一组变量进行赋值。 废话不多说,举个栗子: 阅读全文

博文 2015-05-12 21:00:01 LXRM

使用 JSON 协议的 gRPC

JSON payload 实现简易的请求和响应的内省。 ## 介绍 大家经常说 gRPC 是基于 [Google Protocol Buffers](https://developers.google.com/protocol-buffers/) payload 格式的,然而这不完全正确。gRPC payload 的*默认*格式是 Protobuf,但是 gRPC-Go 的实现中也对外暴露了 `Codec` [interface](https://godoc.org/google.golang.org/grpc/encoding#Codec) ,它支持任意的 payload 编码。我们可以使用任何一种格式,包括你自己定义的二进制格式、[flatbuffers](https://grpc.io...阅读全文

博文 2020-03-12 22:06:46 lxbwolf

高性能NoSql数据库 SSDB

今天在看一个开源项目的时候,发现作者使用一个ssdb的数据库,第一反应是ssd硬盘,当时很诧异。后面了解后才知道,原来是 nosql数据库。 ssdb介绍 一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis. SSDB 是一个 C/C++ 语言开发的高性能 NoSQL 数据库, 支持 KV, list, map(hash), zset(sorted set) 等数据结构, 用来替代或者与 Redis 配合存储十亿级别列表的数据.SSDB 具有和 Redis 相似的 API, 持的客户端包括: PHP, C++, Python, Java, Lua, Ruby, Nodejs, etc. SSDB 是稳定的, 生产环境使用的, 已经在许多互联网公司得到广泛使用, 如奇虎...阅读全文

博文 2017-09-21 17:34:52 若与

## bufio.NewScanner的使用问题

最近开始学习golang,发现确实很给力,写了一个回射服务器代码,了解到可以阻塞读数据,也可以借助bufio中的**NewScanner**,我理解这是一个扫描器,用法也大概研究了一下,结果写完代码在linux上没有问题,运行正常,在windows却不能收到客户端数据,希望高手指点一二! 服务器启动后,通过客户端测试,效果如下: ![image.png](https://static.studygolang.com/171230/c99e4436e4d981a9504b1db8ec1d1926.png) 源代码如下: ``` go //回响服务器 package main import ( "time" "fmt" "log" "net" "bufio"/...阅读全文

golang实现ping命令

// Copyright 2009 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file. // taken from http://golang.org/src/pkg/net/ipraw_test.go package ping import ( "bytes" "errors" "net" "os" "time") const ( icmpv4EchoRequest = 8 icmpv4EchoReply = 0 icmpv6EchoRequest = 128 icm...阅读全文

博文 2016-09-09 18:00:01 zolo

如何用Go构建Go

这篇文章基于2013年4月中旬我给悉尼Go用户组分享中描述Go构建的部分。 在邮件组和IRC频道中,经常有人询问有关 Go编译器,运行时和内部实现的文档。目前关于 Go内部实现权威的文档就是源代码,我鼓励大家都去看源代码。之前已经说过,自从 Go1.0发布之后,Go构建的过程已经固定下来,所以这篇文章很可能维持一段时间。 这篇文章从源代码开始,到充分测试的 Go安装过程结束,讲述了Go构建过程的九个步骤。为简单起见,所有这里提到的路径都相对于签出源代码的根目录 , $GOROOT/src 。 至于背景知识要求,你应该读读 golang.org上面的从源代码安装Go。 第一步, all.bash % cd $GOROOT/src % ./all.bash 第一步有点虎头蛇尾,因为 all.ba...阅读全文

博文 2014-10-22 19:15:22 Codefor

golang构建项目的脚本

说来有些悲哀,最近升级了VSCode,golang插件居然无法使用了,一直无法使用,配置了大半天,还是不行,只能提交了反馈,希望能够得到回复吧。不过突然想到一个方法,就是编写脚本,然后在本地运行,虽然不能调试,但是可以运行,速度也还可以 运行报的错误 接下来,先简单说明一下VSCode如何配置任务吧 VSCode配置任务 配置任务 具体配置,请查看 https://go.microsoft.com/fwlink/?LinkId=733558 运行任务用 Shift+Command+B, windows使用 Shift+Ctrl+B 控制台输出 配置解释: "tasks": [ { "label": "任务名称", "type": "shell", //类型 脚本一般用shell "comma...阅读全文

博文 2018-11-26 17:34:45 陨石坠灭

PHP To Go 转型手记 (一)

前言 作为一名PHP程序员,我感到荣幸。但在时代不断的变迁中,要具备足够的知识才可生存。 那就从Go语言学起把。不知为什么,总感觉PHP与Go有很多相似之处。 希望看到本篇文章的你可以对Go有一个基本的认识。本系列文章与我自己学习Go语言的方式去描述。以PHP代码与Go代码的对比加以区分理解。 变量 PHP // 初始化变量 $domain = "blog.fastrun.cn"; // 批量赋值 $domain = $domain1 = $domain2 = "blog.fastrun.cn"; Go // 初始化变量 var domain string = "blog.fastrun.cn" // 批量赋值 var domain,domain1,domain2 string = "blo...阅读全文

博文 2018-10-27 17:34:40 CrazyCodes

How Go uses Go to build itself

This post is based on a talk I gave to the Sydney Go users group in mid April 2013 describing the Go build process. Frequently on mailing list or IRC channel there are requests for documentation on the details of the Go compiler, runtime and internals. Currently the canonical source of documentation about Go’s internals is the source, which I encou...阅读全文

博文 2014-10-22 19:15:21 Dave Cheney

适合超新手看的telnet 小游戏《生命线》

在学习golang的这几天在玩一个手机游戏叫《生命线》,觉得挺有趣,想想能不能用golang 做一个小雏形出来。 顺便学习一下 golang对mysql的操作。 首先,进入mysql 操作 ``` #首先创建一个数据库 CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; #表结构是这样,像‘树’,当你做出选择的时候,就根据 left_event_id 查找下一个事件 CREATE TABLE `events` ( `event_id` INT(10) NOT NULL PRIMARY KEY auto_increment, `event_detail` VARCHAR(1000) NULL, `...阅读全文

博文 2017-12-01 07:54:11 golang_291

使用drone和gogs搭建自己的CI/CD系统

drone是一个基于容器的本地持续交付平台,和Jenkins是差不多的,然后配合轻量级的gogs来作为git管理,都是基于golang开发的很符合我的需求,我们来把它们结合作为一个完整的CI、CD平台。 首先我们要先安装docker,上次的篇幅我们已经说过了我就不赘述了。 需要的东西有:linux,docker,docker-compose,drone,gogs,git等。 安装gogs和drone 配合荣锋亮大哥的yml文件和docker-compose我们可以很容易安装他们: version: '3' services: drone-server: image: drone/drone:latest ports: - "8080:80" - 8843:443 - 9000 volumes...阅读全文

博文 2019-03-11 16:34:52 nagaame

部署go环境

1、go环境变量 GOROOT go在电脑中的安装位置 GOPATH go项目存放目录 GOBIN go编译的安装位置,默认为$GOROOT/bin 2、安装go mac 直接下载go的安装包下载地址,1.11进行安装 安装完成后,在终端验证是否安装成功. $~ go version go version go1.11 darwin/amd64 为了保证相关文件系统在任何位置都能使用,你还需要添加以下内容: $~ echo "export PATH=$PATH:$GOROOT/bin" > ~/.bash_profile $~ echo "export GOPATH=/Users/xxx/go" > ~/.bash_profile $~ echo "export PATH=$PATH:$GO...阅读全文

博文 2018-11-01 14:34:41 墨笔铃铛

求助一段 操作WMI代码

~~~ //这段网上复制来的 看起来有点像 估计改下可以实现我要的功能 不太看得懂 求助 希望帮改改下 //这个是一段 利用WMI获取当前Windows下进程的演示代码 //【如果可以 可以给个红包意思意思辛苦费嘻嘻!】 package main import ( "github.com/mattn/go-ole" "github.com/mattn/go-ole/oleutil" ) func main() { // init COM, oh yeah ole.CoInitialize(0) defer ole.CoUninitialize() unknown, _ := oleutil....阅读全文

Go 编程语言入门教程 (一)

Go 编程语言入门教程 原文:http://golang.org 翻译:刘金雨/刘云涛 http://www.log4think.com 目录 介绍 Hello, World 编译 Echo 数据类型 Types 分配 Allocation 常量 Constants I/O 包 Rotting cats 排序 打印输出 素数 Multiplexing 介绍 本文档是关于Go编程语言基础的一个介绍性的入门教程,偏向于熟悉C或C++的读者。本文并非一份语言的完整指南,如果需要的话,你应该去看看“语言规范”(language specification)。当读完本教程之后,你可能会希望继续看看“Effective Go”,这份文档更深入的挖掘如何使用G...阅读全文

博文 2014-10-16 23:00:01 passos

mongodb在linux下安装

mongodb linux 安装 下载 cd /usr/local/src wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.4.9.tgz tar -xzvf mongodb-linux-i686-2.4.9.tgz mv mongodb-linux-i686-2.4.9 ../mongodb chmod 755 /usr/local/mongodb/bin// -R ln -s /usr/local/mongodb/bin/mongo /usr/bin/mongo ln -s /usr/local/mongodb/bin/mongod /usr/bin/mongod 创建目录 创建一些数据库目录日志目录。 运行pid目录 ...阅读全文

博文 2015-05-11 20:00:00 houseme

[转载]Linux/Mac go版本升级

载原文 https://blog.csdn.net/pyufftj/article/details/89424716 卸载 $ sudo rm -rf /usr/local/go 下载 https://golang.org/dl/ 解压 版本号对应好自己下载的 $ sudo tar -C /usr/local -xzf /home/yourname/Downloads/go1.12.4.linux-amd64.tar.gz 也可以使用工具解压,生成一个go目录,将这个目录移动到/usr/local下面: sudo mv ~/Downloads/go /usr/local/ 验证生效 $ echo $PATH | grep "/usr/local/go/bin...阅读全文

博文 2019-09-25 00:32:51 aside section ._1OhGeD

20130103Windows下编译GO程序

今天试着编译了一下beego库,顺便学习了一下go的安装环境。 下解压包安装在d:目录下go目录,设置了 GOROOT=D:\go GOARCH=386 GOBIN=%GOROOT%\bin 在D:\go下创建目录project,然后创建工程HelloGO. HelloGO下目录结构为: HelloGO ----src ------HelloGO.go(是对beego的测试) -----pkg(可选) ----bin(说这个是可选项的,但是我不创建的时候生成会失败) -----make.bat(用来编译src下文件) 由于HelloGO.go是对beego的测试,内容如下: // HelloGo package main import ( "github.com/astaxie/beego"...阅读全文

博文 2014-10-11 23:00:04 fengbangyue

API 开发者必备工具--API 在线管理,模拟请求测试,生成文档工具之 Apizza

Apizza 是国内领先的在线API saas 管理平台,支持在线的API调试,接口管理,快速生成文档,项目管理以及分享。 Apizza (http://apizza.cc?f=go) 平台分为开发模式和浏览模板,开发模式只有用户自己可以打开,浏览模式是供其他人查看,测试使用。 平台支持标准的http协议请求,支持添加header,支持标准 json,xml,html,text四种返回格式, 自动格式化展示。平台做了许多体验优化,比如参数列表和url自动转换,...阅读全文

高效简单的 HTTP 缓存服务Pike-HTTPCache

**Pike:HTTP缓存服务,提供高效简单的HTTP缓存服务,类似于varnish但配置更简单。** Pike由最开始基于`fasthttp`,`fasthttp`的性能的确很高效,但该项目在2017年底之后就没有`commit`,提的`issue`也没有反馈,BUG只能自己修复,因此后续切换至`echo`。`echo`的大部分增强的功能都基本没使用到,自带的`http`已足够满足现有的业务场景,最终选择了直接使用自带的`http`,版本1.0.0也正式发布。 简洁的配置: 基于yaml的配置,简洁易懂 WEB管理后台,提供节点监控、系统性能、缓存清理功能 标准化的基于HTTP头Cache-Control缓存控制 压缩保存的响应数据,避免每次响应时重新压缩(如果客户端不支持压缩...阅读全文

开源项目 2018-07-17 08:30:01 网友

使用golang来设计我们的Ubuntu Scope

我们知道golang越来越被非常多的开发人员来开发应用。go语言也能够用于开发Ubuntu Scope。在今天的教程中。我们将具体介绍怎样使用go语言来开发我们的Scope。这对于非常多的不太熟悉C/C++的开发人员来说,无疑是一个福音。对我来说,这个语言也是比較新的。假设大家想学习golang的话,建议大家阅读“Go by Example”。 对于很多其它的关于Go Scope的开发。能够參阅文章“Go scopes development”。 IDE选择 因为一些原因,眼下我们的Ubuntu SDK并没有支持go语言的Scope的开发。可喜的是,我们能够使用Command Line来完毕我们的开发。俗话说。好镰不误砍柴功。一个好的工具无疑能帮我们更快更好地开发。我眼下使用的编辑器是Lit...阅读全文

博文 2016-02-27 03:00:05 gcczhongduan

Golang-and-package-version-managment

参考文章 学习Golang之后对golang中的版本管理,包管理等机制一直没有很好的琢磨,偶然想起还是觉得很有必要进行归纳,包管理使用起来简单,无非就是install,uninstall,list等,但是在工程上包管理要是不当,却会造成很多不必要的麻烦。 gvm gvm是golang的版本管理程序,为什么需要这么个版本管理,是因为golang还在高速发展中,发版频繁,升级迭代可能不完全兼容上一代,所以这种工具应运而生,像ruby有对应的rvm,node有对应的nvm都是为了方便的进行不同版本的切换。 install bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gv...阅读全文

博文 2016-01-20 03:00:00 liujb

一个gRPC-go范例程序

grpc-go的介绍: The Go implementation of gRPC: A high performance, open source, general RPC framework that puts mobile and HTTP/2 first. github地址 https://github.com/grpc/grpc-go 注意看readme中的安装方式 go get -u google.golang.org/grpc,此处可能需要全局科学上网。 google提供的范例 https://github.com/grpc/grpc-go/tree/master/examples 写个测试程序试试,完整的代码见https://github.com/changjixiong/g...阅读全文

博文 2018-01-13 19:03:19 changjixiong

PHP之剑走偏锋的DeepCopy

php的深拷贝和浅拷贝问题,普通变量对象的赋值 = 是深拷贝,& 是浅拷贝。 $a = 1; $b = $a; $b = 2; $c = &$b; $c = 3; echo $a . PHP_EOL; echo $b . PHP_EOL; echo $c . PHP_EOL; 输出结果: 1 3 3 类对象的拷贝问题就得看下php版本了。php4时类对象的赋值=就是一次深拷贝。php5时类对象的赋值=就是一次浅拷贝。下面的代码是在php5.6.29的环境上运行的 arg = $arg; } public f...阅读全文

博文 2017-08-19 15:06:57 ieasy_tm

服务器日期切分文件定时清理与压缩备份shell脚本

随着服务器运行,业务日志不断增长,之前文章提供的日志器可对业务日志文件进行按天、大小、普通三种模式切分,本脚本是为解决服务器存储压力,对日切分日志文件进行定时清理与压缩存储,需要与crontab结合使用,脚本中提供了crontab脚本,可通过crontab -e进行添加,脚本采用系统自带的tar压缩为zip格式,压缩比率约为原文件1/4,日志文件路径需要对脚本文件FILE_DIR宏进行设置,FILE_DIR_BACK为备份文件路径,DEL_FILE_NUM为任务执行清理自当前时间内的文件,DEL_FILE_RET为保留的最近文件数,脚本运行参数如下:test 用于测试,产生目标格式的日志文件及压缩文件clear 用于清理文件backup 用于备份文件run 清理文件同时备份文件crontab...阅读全文

博文 2017-07-11 01:19:33 hansegod

Vue 使用websocket + json + protobuf 与后端交互golang

看这篇文章的时候,千万不要害怕代码,重要的核心的都加注释了,原理很简单!!祝阅读顺利 当学习一门新的语言的时候,总是喜欢先建立一个Demo项目,通过构建一个基本的项目,来了解语言的特点。 对于web的交互,以前常用的技术主要是Ajax、Form表单提交这类,如果要做长连接,可以使用Websocket 关于websocket和socket其实是两个东西,如果要比较的话,应该是拿websocket和http 来比较。 websocket 发送json websocket发送json这是一种常规的方式 值得一提的是,Vue框架中使用axios发送POST请求的时候,默认Content-Type是application/json,所以在后端接受的时候,要做流处理。 比如像PHP的话,要用php://...阅读全文

博文 2020-04-15 13:32:45 jaysun

udp编程的那些事与golang udp的实践

udp编程的那些事与golang udp的实践 tcp/ip大协议中,tcp编程大家应该比较熟,应用的场景也很多,但是udp在现实中,应用也不少,而在大部分博文中,都很少对udp的编程进行研究,最近研究了一下udp编程,正好做个记录。 sheepbao 2017.06.15 tcp Vs udp tcp和udp都是著名的传输协议,他们都是基于ip协议,都在OSI模型中传输层。tcp我们都很清楚,它提供了可靠的数据传输,而udp我们也知道,它不提供数据传输的可靠性,只是尽力传输。 他们的特性决定了它们很大的不同,tcp提供可靠性传输,有三次握手,4次分手,相当于具有逻辑上的连接,可以知道这个tcp连接的状态,所以我们都说tcp是面向连接的socket,而udp没有握手,没有分手,也不存在逻辑上...阅读全文

博文 2018-01-16 13:31:21 sheepbao

使用 bcrypt 函数生成密码

在几年前,相信很多和我一样的开发者都是使用 MD5 函数对用户的密码等敏感内容进行哈希化后存储到数据库中。即便是现在,还是很多开发者是这样的做法。 但很多事实告诉我们,如今用 MD5 函数生成的值在基于 彩虹表???? 和强大的 GPU 数亿次每秒的暴力破解下能较为轻松的破解。 所以对于需要保存用户密码等敏感信息的需求场景下,我们需要寻找另一种可靠安全的加密方式。 有关为什么 MD5 已经不可靠的原因可以参考我的另一篇文章《十万个为什么:别用 MD5 加密密码》。 当下推荐的方案是使用 bcrypt 函数生成密码,并不是因为它绝对安全不可破解,而是破解的成本足够高。 世上没有绝对的安全,我们能做的就是提高破解的成本。 两个关键因素 首先 bcrypt 是一个密码加密函数,由 Niels Pr...阅读全文

博文 2020-04-30 17:32:42 imxfly

go安装教程

1、wget方式下载并解压 wget https://dl.google.com/go/go1.9.3.linux-amd64.tar.gz sudo tar -xzf go1.9.3.linux-amd64.tar.gz -C /usr/local/lib 2、添加配置 echo 'export GOROOT=/usr/local/lib/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN export GOPATH=$HOME/.go' | sudo tee -a /etc/profile.d/go.sh # 让配置生效 sudo source /etc/profile.d/go.sh 3、下载web框架gin go get gith...阅读全文

博文 2018-04-20 12:31:00 tianjiewang

安装gin框架(使用mod,makefile方式)

## 1 新建一个项目目录 ``` mkdir wages_service ``` ## 2 新建`Makefile`文件 ``` touch Makefile ``` 文件内容如下 ``` all: clean deps clean: @rm -rf go.mod @rm -rf go.sum @rm -rf vendor deps: @echo "初始化模块" go mod init wages_service @echo "初始化模块结束" @echo "下载依赖" export GOPROXY=http://goproxy.io go mod tidy go mod vendor @echo "下载依赖结束" ``` ## 3 新建main.go文件 ``` package main...阅读全文

博文 2019-07-02 13:29:42 jinchunguang

使用 Go 添加启动脚本

简介 实践 困惑 总结 当前部分的代码 简介 虽然 Makefile 能很好的整合各种命令, 是一个非常方便的工具.但启动脚本也是必不可少的, Makefile 更多用于开发阶段,比如编译, 单元测试等流程. 启动脚本的作用是控制程序的状态, 管理程序的启动, 停止, 查询运行状态等. 实践 直接上脚本了: #!/bin/bash SERVER="web" BASE_DIR=$PWD INTERVAL=2 # 命令行参数,需要手动指定, 这是在 docker 容器中运行的参数 ARGS="-c $BASE_DIR/conf/config_docker.yaml" function start() { if [ "`pgrep $SERVER -u $UID`" != "" ];then ec...阅读全文

博文 2019-11-03 09:02:48 帅气猫咪

Golang Mac 环境

1.国内go安装包mirror https://studygolang.com/dl 2.创建文件夹 mkdir -p ~/go/src ~/go/bin ~/go/pkg echo 'export GOPATH=~/go' >> ~/.bash_profile && source ~/.bash_profile 3.国内go get镜像源 export GO111MODULE=on export GOPROXY=https://goproxy.io 4.安装vscode需要开发包 go get -u -v github.com/nsf/gocode go get -u -v github.com/rogpeppe/godef go get -u -v github.com/golang/l...阅读全文

博文 2019-07-14 23:02:44 lizilong007

源码安装 NSQ

因为业务需要,要用到 NSQ。所以学习了下 NSQ。首先是安装,我在自己电脑上,倾向于源码安装。一是源码安装可以安装最新的代码,二是整个安装过程可以自己掌控。 但是,安装过程中遇到了一些坑。主要还是我对 Go 以及一些衍生工具用的不是特别熟悉,并且在网上搜索到的文章,都是抄来抄去的很多并不能解决我的问题。所以我把整个安装过程记录下来,给自己一个备忘,给别人一个方便。 安装 Go NSQ 是用 Go 写的,所以安装 NSQ 之前,要先安装 Go。 我这里给出安装具体过程的命令。具体可以参考我写的另外一篇文章 从零开始学习 Go ——安装。 echo "export GOROOT=$HOME/.golang/go" >> ~/.bash_profile echo "export GOPATH=$...阅读全文

博文 2017-11-22 02:05:04 daryl

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 的程序在执行时间上的差异。 1.4:修改 dup2 程序,输出出现重复行的文件的名称。 1.7:函数 io.Copy(dst, src) 从 src 读,并且写入 dst。使用它代替 ioutil.ReadAll 来复...阅读全文

博文 2019-12-14 10:32:38 shadows