201912-26 图解Go里面的WaitGroup了解编程语言核心实现源码 HOT 在cpu内有一个cache line的缓存,这个缓存通常是8个字节的长度,在intel的cpu中,会保证针对一个cache line的操作是原子,如果只有8个字节很有可能会出现上面的这种情况,即垮了两个cache line, 这样不论是在原子操作还是性能上可能都会有问题 继续阅读 >
201912-24 从 0 到 1 学习 Go 语言 HOT 我们已经学习了 Go 语言的一些主要组件及功能。 变量,数据类型 数组分片及 map 函数 循环及条件语句 指针 包 方法,结构和接口 错误处理 并发 —— Go routine 及通道 继续阅读 >
201912-24 从零开始学YII2框架(六)高级应用程序模板 从零开始学YII2框架(六)高级应用程序模板 高级应用程序模板 这个模板用在大型的团队开发项目中,而且后台从前台独立分离出来以便于部署在多个服务器中。由于YIi2.0的一些新的特性,这个程序模板的功能要更深一点。提供了基本的数据库的支持,注册、密码找回等功能。 继续阅读 >
201912-23 Go语言之error HOT Go语言提供了一个error类型,专门用来表示程序出现异常的错误信息。但是有时候,error本身提供的这些错误信息不能完全满足我们的要求,这种情况下我们就需要自己去改造error,来实现自己希望的error格式以及内容。 继续阅读 >
201912-23 大神是如何学习 Go 语言之浅谈 select 的实现原理 HOT 很多 C 语言或者 Unix 开发者听到 select 想到的都是系统调用,而谈到 I/O 模型时最终大都会提到基于 select、poll 和 epoll 等函数构建的 IO 多路复用模型,我们在这一节中即将介绍的 Go 语言中的 select 关键字其实就与 C 语言中的 select 有比较相似的功能。 这一节会介绍 Go 语言中的 select 的实现原理,包括 select 的结构和常见问题、编译期间的多种优化以及运行时的执行过程。 继续阅读 >
201912-20 Go语言同步编程:不要让吃货们做无谓的竞争 HOT ,我们可以看出来,条件变量内部会包含一个Locker的对象,这个Locker是一个interface,只要支持Lock与Unlock两个方法,就有资格成为Locker的一个对象。也就是说我们要使用条件变量,必须要先有一个mutex类似的锁。 继续阅读 >
201912-20 go语言 web框架比较 HOT 随着go语言在16年的爆发,各种开源web框架开始如雨后春笋一般的涌出,比较出名有beego,Martini,gin ,Macaron,Traffic,Revel, Goji等。本文笔者总结下目前go语言常用的三个web开源框架: 1:beego 国产,很成熟(大家多支持支持国产) 2:Martini 很成熟(Macaron 类似 Martini,更自由) 3:gin 用了都说好 继续阅读 >
201912-19 如何用Go语言每分钟处理100万个请求 HOT 当我们在一个匿名的遥测和分析系统上工作时,我们的目标是能够处理来自数百万终端的大量的POST请求。Web处理程序将接收一个JSON文档,其中可能包含需要写入Amazon S3的许多有效负载的集合,这是为了使map-reduce系统稍后操作这个数据。 继续阅读 >
201912-19 为什么我强烈推荐你学习go语言? HOT 可直接编译成可执行文件,不依赖任何东西,部署就是扔一个文件上去就完成了。这点非常重要,无论是个人开发还是工作中的很多任务,尤其在需要到服务器上跑的最方便了,不需要配置环境什么的,相比Python好太多。 继续阅读 >
201912-19 Go语言入门看这一篇就go了 HOT 谷歌的“20%时间”工作方式,允许工程师拿出20%的时间来研究自己喜欢的项目。语音服务Google Now、谷歌新闻Google News、谷歌地图Google Map上的交通信息等,全都是20%时间的产物。 Go语言最开始也是20%时间的产物。 继续阅读 >
201912-18 PHP实现微信公众号验证Token的示例代码 HOT 这篇文章主要介绍了PHP实现微信公众号验证Token的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 继续阅读 >
201912-18 清空认知,然后重新理解MySQL索引结构 HOT 排序:优化查询的根本,插入时进行排序实际上就是为了优化查询的效率。 页:用于减少IO次数,还可以利用程序局部性原理,来稍微提高查询效率。 页目录:用于规避链表的软肋,避免在查询时进行链表的扫描。 多页:数据量增加的情况下开辟新页来保存数据。 目录页:“特殊的页目录”,其中保存的数据是页的地址。查询时可以通过目录页快速定位到页,避免多页的扫描。 继续阅读 >
201912-17 支付系统高可用架构设计实战,可用性高达99.999! HOT 对于互联网应用和企业大型应用而言,多数都尽可能地要求做到7*24小时不间断运行,而要做到完全不间断运行可以说“难于上青天”。为此,对应用可用性程度的衡量标准一般有3个9到5个9。 继续阅读 >
201912-17 百万级高并发mongodb集群性能数十倍提升优化实践(上篇) HOT 线上某集群峰值TPS超过100万/秒左右(主要为写流量,读流量很低),峰值tps几乎已经到达集群上限,同时平均时延也超过100ms,随着读写流量的进一步增加,时延抖动严重影响业务可用性。该集群采用mongodb天然的分片模式架构,数据均衡的分布于各个分片中,添加片键启用分片功能后实现完美的负载均衡。 继续阅读 >
201912-14 Docker 容器监控方案怎么选?看看这套开源方案! HOT 在调研容器监控系统的时候,其实是有很多选择的,比如docker自带的docker stats命令,Scout,Data Dog,Sysdig Cloud,Sensu Monitoring Framework,CAdvisor等。 通过docker stats命令可以很方便的看到当前宿主机上所有容器的CPU,内存以及网络流量等数据。但是docker stats命令的缺点就是统计的只是当前宿主机的所有容器,而获取的监控数据是实时的,没有地方存储,也没有报警功能。 继续阅读 >
201912-14 这些牛逼的GitHub 使用技巧你知道几个? 推荐 GitHub Pages大家可能都知道,常用的做法,是建立一个gh-pages的分支,通过setting里的设置的GitHub Pages模块可以自动创建该项目的网站。 这里经常遇到的痛点是,master遇到变更,经常需要去sync到gh-pages,特别是纯web前端项目,这样的痛点是非常地痛。 Github官方可能嗅觉到了该痛点,出了个master当作网站是选项,太有用了。 继续阅读 >
201912-13 深入浅出:举个例子解读原码、反码与补码 HOT 在 Go 语言中,int8 代表有符号 8 位整数。你觉得输出结果是什么呢?我们在文末再公布答案,在此之前,我们先来回顾一下有符号整数是什么。 继续阅读 >
201912-12 作为PHP程序员,我是这样学习Go语言的 HOT 从PHP程序员的角度来说,我觉得有以下几点值得你入手Go语言: 1. Go语言简单,容易上手。你可以很快的上手,开发测试运维Go服务。 2. Go语言有效的提升了并发编程的体验,不再有复杂的并发和控制方式。 3. Go语言的常用库很丰富。基本Web开发,后端编程,网络编程基本上都有。 4. Go语言拥有C语言的灵活,拥抱底层,有着Python的简约,快速开发。 继续阅读 >
201912-11 PHP与Go语言之间的通信详解 HOT 最近工作中遇到的一个场景,php项目中需要使用一个第三方的功能,而恰好有一个用Golang写好的类库。那么问题就来了,要如何实现不同语言之间的通信呢?下面就来一起看看吧。 继续阅读 >
201912-11 从PHP基础到GO语言,结合Golang搭建网站 HOT 本系列文章,将会以编程开发中需求最大、应用最广的Web开发为例,一步一步的学习Go语言。当看完本系列,您能够清晰的了解Go语言Web开发的基本原理,您会惊叹于Go语言的简洁、高效和新鲜。 继续阅读 >