概述

前几天突然收到一封邮件,长这样:

Hey Damon Zhao!

I am @nubela on Github and I found your project (se77en/se77en.github.io) on Github. There is a small chance you might have heard of some of my projects such as Javelin Browser or Gom VPN.

Anyways, I found that Github Page at se77en/se77en.github.io has a custom domain, and I was wondering if I can help you get it to HTTPS with a LetsEncrypt cert? (for free, of course!)

I work at Kloudsec (a free and minimal CDN for programmers) and I just built this tool to provision LetsEncrypt certs for github pages.

Will you like to try it? (and help me test it?) ;)

Steven.

意思就是他们做个一个可以免费帮你把 Github Page 加 HTTPS 的服务,活雷锋啊,谁信啊!反正我是没信,这哥们估计也猜到了我不会信,又连着发了几封,就是说反正不花钱,你的博客又没有秘密,试试呗。然后我就试试了。。。试完感觉上天了,赶紧回复这哥们这东西好啊,爽歪歪啊,你是活雷锋啊。他说我服务这么好你写篇博客替我宣传呗,我说必须哒!于是有个这篇博客。

Read More

主要内容

这两个部分的介绍是为了给那些了解 rust 基本语法,写过一些小的 demo 代码,但却不是很清楚 ownershipborrowing 机制的码农看的。

我们从最简单的开始,然后一步一步逐渐复杂化,探索每一个细节。这个介绍文章假设你非常了解 letfnstructtraitimpl 概念。

Read More

Array(数组)

内部机制

在 Go 语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型,元素可以通过唯一的索引值访问,从 0 开始。

数组是很有价值的数据结构,因为它的内存分配是连续的,内存连续意味着可是让它在 CPU 缓存中待更久,所以迭代数组和移动元素都会非常迅速。

Read More

概述

在 Go 语言中,如果一个结构体和一个嵌入字段同时实现了相同的接口会发生什么呢?我们猜一下,可能有两个问题:

  • 编译器会因为我们同时有两个接口实现而报错吗?
  • 如果编译器接受这样的定义,那么当接口调用时编译器要怎么确定该使用哪个实现?

在写了一些测试代码并认真深入的读了一下标准之后,我发现了一些有意思的东西,而且觉得很有必要分享出来,那么让我们先从 Go 语言中的方法开始说起。

Read More

##概述

我一直在找一种好的方法来解释 go 语言的并发模型

不要通过共享内存来通信,相反,应该通过通信来共享内存

但是没有发现一个好的解释来满足我下面的需求:

  • 通过一个例子来说明最初的问题
  • 提供一个共享内存的解决方案
  • 提供一个通过通信的解决方案

这篇文章我就从这三个方面来做出解释。

读过这篇文章后你应该会了解通过通信来共享内存的模型,以及它和通过共享内存来通信的区别,你还将看到如何分别通过这两种模型来解决访问和修改共享资源的问题。

Read More