202205-17 vue使用Google Recaptcha验证的实现示例 我们最近的项目中需要使用谷歌机器人验证,这个最主要的就是要有vpn,还需要有公司申请的google账号(自己申请的没用)用于商用的,利用这个账号去申请秘钥,然后有了秘钥之后就可以了。部分代码如下:1.首先正是我封装的google机器人验证组件:<template><divref="grecaptcha"></div><!--<divid="robot"></div>--></template><scriptsrc="http://www.recaptcha.net/recaptcha/api.js?οnlοad=ReCaptchaLoad... 继续阅读 >
202107-01 Java黑科技之通过Google Java Style 文件配置IDEA和Ecplise代码风格 目录一、引言二、GoogleJavaStyle介绍2.1源文件基础2.2源文件结构2.3格式化三、标识符命名规则四、Ecplise配置GoogleJavaStyle一、引言每一个公司,团队的代码风格可能都不一样,只要团队内有自己统一的风格就好。接下来,介绍GoogleJava代码风格,并且如何在IDEA和Ecplise两种比较流行的Java集成开发环境中配置GoogleJava代码风格。如果不看google代码风格详细介绍的,可以下拉到最后查看IDEA和Ecplise配置Go... 继续阅读 >
202103-10 详解java google Thumbnails 图片处理 在后端开发的过程中,都逃不开与文件传输特别是图片的传输打交道,但是因为现在各种拍照设备发展越来越快,拍出的照片更是越来越清晰,但是照片文件的大小也是越来越大了,手机拍照小则2M大则30M这在网络传输过程中谁顶得住呀!所以在用户发布照片,后端对图像文件进行保存的过程中压缩图像文件是必不可少的一个过程。而Thumbnails就是一个很好的图像处理工具,他把复杂的图像处理封装的很好,只需要短短的一行代码就能完成对图像... 继续阅读 >
202010-07 Android 集成 google 登录并获取性别等隐私信息的实现代码 前言公司做海外产品的,集成的是google账号登录,账号信息、邮箱等这些不涉及隐私的按google的正常登录流程可以轻松实现。但是一旦需要获取涉及隐私的信息就比较麻烦,文档也不是十分清晰,非常难找,很多坑。google账号登录官方链接:https://developers.google.com/identity/sign-in/android/starthttps://developers.google.com/identity/sign-in/android/sign-ingoogle账号登录接入的坑:申请的client_id必须是api... 继续阅读 >
202009-27 JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法 一、UglifyJSUglifyJS是用JavaScript编写的JavaScript压缩工具。官网:http://lisperator.net/uglifyjs/1、通过NPM安装UglifyJS(1)安装Node.js从Node.js官网https://nodejs.org/en/下载对应平台的安装程序,当前最新版本11.4.0,推荐版本10.14.2。本人下载的是10.14.2,下载下来是一个node-v10.14.2-x64.msi安装包,按照默认下一步安装。安装成功后在cmd命令提示符下输入node-v,可以显示版本号:C:\Users\lc>node-vv10.14.2要... 继续阅读 >
202009-23 详解Google Protobuf简明教程 Protobuf是什么Protobuf实际是一套类似Json或者XML的数据传输格式和规范,用于不同应用或进程之间进行通信时使用。通信时所传递的信息是通过Protobuf定义的message数据结构进行打包,然后编译成二进制的码流再进行传输或者存储。Protobuf的优点相比较而言,Protobuf有如下优点:足够简单序列化后体积很小:消息大小只需要XML的1/10~1/3解析速度快:解析速度比XML快20~100倍多语言支持更好的兼容性,Protobuf设计的一个... 继续阅读 >
201809-03 C和Go相互调用 C可以调用Go,并且Go可以调用C,如果更进一步呢,C-->Go-->C或者Go-->C-->Go的调用如何实现?本文通过两个简单的例子帮助你了解这两种复杂的调用关系。本文不涉及两者之间的复杂的数据转换,官方文章C?Go?Cgo!、wiki/cgo和cmd/cgo有一些介绍。Go-->C-->GoGo程序调用C实现的函数,然后C实现的函数又调用Go实现的函数。1、首先,我们新建一个hello.go的文件:hello.go... 继续阅读 >
201807-31 关于Go语言,你可能会讨厌的五件事 近年来,Go从新出现的编程语言中脱颖而出。不过要把Go称为“新晋者”似乎并不合适,因为谷歌早在2009年就推出了Go,并于2012年发布了第一个最终版(Go1.0)。到现在为止,Go已经发展到了1.10版本,这个版本令人印象深刻,而且还在不断添加新的特性。为什么它被称为eGOtistic(自大狂)……大家都知道,Go在实现或语法方面喜欢“我行我素”。在英语中,这种情况被描述为“自以为是”。很多来自其他编程语言的概念在Go中... 继续阅读 >
201807-02 Go -调度器 写得稍微有点乱,主要是按自己看代码的顺序来记录的,也不是出书,就这样吧。PS:新人不推荐刚学Golang就去看调度器代码,这部分代码个人觉得写得很乱。调度基本数据结构goroutine在runtime中的数据结构://stack描述的是Go的执行栈,下界和上界分别为[lo,hi]//如果从传统内存布局的角度来讲,Go的栈实际上是分配在C语言中的堆区的//所以才能比ulimit-s的stacksize还要大(1GB)typest... 继续阅读 >
201804-02 Golang Websocket 实践 这里先简单介绍一下websocket,确实只是简单介绍一下。1.应用场景有些场景下,比如交易K线,我们需要前端对后端进行轮询来不断获取或者更新资源状态。轮询的问题毫无以为是一种笨重的方式,因为每一次http请求除了本身的资源信息传输外还有三次握手以及四次挥手。替代轮询的一种方案是复用一个http连接,更准确的复用同一个tcp连接。这种方式可以是http长连接,也可以是websocket。2.websocket... 继续阅读 >
201803-19 golang 高并发下 tcp 建连数暴涨的原因分析 背景:服务需要高频发出GET请求,然后我们封装的是golang的net/http库,因为开源的比如req和gorequsts都是封装的net/http,所以我们还是选用原生(req使用不当也会掉坑里)。我们的场景是多协程从chan中取任务,并发get请求,然后设置超时,设置代理,完了。我们知道net/http是自带了连接池的,能自动回收连接,但是,发现连接暴涨,起了1万个连接。 首先,我们第一版的代码是基于python的... 继续阅读 >
201803-13 用 debugger 学习 golang 常见的工程语言可分为解释型和编译型两种,比如写php的,一般就不怎么在乎debugger之类的东西。为什么?如果真出了问题,我可以临时把出问题的服务机器从线上服务中摘除出来,甚至申请一个较高的权限去修改代码,然后到处去die/echo。虽然有人说这么做不太好,或者一般公司也不给开权限。不过着急的时候,这个肯定是可行的。然而像java/go这种编译型的就比较麻烦了。线上一般只有程序的运行环境而没有编译环境。就算是在... 继续阅读 >
201803-06 6行代码解决golang TCP粘包 什么是TCP粘包问题以及为什么会产生TCP粘包,本文不加讨论。本文使用golang的bufio.Scanner来实现自定义协议解包。协议数据包定义本文模拟一个日志服务器,该服务器接收客户端传到的数据包并显示出来typePackagestruct{Version[2]byte//协议版本,暂定V1Lengthint16//数据部分长度Timestampint64//时间戳HostnameLengthint16//主机名长度Hostname... 继续阅读 >
201802-22 Go 1.10中值得关注的几个变化 曾几何时,这是很多Gopher在Go1.8、Go1.9时猜测是否存在的那个版本,毕竟minorversion即将进化到两位数。从Go语言第一封设计mail发出到现在的十年间,尤其是Go语言经历了近几年的爆发式增长,基本奠定了云原生第一语言的位置之后,人们对Go语言有了更多新的、更为深刻的认知,同时对这门编程语言也有了更多的改进和优化的期望。Go2在Gopher心中的位置日益提升,直到RussCox在GopherCon2017上公布了Gocoreteam对... 继续阅读 >
201712-20 我与 Go 语言的这十年 2007年9月20日,关于设计一门全新语言的讨论正式开始,这门全新的语言,就是后来的Go。时至今日,Go语言已经发布到1.9版本,走过了整整十年的历程。在这十年间,Go语言两夺TIOBE年度语言大奖(2009/2016),许多初创公司在早期使用Go进行开发,包括现在的云计算巨头Docker,也由此催生出了Kubernetes这样的项目。在大洋彼岸的中国,GoogleTrends显示Go的异常火爆更让Go语言之父感到震惊。而这一切,跟一... 继续阅读 >
201710-09 【译】Go 中如何进行单元测试 在写《Go语言标准库》的第九章——测试时,看到了此文,讲解挺细致,于是翻译为中文,作为学习《Go语言标准库》的第九章的补充材料。如果你花过一些时间学习如何编程,你很可能见过许多地方提过测试。似乎每个人都在谈论测试,似乎都同意你应该进行测试,但这到底需要什么呢?在这篇文章中,我将尝试回答这个问题,首先解释什么是测试,然后我会用Go去深入实际编写测试。在编写测试时,我将通过编写自定义mai... 继续阅读 >