golang使用walk编写的博客搜索查看的windows下的GUI软件

为了学习golang,我使用了golang walk这个windows下的GUI包实现了一款博客搜索查看的小软件。 先上个展示图 实现了几个功能 可以查询五个博客网站 2.可以翻页 3.有收藏功能 // Copyright 2012 The Walk Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICE...阅读全文

2017-08-25 13:03:17 zzxfreeman
阅读:1228 评论:0

golang使用walk编写的博客搜索查看的windows下的GUI软件

为了学习golang,我使用了golang walk这个windows下的GUI包实现了一款博客搜索查看的小软件。 **先上个展示图** ![输入图片说明](https://static.oschina.net/uploads/img/201708/25121015_VrPe.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201708/25121037_6gZp.png "在这里输入图片标题"...阅读全文

2017-08-25 14:06:12 timzzx
阅读:10271 评论:7

Go实战--golang使用ssl连接MongoDB(mgo)

生命不止,继续 go go go!!! 之前写过关于golang如何使用mongodb的文章: Go实战–golang中使用MongoDB(mgo) 文中主要介绍了Windows下如何安装mongodb,mongodb的简单命令,golang如何操作mongodb,以及使用golang+mongodb创建的微服务。 今天继续深深耕一点。 Windows下mongo使用配置文件 创建一个配置文件,例如命名为mongod.cfg 创建一个日志文件,例如命名为mongodb.log 创建一个存储数据的...阅读全文

2017-08-25 10:54 wangshubo1989
阅读:2635 评论:0

41. 等价二叉树

实现两个二叉树的比较。二叉树的基本类型和函数来源于 “golang.org/x/tour/tree”,为了避免网络问题影响代码运行,我把源码直接加入到了代码中。 // A Tree is a binary tree with integer values. type Tree struct { Left *Tree Value int Right *Tree } // New returns a new, random binary tree holding the values k, 2k, ...阅读全文

2017.08.31 15:21 厚土火焰山
阅读:861 评论:0

基于filebeat二次开发Kubernetes日志采集

目前最为主流的容器编排工具主要有kubernetes、mesos、swarm,个人不评价谁好谁坏因为每个东西都有自己的优势。不过个人认为目前关注度最高的应该当属kubernetes,现在越来越多的公司采用kubernetes作为底层编排工具开发自己的容器调度平台。既然是一个PAAS平台那么就应该提供一个计算监控等一体的服务,因为是在kubernetes运行上面的容器大多数都是无状态服务,所以统一的日志管理又是其中必不可少的一部分。下面我们就讲一下如何基于filebeat开发属于自己的日志采集。 ...阅读全文

阅读:5666 评论:0

使用Golang写出高并发代码

本文原创文章,转载注明出处,博客地址 https://segmentfault.com/u/to... 第一时间看后续精彩文章。觉得好的话,顺手分享到朋友圈吧,感谢支持。 笔者目前处于失业状态,之前一直对Golang如何处理高并发http请求的一头雾水,这几天也查了很多相关博客,似懂非懂,不知道具体代码怎么写 下午偶然在开发者头条APP上看到一篇国外技术人员的一篇文章用Golang处理每分钟百万级请求,看完文章中的代码,自己写了一遍代码,下面自己写下自己的体会 核心要点 将请求放入队列,通过一定...阅读全文

阅读:7441 评论:0

用go写windows系统服务

用go+nssm非常容易实现windows系统服务,先看下面的程序 package main func main() { //Call this function where the action happpens doStuff() } func doStuff() { for { //the actual stuff happens here. } } 下载nssm复制到c:\windows目录,执行 nssm install MyService d:\MyService.exe nssm下...阅读全文

2017-09-09 20:57 YiYou.Org
阅读:5131 评论:0

代码质量管控的四个阶段

-- 背景 -- 本文讨论的代码质量指的是代码本身的质量,包括复杂度、重复率、代码风格等要素。代码是团队的共同财产,代码质量是团队技术水平和管理水平的直接体现。 代码质量下降通常会自成因果,导致恶性循环: * 破窗效应:在烂代码上继续生产烂代码的心理负担小很多 * 传染性:烂代码传递着一种不在意质量,只看业务成果的负面信息,会伤害团队的技术热情和工作氛围,导致更多烂代码出现 本文会分析代码质量下降的内在机制,并分享在代码质量管控方面的一些实践经验。 --------- 熵增定律与代码质...阅读全文

阅读:1901 评论:1

Golang面试题解析

最近在很多地方看到了golang的面试题,看到了很多人对Golang的面试题心存恐惧,也是为了复习基础,我把解题的过程总结下来。 面试题 1. 写出下面代码输出内容。 package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func(...阅读全文

2017-09-12 11:49:12 梦朝思夕
阅读:16823 评论:16

Golang Context源码学习

起因 最近学习golang框架的时候发现许多地方都用到了context的概念,比如grpc请求 etcd访问等许多地方。 本着追根溯源搞清楚实现方式的劲头,决定研究下实现原理。 用处 一般上用在GRpc等框架内,设置超时时间,比如 ctx, cancel := context.WithTimeout(context.Background(), 2 * time.Second) dial, err := grpc.DialContext(ctx, etcdAddr, grpc.WithInsecu...阅读全文

2017.09.13 23:38 Kathent
阅读:1289 评论:0

kubernetes集群中利用etcd和grpc实现golang服务间通信

kubernetes集群中利用etcd和grpc实现golang服务间通信 注:文中涉及工作环境相关的网址和IP已经被替换 1. 项目背景 服务运行于docker容器中 使用kubernetes管理容器 服务有多个节点作为一个集群 使用rest接口设置服务缓存中的信息 需要将信息同步到集群中其他节点 2. 项目方案 使用grpc做服务间通信 从etcd中读取服务所有状态为running的节点信息,包括:podIp、status、hostIp、startedAt(启动时间) 服务启动时选取运行时间...阅读全文

2017-06-04 22:52 letian0805
阅读:3371 评论:0

Go实战--使用golang开发Windows Gui桌面程序(lxn/walk)

生命不止,继续 go go go!!! golang官方并没有提供Windows gui库,但是今天还是要跟大家分享一下使用golang开发Windows桌面程序,当然又是面向github编程了。 知乎上有一个问答: golang为什么没有官方的gui包? 这里,主要使用第三方库lxn/walk,进行Windows GUI编程。 lxn/walk github地址: https://github.com/lxn/walk star: 2018 描述: A Windows GUI toolkit ...阅读全文

2017-09-12 20:23 wangshubo1989
阅读:12513 评论:0

Go语言如何在没有实现功能的情况下写出完善的单元测试代码

背景 最近在研究用Go写一个自己的解释型语言,有一本书叫《Writing An Interpreter In Go》, 作者在讲解如何编写解释器的时候,都是从写一个_test.go开始的,也就是说作者习惯于先写单元测试,以测试驱动开发,其实这是一个非常好的习惯,不过,作者在写_test.go文件的时候,都是先假设这个结构体、函数已经存在了,并且没有把关键的对象抽象成接口,因此,作者在运行go test的时候,是无法完成测试的,因为连编译都过不了,必须一边完善代码,一边重复运行go test,一直...阅读全文

2017.09.20 14:53 乱入的Zeal
阅读:730 评论:2

Golang视角下的设计模式

这篇文章想聊聊Golang语言下的设计模式问题,我觉得这个话题还是比较有意思的。Golang没有像java那样对设计模式疯狂的迷恋,而是摆出了一份“看庭前花开花落,望天空云卷云舒”的姿态。 单例模式: Gloang的单例模式该怎么写?随手写一个,不错,立马写出来了。但这个代码有什么问题呢?多个协程同时执行这段代码就会出现问题:instance可能会被赋值多次,这段代码是线程不安全的代码。那么如何保证在多线程下只执行一次呢?条件反射:加锁。。。加锁是可以解决问题。但不是最优的方案,因为如果有1W并...阅读全文

阅读:3102 评论:0

【Golang】如何统一处理HTTP请求中的异常捕获

最近写GOLANG项目,不使用框架,路由选择httprouter 现在想实现一个需求:在不修改httprouter源码的前提下,对所有注册的路由handle进行异常捕获。 大家都知道golang使用panic()产生异常,然后可以recover()来捕获到异常,否则主程序直接宕掉,这是我们不希望看到的。 或者全程检查error,不主动抛出异常。即便这样,可能异常依然不能避免。 既然要recover(),但又不想在每个handle里面都去recover()一遍,如果你也有这样的需求,下面讲到的可能...阅读全文

阅读:3011 评论:0

Go编译器的小修改

解决golang有未使用的变量和包时编译报错的问题 Go语言将variable declared but not used和package imported but not used设计成错误,正常使用无可厚非,但调试代码时会非常恼人。下面,就通过修改go源码将这两类错误改为警告。利益于golang的神奇编译速度,几分钟就可以轻松搞定。 首先看看效果吧: // 测试代码 package main import ( "time" "fmt" ) func main() { var i int fm...阅读全文

2017.09.23 12:45* NeverLea
阅读:1637 评论:0

用 Go 构建一个区块链 -- Part 1: 基本原型

引言 区块链是 21 世纪最具革命性的技术之一,它仍然处于不断成长的阶段,而且还有很多潜力尚未显现出来。 本质上,区块链只是一个分布式数据库而已。 不过,使它独一无二的是它是一个公开的数据库,而不是一个私人数据库,也就是说,每个使用它的人都有一个完整或部分的副本。 只有经过其他数据库管理员的同意,才能向数据库中添加新的记录。 此外,正是区块链,才使得加密货币和智能合约成为现实。 在本系列文章中,我们将基于一个简单的区块链实现,构建简化版的加密货币。 区块 让我们从 “区块链” 中的 “区块” 谈...阅读全文

2017.09.23 22:00* simple_the_best
阅读:1111 评论:0

我对Go语言的错误处理有哪些不满,以及我是如何处理的

写 Go 的人往往对它的错误处理模式有一定的看法。按不同的语言经验,人们可能有不同的习惯处理方法。这就是为什么我决定要写这篇文章,尽管有点固执己见,但我认为听取我的经验是有用的。我想要讲的主要问题是,很难去强制执行良好的错误处理实践,错误经常没有堆栈追踪,并且错误处理本身太冗长。不过,我已经看到了一些潜在的解决方案,或许能帮助解决一些问题。 与其他语言的快速比较 在 Go 中,所有的错误都是值。因为这点,相当多的函数最后会返回一个 error, 看起来像这样: func (s *SomeStru...阅读全文

2017-09-22 15:25 Andrew Morgan
阅读:3283 评论:6

history.back(-1)和history.go(-1)的区别

history.back(-1)和history.go(-1)的区别 阅读:7233 次 编辑日期:2016-01-11 目录: 1这个方法的用途 2两个方法的区别 3总结 概述: H5页面做多了,自然就会做到页面上的返回功能,返回功能大致有两种:history.back(-1)和history.go(-1),今天我们来说说两种方法的区别。 这个方法的用途 返回一个页面方法有很多,就好比给返回按钮绑定一个URL,但是如果一个页面可以从很多页面到达,那么这个页面返回的页面就不是固定的,那么绑定固定...阅读全文

阅读:8237 评论:0

golang实现热加载配置

今天继续优化了bigpipe项目,核心目标就是解决重启程序损失流量的问题。 背景 bigpipe作为一个消息中间件,其出现是为了给php程序提供方便的异步Http调用功能。然而php语言并不是常驻进程模型,当它请求bigpipe失败后,顶多重试几次,就必须尽快的向用户返回应答。因此,bigpipe服务的可用性是非常重要的。 bigpipe使用golang编写,采用channel逐层缓冲流量和数据,采用协程并发处理数据。因为bigpipe承接了若干业务,经常会对配置文件做一些修改,那么就必须重启b...阅读全文

2017-07-26 00:00 鱼儿的博客
阅读:4303 评论:0