Visiting China Tips and advice

Handy Tips for Traveling in China ✈️🇨🇳Grab a local SIM card right away. You’ll need one for almost everything. Since it requires ID verification, it’s easiest to get it at an airport service center—h

golang interface 底层相关

interface 分两种空接口(eface)和非空接口(有方法定义的接口)type eface struct {_type *_type // 具体类型信息的指针 data unsafe.Pointer // 指向实际存储的数据}也就是定义了指向位置的指针和指向类型的指针。例子:var i interface{}i = 42_type 指向 int 的类型信息。data 存放

golang 组合和继承问题

今天面试的时候,面试问我golang 如何实现继承。我直接说golang中只有组合,想实现类似继承的效果的话。就是struct嵌套struct 这种比较靠谱

golang 对json中字段类型不固定的处理

用golang读取一个json,发现有一个字段的值有的是int类型,有的是string类型。解决思路就是自定义一个类型,然后解析json的时候,自定义函数进行判断。type StringOrInt stringfunc (s *StringOrInt) UnmarshalJSON(data []byte) error {// 尝试解析为字符串 var str string if err :=

ping 域名来查看网络情况

我们有时候想查看本地到域名的联通性的时候,就使用ping来操作。而ping属于icmp协议。这个协议主要是用来网络诊断和控制。其中网络联通用的是ping。而路由诊断就用的traceroute工具。它会记录从你本地到指定ip之间经过了那些路由节点,以及耗时。核心目的就是为了定位网络延迟和中断的具体位置。实现原理就是通过ip数据包的ttl(time to live)来实现。初始化ttl=1,发现一个路

你不需要辞掉你的工作来创造一些真正的东西

在独立黑客和创业圈里,流传着一种绝对妄想、有害的心态——认为你需要辞掉工作,“全力以赴”,在没有家具的公寓里吃方便面过“创始人模式”。操他妈的。你知道比项目时间有限更让人紧张的是什么吗?不知道房租怎么付。没有保险。看着你的银行账户不断流失,而你的MVP项目只有14个注册用户,却没有任何收入。这不是电影。你不是扎克伯格。你辞职并不能证明你的承诺——你只是在还没做出一个可用的产品之前就把你的安全网拿走

golang 实现qps 滑动窗口流量统计

思想就是用循环数组来实现整个结构。其中numSlots用来表示滑动窗口的持续时间,比如30s,间隔时间是1s执行一次,这个可以用goroutine起一个定时器实现。计数就用golang atmic 实现,这个具有原子性。每一次步进就是(curIndex+1)%numSlots 下边就是相关代码。package service import ( "fmt"