网站首页 成长录 “慢生活”不是懒惰,放慢速度不是拖延时间,而是让我们在生活中寻找到平衡。

70.富文本编辑器tinyMCE提交数据到go服务端
2020-06-09 18:53 admin 文本编辑tinyMCE

在后台管理中,当有图文混排等各种文章(比如新闻、小说类)需要使用富文本编辑器。这次我使用了一下tinyMCE编辑器。这款编辑器是免费开源的。提交成功效果>Downloadeverythingyouneedforproductionusage(includingajQuery>integrationplugin)forf...
阅读全文

golang 检测wins系统下是否安装chrome
2020-06-09 18:53 admin golangwins

问题1.目的:调用谷歌浏览器,打开指定的网页2.问题:用户系统没有安装chrome,会弹框报错,这样体验非常不好,如果没有安装chrome,就应该使用ie浏览器打开指定的网页调用chrome浏览器的代码__err:=exec.Command("cmd","/c","startchromehttp://www.baidu...
阅读全文

goang 错误&异常处理机制
2020-06-09 18:53 admin goang错误

基本概念*错误:意料之内,可能出的问题,比如网络连接超时,json解析错误等*异常:意料之外,不应该出的问题,比如空指针异常,下标溢出等异常错误处理>golang使用error接口作为标准错误接口,_通常情况下错误处理方式___iferr!=nil{//错误处理逻辑}_error作为函数返回值时应该放在最后一个返回值:...
阅读全文

71.加密解密(MD5 SHA1 BASE64 RSA)(一)
2020-06-09 18:53 admin MDSHA

在项目开发中,常会遇到需要加密存储信息的时候,比如密码。密码一般不需要解密。对于一些保密要求较高的内容,也要求加密存储,在需要查看的时候,再解密查看。为了对服务器和客户端进行身份验证,也会用到加密解密或身份id的判定等情况。一般单向加密(不可解密)的方法,常见的有md5、sha1等。加密解密双向需求的,常用base64...
阅读全文

应用容器化优化指南 - Golang篇
2020-06-09 18:53 admin golang容器

前言随着容器技术的兴起,越来越多不同类型的应用开始使用容器的方式进行交付。Golang作为服务器端非常热门的一门语言同时也是容器技术的主要编写语言备受关注。那么将一个Golang应用进行容器化的时候,需要注意哪些事情,在出现问题时该如何进行调优和诊断呢?先谈谈Golang本身的设计Golang是谷歌发布的第二款开源编程...
阅读全文

Go语言实战: 编写可维护Go语言代码建议
2020-06-09 18:53 admin go语言

由于篇幅量大,简书无法整篇发布整篇浏览跳转链接:[https://blog.gokit.info/](https://blog.gokit.info/post/go-best-practice/)目录**********原文链接:**[PracticalGo:Realworldadviceforwritingmaint...
阅读全文

Golang定时器陷阱
2020-06-09 18:53 admin golang定时器

所谓陷阱,就是它不是你认为的那样,这种认知误差可能让你的软件留下隐藏Bug。刚好Timer就有3个陷阱,我们会讲1)Reset的陷阱和2)通道的陷阱,3)Stop的陷阱与Reset的陷阱类似,自己探索吧。Reset的陷阱在哪`Timer.Reset()`函数的返回值是bool类型,我们看一个问题三连:1.它的返回值代表...
阅读全文

轻松入门Golang pprof实用不忽悠
2020-06-09 18:53 admin golangpprof

网上已搜索golangpprof,资料不少,简明高效的一个没看到,这篇文章5步教你用会pprof获取cpu和内存prof。第1步:安装易用的pprofgolang自带的prof包是runtime/pprof,这个是低级别的,需要你手动做一些设置等等周边工作,不利于我们快速上手,利用pprof帮助我们解决实际的问题。这里...
阅读全文

Go的map中删除子map,内存会自动释放吗?
2020-06-09 18:53 admin gomap

结论在Go中,map中存放map,上层map执行delete,子层map占用的内存会释放,无需手动先释放子map内存,再在上层map执行删除。实验在C++中,如果使用了map包含map的数据结构,当要释放上层map的某一项时,需要手动释放对应的子map占用的内存,而在Go中,垃圾回收让内存管理变得如此简单。__pack...
阅读全文

你知道defer的坑吗?
2020-06-09 18:53 admin defer知道

你是不是觉得defer很简单、很好用,但也许你掉坑里了都不知道!这篇文章不介绍defer的常用功能,而是介绍你在用defer时,也许会踩的坑。defer允许我们进行一些函数执行完成后的收尾工作,并且代码更加简洁,例如:1.关闭文件流:__//openafiledeferfile.Close()2.解锁一个加锁的资源__...
阅读全文

Go依赖包管理工具,3分钟掌握govendor
2020-06-09 18:53 admin gogovendor

网上写govendor的博文不少,但从安装到介绍,总看上去有些**沉重**,下面奉上一篇简单的教程,3分钟入门。第1部分简明教程2步走,3分钟轻松搞定Go项目的依赖。第1步安装__goget-ugithub.com/kardianos/govendor第2步为项目增加依赖1.进入到项目目录2.使用`govendorin...
阅读全文

GoLang并发控制(下)
2020-06-09 18:53 admin golang并发

context的字面意思是上下文,是一个比较抽象的词,字面上理解就是上下层的传递,上会把内容传递给下,在go中程序单位一般为goroutine,这里的上下文便是在goroutine之间进行传递。>>根据现实例子来讲,最常看到context的便是web端。一个网络请求request请求服务端,每一个request都会开启...
阅读全文

73.相同的包名解决办法是给包起个别名
2020-06-09 18:53 admin 包名包起

在开发过程中,随着项目的复杂,需要在同一个package中引入的包会变多,而包名就会有重名的可能。这个时候,我们需要给引入包分别起一个别名。比如,在项目中,我们需要建立一个专属的lib,于是这个package就是__packagelib在不断的积累添加各种function的时候,突然有一天发现我们需要两种不同的rand...
阅读全文

一招教你无阻塞读写Golang channel
2020-06-09 18:53 admin golangchannel

无论是无缓冲通道,还是有缓冲通道,都存在阻塞的情况,教你一招再也不遇到channel阻塞的问题。这篇文章会介绍,哪些情况会存在阻塞,以及如何使用select解决阻塞。阻塞场景阻塞场景共4个,有缓存和无缓冲各2个。**无缓冲通道**的特点是,发送的数据需要被读取后,发送才会完成,它阻塞场景:1.通道中无数据,但执行读通道...
阅读全文

Go 1.9 sync.Map
2020-06-09 18:52 admin gosyncMap

原生的map在没有加锁的情况下用于协程是数据不安全,并且因为不安全,在编译的时候编译器也会报错。如果要在多个协程中使用同一个map变量,则需要自己进行加解锁操作。在Go1.9中,标准库中加入了协程安全的map,这个sync.Map有以下这个公开的方法:StoreLoadOrStoreLoadDeleteRange下面分...
阅读全文
顶部 底部