
Golang自学及项目实战
一个偶然的机会让我接触到golang,被其能把很复杂的高性能开发变得简单起来的优点深深吸引,从此一发不可收拾。。。
该专栏为我自学golang的一些重点总结以及项目中常遇到的一些问题,希望能吸引更多人来使用golang。
fswy
欲当大事,需是笃实。
展开
-
一起了解什么是高并发
我们在找工作时,经常在招聘信息上看到有这么一条:有构建大型互联网服务及高并发等经验,想到高并发,我们第一想到了媒体上经常出现的新闻阿里双11每秒处理xx万订单,瞬间觉得高并发是一种很屌的技术,很高大上,如果像笔者这种没做过大型服务的普通程序员,在此根据网上的资料,对高并发写一下我个人的看法高并发的概念 这里我引用一段架构师之路公众号究竟啥才是互联网架构高并发中的一段话来描述转载 2018-02-01 10:15:59 · 2898 阅读 · 0 评论 -
iOS远程真机之wdaproxy使用指南
基于 WebDriverAgent 的 iOS 远程控制 iOS 真机如何安装 WebDriverAgent一、 在web端打开http://localhost:8100 问题:WDA未启动WDA安装依赖报错: 这个东西神坑,我搞了一天都没找到解决方案,最后在appium讨论中发现,解决方案是: 先定位到WebDriverAgent 所在路径$ cd /Users/XXXX/原创 2017-08-08 16:47:08 · 4480 阅读 · 0 评论 -
Golang学习之采用Glide进行包管理
概述 Golang的包管理工具有很多,本篇幅主要介绍Glide进行包管理。安装及命令介绍➜ tonny@tonny-pc ~ go get github.com/Masterminds/glide命令介绍glide create|init 初始化项目并创建glide.yaml文件.glide get 获取单个包 --all-dependencies 会下载所有关联的依赖包 -s 删除所转载 2017-08-21 17:23:40 · 1841 阅读 · 0 评论 -
Golang学习import 导入包的语法
一、包的导入语法 在写Go代码的时候经常用到import这个命令用来导入包文件,看到的方式参考如下: import( "fmt" )然后在代码里面可以通过如下的方式调用 fmt.Println("hello world")上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块,当然Go的import还支持如下两种方式来加载自己写的模转载 2017-08-24 15:43:41 · 1833 阅读 · 0 评论 -
Golang学习之常见错误
知行易,知其不行难。首先,在这片文章中指出常见的一些错误,避免你在之后的编程中无所谓的调试工作。多余的 Imports命名区分大小写分号分行无效的分号语法和其它问题多余的 Imports新建文件,将如下内容拷贝并执行ErrProg1.gopackage mainimport "fmt"import "os" //excessive - we are not using any func转载 2017-08-30 10:40:46 · 3781 阅读 · 0 评论 -
Golong学习之语言包管理进阶
基础Go程序通过包(package)进行组织,一个包可以由多个文件组成,但这些文件必须位于同一目录下。每个文件通过在首行用package语句声明所属的包,例如package math,包名不要求一定要与目录名相同(虽然通常会使用相同的)。 同一个包下定义的常量、类型、变量和函数都是互相可见的,即使位于不同的文件中。大写字母开头的元素可以导出到其它包中使用。在这种约束的工程结构组织下,编译器无需额外指转载 2017-08-30 14:30:20 · 1128 阅读 · 0 评论 -
Golong学习之包管理的探索与实践
引言:刚学Go没多久,但是很快我就发现了Go的一个特别坑爹的地方 —— 包管理。当然不只是GFW的问题,更多的是有的时候,每个项目使用的包的版本并不是完全一致的,而Go无法做到这一点。虽然Go1.5之后加了vendor的特性,但是我仍然觉得不够。不知道大家学过java、php没?例如maven、composer都是很好用的包管理工具。你可以针对每个项目建立一个包管理文件,并对每个依赖项进行版本控制。转载 2017-08-30 15:04:28 · 585 阅读 · 0 评论 -
Golong学习之常见开发陷阱,你遇到过几个?
Go作为一种简便灵巧的语言,深受开发者的喜爱。但对于初学者来说,要想轻松驾驭它,还得做好细节学习工作。初学者应该注意的地方:大括号不能独立成行。未使用变量错误——对于全局变量和函数参数变量,是可以定义后不使用的。但是对于函数内部变量来说,如果进行定义后不进行使用,编译器会提示错误。导入包未调用错误——导入包后,如果不进行调用,例如函数,接口,结构及变量等对象,那么会出现编译错误。这里建议使用空转载 2017-09-04 10:27:18 · 1007 阅读 · 0 评论 -
Golang学习之同一个package中函数互相调用的问题
问题代码如下a.go:package mainfunc main(){ Test()}b.go:package mainimport "fmt"func Test(){ fmt.Println("Hello World!")} 这两个文件都在同一个文件夹下 为什么在编译的时候提示:command-line-arguments.\a.go:4: undef转载 2017-09-04 10:31:23 · 26065 阅读 · 9 评论 -
Golang学习之函数式编程(闭包)
github:https://github.com/ZhangzheBJUT/blog/blob/master/closure.md 一 函数式编程概论在过去近十年时间里,面向对象编程大行其道,以至于在大学的教育里,老师也只会教给我们两种编程模型,面向过程和面向对象。孰不知,在面向对象思想产生之前,函数式编程已经有了数十年的历史。就让我们回顾这个古老又现代的编程模型,看看究竟是什么魔力将这个概念在2转载 2017-09-04 11:09:26 · 512 阅读 · 0 评论 -
Golang学习之InterfaceAddrs获取本地IP
Go 获取本地IPpackage mainimport ( "fmt" "net" "os")func main() { addrs, err := net.InterfaceAddrs() if err != nil { fmt.Println(err) os.Exit(1) } for _, addre转载 2017-09-21 17:33:19 · 16639 阅读 · 1 评论 -
Golang学习之net/http包
使用net/http包快速创建一个HTTP服务器。// file http_test1.gopackage main import ( "fmt" "net/http" "log")func HandleIndex(w http.ResponseWriter, r *http.Request) { r.ParseForm() fmt.Println("PA转载 2017-09-21 17:52:23 · 1645 阅读 · 0 评论 -
Golang学习之net包介绍
与大多数语言一样,Go的标准库很全,因为Go的出现本来就是为了网络通信的高并发实现,所以其相关的网络库封装得更简洁,更Readable。 这里来大致介绍几个网络库,掌握了学习方法,那么只要里面有那个功能,你就能找到并快读查阅源码,了解其实现。 net.ResolveIPAddr() 根据域名查找IP地址不得不感叹Go为开发者考虑良多,godoc这个工具真的很方便!先看下源码。$ godoc转载 2017-09-21 17:57:38 · 1960 阅读 · 0 评论 -
Golang学习之net包详解
/** * Created by Administrator on 13-12-9. */package mainimport ( "fmt" "os" "net")/** * 将string类型的ip地址转换为IP对象 */func main() { name := "192.168.1.97" ip := net.ParseIP(name)转载 2017-09-21 18:15:37 · 11179 阅读 · 0 评论 -
Golang学习之net/http 包使用模式
译注: 这篇文章的内容非常基础,也非常容易理解。原文地址,感觉是最能清晰的讲述了net/http包的用法的一篇,故翻译一下共享之。 一切的基础:ServeMux 和 Handler Go 语言中处理 HTTP 请求主要跟两个东西相关:ServeMux 和 Handler。ServrMux 本质上是一个 HTTP 请求路由器(或者叫多路复用器,Multiplexor)。它把收到的请求与一组预先定义转载 2017-09-25 09:00:37 · 956 阅读 · 0 评论 -
Golang学习之标准库io/ioutil,读取文件,生成临时目录/文件
1.读取目录list, err := ioutil.ReadDir("DIR")//要读取的目录地址DIR,得到列表if err != nil { fmt.Println("read dir error") return}for _, info := range list { //遍历目录下的内容,获取文件详情,同os.Stat(filename)获取的信息 info.转载 2017-09-29 18:07:47 · 4091 阅读 · 0 评论 -
Golang学习之在项目中遇到的几个常用的方法
1、TempFile TempFile 在 dir 目录中创建一个以 prefix 为前缀的临时文件,并将其以读 写模式打开。返回创建的文件对象和遇到的错误。 如果 dir 为空,则在默认的临时目录中创建文件(参见 os.TempDir),多次 调用会创建不同的临时文件,调用者可以通过 f.Name() 获取文件的完整路径。 调用本函数所创建的临时文件,应该由调用者自己删除。fu原创 2017-10-09 15:16:55 · 2952 阅读 · 0 评论