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

Golang程序诊断

简介 Go生态系统提供了一整套用于诊断Go程序中的逻辑和性能问题的API和工具。该篇文章总结了可用的工具,并帮助Go用户针对他们的特定问题选择合适的工具。 诊断解决方案可以分为以下几类: Profiling: Profiling工具分析Go程序的复杂性和成本,例如其内存使用情况和经常调用的函数,以识别Go程序的最耗费资源的部分。 Tracing: Tracing是一种工具代码,可以在调用或用户请求的整个生命周期中分析延迟。跟踪提供了每个组件对系统总体延迟造成多少延迟的概述。跟踪可以跨越多个Go进程。 Debugging: Debugging允许我们暂停Go程序并检查其执行。程序状态和流程可以通过调试来验证。 Runtime statistics and events: 运行时状态和事件的收集...阅读全文

博文 2020-02-14 12:32:42 iyacontrol

Python-GUI编程-PyQt5

课程介绍:Python-GUI编程-PyQt5编写出你开心就好的界面!实属Python各种工具开发必备!课程目录:├─001第一章:Python-GUI编程-简介│ 001-Python-GUI编程-简介│ 002-Python-GUI编程-GUI库的简介│ 003-Python-GUI编程-PyQt的简介│ 004-Python-GUI编程-PyQt的优势│ ├─002第二章:Python-GUI编程-PyQt的环境安装│ 005-Python-GUI编程-PyQt的环境安装(win)│ ├─003第三章:Python-GUI编程-GUI编程应该学什么?│ 006-Python-GUI编程-GUI编程应该学什么?│ ├─004第四章:Python-GUI编程-了解PyQt5库结构│ 007...阅读全文

博文 2020-01-14 22:59:28 lijm1266

go proxy 最快捷的代理抓取工具

golang-proxy v2.0 Golang-Proxy -- 简单高效的免费代理抓取工具通过抓取网络上公开的免费代理,来维护一个属于自己的高匿代理池,用于网络爬虫、资源下载等用途。 golang-proxy Version 2.0 不再依赖 MySQL 和 NSQ! 之前需要分别启动publisher、consumer和assessor,现在 只需要启动主程序 即可! 提供了高度灵活的 API 接口,在启动主程序后,即可通过在浏览器访问localhost:9999/all 与 localhost:9999/random 直接获取抓到的代理!甚至可以使用 localhost:9999/sql?query=来执行 SQL 语句来自定义代理筛选规则! 提供 Windows、Linux、Mac...阅读全文

博文 2018-07-24 19:34:53 Ox1系统管理员

[翻译]编译器(10)-编译到 C

文在此。 ————翻译分隔线———— 编译器(10)-编译到 C 第一部分:介绍 第二部分:编译、转译和解释 第三部分:编译器设计概览 第四部分:语言设计概述 第五部分:Calc 1 语言规格说明书 第六部分:标识符 第七部分:扫描 第八部分:抽象语法树 第九部分:解析 终于到最后一个步骤了! 我们的语言规格说明书如此简单,其实可以跳过 C 直接输出汇编。我有两个不这么做的原因。首先,移植性。在这个指引中,我无须编写任何特定架构的 C 代码。C 已经被移植到各种不同的系统中去了,因此可以让 C 编译器为我们做这个工作。 其次,对于许多程序员来说,汇编比起 C 来说要陌生得多。即使你从未使用 C 编写任何东西,它也比汇编要容易理解得多。 编译 这看起来会有点熟悉。我们将遍历 AST 同时生成 ...阅读全文

博文 2017-01-07 11:00:10 mikespook

大家makdown解析器都是用的blackfriday么?

我使用blackfriday解析markdown文件却出现吞字的现象,例如 ```go ## util ``` 解析成了 ```go til ``` ....我相当的郁闷。。。。 以下是函数 ```go func LoadMarkdown(f string)([]byte, error) { input, err := ioutil.ReadFile(f) if err != nil { return nil, err } print(string(input)) output := blackfriday.Run(input, blackfriday.WithExtensi...阅读全文

import中的引用问题

在import中引用的有三种,一种自带的包(比如fmt等) 还有一种GitHub中,放在src/github.com下面 其他的引用,get下来的一般都在src下面新建的一个文件夹,放在里面。 这只不过是一个路劲,能找到就好 同理: 也可以引用自己写的代码 比如我自己遇到的一个问题。 去获取 go get golang.org/x/net/html 无法获取怎么办 直接上GitHub中找到这个文件,下载下来, 放到本地的src目录中,去试试引用 如果是网上下的项目,先编辑器打开,go build一...阅读全文

博文 2018-07-20 09:34:50 哆啦在这A梦在哪

golang贝叶斯算法训练敏感词过滤

承接上次汉字转拼音的思路于是打算用贝叶斯来解决,结果发现python都有,但是golang没有贝叶斯算法于是给安排上。1、添加引用import( "github.com/cao-guang/bayes" ) 2、示例func main() { //准备训练样本数据,这里就准备了3组,训练样本数据越多,效果你懂的 aa := []string{"狗b", "我艹", "愚蠢", "装你大爷", "五毛们"} bb := []string{"法L功", "sb", "杀b", "你吗b", "你妈的", "五毛们", "愚蠢"} cc := []string{"爱国", "奉献", "勤劳", "努力", "奋斗", "汗水"} classVec := []int{1, 1, 0} // 1 代...阅读全文

博文 2019-10-17 08:45:18 cao-guang

徒手写一个JSON解析器(Golang)

前一阵子看到了一个Golang的JSON库go-simplejson,用来封装与解析匿名的JSON,说白了就是用map或者slice等来解析JSON,觉得挺好玩,后来有个项目恰好要解析JSON,于是就试了试,不小心看了一眼源代码,发现竟然是用的Golang自带的encoding/json库去做的解析,而其本身只是把这个库封装了一层,看起来更好看罢了。于是心想能不能徒手写一个解析器,毕竟写了这么多年代码了,也JSON.parse,JSON.stringify了无数次。捣腾了两天,终于成了,测试了一下,性能比自带的库要高很多,速度基本上在1.6到7倍之间(视JSON串的大小和结构而定),所以决定写这篇文章分享一下思路。 先插一个段子,作为一个已经完完整整写了将近三年代码的老码农,前一段面试,不止...阅读全文

博文 2017-07-29 17:05:16 nadass

Go 语言结构

在我们开始学习 GO 编程语言的基础构建模块前,让我们先来了解 Go 语言最简单程序的结构。Go Hello World 实例Go 语言的基础组成有以下几个部分:包声明引入包函数变量语句 & 表达式注释接下来让我们来看下简单的代码,该代码输出了"Hello World!":package main import "fmt" func main() { /* 这是我的第一个简单的程序 */ fmt.Println("Hello, World!") }让我们来看下以上程序的各个部分:第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名...阅读全文

博文 2015-12-22 08:00:02 u011225629

彬哥笔记 --7 Go语言 程序调试说明(LiteIDE为例)

大家好,我是彬哥,本节课给大家带来的是关于程序如何进行断点调试,本节的目的主要是让小白用户或者初学者可以学习到程序调试的基本的使用技巧等。 首先,我们使用的编辑器还是liteIDE,彬哥只是给大家简单的介绍下如何调试等基本技巧。 调试按键说明 F5 :继续执行 Shift+F5 :停止执行 F9:增加/删除断点 F10:逐过程 F11:逐句执行 Shift+F11:跳出执行 Ctrl+F10:执行到此行 显示的数据区域: 调试数据显示区域 同学们已经看到LiteIDE编辑器整个的调试数据的基础操作说明及快捷键的使用,这里彬哥补充下,编辑器本身支持2种调试方式: 2种调试方式 Gdb无法很好的支持golang的协程机制,delve为golang而生. delve常用命令 package mai...阅读全文

博文 2018-11-20 17:34:46 Golang语言社区

IDE集成开发工具:Komodo IDE 11 for Mac

实用的IDE集成开发工具哪里有?komodo ide 11 mac破解版可以在 Windows、Mac OS X 和 Linux 上运行,并支持通用的开源语言 —— Python、Perl、PHP 和 Ruby。代码智能引擎非常可靠。提供了所有语言的多线程和多进程服务,同时支持代码折叠、跟踪变化、智能语法检测以及快速书签等实用型功能。Komodo IDE 11 for Mac下载扫描所有语言安装找到定制扩展,比如 PEAR 模块。在项目方面,它支持与 CVS、Subversion 和 Perforce 的集成,也允许直接向服务器 FTP 传递代码。本版本可永久破解,欢迎下载使用!软件地址:https://www.macdown.com/mac/3219.html komodo ide 11 ...阅读全文

博文 2019-07-04 18:32:41 Mac小7

go-kit 上手之example stringsvc3 通过代理实现分布式处理

使用的包 创建到特定地址代理服务器的client 定义使用了代理机制的新服务 根据用户输入的代理服务器地址生成对应的代理服务器中间件 main 运行结果 代理中间件 stringsvc3没有完全按照官网中stringsvc3的写法,而是在stringsvc2的基础上增加了proxy.go 主要就是给uppercase增加了代理中间件,主要步骤分三步: 1)向特定地址代理服务器发送请求的client的编码和解码函数。 2)生成向特定地址代理服务器发送请求的client。 3)用client配合load balancer构建代理服务器中间件。 使用的包 package main import ( "bytes" "context" "encoding/json" "errors" "fmt" "...阅读全文

博文 2017-12-13 10:01:02 KingEasternSun

长连接、短连接、长轮询、短轮询、WebSocket释疑

看到一篇不错的文章,特意转载过来,原文地址:长连接、短连接、长轮询、短轮询、WebSocket 一、短连接和长连接 短连接:每次Http请求都会建立Tcp连接,管理容易 长连接:只需要建立一次Tcp连接,以后Http请求重复使用同一个Tcp连接,管理难 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次挥手),等待在同域名下继续用这个通道传输数据;相反的就是短连接如果服务器没有告诉客户端超时时间也没关系,服务端可能主动发起四次挥手断开TCP连接,客户端能够知道该TCP连接已经无效;另外TCP还有心跳包来检测当前连接是否还活着,方法很多,避免浪费资源。 在长连接的应用场景下,...阅读全文

博文 2019-09-19 10:02:49 Corwien

goconfig使用解析

参考:https://github.com/Unknwon/go-rock-libraries-showcases/tree/master/lectures/01-goconfig goconfig 简介 goconfig 是一个由 Go 语言开发的针对 Windows 下常见的 INI 格式的 配置文件解析器。该解析器在涵盖了所有 INI 文件操作的基础上,又针对Go 语言实际开发过程中遇到的一些需求进行了扩展。相对于其它 INI 文件解析器而言,该解析器最大的优势在于 对注释的极佳 支持;除此之外,支持 多个配置文件覆盖加载 也是非常特别但好用的功能。 主要特性 提供与WindowsAPI一模一样的操作方式 - 支持递归读取分区 支持自增键名 支持对注释的读与写操作 支持直接返回指定类型...阅读全文

博文 2018-09-27 15:35:22 1350368559

go学习笔记-init函数执行顺序分析

golang中有个神奇的函数init,该函数会在所有程序执行开始前被调用,每个包可以包含多个init函数,所有被编辑器识别到的init函数都会在main函数执行前被调用。通常被用来注册一个程序需要使用的依赖,如mysql注册,配置文件加载等。 在main包的使用 package main import "fmt" func main() { fmt.Println("这里是mian") } func init() { fmt.Println("这里是Init1") } func init() { fmt.Println("这里是Init2") } //输出结果 这里是Init1 这里是Init2 这里是main 一个很简单的示例,可以看到init函数是在main函数执行之前被执行的,并且一个...阅读全文

博文 2020-01-14 23:32:39 旧梦发癫

Go语言暴力入门2-工欲善其事

工欲善其事-打造漂亮的Go语言编辑器 关于作者 程序开发人员,不拘泥于语言与技术,目前主要从事PHP和前端开发,使用Laravel和VueJs,App端使用Apicloud混合式开发。合适和够用是永不停息的追求。2017.05.04开始在空闲时间学习Go语言 个人网站:http://www.linganmin.cn 最近刚写了一个手机在线播放的H5电影站:http://www.ifilm.ltd 关于Gogland Gogland 是JetBrains专门为Go语言开发的商业化IDE的代号,旨在为Go开发提供符合人体工程学的环境。新的IDE通过针对Go语言的编码协助和工具集成扩展了IntelliJ平台的诸多功能 目前Gogland还在开发中,已经发布了几版预发行版本,因为是预览版本所以,目前...阅读全文

博文 2017-05-08 14:00:41 安小下

Go Gisp

Gisp 是简单 (非标准) 的 Lisp/Scheme 到 Go 的编译器。 ## 包括: * 基于 Rob Pike [Lexical Scanning in Go](http://cuddle.googlecode.com/hg/talk/lex.html#title-slide)  的Lexer [](http://cuddle.googlecode.com/hg/talk/lex.html#title-slide) * 简单递归解析器,支持 ints, floats, strings, bools * TCO * AST generating REPL ### 构建运行

阅读全文

Golang 心跳的实现

自: https://blog.csdn.net/lengyuezuixue/article/details/79235850 在多客户端同时访问服务器的工作模式下,首先要保证服务器的运行正常。因此,Server和Client建立通讯后,确保连接的及时断开就非常重要。否则,多个客户端长时间占用着连接不关闭,是非常可怕的服务器资源浪费。会使得服务器可服务的客户端数量大幅度减少。 因此,针对短链接和长连接,根据业务的需求,配套不同的处理机制。 短连接 一般建立完连接,就立刻传输数据。传输完数据,连接就关闭。服务端根据需要,设定连接的时长。超过时间长度,就算客户端超时。立刻关闭连接。 长连接 建立连接后,传输数据,然后要保持连接,然后再次传输数据。直到连接关闭。 socket读写可以通过 SetD...阅读全文

博文 2019-05-05 03:31:34 Jailman

web前端CSS开发中的10个不要

  开发人员是用逻辑思考的生物。添加一个DIV元素导致所有代码都不得不往下移一行,而另一个DIV”浮”到左侧,感觉没有任何意义。   你也一定听到过开发人员的抱怨:   “我们只需要向左边移动五个像素,但是…天哪!为什么整个都向下移动了一行。到底是哪里错了?!?!?!”所以,我们今天就来聊一聊CSS中的十大错误的做法。   根据我作为web前端开发人员使用CSS的经验,下面是我的十个”不要”。   1.不要滥用类   在有意义的地方使用ID而不要使用类。这是一个使得浏览器能够更快访问DOM元素的方法。   2.不要把一切都扔进一个CSS文件中   分区CSS使其更易于管理。每一个CSS文件都可以分解成例如header.css、footer.css...阅读全文

vs code golang配置

go语言能够使用JetBrains出品的Goland是最好的选择。 免费的编辑器,现在选择vs code也是不错的。 使用vs code已经能够很顺畅的写代码了,很早以前阻碍我使用vs code的主要问题就是代码提示,现在也不存在了。 确定你已经安装好了go 语言环境之后,首先安装vs code,直接去官网下载。https://code.visualstudio.com/ vs code下载示意 安装好软件之后,安装go语言插件。 Extentions 在搜索框输入关键字 go,安装 Microsoft提供的go插件。 安装之后的效果 为了更方便的写 go 程序,还需要做一些配置。 点击Debug图标,配置调试参数。 配置debug open launch.json 第一次配置,会要求你找一...阅读全文

博文 2019-10-30 18:32:57 aside section._1OhGeD

Go 高级并发模式:第二部分(计时器)

正如我在[上一篇文章](https://studygolang.com/articles/19394) 中所述,准确使用计时器很难的,所以这里进行一些说明。 ## 前言 如果你认为结合 Goroutines 去处理时间和计数器很简单的话,那你就错了,这里有提到的一些与 time.Timer 相关的问题或 bug: * [time: Timer.Reset is not possible to use correctly #14038](https://github.com/golang/go/issues/14038) * [time: Timer.C can still trigger even after Timer.Reset is called #11513](https://git...阅读全文

博文 2019-07-08 20:53:29 liulizhi

Go语言学习札记—— 第二章 Go编程环境(2)

2.2 运行 2.2.1 Hello World 实例 hello.go 代码: package main import "fmt" func main() { fmt.Printf("Hello, world; 世界/n") } 编译代码: $8g hello.go 8g 是针对i386 指令的编译器,它的输出文件为 hello.8 。其中 ‘8’ 表示文件是 i386 指令的输出文件。 如果是amd64 和arm 处理器,后缀则为 ‘6’ 和 ‘5’ 。 也就是说,如果你用的是amd64 处理器,那么应该用6g 命令编译, 输出的文件为hello.6 。 链接代码: $8l hello.8 运行程序: $hello.out 或者使用 $8l -o hello.exe hello.8 直接...阅读全文

go-micro之源码剖析: Registry

go-micro提供了分布式系统开发的核心需求,包括RPC和事件驱动交换。关于go-micro的详细内容请参考git上的go-micro项目,这篇文章主要来讲go-micro的组件register的源码剖析。 go-micro的结构图如下(来源git仓库)。 图1.1 可以看到go-micro底层分为6个组件,分别是broker、Codec、Register、Selector、Transport。 Registry是go-micro的注册模块,它提供可插拔的服务注册与发现功能,它目前的实现的方式有Consul,etcd,内存和k8s。我们以consul为例子,来看一下go-micro是如何完成整个注册实现的。 准备工作 需要consul,你可以在consul官网上下载consul的二进制可执...阅读全文

博文 2019-06-03 23:34:20 lucifer_L

Go gRPC进阶-go-grpc-middleware使用(八)

前言 上篇介绍了gRPC中TLS认证和自定义方法认证,最后还简单介绍了gRPC拦截器的使用。gRPC自身只能设置一个拦截器,所有逻辑都写一起会比较乱。本篇简单介绍go-grpc-middleware的使用,包括grpc_zap、grpc_auth和grpc_recovery。 go-grpc-middleware简介 go-grpc-middleware封装了认证(auth), 日志( logging), 消息(message), 验证(validation), 重试(retries) 和监控(retries)等拦截器。 安装 go get github.com/grpc-ecosystem/go-grpc-middleware 使用 import "github.com/grpc-ecos...阅读全文

博文 2020-04-26 10:26:14 FireworksEasyCool

如何优雅的落地一个微型分布式架构

设计该系统初衷是基于描绘业务(或机器集群)存储模型,分析代理缓存服务器磁盘存储与回源率的关系。系统意义是在腾讯云成本优化过程中,量化指导机房设备扩容。前半部分是介绍背景,对CDN缓存模型做一些理论思考。后半部分会实际操作搭建一个微型但是五脏俱全的分布式通用系统架构,最后赋予该系统一些跟背景相关的功能,解决成本优化中遇到的实际问题。缓存服务器存储模型架构(背景):​图1 存储模型腾讯CDN的线上路由是用户à分布于各地区各运营商的OC->SOC->SMid->源站。各个层级节点部署的都是缓存服务器。来自用户的部分请求流量命中服务器,另一部分产生回源流量。随着业务带宽自然增长,用户端带宽增长,假设业务回源率不变的情况下,磁盘缓存淘汰更新(淘汰)速率变快,表现为以下业务瓶颈(iowait变高、回源带...阅读全文

博文 2018-09-27 19:17:09 tuomaochengxuyuan

学习Go语言第一周的感受

学习Go语言第一周的感受 一、 首先,由于生活中的所需,需要对go语言进行一套系统的学习,下面就是学习过程的几种情况: 1.书籍,主要看了《学习 Go 语言(Golang)》,《go语言编程》这两本适合团队开发中,在较短的时间下,熟悉语言的语法,以及代码举例、思考学习; 《Go语言圣经》这本适合对语言在语法熟悉了以后时间比较宽裕,或者对自己要求较高的条件下需要看的(内容比较详细,也穿插的有需要的看)。 2.视频,单纯的书籍学习,会使大脑变的麻木,疲倦,结合着别人的讲解,以及图画给自己形成二次记忆,以及举一反三 3.刷题,新的知识的吸收程度需要一个考核,来检验自己的成果 4.项目,每个版块学懂以后进行相应的小项目,这样会让对语法和编程习惯有更好的理解和更好的开发效率 5.开源社区,开源项目:是...阅读全文

博文 2019-02-19 14:32:41 IT_model

一个简单的 HTTP 服务器 (一) (go语言)

// http.go package main import ( "fmt" "log" "net/http" ) func main() { fmt.Println("Hello World!") http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello, this is http server! " + r.URL.String())) }) http.HandleFunc("/bye", sayBye) log.Println("Starting server ...") log.Fatal((http.ListenAndServe(":8888", nil))) ...阅读全文

博文 2017-04-23 13:00:41 痞子汤

Gox语言——支持跨平台原生GUI开发的轻量级全功能脚本语言 - GX1

Gox语言是以Go语言(Golang)为基础的解释型/脚本语言,它除了具有一般脚本语言所具有的编写快捷、语言简洁、易于理解等特点外,还支持其他语言所不具备的跨平台原生图形界面(GUI)开发,并且代码写起来非常舒畅。 用Gox语言编程 Gox语言的主要特点包括: 跨平台,目前支持Windows、Mac和Linux等主流平台; 完全免费和开源,使用MIT授权协议; 代码基于Go语言(Golang),但做了一些优化,因此Go语言、C语言、C++、C#、Java及类似语言的开发者编写起来几乎没有任何压力,稍加了解就可以开始编写代码; 相较于Go语言严格的语法书写要求和静态数据类型限制,Gox语言实现了动态类型,并做了许多更接近主流高级语言的改进,使得代码书写上方便了很多; 基本支持所有Go语言主要的...阅读全文

博文 2020-04-09 00:32:46 陆满庭

Learn Golang List

Learn Golang List 简介 list标准包contain中的双向链表 常见操作 初始化 插入 删除 例子 package main import "fmt" import "container/list" func main() { fmt.Println("init list") l := list.New() //插入 l.PushBack("tail") fmt.Println(l) //头部添加 l.PushFront("head") fmt.Println(l) // 遍历 for i := l.Front(); i != nil; i = i.Next() { fmt.Println(i.Value) } } 如何查看帮助 终端运行godoc -http=:8080...阅读全文

博文 2019-02-13 04:34:43 笑吧小鸟

golang 指针类型引起的神奇 bug

下面是使用的结构体接口抽象定义,其实就是将结构体存进一个 map里。由于是读写都比较频繁,我加了读写锁。 // add progress listener. func (upload *UploaderGateway) AddProgress(key string, v ProgressListener) { upload.mutex.Lock() defer upload.mutex.Unlock() upload.ProgressMap[key] = v } //get progress listener. func (upload *UploaderGateway) GetProgress(key string) (v ProgressListener, err error) { up...阅读全文

博文 2019-05-26 03:34:41 kenuo

newContext()函数内结构体&Context的字面声明是不是属于局部变量,在函数调用完成后有可能随时释放Context的存储空间?

Context是结构体 ```go func newContext(path string, router, args []string, argvList []interface{}, clr color.Color) (*Context, error) { ctx := &Context{ path: path, router: router, argvList: argvList, nativeArgs: args, color: clr, flagSet: newFlagSet(), } if !isEmptyArgvList(argvList) { ctx.flagSet = pars...阅读全文

go 语言开发环境的安装与配置

go 语言开发环境的安装与配置 编辑器选择 一直以来都是用sublime,但是听说sublime对于golang的插件支持并不是特别完善,并且VS Code只要在自身所带的扩展商店里安装go插件就可以自动配置很多实用的插件,比如gocode、godef等,非常方便啊,特别是这些插件因为GFW的原因,并不是那么好配置。 https://code.visualstudio.com/ 安装golang https://golang.org/doc/install 检查安装 go version 配置环境变量 GOROOT--------C:\Go\ GOPATH--------G:\GoWorks PATH添加------C:\Go\bin\ 检查环境 go env go插件安装 打开VS Cod...阅读全文

博文 2017-10-02 16:30:01 renleimlj

好程序员Web前端开发入门之网页制作三要素

Web前端开发是由网页制作演变而来的,主要由HTML、CSS、JavaScript三大要素组成。专业的Web前端开发入门知识也一定会包含这些内容,今天好程序员就给大家简单介绍一下。HTML,超文本标记语言,标准通用标记语言下的一个应用。包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。CSS,层叠样式表,是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。JavaScript,一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常Ja...阅读全文

博文 2019-03-28 10:44:55 hcxy

免费分享阿里云负载均衡入门与产品使用指南

课程介绍 负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。 课时列表 • 课时1:负载均衡产品创建与使用限制 • 课时2:负载均衡产品结构 • 课时3:负载均衡管管理控制台基本操作 • 课时4:负载均衡产品优势与定义 • 课时5:负载均衡管理控制台监控指标的介绍 • 课时6:负载均衡管理控制台修改配置监听 • 课时7:负载均衡应用场景与名称解释 • 课时8:负载均衡证书管理常见问题 开始学习http://click.aliyu...阅读全文

Go语言开发工具 LiteIDE0.1 更新

LiteIDE简介 go语言开发工具,更新到0.1.5。 实现特征: *) UTF8文件读写 *) GO语法高亮 *) 项目管理 *) 支持.pro项目编译 *) 支持无项目单独文件编译 *) gopromake自动编译工具 *) 可以从编译错误中定位到源码 项目主页: http://code.google.com/p/golangide/ 项目下载: http://code.google.com/p/golangide/downloads/list GO编译器下载: http://code.google.com/p/gomingw/ 操作系统支持: WIN3...阅读全文

博文 2015-06-17 23:00:44 visualfc

Jsoniter 0.9.8 发布: JSON 性能对标 Protobuf

Jsoniter 是一款快且灵活的 JSON 解析器,同时提供 Java 和 Go 两个版本。 最近发布的 0.9.8 版本对性能对标 Jackson 和 Protobuf 进行了详细的评测: https://github.com/json-itera... 。性能优化的原理会近期会发布于 infoq 中文站,尽请期待。 同时提供 PHP 一般的体验。在 PHP 里,你只需要记得 json_decode ,什么文档都可以解析。现在在 Java 里,你也可以这么做了。 Any any = Jsoniter.deserialize(input); // deserialize 返回 "Any",实际的解析是延迟在读取时才做的 any.get("items", '*', "name", 0); /...阅读全文

博文 2017-02-09 06:00:24 taowen

Golang对接Appsflyer

AppsFlyer:官方文档 我的代码: Appsflyer-go golang请求Appslfyer的接口 常量定义 const ( AppID = "com.your_appid" // 在AppsFlyer上的产品名称 AppsFlyerDevKey = "your_appsflyer_devkey" // AppsFlyer的devKey AppsFlyerUrlFormat = "https://api2.appsflyer.com/inappevent/%s" // Appslfyer事件的url AppsFlyerTimeFormat = "2006-01-02 15:04:05.000" // utc时间格式 ) Event,存储事件相关信息 type Event struc...阅读全文

博文 2019-06-04 21:32:38 GUIN蚂蚁

go结构体的学习和使用

package main //Go语言组合的思想很重,数据之间如果要传承 //需要将数组组合进来 //Go有指针的概念,但是并没有指针运算符 import ( "fmt" ) const ( ANIMAL_CAT = 0 ANIMAL_MOUSE = 1 ANIMAL_DOG = 2 ) //go语言的接口 type Animal interface { name() (string) setName(name string) setType(animalType int) getType()(int) } //猫 type Cat struct{ //名称 m_name string "名称_tag" //类型 m_type int "类型_tag" //种类 m_spec string ...阅读全文

博文 2016-10-30 16:00:02 davidsu33

seelog源码阅读【笔记】

最近被后台日志弄的很烦,看到有个项目简简单单,又能满足需要,顺便试下看看效果,做下记录。只是记录下一部分内容,就不全部读了,关于源码可以去https://github.com/xmge/seelog。 结构设计 // websocket客户端 type client struct { id string socket *websocket.Conn send chan []byte } // 客户端管理 type clientManager struct { clients map[*client]bool broadcast chan []byte register chan *client unregister chan *client } WebSocket 是 HTML5 开始提供的...阅读全文

LiteIDE X for Mac有哪些功能?LiteIDE X for Mac功能分享

LiteIDE X for Mac是Mac平台上的一款用于Go编程语言的专用和多平台IDE。是一个轻量级的开源跨平台 Go语言 IDE,是最早的面向Go语言的IDE之一。 LiteIDE X for Mac功能介绍1、核心功能系统环境管理MIME类型管理可配置编译命令支持文件搜索替换和恢复快速打开文件、符号和命令插件系统2、高级代码编辑器代码编辑支持 Go语言、Markdown 和 Golang Present快速代码导航工具语法高亮和配色方案代码完成代码折叠显示保存修订重读文件使用代码差异方式3、Go 语言支持Go 编译环境管理使用标准 Go 工具和 GOPATH 编译和测试自定义 GOPATH 支持 系统定义、IDE 定义和项目定义自定义项目编译配置Go 包浏览器Go 类视图和大纲Go ...阅读全文

博文 2019-06-10 17:32:47 小小木子a

图片服务器那些处理方案。

现在傻梦兽的服务器架构如下 image.png 看到这里你们会发现一个问题就是,安流量计费。只有两台主机是有宽带,其余都是内网通信。 如果文字传输的话,流量并不算大,可以这么处理。可是图片过多的时候,如果有资本的企业选择肯定是七牛云之类的服务,因为这里服务包含了(分布式、CDN、还有负载等一系列的功能),可是这类服务如果一不小心的话,超出流量那就只能喊爸爸了。 那么我们一般的小企业是如何处理这一个问题的呢?比如我现在的再搞一台固定宽带的服务器做图片服务,然后在第一个代理服务器nginx服务器中配置如下 location ^~ /upload { proxy_pass http://192.168.1.15; proxy_set_header Host $host; proxy_set_hea...阅读全文

博文 2019-12-11 06:32:42 傻梦兽

Go 每日一库之 carbon

简介 一线开发人员每天都要使用日期和时间相关的功能,各种定时器,活动时间处理等。标准库time使用起来不太灵活,特别是日期时间的创建和运算。carbon库是一个时间扩展库,基于 PHP 的carbon库编写。提供易于使用的接口。本文就来介绍一下这个库。 快速使用 第三方库需要先安装: $ go get github.com/uniplaces/carbon 后使用: package main import ( "fmt" "time" "github.com/uniplaces/carbon" ) func main() { fmt.Printf("Right now is %s\n", carbon.Now().DateTimeString()) today, _ := carbon.No...阅读全文

博文 2020-02-15 15:32:40 darjun

go语言有哪些好的debug方法?

作者:Davie 链接:https://www.zhihu.com/question/40980436/answer/655067839 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 作为一门静态语言,支持调试是必须的。1、godebug godebug是一个跨平台的Go程序调试工具,传统的编译型语言调试器使用底层系统调用并读取二进制文件用于调试各类符号。使用起来很麻烦而且很难移植。godebug使用不同的方法,直接把源码作为目标程序,在每一行插入调试代码,然后编译并运行。 但是目前GDB做的并不好,使用起来有这样那样的问题。2、dlv 专业调试Go语言的一款工具。安装:go get -u http://github.com/derekparker/del...阅读全文

博文 2019-04-18 14:41:37 qfhanru

Go slice(四)

Golang的数据声明格式如下 data := [7]int{} data:=[3]int{1, 2, 3} data := [...]int{1, 2, 3} 我们注意到,与其他语言不同的是数组的大小放在前面。 Go 语言的数组当做参数时,是值传递,即会copy数组中的所有数据。 所以在实际的go语言开发中其实很少使用数组,而是使用slice. 所以下面我们重点介绍一下slice data := []int{} data := []int{1,2, 3} slice的声明和array类似,只是省略了大小或者'...' 当slice的空间不足时,它就会自动将存储空间增加一倍。 可以用len(data)获取slice中数据的长度,用cap(data)获取slice的容量(capacity). ...阅读全文

博文 2019-03-09 14:34:39 币来币往

使用sublime打造go语言的开发环境

工欲善其事,必先利其器。作为一个码农,编辑器是我们每天用的最多的工具。那么怎么构建一个go语言环境的编辑器呢?因为习惯轻量的sublime,不太喜欢繁重的IDE,就将自己的sublime编辑器打造为适合go语言开发的IDE。sublime是一个高度定制化的编辑器,有强大的插件管理平台,并内置了宏操作和python语言进行插件开发,通过这些,可以打造出复合我们习惯的IDE工具。在这篇文章中,将基于现有插件平台的提供的插件,进行配置。 sublime安装 根据自己的系统选择安装sublime 下载地址 安装Package Control 按下快捷键ctrl+` 在底部的控制台中输入以下代码,并回车 import urllib.request,os; pf = 'Package Control.s...阅读全文

博文 2019-08-10 14:02:47 暮雨

cacheline 对 Go 程序的影响

首先来了解一下来自维基百科上关于CPU缓存的介绍。 在计算机系统中,CPU高速缓存(英语:CPU Cache,在本文中简称缓存)是用于减少处理器访问内存所需平均时间的部件。在金字塔式存储体系中它位于自顶向下的第二层,仅次于CPU寄存器。其容量远小于内存,但速度却可以接近处理器的频率。 当处理器发出内存访问请求时,会先查看缓存内是否有请求数据。如果存在(命中),则不经访问内存直接返回该数据;如果不存在(失效),则要先把内存中的相应数据载入缓存,再将其返回处理器。缓存之所以有效,主要是因为程序运行时对内存的访问呈现局部性(Locality)特征。这种局部性既包括空间局部性(Spatial Locality),也包括时间局部性(Temporal Locality)。有效利用这种局部性,缓存可以达到...阅读全文

博文 2019-01-27 13:09:32 smallnest

Go-Notepad++

本文暂停Go语法,而转向编辑器Notepad++。——工欲善其事,必先利其器。 参考资料 notepad++支持go语言高亮与go语言插件 安装GOnpp插件 在Notepad++中,选择菜单:插件/Plugin –> Plugin Manager –> Show Plugin Manager 在弹出的Plugin Manager对话框中,单看Available页面,选择Gonpp并Install即可。 GOnpp 下图是选中GOnpp时的描述信息: GOnpp assists you writing Go-programms. It has code completion and function calltips (using gocode, see below) as well as ...阅读全文

博文 2016-10-15 16:00:06 u013344915

golang包time用法详解

在我们编程过程中,经常会用到与时间相关的各种务需求,下面来介绍 golang 中有关时间的一些基本用法,我们从 time 的几种 type 来开始介绍。 时间可分为时间点与时间段,golang 也不例外,提供了以下两种基础类型 时间点(Time) 时间段(Duration) 除此之外 golang 也提供了以下类型,做一些特定的业务 时区(Location) Ticker Timer(定时器) 我们将按以上顺序来介绍 time 包的使用。 时间点(Time) 我们使用的所有与时间相关的业务都是基于点而延伸的,两点组成一个时间段,大多数应用也都是围绕这些点与面去做逻辑处理。 初始化 go 针对不同的参数类型提供了以下初始化的方式 // func Now() Time fmt.Println(t...阅读全文

博文 2019-04-23 04:34:39 佛心看世界

96元购买一年景安快云服务器

96元购买一年景安快云服务器 原价960元一年 刚好 阿里云的活动结束了 景安就接上来了 需要的朋友们可以参加 新用户才可以96元购买 1核CPU 2G内存 1M宽带 50G SSD硬盘服务器 活动链接:https://www.zzidc.com:443/main/huodong/onCloudBuy?groomid=eTGdimieXwM%3D 活动对象是个人实名认证的新用户 新用户:是指账户内没有任何有效订单的个人用...阅读全文

1.golang从零搭建游戏服务器框架 之 实现最简单的回显服务器

写在前面的话 首先,我是一个golang语言的初学者, 这里纯粹是学习笔记,以便以后返回来查找,防止遗忘。文章内容来源于 刘丹兵老师的教程, 大家可以直接去看老师的视频来进行学习。 需求分析 搭建一个最基础的服务器框架,实现客户端向服务器发送一条数据,服务器将该数据返回到客户端 根据需求,对服务器进行如下的设计 图片.png 编码实施 首先,先建立我们的目录结构 在自己golang环境的src目录下 新建文件下 zinx,这是我们游戏框架的名称(沿用了视频中的名称), 然后,在zinx目录下新建ziface目录和znet目录。在ziface目录下新建IServer.go文件,这里写我们的服务器接口。在znet目录下新建server.go文件,在这里写IServer接口的具体实现。 1.首先编...阅读全文

博文 2020-02-20 09:32:44 孟安乐Aaron