谈谈go语言的关键字

随风

go语言的关键字极其少,充分体现了少就是多的哲学。go一共有多少关键字呢?我在论坛搜索了一波,发现只有25个关键字。

go的25个关键字:
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

可以看出这些关键字里面居然连常见的int等类型定义都没有,却添加了内置支持类型map和chan。map的作用不用多说,键值对处理的必备,而chan则是go语言处理协程通讯的基本工具。但是int等类型真的不是关键字吗?我的回答是,那当然,看看下面这段奇怪的代码你就明白了。

代码“居然”正常编译运行了,不过这样的写法估计你离离职也不远了吧。

不得不说go的关键字设计确实有点大胆,只能说佩服佩服。

欢迎关注创万联公众号。

谈谈frp内网穿透

随风

由于ipv6落实的缓慢,不少地方仍然无法使用ipv6。而ipv4的地址早已枯竭,那怎么办呢?人们想到了一种nat技术。但这样一来就造成了人们大部分生活在一张大内网。在大内网里,人们仍然可以正常上网,但对于我们这种有服务器运营需求的人可就麻烦了。没有公网ip意味着无法从外界自由访问,只能供给内网使用,那我们辛辛苦苦写的物联网平台岂不是毫无作用?别急,正所谓山重水复疑无路,柳暗花明又一村,内网穿透技术解决了这个看似无法解决的困局。

内网穿透的工具众多,如花生壳等,但是普遍价格不菲。有些厂家并不良心,高价买回的穿透隧道却只是映射单一协议和单一端口映射的穿透隧道。一但有大量web程序要部署其中的成本堪称天价。我所工作的某实验室也曾经使用过某穿透产品,价格贵而协议单一,端口也单一,稳定性很差,经常掉线。为此我们web人员深有体会,感觉到内网穿透行业巨大的天坑,并决定抛弃这款产品。

我的一个好朋友曾经给我介绍过frp这款软件,这款软件是一个用go语言写的开源软件,能映射众多协议和端口。只需要一台公网服务器和少量配置即可完成服务端搭建。我并不打算在这里介绍搭建方法,因为网上相关资料极多。客户端可以采用openwrt的软路由,这样整个内网的设备都可以方便地穿透出去。在我的极力建议下,实验室的frp和docker配合搭建的云平台终于开始走入正轨,并逐渐显露出frp穿透的巨大优势。

技术是需要冒险的,如果不是这样。试问浩瀚苍穹,人类何能遨游其中?这就是我对实验室frp搭建的总结。最后说个题外话,我们祝贺创万联获得新软著和wonder获得物联网工程师证书,这些小小成果总将汇成大流。