08 2019 档案
golang ---JSON-ITERATOR 使用
摘要:jsoniter ( json-iterator )是一款快且灵活的 JSON 解析器 Jsoniter 是最快的 JSON 解析器。它最多能比普通的解析器快 10 倍之多, 独特的 iterator api 能够直接遍历 JSON ,极致性能! 0 内存分配!这样的 iterator 你绝对没有用 阅读全文
posted @ 2019-08-25 11:17 清明-心若淡定 阅读(9518) 评论(0) 推荐(0)
Golang ---json解析
摘要:golang官方为我们提供了标准的json解析库–encoding/json,大部分情况下,使用它已经够用了。不过这个解析包有个很大的问题–性能。它不够快,如果我们开发高性能、高并发的网络服务就无法满足,这时就需要高性能的json解析库,目前性能比较高的有json-iterator和easyjson 阅读全文
posted @ 2019-08-25 10:45 清明-心若淡定 阅读(1228) 评论(0) 推荐(1)
go ---变量数据结构调试利器 go-spew
摘要:我们在使用Golang(Go语言)开发的过程中,会通过经常通过调试的方式查找问题的原因,解决问题,尤其是当遇到一个很棘手的问题的时候,就需要知道一段代码在执行的过程中,其上下文的变量对应的数据,以便进行推测出问题的原因。 对于这类调试,我们用的比较多的一个是断点调试,还有是通过打印日志输出。通过日志 阅读全文
posted @ 2019-08-25 10:12 清明-心若淡定 阅读(1728) 评论(0) 推荐(1)
Golang ---基准测试
摘要:什么是基准测试 基准测试,是一种测试代码性能的方法,比如你有多种不同的方案,都可以解决问题,那么到底是那种方案性能更好呢?这时候基准测试就派上用场了。 基准测试主要是通过测试CPU和内存的效率问题,来评估被测试代码的性能,进而找到更好的解决方案。比如链接池的数量不是越多越好,那么哪个值才是最优值呢, 阅读全文
posted @ 2019-08-25 09:17 清明-心若淡定 阅读(818) 评论(0) 推荐(0)
golang --写test测试用例
摘要:安装gotests插件自动生成测试代码: 如何编写测试用例 由于go test命令只能在一个相应的目录下执行所有文件,所以我们接下来新建一个项目目录gotest,这样我们所有的代码和测试代码都在这个目录下 如何编写测试用例 由于go test命令只能在一个相应的目录下执行所有文件,所以我们接下来新建 阅读全文
posted @ 2019-08-24 16:53 清明-心若淡定 阅读(1661) 评论(0) 推荐(0)
Golang ---testing包
摘要:golang自带了testing测试包,使用该包可以进行自动化的单元测试,输出结果验证,并且可以测试性能。 建议安装gotests插件自动生成测试代码: 测试文件及目录 使用testing测试包的测试文件名称需要以_test.go结尾,并且该测试文件需要与待测试的文件置于同一目录下。比如如下目录: 阅读全文
posted @ 2019-08-24 09:54 清明-心若淡定 阅读(2300) 评论(0) 推荐(0)
golang --Converting and Checking Types
摘要:Package strconv implements conversions to and from string representations of basic data types. Atoi is equivalent to ParseInt(s, 10, 0), converted to 阅读全文
posted @ 2019-08-22 20:56 清明-心若淡定 阅读(239) 评论(0) 推荐(0)
python ---升级所有安装过的package
摘要:命令行运行 阅读全文
posted @ 2019-08-21 10:00 清明-心若淡定 阅读(808) 评论(0) 推荐(0)
GoLang基础数据类型---字典
摘要:Map 是 Go 中的内置类型,它将键与值绑定到一起。可以通过键获取相应的值。 如何创建 map? 可以通过将键和值的类型传递给内置函数 make 来创建一个 map。语法为:make(map[KeyType]ValueType)。(译者注:map 的类型表示为 map[KeyType]ValueT 阅读全文
posted @ 2019-08-20 21:16 清明-心若淡定 阅读(294) 评论(0) 推荐(0)
golang ---常用函数:make
摘要:简介 内建函数 make 用来为 slice,map 或 chan 类型分配内存和初始化一个对象(注意:只能用在这三种类型上) slice 打印结果: 用第三个参数设置该slice的容量(即底层数组的长度)。如果能够预足容量,那么在slice中数据增长的过程中不需要更换底层数组(附带拷贝过程),这样 阅读全文
posted @ 2019-08-20 20:27 清明-心若淡定 阅读(626) 评论(0) 推荐(0)
golang学习笔记 ---常用第三方包
摘要:包的介绍 包类似Java中概念,jar是源代码管理,分发的最小单位。 目前多数包来自 Github官方包来自 golang.org/x/... 可以在如下网址查询到高频使用的第三方包清单https://godoc.org 常用清单 Go 标准库可以大致按其中库的功能进行以下粗略的分类 输入输出。这个 阅读全文
posted @ 2019-08-20 20:16 清明-心若淡定 阅读(369) 评论(0) 推荐(0)
git如何支持doc文档
摘要:这个问题很容易解决,只要添加一个 .gitattributes 内容如下: ///////////////////////////////////////////////////////////////////////// # Auto detect text files and perform L 阅读全文
posted @ 2019-08-20 20:00 清明-心若淡定 阅读(1731) 评论(0) 推荐(1)
golang基础学习---log
摘要:输出 golang.org/src/log/log.go const ( // 将下面的位使用或运算符连接在一起,可以控制要输出的信息。没有 // 办法控制这些信息出现的顺序(下面会给出顺序)或者打印的格式 // (格式在注释里描述)。这些项后面会有一个冒号: // 2009/01/23 01:23 阅读全文
posted @ 2019-08-19 21:32 清明-心若淡定 阅读(862) 评论(0) 推荐(0)
golang基础学习-strings包常用函数学习
摘要:package main import ( "fmt" "strings" ) //StrFunc 字符串说明 func main() { var testStr string testStr = "seetatech" testStrTrim := " seeta tech " checkStr := "tech" fmt.Println(" :" + testStr + ": ") //验证是 阅读全文
posted @ 2019-08-18 18:37 清明-心若淡定 阅读(225) 评论(0) 推荐(0)
Golang 常用的第三方包.
摘要:Goland 下面这个license server 可用 http://idea.youbbs.org (2018-01-10 04:26:09) http://45.77.127.87:81(2018-02-24 13:54:31) https://jetlicense.nss.im (from 阅读全文
posted @ 2019-08-18 18:23 清明-心若淡定 阅读(2669) 评论(0) 推荐(0)
golang --- time包常用函数以及基础的类型转换
摘要:1.[]byte转为string: 2.string 转为int64类型 3.golang格式化为当前时间日期: 输出: 2019-08-18 16:54:57 4.返回当前本地时间: 输出: 2019-08-18 16:57:23.3661001 +0800 CST m=+0.013000801 阅读全文
posted @ 2019-08-18 17:07 清明-心若淡定 阅读(909) 评论(0) 推荐(0)
golang ---cron
摘要:企业项目完整之后,经常会有一些定时任务,例如备份、检查数据等,需要经常定时跑,如果我们能把这些定时任务,做成一个业务系统,通过与liunx下cron一样的规则,来表示定时执行的规则 Golang的cron包帮忙解决这个问题。 阅读全文
posted @ 2019-08-18 16:48 清明-心若淡定 阅读(487) 评论(0) 推荐(0)
go 程序整个执行过程
摘要: 阅读全文
posted @ 2019-08-18 12:28 清明-心若淡定 阅读(337) 评论(0) 推荐(0)
Go ---- defer 和 return 执行的先后顺序
摘要:Go 中 defer 和 return 执行的先后顺序 多个defer的执行顺序为“后进先出”; defer、return、返回值三者的执行逻辑应该是:return最先执行,return负责将结果写入返回值中;接着defer开始执行一些收尾工作;最后函数携带当前返回值退出。 如果函数的返回值是无名的 阅读全文
posted @ 2019-08-18 11:56 清明-心若淡定 阅读(16992) 评论(2) 推荐(8)
go 学习笔记 ----资源自动回收
摘要:在释放局部资源时, 可以用defer管理 Go语言版本基于defer的Mutex用法 对于可能申请失败的资源也很好处理: 使用defer语句, 可以方便地组合函数/闭包和资源对象. 即使panic时, defer也能保证资源的正确释放. defer 官方给出的文档上介绍defer的执行有三条基本规则 阅读全文
posted @ 2019-08-18 11:01 清明-心若淡定 阅读(442) 评论(0) 推荐(0)
Golang资料集
摘要:《Platform-native GUI library for Go》 介绍:跨平台的golang GUI库,支持Windows(xp以上),Unix,Mac OS X(Mac OS X 10.7以上) 《Gopm 快速入门》 介绍:Gopm(Go 包管理工具) 是一个用于搜索、安装、更新和分享 阅读全文
posted @ 2019-08-18 10:52 清明-心若淡定 阅读(324) 评论(0) 推荐(0)
SVN客户端教程
摘要:.SVN是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。 一、下载SVN 下载地址安装完成后点击右键显示如下结 阅读全文
posted @ 2019-08-18 10:34 清明-心若淡定 阅读(973) 评论(0) 推荐(0)
搭建Git服务器
摘要:在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。 GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。 搭建 阅读全文
posted @ 2019-08-17 16:54 清明-心若淡定 阅读(187) 评论(0) 推荐(0)
忽略特殊文件
摘要:有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files ...,有强迫症的童鞋心里肯定不爽。 好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊 阅读全文
posted @ 2019-08-17 16:53 清明-心若淡定 阅读(209) 评论(0) 推荐(0)
配置别名
摘要:有没有经常敲错命令?比如git status?status这个单词真心不好记。 如果敲git st就表示git status那就简单多了,当然这种偷懒的办法我们是极力赞成的。 我们只需要敲一行命令,告诉Git,以后st就表示status: 好了,现在敲git st看看效果。 当然还有别的命令可以简写 阅读全文
posted @ 2019-08-17 16:53 清明-心若淡定 阅读(239) 评论(0) 推荐(0)
使用码云
摘要:使用GitHub时,国内的用户经常遇到的问题是访问速度太慢,有时候还会出现无法连接的情况(原因你懂的)。 如果我们希望体验Git飞一般的速度,可以使用国内的Git托管服务——码云(gitee.com)。 和GitHub相比,码云也提供免费的Git仓库。此外,还集成了代码质量检测、项目演示等功能。对于 阅读全文
posted @ 2019-08-17 16:45 清明-心若淡定 阅读(339) 评论(0) 推荐(0)
使用GitHub
摘要:我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。 在GitHub出现以前,开源项目开源容易,但让广大人民群众参与进来比较困难,因为要参与 阅读全文
posted @ 2019-08-17 16:43 清明-心若淡定 阅读(108) 评论(0) 推荐(0)
git 学习笔记---操作标签
摘要:如果标签打错了,也可以删除: 因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。 如果要推送某个标签到远程,使用命令git push origin <tagname>: 或者,一次性推送全部尚未推送到远程的本地标签: 如果标签已经推送到远程,要删除远程标签就麻烦一 阅读全文
posted @ 2019-08-17 16:42 清明-心若淡定 阅读(176) 评论(0) 推荐(0)
git 学习笔记 -- 创建标签
摘要:在Git中打标签非常简单,首先,切换到需要打标签的分支上: 然后,敲命令git tag <name>就可以打一个新标签: 可以用命令git tag查看所有标签: 默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办? 方法是找到 阅读全文
posted @ 2019-08-17 16:40 清明-心若淡定 阅读(200) 评论(0) 推荐(0)
git 学习笔记 ---标签管理
摘要:发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。 Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分 阅读全文
posted @ 2019-08-17 16:39 清明-心若淡定 阅读(140) 评论(0) 推荐(0)
git 学习笔记 --- Rebase
摘要:在上一节我们看到了,多人在同一个分支上协作时,很容易出现冲突。即使没有冲突,后push的童鞋不得不先pull,在本地合并,然后才能push成功。 每次合并再push后,分支变成了这样: 总之看上去很乱,有强迫症的童鞋会问:为什么Git的提交历史不能是一条干净的直线? 其实是可以做到的! Git有一种 阅读全文
posted @ 2019-08-17 16:37 清明-心若淡定 阅读(492) 评论(0) 推荐(0)
git 学习笔记 --多人协作
摘要:当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。 要查看远程库的信息,用git remote: 或者,用git remote -v显示更详细的信息: 上面显示了可以抓取和推送的origin的地址。如果没有推送权 阅读全文
posted @ 2019-08-17 16:32 清明-心若淡定 阅读(221) 评论(0) 推荐(0)
git 学习笔记--Feature分支
摘要:软件开发中,总有无穷无尽的新的功能要不断添加进来。 添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。 现在,你终于接到了一个新任务:开发代号为Vulcan的新功能, 阅读全文
posted @ 2019-08-17 16:28 清明-心若淡定 阅读(277) 评论(0) 推荐(0)
git 学习笔记 --Bug分支
摘要:软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。 当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前 阅读全文
posted @ 2019-08-17 16:03 清明-心若淡定 阅读(282) 评论(0) 推荐(0)
git学习笔记 --分支管理策略
摘要:通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。 下面我们实战一下--no-ff方式的git merge 阅读全文
posted @ 2019-08-17 15:57 清明-心若淡定 阅读(187) 评论(0) 推荐(0)
git 学习笔记 ---解决冲突
摘要:人生不如意之事十之八九,合并分支往往也不是一帆风顺的。 准备新的feature1分支,继续我们的新分支开发: 修改readme.txt最后一行,改为: 在feature1分支上提交: 切换到master分支: Git还会自动提示我们当前master分支比远程的master分支要超前1个提交。 在ma 阅读全文
posted @ 2019-08-17 15:49 清明-心若淡定 阅读(201) 评论(0) 推荐(0)
git 学习笔记 --创建与合并分支
摘要:在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。 一开始的时候,m 阅读全文
posted @ 2019-08-17 15:43 清明-心若淡定 阅读(209) 评论(0) 推荐(0)
git学习笔记 ---分支管理
摘要:分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。 如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN! 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需 阅读全文
posted @ 2019-08-17 15:40 清明-心若淡定 阅读(161) 评论(0) 推荐(0)
git 学习笔记 --从远程库克隆
摘要:上次我们讲了先有本地库,后有远程库的时候,如何关联远程库。 现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。 首先,登陆GitHub,创建一个新的仓库,名字叫gitskills: 我们勾选Initialize this repository with a README,这样 阅读全文
posted @ 2019-08-17 15:39 清明-心若淡定 阅读(207) 评论(0) 推荐(0)
git学习笔记 ---添加远程库
摘要:现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。 首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一 阅读全文
posted @ 2019-08-17 15:31 清明-心若淡定 阅读(208) 评论(0) 推荐(0)
git 学习笔记 ---远程仓库
摘要:Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。 你肯定会想,至少需要两台机器才能玩远程库不是?但是我只有一台电脑,怎么玩? 其实一 阅读全文
posted @ 2019-08-17 15:09 清明-心若淡定 阅读(195) 评论(0) 推荐(0)
git学习笔记 ---删除文件
摘要:在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: 一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了: 这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了: 现 阅读全文
posted @ 2019-08-17 15:00 清明-心若淡定 阅读(188) 评论(0) 推荐(0)
git 学习笔记 ---撤销修改
摘要:自然,你是不会犯错的。不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行: 在你准备提交前,一杯咖啡起了作用,你猛然发现了stupid boss可能会让你丢掉这个月的奖金! 既然错误发现得很及时,就可以很容易地纠正它。你可以删掉最后一行,手动把文件恢复到上一个版本的状态。 阅读全文
posted @ 2019-08-17 11:34 清明-心若淡定 阅读(234) 评论(0) 推荐(0)
git学习笔记 ---管理修改
摘要:现在,假定你已经完全掌握了暂存区的概念。下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。 你会问,什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建 阅读全文
posted @ 2019-08-17 11:02 清明-心若淡定 阅读(225) 评论(0) 推荐(0)
git学习笔记 ---工作区和暂存区
摘要:Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。 先来看名词解释。 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区: 版本库(Repository) 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版 阅读全文
posted @ 2019-08-17 10:49 清明-心若淡定 阅读(221) 评论(0) 推荐(0)
git学习笔记 ---版本退回
摘要:我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: 现在,运行git status命令看看结果: git status命令可以让我们时刻掌握仓库当前的状态,上面的命令输出告诉我们,readme.txt被修改过了, 阅读全文
posted @ 2019-08-17 10:28 清明-心若淡定 阅读(249) 评论(0) 推荐(0)
git 学习笔记 ---安装
摘要:Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一)。 安装Git 在Linux上安装Git 首先,你可以试着输入git,看看系统有没有安装Git: 像上面的命令,有很多Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git。 如果你碰巧用Debian或Ubuntu L 阅读全文
posted @ 2019-08-17 10:01 清明-心若淡定 阅读(178) 评论(0) 推荐(0)
go 学习笔记(4) --变量与常量
摘要:“_” 可以理解成一个垃圾桶,我们把值赋给“_” ,相当于把值丢进垃圾桶,在接下来的程序中运行中不需要这个下划线这个值 a,b :=1,2 只能用在函数体内 输出:0 0 输出:0 0 1 跳值使用: 输出: 0 1 3 插队使用: 输出:0 3.14 2 输出:0 1 2 表达式隐式使用法: 输出 阅读全文
posted @ 2019-08-15 10:06 清明-心若淡定 阅读(189) 评论(0) 推荐(0)
go 学习笔记(4) import
摘要:import ( f "fmt" ) f是fmt的别名 '.' 可省略包名,不建议使用 只会执行fmt中init函数,不能使用fmt中函数(作用注册包引擎) 阅读全文
posted @ 2019-08-14 11:04 清明-心若淡定 阅读(253) 评论(0) 推荐(0)
go 学习笔记(4) package
摘要:package name 尽量与目录名称一样 package name: 表示代码文件所属的包 阅读全文
posted @ 2019-08-14 11:00 清明-心若淡定 阅读(193) 评论(0) 推荐(0)
go 学习笔记(3) 基础结构
摘要:package main import ( "fmt" ) const NAME string = "imooc" var a string = "慕课网" type imoocInt int type learn struct { } type ilearn interface { } func myfun() { fmt.Println(NAME) fmt.Println(... 阅读全文
posted @ 2019-08-14 09:11 清明-心若淡定 阅读(197) 评论(0) 推荐(0)
go 学习笔记(3)benchmark
摘要:benchmark函数以benchmark开头 benchmark的case一般会跑b.N次,且每次执行都如此 在执行过程中会根据实际case的执行时间是否稳定会增加b.N的次数以达到稳态。 执行命令: BenchmarkAll执行了200000000,每次执行耗时8.29ns Benchmark函 阅读全文
posted @ 2019-08-13 14:11 清明-心若淡定 阅读(1145) 评论(0) 推荐(0)
go 学习笔记(2)go test
摘要:Test 的写法: 每一个test文件必须import 一个"testing" test文件下的每一个test case均必须以Test开头并且符合TestXxx形式,否则go test会直接跳过测试不执行 eg: main_test.go main.go t.SkipNow()跳过当前case, 阅读全文
posted @ 2019-08-13 11:28 清明-心若淡定 阅读(607) 评论(0) 推荐(0)
go 学习笔记(1)go command
摘要:常用命令 go command [arguments] 1) go build 跨平台编译: 2) go install : 与go build最大的区别是编译后将输出文件打包成库放在pkg下 3) go get : 用于获取go 的第三方包,通常会默认从git repo上pull最新的版本 eg: 阅读全文
posted @ 2019-08-13 10:55 清明-心若淡定 阅读(960) 评论(0) 推荐(0)