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

获奖作品|腾讯移动分析:行业分析

内容来源:本文为腾讯移动分析与人人都是产品经理联合举办产品测评大赛的参赛作品。 参赛者:张二军 编辑:Fiona 根据腾讯移动分析产品的功能,找了同行业比较具有代表性的产品,腾讯移动分析、友盟U-app、神策数据主要从三个方向进行各自产品的进行对比,具体为数据采集能力,数据分析能力,服务方式。以下各自产品的对比,所有观点均代表个人看法,如有不恰当的地方,请指导并谅解。数据采集能力1、sdk支撑渠道腾讯: 优势:支撑的Android、IOS、H5、小程序、Hybrid 劣势:不支撑CRM、ERP系统的导入、微信公共账号友盟: 优势:支撑Android、IOS 劣势:不支撑H5、小程序、CRM、ERP、微信公共账号神策: 优势:支撑Android、IOS、H5、CRM、ERP、pc端,历史数据导...阅读全文

博文 2018-06-29 19:34:39 人人都是产品经理社区

使用Redis做任务队列(Golang)

在上篇用纯go在本机模拟了下分布式队列的东西。这里补上Redis队列部份。 用Redis做队列有下面三个问题需解决: 1. 队列构建 使用Redis的RPUSH/LPOP来解决 2. 参数传递/解析 客户端将JOSN参数存入Redis,Server端取出后解析还原。 3. 连接池 redigo支持Redis连接池 下面代码就是具体解决实现: //Redis做后台任务队列 //author: Xiong Chuan Liang //date: 2015-3-25 package main import ( "bytes" "encoding/json" "errors" "fmt" "time" "github.com/garyburd/redigo/redis" ) func main() ...阅读全文

博文 2015-06-17 20:17:45 xcltapestry

基于golang的爬虫实战

基于golang的爬虫实战 前言 爬虫本来是python的强项,前期研究过scrapy,也写过一些简单的爬虫小程序,但是后来突然对golang产生兴趣,决定写写爬虫练练手。由于本人golang萌新,有错误之处,欢迎指正。 大致思路 由于现在动态页面比较多,因此考虑通过WebDriver驱动Chrome等页面渲染完成再抓取数据。(刚开始是用Phantomjs,后来这货不维护了,而且效率不算高) 一般爬虫程序运行在linux系统中,所以考虑Chrome的headless模式。 数据抓取到之后保存到CSV文件中,然后通过邮件发送出去。 不足之处 因为需要渲染,所以速度会降低不少,即便是不渲染图片,速度也不是很理想。 因为刚开始学习,所以多线程什么的也没加进去,怕内存会崩盘。 没有将数据写入到数据库...阅读全文

博文 2018-04-20 15:33:24 Raphael_Zhang

Rust lang编程语言推荐

一门新的编程语言要发展离不开广大程序员的『抹黑』,比如……还是不得罪人了,反正PHP是世界上最好的语言。 当然也离不开寡头的推广,比如Golang就有个厉害的干爹。一直听别人黑Rust lang有多糟糕、多没前途,为了和别人一起黑Rust我觉得有必要学习学习,因为无脑黑不符合我码农的身份…… 初学Rust编程,写了个简单的Demo,写完后第一感觉是"这是什么玩意儿?"上手居然能这么快,不看文档都能猜到怎么写,写了10多个函数编译居然没报bug?一个waring都没有?烫烫烫也没看到?现在已经对这门语言爱不释手,就像最初用Python一样,用的越多惊喜越多。Rust的语法非常优美,在我心中只有经常被人嘲讽的C#能媲美。不过更让人爱不释手的还是Rust的包管理工具Cargo,用起来就像飞一样,太...阅读全文

博文 2017-08-17 11:05:06 sibenx

go 包管理 踩坑

安装或者 运行 go build 时候报错: go: finding github.com/modern-go/concurrent latest go: finding gopkg.in/check.v1 latest go: golang.org/x/net@v0.0.0-20190503192946-f4e77d36d62c: unrecognized import path "golang.org/x/net" (https fetch: Get https://golang.org/x/net?go-get=1: dial tcp 216.239.37.1:443: connectex: A connection attempt failed because the connect...阅读全文

博文 2019-06-25 09:32:38 源泉

怎样才不浪费IP的价值?

当年的“我叫MT”迅速唤起了很多玩家小学时代集卡、打卡的热情,它有意思,也多少有点儿怀念的味道;而后至今不断推出的各式纯卡牌手游几乎“转瞬即逝”,甚至有不少难以突围到玩家面前。等到“刀塔传奇”推出,让卡牌游戏变得“活”了起来,我们再一次欢呼:又有能玩儿的了。 但随着不断的IP、内容的填充,各类技术、玩法的堆加,手游被扮得越来越好看诱人,但真让玩家进行深入体验后,能够持续在一款游戏上进行投入的(无论是金钱还是时间)却越来越少。就好像有人说:“手游不能再带给我太大的惊喜了,无论噱头有多足。” 我想,这大概就是手游“活不好”了吧。 对于如今的手游市场情况来看,由于玩家要求的不断增高,大多“模版式”的游戏已经难以满足用户的胃口,企业购买用户的成本开始逐渐加大,这无疑给市场营...阅读全文

gopher china 菜鸟之感

golang我也是2015年2月份才听闻的,记得当时我正辅修android开发,当时我是会java的,但是也想看看还有哪些可以做android开发,当时看到的是ruby motion,我就上网看了一些资料无意中在下面的评论中看到了golang,于是我就去百度了它一下。后面我就尝试了它的语法,是一种比较简洁开发效率比较高的语言,但是给我一种脚本语言的感觉,当然它不是。后来我就加入了一个golang QQ群,知晓了golang china的活动,因为同在上海,我就报名了。。。 其实我也是2014年7月毕业的,工作经验少和技术薄弱,在gopher china这两天满满的干货中,我感觉自己要学的十在太多,主流的技术好多都不知道,因为身处于外包行业中,以完成客户的需求为主,对于高新技术涉及十再太少,我...阅读全文

Go语言核心之美-必读

Go语言核心之美开篇了!,无论你是新手还是一代高人,在这个系列文章中,总能找到你想要的! 博主是计算机领域资深专家并且是英语专8水平,翻译标准只有三个:精确、专业、不晦涩,为此每篇文章可能都要耗费数个小时,但是我无怨无悔! Go语言专栏中的文章都是很实时很新鲜的,我的目标就是:与世界同步!所以,请尽情享受饕餮大宴吧! 同时欢迎大家加入Golang隐修会,组织网站vgo.io(还在制作中),QQ群894864,欢迎加入这个大家庭,这里有所有你想要的,是其它群无法提供的,而且热心大神很多哦...阅读全文

博文 2017-10-27 20:56:46 erlib

来自朝鲜的问候 golang入坑系列

鸿渐于陆 本想着写满十八式,但按照目前的进度来看,是很难凑够十八式了。所以还是那句话,量力而行,适可而止。能写多少就写多少,我没法保证看完这本golang脱口秀,一定能成为golang大拿。但入了门,能自力更生开始写golang段子应该差不多。 技术这点事,说破天就是熟练工。一个知识点,一次不懂,就看两遍。两次不行,就来三遍。熟能生巧,巧能夺天。多少个大牛也是从一行一行代码中走过来的。毕竟像李一男这样开挂的技术太少了,绝大多数的coder生涯还是依靠代码量堆砌起来的。 我还在上大学的时候,计算机课程分为量大专业方向:理论研究和应用实践。理论研究就是研究各种算法原理,偏向于数学。应用实践则偏向于想法落地,也就是编码实现。那会总觉得写代码是一件非常有挑战性和有前途的事情,而研究算法,枯燥无聊,没...阅读全文

博文 2017-12-08 06:00:01 vikings-blog

Mac 下bee 安装问题

github.com/beego/bee安装提示以下错误/usr/local/go/pkg/tool/darwin_amd64/link: /usr/local/go/pkg/tool/darwin_amd64/link: combining dwarf failed: Unknown load command 0x32 (50)在最新的go语言1.11的版本已经解决了 所以我们只需要升级下我们的go版本就可以了升级的方式两种,这取决于你的go的安装方式 第一种 直接从官网下载的 相同 直接去官网下载最新的 安装就可以了第二种你的go是通过brew的方式安装的,那就是还是通过无脑的安装方式进行升级brew upgrade go两种安装方式更新后 再重新安装问题就解决...阅读全文

博文 2018-11-13 00:29:35 ccoding

go和Rust的简单对比[针对早上某人的评测文章写的-该文章已经被作者删除]

go代码 ```go func main() { /* 这是我的第一个简单的程序 */ t := time.Now() sum := 0 for i := 0; i < 20000; i++ { for j := 0; j < 20000; j++ { sum = sum + i*j } } fmt.Println(time.Now().Sub(t)) fmt.Println(sum) } ``` Rust代码 ```rust let start = SystemTime::now(); let mut x = 0; let mut i = 0; let mut y: u64 = 0; while x ...阅读全文

golang学习笔记之-context详细理解篇

image.png context.Background():可以简单理解我们知道这个上下文要去干什么 context.TODO():可以简单理解我们不清楚要使用哪个上下文、或者还没有可用的上下文 下面代码演示: 1.context.WithCancel():返回Context和取消函数用来取消Context package main import ( "context" "log" "os" "time" ) var ( logg *log.Logger ) func work(ctx context.Context, ch chan bool) { for { select { case <-ctx.Done(): logg.Println(`下班!`) ch <- true retur...阅读全文

博文 2019-01-30 20:34:43 Maggie_up

Service Mesh 落地负责人亲述:蚂蚁金服双十一四大考题

2019 年的双十一是蚂蚁金服的重要时刻,大规模落地了 Service Mesh 并顺利保障双十一平稳渡过。我们第一时间与这次的落地负责人进行了交流。采访的开头:花肉:“这次大规模上了 Service Mesh ,双十一值班感觉是什么?”卓与:“Service Mesh 真的稳。” 图为卓与 TOP100 北京峰会分享现场图 落地负责人介绍Service Mesh 是蚂蚁金服下一代架构的核心,今年蚂蚁金服大规模的 Service Mesh 落地,我有幸带领并面对了这个挑战,并非常平稳的通过了双十一的大考。我个人主要专注在微服务领域,在服务注册与服务框架方向深耕多年,主导过第五代服务注册中心(SOFARegistry)设计与实施,在微服务的架构演进中持续探索新方向,并在蚂蚁金服第五代架构演进中...阅读全文

[golang] 数据结构-树形选择排序(锦标赛排序)

接上文 简单选择排序简单选择排序很容易理解,代码也很容易实现。但毕竟比较次数太多。树形选择排序则对这个问题进行了改进。 原理简单来说,树形选择排序(Tree selection sort)就是在选择完一轮找出最小值后,直接在与最小值比较中稍大的元素里筛选出最小的。这样避免了简单选择查询那种,抛弃了之前比较过的结果,每次都全部重新比较的情况。 流程举例 先列出所有待排序的元素如:8、4、12、7、35、9、22,并用他们组成满二叉树的叶子元素,不足的位置以∞作为补充。将元素两两相比较,分别得到较小值:4,7,9,22。再次两两比较,得到4,9。最终比较一次得到最小值4。由此构建出一个完整的满二叉树: 完成一轮比较后,将胜出者4的叶子节点改成∞,然后由它的兄弟节点8继续参加下一轮比较。从这次开始...阅读全文

博文 2018-07-15 12:36:10 NicoChen

这个程序有什么问题

![无标题2.png](https://static.studygolang.com/171201/82cd80f1c581c116d680709b9b1bca45.png) 执行结果: In f fatal error: all goroutines are asleep - deadlock! goroutine 1 [semacquire]: sync.runtime_Semacquire(0xc42000e23c) /home/zenglin/Downloads/go1.8/src/runtime/sema.go:47 +0x34 sync.(*WaitGroup).Wait(0xc42000e230) /home/zenglin/Downloads/go1....阅读全文

golang协程池tunny源码解析

tunny github地址:https://github.com/Jeffail/tunny 项目结构 tunny的项目结构非常简单,核心文件就是tunny.go与worker.go 整体分析 tunny主要是通过reqChan管道来联系pool与worker之间的关系,worker的数量与协程池的大小相等,在初始化协程池时决定;各个worker竞争地获取reqChan中的数据,然后处理,最后返回给pool; 代码详解 type Pool struct { queuedJobs int64 ctor func() Worker workers []*workerWrapper reqChan chan workRequest workerMut sync.Mutex } Pool结构体: ...阅读全文

博文 2020-01-25 19:32:38 byte

golang 方法

golang语言中的方法是与对象实例绑定的特殊函数,用于维护和展示对象的自身状态。与函数的区别是方法有前置实例接收参数(receiver),编译器根据receiver来判断该方法属于哪个实例。receiver可以是基础类型,也可以是指针类型,这会关系到是否需要有可以修改对象实例的能力。在调用方法时,可以使用对象实例值或指针,编译器会根据receiver类型自动在基础类型和指针类型之间转换,比如:type rect struct { width, height, area int } func (r *rect) pointer() { r.width += 2 r.area = r.width * r.height } func (r rect) value() { r.width += 4...阅读全文

博文 2017-02-10 11:12:09 100018

无脑for在程序被终止的时候协程会终止吗

func main(){ go func(){ for{ time.Sleep(1 * time.Second) fmt.Println("something") } } //此处不让程序退出 for{ time.Sleep(1*time.Second) } }以上代码。运行起来后,如果直接kill进程将他杀掉的话,内存是怎么样的情况,是不是包括起的所有协程都会被终止,若是不会,是不是会造成内存泄漏?早上看了篇文章后还是不懂。请各位指教...阅读全文

博文 2019-01-02 13:55:11 UYAD

Typescript --- 基础入门

Typescript 给 JavaScript 带来了强大的类型系统 类型语言: duck typing 所谓看起来像鸭子的就是鸭子类型;比如: 当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子 package main import ( "fmt" ) type ISayHello interface { SayHello() } type Person struct {} func (person Person) SayHello() { fmt.Printf("Hello!") } type Duck struct {} func (duck Duck) SayHello() { fmt.Printf("ga ga ga!") } func gree...阅读全文

博文 2019-04-19 11:34:44 Joah_l

leetcode刷题笔记(Golang)--5. Longest Palindromic Substring

题链接5. Longest Palindromic Substring Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. Example 1: Input: "babad" Output: "bab" Note: "aba" is also a valid answer. Example 2: Input: "cbbd" Output: "bb" 解题思路:基本就是无脑的”马拉车“算法(Manacher),其中的字符串处理部分用到了链接的现有函数 func longestPalindrome(s string) ...阅读全文

博文 2020-02-06 20:32:41 煮酒_zzh

无标题文章

package mainimport ("fmt" _"github.com/go-sql-driver/mysql""google.golang.org/grpc" pb"jiuye.com/dto" server"jiuye.com/server""log""net")const (port= ":50051")func main() {lis, err:= net.Listen("tcp", port)if err!= nil {log.Fatalf("failed to listen: %v", err)}s:= grpc.NewServer()pb.RegisterGreeterServer(s, &server.UserServer{})if err:= s.Serve(lis)...阅读全文

博文 2019-08-23 23:32:55 大梨子_d5bf