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

一个逻辑处理器运行多个goroutine,这些goroutine的被调度顺序是怎么样的?

代码如下: ![76540481-8DEB-46C9-B1C1-1FA08EB66C92.png](https://static.studygolang.com/171218/29f84a242b5e74fe36bbed76f71f3f20.png) 显示结果如下: Create Goroutines Waiting To Finish D:2 D:3 D:5 D:7 ... D:43 D:47 Completed D A:2 A:3 A:5 ... A:43 A:47 Completed A B:2 B:3 ... B:43 B:47 Completed B C:2 C:3 ... C:43 C:47 Completed C...阅读全文

centos Liteide 无法输入中文

Liteide 无法输入中文?是的你没有看错,就是没法输入中文,在其他编辑器就没有任何问题。遇到这种问题,想到的是第一个肯定是百度了!然并卵,没有发现有人遇到这个问题,查看官文提交问题好像也没有人看到有人提这个问题,郁闷了很久,为了装这个ide花了很多时间,到最后不能输入中文。​继续查原因在无意中搜索到”Qt 无法输入中文“,突然就想到,Liteide不就是依赖Qt编译的么?是不是qt不能输入中文,Liteide也不能输入中文?​打开Qt编辑器,我敲、敲、敲。果然,没法输入中文照着下面的解决方法https://blog.csdn.net/Dreamy_LIN/article/details/79589273Qt缺少中文动态库,那么给Qt加一个中文动态库,ok果然,重新打开Qt,惊奇的发现,可...阅读全文

博文 2019-03-31 23:04:21 yoli

[Golang] VS Code 编辑器代码提示不生效

最近有段时间没写 Go,突然捡起来重新写一下。然后发现我的 VS Code 编辑器出不来代码自动提示了。同时编辑器会弹出提示说 gocode 有更新的版本支持,需要进行更新。 执行对应的更新命令 go get -u -v github.com/mdempsky/gocode 但却因为大家都懂的原因,出错了 golang.org/x/tools (download) # cd /xxx/xxx/go/src/golang.org/x/tools; git pull --ff-only fatal: unable to access 'https://go.googlesource.com/tools/': Failed to connect to go.googlesource.com por...阅读全文

博文 2019-04-23 18:34:42 iSakura

Go methods for types

You can define methods on struct types. The method receiver appears in its own argument list between the func keyword and the method name. The code snipers here just run as it looks like, so no results given. package main import ( "fmt" "math" ) type Vertex struct { X, Y float64 } func (v *Vertex) Abs() float64 { //一个Vertex指针类型的接收器,也是方法调用者 return m...阅读全文

博文 2015-12-21 20:00:00 resouer

LiteIDE使用

LiteIDE是一款开源,跨平台的轻量级Go语言集成开发环境。操作简单,提示迅速!当然不足之处也有很多,不过除了golad之外,个人觉得比vscode,eclipse等用的更舒心一点(ps:指的是编写golang,每个人的感受不一样,勿喷)目前本人使用的LiteIDE版本号是:x36.1其中让我感受不是很好的两个点是:1.没有自动go lint检测,需要手动。2.更改键盘映射不能捕获按键的内容,需要自己粘贴复制比方说Ctrl+C之类的上去,如果不能接受这两点需要考虑考虑。当然也有可能是我玩的不够透彻,如果有人知道,请评论告知,感激不敬:)。那么,接下来就让我们来学习一下LiteIDE这款国人开发的编辑器的简单用法:当我们使用一款IDE的时候,首先当然是配置一下环境,其次是快捷键,界面布局之类...阅读全文

博文 2019-10-25 15:32:49 aside section._1OhGeD

[译] 使用 Go 和 ReactJS 构建聊天系统 (一)

本节完整代码:GitHub 我们将通过设置两个项目来开始这个课程。一旦我们完成了枯燥的设置,就可以开始添加新功能并构建我们的应用程序,将看到一些积极的结果! 目标 在这部分课程结束后,你将掌握: 在 backend/ 目录里创建基本的 Go 应用 在 frontend/ 目录里创建基本的 ReactJS 应用 通过实现这两个部分,你将能够在接下来的几节课程中为聊天系统添加一些功能。 准备工作 为了完成本系列教程,我们先要做以下的准备工作。 需要安装 npm 需要安装 npx。这个可以输入 npm install -g npx 安装。 Go 语言版本需要满足 1.11+。 需要一个代码编辑器来开发这个项目,例如 VS 设置 Go 后端项目 如果你熟悉 Go 的话,这一步非常简单,我们首先要在项...阅读全文

博文 2019-08-02 14:34:31 咔叽咔叽

Go语言开发工具 LiteIDE X27 发布

经过一个月的开发,LiteIDE X27正式发布。 新版本重新设计了编译和编辑工具栏。支持编译项目锁定,支持Go语言鼠标下代码提示和鼠标导航功能,编辑器支持换行/空白显示等设置,修复了谷歌拼音输入法光标显示等BUG。 ### 2015.2.4 Ver X27 * LiteIDE * create independent project gotools and replace liteide_stub * move build toolbar to the main windowww.suanxian.com * move editor tab to editor widget * fix multi window keyshort invalid * fix treeview scroll ...阅读全文

从iOS到Golang - 前言

一直很矫情的认为每个文集都需要一个序...就像起小名儿一样——老人说,有了小名,娃就好养活了。有了序,文集就不会轻易弃坑了... 嗯嗯,那么随便唠唠吧~ 关于知识体系 很久没在简书上写文章了,是因为自己搭建了一套wiki,日常学习笔记、感想、项目计划、总结等文档都沉淀到wiki上了。 初识wiki 是在我团发现wiki这套系统很好用的,但是由于厂里人太多(劳动密集型嘛...),加上广大程序员哥哥们出于各种需求写了大量爬虫在wiki中游弋,使得我厂wiki系统不堪重负,经常崩溃,导致大家对wiki深恶痛绝... wiki和markdown 和小伙伴讨论过,在哪里记笔记和知识比较好。小伙伴们普遍表示更喜欢用markdown而非慢的要死的wiki。 其实,markdown和wiki是两个东东。ma...阅读全文

优雅地使用命令行:Tmux 终端复用

什么是 Tmux 你是否曾经开过一大堆的 Terminal?有没有把它们都保存下来的冲动?Tmux 的Session就是做这件事情的! 你可以随时退出或者进入任何一个 Session。每个 Session 有若干个 Window,每个 Window 又可以分成多个窗格(Pane)。 极大地满足 Terminal 用户的需求。 此外即使 Terminal 意外关闭也没关系,因为 Session 完全保存在 Tmux Server 中。 再次打开 Terminal 时只需$ tmux attach便可回到你的工作区,就像从未退出过一样。 同时 Tmux 还支持“远程协助”,原本在服务器中,大家ssh上去之后都是互不干扰的操作,如果进入了相同的 Tmux Session,所有人看到的画面都是一样的...阅读全文

TCP协议特点和三次握手/四次挥手

一.TCP的特性 TCP提供一种面向连接的、可靠的字节流服务 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP TCP使用校验和,确认和重传机制来保证可靠传输 TCP给数据分节进行排序,并使用累积确认保证数据的顺序不变和非重复 TCP使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小进行拥塞控制 注意:TCP 并不能保证数据一定会被对方接收到,因为这是不可能的。TCP 能够做到的是,如果有可能,就把数据递送到接收方,否则就(通过放弃重传并且中断连接这一手段)通知用户。因此准确说 TCP 也不是 100% 可靠的协议,它所能提供的是数据的可靠递送或故障的可靠通知。 二.三次握手与四次挥手 所谓三次握手(Three-way Handshake),是指建立一个 TCP 连接时...阅读全文

plan9 汇编

声明 golang使用的是plan9汇编,不少调度的底层代码都是通过plan9实现,因此了解plan9汇编对Go源码剖析有非常重要的意义,以下的内容均针对golang中使用的plan9汇编。 汇编知识比较杂,如果有需要可以专门去学,本文只是为了看懂golang使用的汇编代码,因此只是简单介绍。 以下内容均来自网上整理,非原创,如有雷同,见谅。 通用寄存器 rax, rbx, rcx, rdx, rdi, rsi, r8~r15 共15个通用寄存器。 在golang中这些寄存器对应了R1-R15,对应关系如下 硬件寄存器 Golang中的表示 rax R1 rbx R2 rcx R3 rdx R4 rdi R5 rdi R6 rsi R7 r8-r14 R8-14 rip(pc) R15 在g...阅读全文

博文 2020-05-11 07:32:46 不争_900c

VS Code 强有力的Golag编辑环境

VS Code 强有力的Golag编辑环境 简介 我现在基本只用VSCode了,微软想认真做一个东西,真的就是品质的认证.这里有一个中文手册,这里我就是简单的讲一讲我自己的心得 用来开发Golang优点 可以按照workspace进行配置编辑配置,我可以一个项目一个Gopath,防止所有项目共用Gopath造成过渡补全,索引的一些问题,在workspace config 你完全可以这样 { "go.gopath": "/home/ysy/work/lib1:/home/ysy/work/lib2:${workspaceRoot}" } 完美支持Gocode,Gofmt,Godef等工具,完美的补全,代码索引 超预期的go test支持,直接帮你生成按钮有木有,点一点就能go test! 有什...阅读全文

博文 2017-06-10 00:00:01 yangshiyu

用Golang实现基于kafka中间件

这两天用Go写了第一个项目,还在demo阶段,后续会持续记录关于Go开发的一些坑点。 项目叫做bigpipe,是为了解决服务之间异步Http调用而生的,用Go实现起来非常的简单,并发能力也很不错。 我为项目做了一个简单的分享PPT供下载。 项目地址:https://github.com/owenliang/bigpipe,编辑器一定要用Gogland,错误提示太强大,很难写出错误的代码! 目前有几个心得记录一下: 配置文件我用的json,因为go是强类型,所以解析json异常痛苦,但是开源库我也不放心,所以就用标准库json慢慢搞。 一个目录下的go文件属于一个包,包就是目录的名字,包内互相调用不需要import了。 管道是引用的,不需要指针。 格式化字符串时,传string*和string...阅读全文

博文 2017-09-30 08:25:20 鱼儿的博客

Go by Example: Variables

在Go语言中,所有的变量都是显示声明的。编译器会使用变量进行相应的操作,例如:在函数调用时进行类型检查。 package main import "fmt" func main() { //使用var声明单个或者多个变量 var a string = "initial" fmt.Println(a) //你也可以一次声明多个变量 var b, c int = 1, 2 fmt.Println(b, c) //Go语言会利用初始化的变量推断出变量的类型 var d = true fmt.Println(d) //变量声明时,如果没有进行初始化。那么它的值为相应类型的零值(zero-valued) //例如:int型变量的零值为0. var e int fmt.Println(...阅读全文

博文 2015-06-17 23:08:14 codemanship

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

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