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

仓库作业机器监控系统设计与实现

近期在参与一个仓库作业机器监控项目。该项目的需求背景是:公司的电商业务在全国各地有多处或大或小的仓库,仓库的作业人员(没有IT技术背景)经常反馈/投诉作业机器断网、断电、连不了服务等问题。实际情况经常与反馈的不一致,但运维侧并没有数据可以证明,所以才有了这个项目的需求。 该项目第一期的目标仅是收集、展示作业机器某些监控指标数据,以便在快速定位解决问题,或至少有数据可查。 为了避免大量监控数据上报影响到生产系统的网络服务,系统采用如下结构: 实现一个agent用于在仓库作业PC或作业PDA上获取机器的监控数据; 在仓库本地服务器上实现一个数据收集处理服务,提供API给agent上传监控数据;数据收集处理服务会将接收到的数据持久化到数据库,提供给仓库本地服务器上的webApp进行数据展示等; 中...阅读全文

博文 2014-11-05 09:50:32 youngsterxyf

golang ---- slice 切片

在很多应用场景中,数组并不能满足我们的需求。在初始定义数组时,我们并不知道需要多大的数组,因此我们就需要“动态数组”。在Go里面这种数据结构叫slice slice并不是真正意义上的动态数组,而是一个引用类型。slice总是指向一个底层array,slice的声明也可以像array一样,只是不需要长度。 // 和声明array一样,只是少了长度 var fslice []int 接下来我们可以声明一个slice,并初始化数据,如下所示: slice := []byte {'a', 'b', 'c', 'd'} slice可以从一个数组或一个已经存在的slice中再次声明。slice通过array[i:j]来获取,其中i是数组的开始位置,j是结束位置,但不包含array[j],它的长度是j-i...阅读全文

博文 2014-10-04 19:26:06 hufeng825

bootstrap中的缩略图

缩略图(一) 缩略图在网站中最常用的地方就是产品列表页面,一行显示几张图片,有的在图片底下(左侧或右侧)带有标题、描述等信息。Bootstrap框架将这一部独立成一个模块组件。并通过“thumbnail”样式配合bootstrap的网格系统来实现。可以将产品列表页变得更好看。 源码文件: ☑ LESS版本:对应文件thumbnails.less ☑ Sass版本:对应文件_thumbnails.scss ☑ 编译后版本:bootstrap.css文件第4402行~第4426行 使用方法: 通过“thumbnail”样式配合bootstrap的网格系统来实现。 前面也说过了,缩略图的实现是配合网格系统一起使用,假设我们一个产品列表,如下图所示...阅读全文

GoWeb开发_Iris框架讲解(一)

Golang介绍Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。谷歌资深软件工程师罗布·派克(Rob Pike)表示,“Go让我体验到了从未有过的开发效率。”派克表示,和今天的C++或C一样,Go是一种系统语言。他解释道,“使用它可以进行快速开发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大。”Golang语言的一些的功能:具有现代的程序语言特色,如垃圾回收,帮助程序设计师处理琐碎和重要的内存管理等问题。Go的速度也非常快,几乎和C或C++程序一样快,且能够快速制作程序。该软件是专为构建服务器软...阅读全文

博文 2019-03-27 19:34:49 qfzhangxu

每周一个GoLang设计模式之组合模式

我是设计模式的推崇者,相信一个良好的架构能够给系统的稳定运行和后期维护带来极大的方便,因为最近有时间重新学习GoF的设计模式,于是产生了用Go实现GoF经典设计模式的想法。 这篇文章遵循GoF书中的脉络,本篇是这个系列的第一篇:组合模式(Composite),以后如果在正常工作允许的前提下,应该会每周更新一篇。欢迎大家访问我的博客,代码可以在@Zuozuohao下载。 GoF在第二章通过设计一个Lexi的文档编辑器来介绍设计模式的使用,GoF认为Lexi设计面临七个问题: 1. 文档结构 2. 格式化 3. 修饰用户界面 4. 支持多种视感 5. 支持多种窗口系统 6. 用户操作 7. 拼写检查和连字符 GoF认为Lexi的文档只针对字符、线、多边形和其他图形元素进行处理。但是Lexi的用户...阅读全文

博文 2016-09-22 08:00:06 u012813904

USB-OTG(on-the-go)

ID(Identification)角色辨识引脚 两个USB装置互连时,要怎样让两个装置都知道:谁是主控?谁是Peripheral【外围】?这其实使用了新引脚,在传统4-pin的USB接口里追加了第五个引脚:ID 要在互接种担任主控者的USB装置,则将ID引脚位接地(GND),相对的想担任受控者的USB装置则将此引脚空接(NC),若要用更具体的电器特性来说明,则接地者的ID线路电阻必须低于10欧姆,相反的空接将大大拉高阻值,需超过100k欧姆。 图说:USB OTG 通过新增的ID引脚的接地,浮接状态来决定互连时主从的角色。 USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG)。 OTG两用设备完全符合U...阅读全文

博文 2016-02-03 06:00:00 alifrank

mac + golang环境 + vscode使用

1、开启VPN,到官网下载 Golang ,如下图所示: Apple macOS版下载 选择Apple macOS版下载,下载完成后,双击直接安装; 2、打开终端,输入 go version (按回车) 查看是否安装成功,如出现类似 go version go1.11.2 darwin / amd64,证明安装成功; 3、在桌面新建一个放置Golang的文件夹,如一个名为 Golang项目 的文件夹,这是用来存放以后的golang项目的文件夹,再把文件夹拖入终端,出现一串绝对路径如:/Users/xxx/Desktop/Golang项目,后面的 GOPATH 设置需要用到; 4、在终端输入命令 cd ~ (按回车) ls -all (按回车) 查看是否存在.bash_profile文件,如图...阅读全文

博文 2018-12-12 17:34:46 单抽律化娜

4种编程语言基本数据类型及其取值范围整理(C++,Java,Python,Go)

1 C++ C++定义的基本类型包括算术类型和void类型。算术类型分为整型(包括字符和布尔型)和浮点型,如下表所示: C++11新增了char16_t,char32_t(最小分别为16、32位的Unicode字符型),long long(最小为64位的长整形)3种内置类型。 对于32位平台,int类型和long类型通常字长是相同的,占32位。 可以用以下语句来测试各种类型所占字节数: std::cout <阅读全文

博文 2015-06-17 23:01:36 dragon_dream

如何使用GoLand调试beego项目

--- title: 如何使用GoLand调试beego项目 --- ## 前言 **beego**是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架。 **GoLand**是一个用于开发go应用的IDE,和python常用的IDE pyCharm一样,都是由JetBrains公司开发的。 最近看了下使用go开发web应用方面的东西,发现beego(https://github.com/astaxie/beego) 这个框架挺不错的,中文的文档写的也很好 (https://beego.me/docs/intro/)。 我按照文档把demo run起来了,然后就是想着怎么debug了,下面简单介绍下如何使用Go...阅读全文

博文 2019-02-22 16:41:59 ypdai

go语言defer使用

defer Go语言中有种不错的设计,即延迟(defer)语句,你可以在函数中添加多个defer语句。当函数执行到最后时,这些defer语句会按照逆序执行,最后该函数返回。特别是当你在进行一些打开资源的操作时,遇到错误需要提前返回,在返回前你需要关闭相应的资源,不然很容易造成资源泄露等问题。如下代码所示,我们一般写打开一个资源是这样操作的: func ReadWrite() bool { file.Open("file") // 做一些工作 if failureX { file.Close() return false } if failureY { file.Close() return false } file.Close() return true } 我们看到上面有很多重复的代码,G...阅读全文

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

项目Go配置过程

此项目为实验室正在做的视频项目,由于刚刚开始做,菜鸟一个,首先记录下配置过程吧。 环境:win7 64位 (XP的在最后做了相应补充); 1. 配置yasm 到http://yasm.tortall.net/Download.html下载Win64 VS2010 .zip,然后解压,里面有一个readme.txt,将vsyasm.exe改名为yasm.exe,如果是vs2010默认安装在C盘,则按照readme.txt中的配置即可。我的VS2010安装到了D盘,所以需要做些更改。首先,将vsyasm.exe更名为yasm.exe,然后放到D:\Software\VS2010\VC\bin,将另外的三个文件:vsyasm.props,vsyasm.targets和vsyasm.xml放到C:\...阅读全文

博文 2015-03-26 13:00:05 ybsun2010

【嗜血GO笔记】Goclipse如何导入已有的GO项目

与其他的JAVA工程略有不同,你是不能在 “导入” 中找到GO项目。 我们需要通过以下的方式导入: 步奏一:如下图所示 步奏二:在创建的时候选中“Create project from existing source”-->在 Directory 中选中你要导入的程序,一般来说,如果你提前配置了GO 的环境,那么在Configure Go settings中是不需要做任何配置的。如下图 至此导入工程就完成了。希望能给刚学习GO的朋友一些帮助...阅读全文

博文 2015-02-11 23:00:00 嗜血程序员

在golang中操作mysql数据库(1)实现增删改操作

**Golang操作mysql简介** Golang操作mysql数据库的感觉有点想php中的pdo对mysql操作,假设你原本是phper转型到golang中的接受起来很亲切,总体的感觉非常简单 **Golang操作mysql的注意点** `golang实现了对mysql操作的标准库然而却没有实现mysql的驱动` 因此我们需要先从github中下载go-sql-driver这个驱动包(建议在src目录下执行),使用命令如下所示: ```go go get github.com/go-sql-driver/mysql ``` **在test数据库中建立表字段如下所示** ```go CREATE TABLE IF NOT EXISTS `test`.`user` ( `user_id` I...阅读全文

博文 2018-09-03 19:04:18 JimPang

gracehttp: 优雅重启 Go 程序(热启动)

问题背景 在 http 应用程序重启时,如果直接 kill -9 使程序退出,然后在启动,会有以下几个问题: 旧的请求未处理完,如果服务端进程直接退出,会造成客户端链接中断(收到 RST); 新请求打过来,服务还没重启完毕,造成 connection refused 这些问题会造成不好的客户体验,严重的甚至影响客户业务。所以,我们需要优雅的重启我们的应用。 解决问题 -- 优雅 Github: gracehttp 原理 信号机制; 子进程继承父进程的资源; 支持功能 平滑重启(Zero-Downtime restart server); 平滑关闭; 多 Server 添加(包含 HTTP 、HTTPS); 自定义日志组件; 使用指南 添加服务器 // http srv1 := &http.S...阅读全文

golang system call

golang处理系统调用的包为syscall,具体系统调用时通过汇编来实现在类Unix系统中,使用以下4个方法进行系统调用(syscall_unix.go)。(trapa1a2a3 ) (r1r2 err ) (trapa1a2a3a4a5a6 ) (r1r2 err ) (trapa1a2a3 ) (r1r2 err ) (trapa1a2a3a4a5a6 ) (r1r2 err )trap 为系统调用号,a1~a6为寄存器参数,以X86为例,如下所示:Linux系统调用号有300多个:(zsysnum_linux_amd64.go)package syscallconst ( SYS_READ = 0 SYS_WRITE = 1 SYS_OPEN = 2 SYS_CLOSE = 3 SY...阅读全文

博文 2018-08-23 15:36:23 暮色伊人

公司编程竞赛之最长路径问题 — 从深度优先搜索算法到贪心算法,再到模拟退火算法

最近产品线举办了一个软件编程大赛,题目非常的有趣,就是在一个9 × 9的格子里,你要和另一个敌人PK,在PK的过程中,你可以吃格子里的果实来提升攻击力。每次可以往正上、正下、正左、正右、左上、左下、右上、右下八个方向走。每次要么连续吃果实要么连续走空白区域,且不能走重复的位置。初始状态如下图所示: ![](http://o7x0ygc3f.bkt.clouddn.com/%E6%9C%80%E9%95%BF%E8%B7%AF%E5%BE%84%E9%97%AE%E9%A2%98-5.png) 为了提升攻击力,我们需要尽可能地一次吃最多的果实,所以路线可以这样规划: ![](http://o7x0ygc3f.bkt.clouddn.com/%E6%9C%80%E9%95%BF...阅读全文

Golang 语言windows环境搭建

本人是xp系统; 1.首先下载go语言安装包,进入下面的链接,选择适合自己的安装包进行下载(我用的go1.0.3.windows-386.msi),然后安装即可,记录下安装后的根目录以备配置使用。 下载地址:https://code.google.com/p/go/downloads/list 点击安装,我默认安装在路径C:\Go 2.下载liteIDE,进入下面的链接,选择适合自己的安装包(我用的liteidex17.windows-webkit.7z),下载完成后解压到任意目录,然后进入根目录下的bin文件夹,双击liteide.exe即可打开软件。 下载地址:https://code.google.com/p/golangide/downloads/list 软件界面: 3.配置lit...阅读全文

博文 2014-11-11 02:00:01 oopsangle

Golang学习笔记一:语言规范

引言 Golang参考手册,更多内容请参考http://golang.org 语言规范参考自https://golang.org/ref/spec 词汇元素 注释 行注释: // comment content 段注释:/* comment content */ 符号 符号有4类:标识符、关键字、操作符和分隔符、字面常量 分号 golang中,分号可省略 标识符 标识符即程序中的变量和类型,有一个或多个字母或数字组成,第一个字母必须字母开头。 identifier = letter { letter | unicode_digit } 关键字 标识符不能是golang中的保留关键字 break default func interface select case defer go map s...阅读全文

博文 2015-10-10 23:00:00 scherrer

Go 语言神奇的 JSON

今天我想和大家分享 Go 语言一些非常实用的技巧,用于编码和解码 JSON 文档。Go 语言的 `encoding/json` 包有一些有趣的特性,帮助我们轻松地解析 JSON 文档。你可以轻松地将大多数实际应用中的 JSON 转换为带有 Go 语言结构体标签的接口或者是 `Marshaler` 和 `Unmarshaler` 接口。 但有一个案例比较棘手:包含转义 JSON 元素的 JSON 文档。如下所示: ```json { "id": 12345, "name": "Test Document", "payload": "{\"message\":\"hello!\"}" } ``` 我不建议构建像这样创建文档的应用程序,但有时候这样的情况是难以避免的,你希望像平常的 JSON 那样...阅读全文

博文 2018-03-19 10:27:46 SergeyChang

mac+vs code+go 环境搭建

1.下载go的sdk 尝试了homebrew 失败 我也不晓得为啥 直接去官网上面下载吧。。。。。https://studygolang.com/dl 2.下载完成之后 next next 安装即可。 3.mac下默认安装在usr/local/go 下 这就是你的goroot 4.设置环境变量 vim ./bash_profile 加入 export GOPATH=/xxx/xxx/xxx 这里填你希望把你的项目放在的位置目录 export GOBIN=$GOPATH/bin export PATH=$PATH:$GOBIN 5.go env 下 image.png 6.下载vscode 直接去官网下载 搜索一下就可以了 下载完成后打开 移动到应用空间即可 在 image.png 中搜索下g...阅读全文

博文 2019-07-26 20:32:38 MorningandSun

启航 - cache2go源码分析

一、概述​ 我们今天开始第一部分“golang技能提升”。这一块我计划分析3个项目,一个是很流行的golang源码阅读入门项目cache2go,接着是非常流行的memcache的go语言版groupcache,最后是docker项目中分出来的核心组件之一containerd,通过这3个项目的源码全解析来达到golang能力上一个台阶的目的。 在本系列教程的学习过程中,我希望你能够做到如下要求:如果你是一个go语言新手,在看下面的代码分析过程中你肯定会遇到一些自己陌生的编码方式、陌生的知识点,这个过程中我希望你遇到一个点掌握一个点,比如看到下面的代码用到了锁,就去找各种资料把锁相关的知识点学了。看到回调函数,就思考一下人家为什么这些地方都使用回调函数,有什么好处。这样在看完这个项目源码分析后,...阅读全文

博文 2018-06-19 12:30:28 CloudGeek

Go 语言环境搭建

本文内容 概述 Go SDK LiteIDE 参考资料 2009年Google推出了它的第二个开源语言 Go。对 Go 的评价褒贬不一,中国比国外的热情高中国比国外的热情高。Go 天生就是为并发和网络而生的,除了这点外,在静态编译、GC、跨平台、易学、丰富的标准库等,其实并不如 C/C++、Java、C#、Python。由此可想而知,为什么会出现 Go?以及为什么 Go 存在如此多的问题和争论?——也许Go 更像是一个“天才的自闭症患者”,如果看清了这点,对网络和知乎上一些 Go 的褒贬也就能泰然啦,这就好像下班到家,是先吃饭,还是先洗澡,重要吗?~ 下载开发工具 下载相关文档手册 概述 Go 是Google开发的一种编译型,並發型,并具有垃圾回收功能的编程语言。 罗伯特.格瑞史莫(Robe...阅读全文

博文 2015-05-19 03:00:11 liuning8023

Mac OS X系统搭建谷歌Go语言开发工具 Sublime Text 环境配置

载地址:http://www.cr173.com/html/33948_1.html Go语言是谷歌自家的编译型语言,旨在不损失性能的前提下降低代码复杂率。其优势是让软件充分发挥多核心处理器同步多工的优点,并可解决面向对象程序设计的麻烦。 一、安装Golang的SDK 在官网http://golang.org/ 直接下载安装包安装即可。下载pkg格式的最新安装包,直接双击运行,一路按照提示操作即可完成安装。 安装完成后,打开终端,输入go,检测Golang SDK是否安装成功,如下显示,则表示安装成功: 你也可以输入go version 查看你所安装的Golang的版本 二、环境变量配置(GOPATH) GOPATH是用来告诉Golang命令和其他相关工具,在哪里可以找到你系统上的Go包目录...阅读全文

博文 2015-09-12 23:00:00 showhilllee

【Filecoin源码仓库全解析】第一章:搭建Filecoin测试节点

2019.2.14 情人节,Filecoin项目开放了核心源码仓库go-filecoin,并更新了 filecoin-project organization下的诸多核心成果,这意味着,Filecoin已然度过了最困难的难点攻关期,进入到了全民公测阶段。 本系列文章将协助大家对源码仓库进行全解析,帮助大家系统地学习和了解Filecoin这个项目,发现新的机遇和商机,小编将在这段时间密切关注Filecoin动态,和大家一起度过Filecoin全民公测阶段。 章节目录 前言 Filecoin里程碑 第一章:搭建Filecoin测试节点 第二章:如何创建钱包,获取FIL Mock代币 第三章:存储提供方(矿工)的配置操作 第四章:存储需求方的配置操作 第五章:如何让自己的节点加入测试网络 第六章:...阅读全文

博文 2019-02-17 05:34:42 嘉乐的SOHO

蚂蚁金服开源 MOSN 核心概念解析

前言 MOSN 是一款使用 Go 语言开发的 Service Mesh 数据平面代理,2018 年 7 月由蚂蚁金服开源,开源地址 https://github.com/sofastack/sofa-mosn,MOSN 旨在为服务提供分布式、模块化、可观察和智能化的代理能力。MOSN 是 Modular Observable Smart Network 的简称。MOSN 可以与任何支持 xDS API 的 Service Mesh 集成,亦可以作为独立的四、七层负载均衡使用。未来 MOSN 将支持更多云原生场景,并支持 Nginx 的核心转发功能。 本文根据蚂蚁金服烈元 2019 年 11 月 30 日在 Gopher China Meetup 北京站上的分享整理而成,查看分享回顾,同时本文...阅读全文

博文 2019-12-12 17:32:47 ServiceMesher

go语言顺序编程

1、变量 声明: Go语言的变量声明方式与C和C++语言有明显的不同。对于纯粹的变量声明,Go语言引入了关键字var,而类型信息放在变量名之后,实例如下: Go Code 1 2 3 4 5 6 7 8 9 10 var v1 int var v2 string var v4 [10]int //数组 var v4 []int //数组切片 var v5 struct{ f int } var v6 *int //指针 var v7 map[string]int //key-string value-int var v8 func(a int) int //函数 初始化: 对于声明变量时需要进行初始化的场景,var关键字可以保留,但不再是必要的元素。 JavaScript Code 1 2 ...阅读全文

博文 2014-11-21 12:00:18 Al_xin

Golang 中的“潜规则”

GO语言中要提供给外面访问的方法或是结构体必须是首字母大写 在一个公共的头文件中定义了一个结构体,如下所示: type Header struct { ver int magic_num int len int } 在另一个执行文件中,进行了初始化和赋值: var head comm.Header; head.ver = 1 head.magic_num = 0xffee head.len = 0 编译时报错 ./example_struct2binary.go:21: head.ver undefined (cannot refer to unexported field or method ver) ./example_struct2binary.go:22: head.magic_nu...阅读全文

博文 2016-09-03 22:00:04 nellson

Golang AES算法与 java(android)的互通

由于Java AES256 加密库受出口限制,所以只采用AES 128加密。 互通要达到的要求 加密位数:统一采AES 128 分组加密条件:CBC/PKCS#5PADDING 密钥填充方式一样 因为android的默认填充与java默认不一样,而且在不同的JDK版本里也会出现key填充不一致的情况,所以自己手动填充,Go也采取与java一样的填充方式:不满16位补零。AES两个平台均要实现AES的加密与解密操作。加密结果转成base64。 关键代码如下所示:go: //填充 func paddingkey(key string) (string){ var buffer bytes.Buffer buffer.WriteString(key) for i:=len(key);i<16;i+...阅读全文

博文 2017-04-19 08:56:03 送你一碗大麦茶

菜鸟学go之变量(-)

//1.变量 //go语言中变量变量的定义方式是变量名前加var,与c和java不同,go把变量类型放到变量名称后面 //比如定义一个变量名字叫做bird类型为type的变量如下所示 var bird type //还可以在变量后一次性定义多个变量 var bird,cat,dog type //定义变量并且对多个变量进行初始化 var bird,cat,dog type = valone,valtwo,valthree //简写方式 //var可以简写为:并且放在变量的最后形如: bird,cat,dog type := valone,valtwo,valthree //直接省略了var和type称为简短声明,一般使用在函数内部,所以var方式来声明全局变...阅读全文

博文 2014-10-04 19:26:11 范思哲思考者

golang下在终端显示字体颜色及闪烁、下划线效果的小工具

在终端下打印不同颜色的字体,具体说明见:http://blog.csdn.net/gxut555/article/details/7913591 自己用golang实现一个,除了在MAC下显示不出效果来,其他端上还算正常了,效果所示: 代码如下(见:https://github.com/liuyongshuai/goColorTerm): ``` /* * @author Liu Yongshuai * @package goColorTerm * @date 2018-01-25 19:19 */ package goColorTerm import ( "fmt" "strings" "reflect" ) //绿色字体,modifie...阅读全文

博文 2018-02-01 17:55:52 liuyongshuai

Golang Walk 托盘菜单

最近在用Golang开发一个客户端。客户端打开之后,会打开系统浏览器然后弹出一个网页。 目前已经写的差不多了,但是有个问题疑惑着我,Golang有没有类似C# contextMenu的东西呢,我在 github.com 上看到了 walk. 一个非常不错的golang gui开发框架,这个实现了类似于C# ContextMenu的东西 下面是一个非常简单的小示例: package main import ( "github.com/lxn/walk" "log" ) func GuiInit() { mw, err := walk.NewMainWindow() if err != nil { log.Fatal(err) } //托盘图标文件 icon, err := walk.Resou...阅读全文

博文 2019-03-24 14:34:45 smoothcraft

10年大数据架构师:日访问百亿级,如何架构并优化日志系统?

日志数据是最常见的一种海量数据,以拥有大量用户群体的电商平台为例,双 11 大促活动期间,它们可能每小时的日志数量达到百亿规模,海量的日志数据暴增,随之给技术团队带来严峻的挑战。 本文将从海量日志系统在优化、部署、监控方向如何更适应业务的需求入手,重点从多种日志系统的架构设计对比;后续调优过程:横向扩展与纵向扩展,分集群,数据分治,重写数据链路等实际现象与问题展开。日志系统架构基准 有过项目开发经验的朋友都知道:从平台的最初搭建到实现核心业务,都需要有日志平台为各种业务保驾护航。 如上图所示,对于一个简单的日志应用场景,通常会准备 master/slave 两个应用。我们只需运行一个 Shell 脚本,便可查看是否存在错误信息。随着业务复杂度的增加,应用场景也会变得复杂。虽然监控系统能够显示...阅读全文

博文 2018-08-17 10:34:57 养码场

体验 Beego API 开发和自动化文档

学习 Go 的基础语法时候,我就看到一些相关博客,说用 Go 来开发 API 非常简单友好。随手 Google 了一下,当时就看到可以用 Beego 框架来开发 API 并且还能结合 Swagger 自动化生成文档。当时也没有时间或者没有响应基础知识体验一下,近来时间宽裕了不少。话不多说,跟随官方文档来体验一番。不过官方文档对于基础的数据库知识介绍的一笔带过啦。数据导入肯定要在本地安装、配置好数据库,写入数据信息。我们选择 MySql 数据库,毕竟这个用的还是挺多的 。具体的 Mac 平台下的安装配置自己 Goolge 一下就好了。还要推荐一个 Mac 平台下的数据库可视化工具—Sequel Pro。我个人也是刚接触这个可视化工具,还有许多不熟悉,边用边摸索吧。具体关于这个数据管理软件的使用...阅读全文

博文 2017-09-27 11:28:39 allenwu.itscoder.com

Mac下Golang安装以及目录结构

1.安装步骤a.下载地址 下载SDK后,解压到自己喜欢的目录(后面配置PATH需要用到)b.配置PATH,有很多个地方可以配置具体可参考此链(PATH配置详解),我是直接修改的~/.bash_profile来设置环境变量,因为该文件一般用户都能更改,没有涉及到任何权限问题,具体参考此链接粗暴配置。在此文件输入export GOROOT=$HOME/goexport GOPATH=$HOME/go:$HOME/MyGOexport PATH=$PATH:$GOROOT/bin:$GOPATH/bin其中GOROOT对应的就是前面的Go源码包解压路径,GOPATH可以设置多个看你自己想在哪里新建都行,按:分开就行如上面所示就是如此简单,环境就配置好了,可在命令行输入go 看是否安装成功2.目录结...阅读全文

博文 2017-09-29 18:34:50 小小刀锋

给新手的微服务入门知识

> > 导读:微服务是一个模糊的术语,通常指的是小型独立服务,共同组成一个应用程序。 微服务架构与单片架构相反,其应用程序是一个大系统。 > 我们将讨论如何开始作为初学者,并选择正确的工具来建立微服务架构。 *迅速崛起的微服务* 根据Google趋势指数的结果,近来微服务已经越来越流行: 阅读全文

博文 2017-07-22 05:40:51 Helperhaps

Go Slice vs Map

Slice 和 Map 是 Go 中的两种重要的数据类型。本文将记录我关于这两种数据结构性能的一些关键的发现。 在讨论性能方面之前,我们先来简单介绍一下 Slice 和 Map。 **Slice:** Slice 是构建在数组之上的一种抽象数据结构。Slice 拥有一个指向数组开始位置的指针、数组长度以及 Slice 可以使用该数组的最大容量。Slice 可以按需增长或收缩。Slice 的增长通常包括为底层的数组重新分配内存。像 copy 和 append 这样的函数可以帮助增长数组。 **Map:** Go 中的 Map 和其他语言类似(内部实现可能会有所不同)。Go 中的 Map 创建 bucket (每个 bucket 可以容纳 8 个键)。 **性能统计:** 我对这两种数据结构都进...阅读全文

博文 2017-11-30 16:17:05 ictar

Go 中 BST 的实现方式

本篇文章为A Binary Search Tree的核心内容翻译,仅做个人学习之用。原文在文章开头花了不少篇幅介绍查找、二叉树相关内容,本译文假定你具备一定的计算机基础,就不做过多介绍了。Import and globals在构建BST的结构时候,需要导入以下包,作用都很简单分别是提示Error,打印以及Log相关内容:package main import ( "errors" "fmt" "log" ) A Tree Node按照之前的定义,一个树节点需要包含节点数值、左孩子节点、右孩子节点。树就是一种递归的数据结构,孩子节点也同样具备上述特性。在这个小实例中,每个树节点还包含一个简单的string值域。所以Node节点的定义如下所示:type Node struct { Value s...阅读全文

博文 2017-09-27 03:06:43 allenwu.itscoder.com

Go_闭包_基础理解

Golang支持闭包 1 什么是闭包 闭包就是一个匿名函数和一个外部变量(成员变量)组成的一个整体 通俗的讲就是一个匿名函数中引用了其外部函数内的一个变量而这个变量和这个匿名函数的组合就叫闭包 如下代码所示 func closure1() func() int{ i :=0 return func() int{ i++ //该匿名函数引用了closure1函数中的i变量故该匿名函数与i变量形成闭包 return i } }2 理解闭包 如果第一次使用闭包一定会想(以上述代码为例) closure1()返回一个匿名函数 比如 f:=closure1() 然后我再其他的函数内部多次调用f() 会有什么结果呢 如下代码所示 f := closure1() fmt.Println(f()) fmt....阅读全文

博文 2015-06-17 20:12:43 u012807459

golang 定时器, 定时任务的用法与 linux crontab类似, 支持定时任务删除与定时器的停止

github 的地址如下: https://github.com/yukongco/cron 基于 github.com/robfig/cron 的一个改进版本, 在原有基础上支持带 jobname 的定时器, 方便删除定时器中的任务。 带 jobname 的定时器如下所示 测试例子如下: package testcrontab import ( "fmt" "time" "github.com/yukongco/cron" ) func print1() { fmt.Println("111 now time: ", time.Now().Format(Time_Format)) } func printa(...阅读全文

VS Code 调试 Golang 出现 Failed to continue: Check the debug console for details

如图所示,VS Code断点调试Golang时候,弹出提示 断点调试.png 点击Open launch.json,在env里面添加go.gopath路径 { "version": "0.2.0", "configurations": [ { "name": "Launch", "type": "go", "request": "launch", "mode": "auto", "program": "${fileDirname}", "env": { "go.gopath": "自己的路径" // 打开终端,输入命令 go env 可以查看GOPATH路径 }, "args": [] } ] } 查看自己Golang项目的工作目录,就是整个项目所在目录的,如我的项目结构如下图所示: 项目结...阅读全文

博文 2018-12-13 17:34:50 单抽律化娜

十年•杭研技术秀 | “网易云存储服务”从0到1发展之路

本文由网易云 发布。网易杭州研究院(以下简称“杭研”) 成立十周年之际,杭研正式推出了网易云。“十年•杭研技术秀”系列文章,由杭研研发团队倾情奉献,为您展示杭研那些有用、有趣的技术实践经验,涵盖云计算、大前端、信息安全、运维、QA、大数据、人工智能等领域,涉及前沿的分布式、容器、深度学习等技术。正是这些宝贵的实践经验,造就了今天高品质的网易云产品。本文的分享来自网易杭州研究院云计算平台产品部,翔实地描述了网易云存储系统从无到有以及一路披荆斩棘不断完善的历程。一、从0诞生2012年云计算在业界已经风起云涌,其为企业带来的价值为世界所认同,按需提供的计算、存储、网络等底层IaaS基础设施,以及丰富的PaaS和SaaS服务,为IT公司产品的开发、运营和快速可持续发展提供了强有力的支撑。云计算犹如肥...阅读全文

博文 2018-07-25 17:35:06 网易云社区

安全的Go语言从源数组构建目标Slice

今天在QQ群里聊到GO语言需要改进的地方,快乐的吐槽了一番。我之前最希望用数组构建slice的语法变更一下,因为现在流行的[start:end]方式并不严谨。后来不记得是哪个版本的时候,引入了三段式的[start:end:max]语法来创建slice。这样是安全了,但是确丑了很多。 如下例所示,二段式的定义在append操作后会污染到源数组: a := [5]int{1, 2, 3, 4, 5} s1 := a[1:3:3] s2 := a[1:3] _ = append(s1, 6) fmt.Println(a) //out:[1 2 3 4 5] _ = append(s2, 7) fmt.Println(a) //out:[1 2 3 7 5] 关于对new函数的改进,chai大帮我发...阅读全文

博文 2014-11-11 18:00:02 sz_Promi

Golang_tag

Golang tag也就是go语言中的注解 比如 type PostBody struct { Ids []int `json:"Id__in__int"` }`json:"Id__in__int"` 这一段内容就是Ids这个属性的一个tag 我们可以通过反射来获取这个tag的值 如下所示 package main import ( "fmt" "reflect" ) type PostBody struct { Ids []int `json:"Id__in__int"` } func main() { // s := "{\"Id__in__int\":[101010,101009],\"text__in__string\":[\"开单\",\"测试页\"]}" // var pb st...阅读全文

博文 2015-06-17 20:03:52 u012807459

Go - 以任意类型的slices作为输入参数

Go - 以任意类型的slices作为输入参数(译) 2014-01-16 Thu By youngsterxyf 原文:Go – taking slices of any type as input parameters 译者:youngsterxyf 最近参与的一个业余项目,go-linq,让我了解到Go语言的类型系统并不是为任何类面向 对象编程而设计的。没有泛型,没有类型继承,也没有提供任何对这些特性有用的东西。 但是,提供了一个名为interface{}的类型,你可以向其赋予几乎任意类型的值,不会抛出编译错误,就像.NET的Object或Java的Object: var o interface{} o := 3.14 o := Student{Name: "Ahmet"} 我们假设你...阅读全文

博文 2016-05-20 17:00:02 hittata

Go语言map底层实现

``map``是Go语言中基础的数据结构,在日常的使用中经常被用到。但是它底层是如何实现的呢? Golang中``map``的底层实现是一个散列表,因此实现``map``的过程实际上就是实现散表的过程。在这个散列表中,主要出现的结构体有两个,一个叫``hmap``(``a header for a go map``),一个叫``bmap``(``a bucket for a Go map``,通常叫其``bucket``)。这两种结构的样子分别如下所示: hmap: 图中有很多字段,但是便于理解...阅读全文

博文 2018-08-26 02:58:20 RyuGou

Go 语言实现的静态网站生成器Hugo Plugin

Hugo是由Go语言实现的静态网站生成器。简单、易用、高效、易扩展、快速部署。 Hugo Plugin是用于在 Jenkins 中构建  Hugo网站的插件,支持的发布方式包括:Git发布、Git子模块发布。 通过Hugo Plugin可以很轻松地做到在码云上自动发布博客、文档网站。配置方法如下图所示: ![image](https://oscimg.oschina.net/oscnet/dfede615c142a08d60da2f293d27857aa9d.jpg...阅读全文

开源项目 2018-06-12 15:30:01 网友

go语言坑之list删除所有元素

go提供了一个list包,类似python的list,可以存储任意类型的数据,并提供了相应的API,如下: type Element func (e *Element) Next() *Element func (e *Element) Prev() *Element type List func New() *List func (l *List) Back() *Element func (l *List) Front() *Element func (l *List) Init() *List func (l *List) InsertAfter(v interface{}, mark *Element) *Element func (l *List) InsertBefore(v i...阅读全文

博文 2017-04-13 07:18:12 songleo