汇编语言

图灵在数理逻辑方面的理论研究,间接地创造了机器指令设计的基本方法,计算机界最高奖项也因此称图灵奖;现代计算机之父冯诺依曼,于1945年提出了“存储程序通用电子计算方案”,提出了指令数据存储思想,并在 1951 年成功研制出了冯诺依曼结构的 IAS 计算机(现在计算机的原型机),奠定了现代计算机的微体系设计和程序结构设计。

Read more...

go command 命令

/usr/local/go/bin 下提供了三个命令 go、gofmt、godoc。主命令 Go 下分二级和三级子命令,本文档将迭代完善,争取列出所有功能点,目前还处于更新状态。

Read more...

go log 包

1   错误相关的概念

  • 编译错误:build的时候就报错,由于考虑不周或输入错误导致程序异常(Exception),比如数组越界访问,除数为零,堆栈溢出等等。是大意疏忽。
  • 运行错误:run的时候才报错,由于程序设计思路的错误导致程序异常或难以得到预期的效果。运行错误可以是预期的,也可以是不可预期的,对于可预期的不要用 panic,panic 恐慌机制是意料之外,如果不恢复(recover)就会导致宕机。**宕机(panic)**不是一件很好的事情,可能造成体验停止、服务中断,就像没有人希望在取钱时遇到 ATM 机蓝屏一样。但是,如果在损失发生时,程序没有因为宕机而停止,那么用户将会付出更大的代价,这种代价可以是金钱、时间甚至生命。因此宕机有时是一种合理的止损方法。
  • error错误:错误是业务过程的一部分,而异常不是。错误是可预期的结果,error错误机制是意料之中。
Read more...

Kubernetes 网络

微服务是多进程、多服务部署,无法通过 IPC 进程内调用,必然通过网络调用,这将带来很多问题:不可靠、有带宽、协议设计。无论是 TCP、HTTP、RPC,无论是东西流量还是南北流量,涉及限流、熔断、域名及路径上下文,都需要 Kubernetes 或者第三方产品给出解决方案。网络是 Kubernetes 的难点之一。

Read more...