JuneYuan / Week2323

Created Mon, 05 Jun 2023 07:59:53 +0800
402 Words
  • 《Code Complete》 Ch7 高质量例程。

仅看了前5页。这里说的“例程”可以通俗地理解为函数,或者面向对象的方法。一般认为创建函数的意义是为了代码复用,这里作者却认为,代码复用还在其次,更重要的作用是 [TODO] // 管理复杂度?

  • Go Context

工作中写一个程序,正常输入是一个很大的 csv 文件,调试时只想读很少量的输入,比如读 10ms 就停止。想到了用 context 实现。顺便复习用法和原理。

[代码]

原理在 TODO 有一个视频讲解。“一个接口,四个实现,六个方法”。接口是 Context,实现是 [TODO]

之前使用 value context, 误以为其内部是一个 map 结构,其实更像一个链表,或者说是树。每个 context 都是从上一级 context 继承过来的。使用 channel 实现消息传递,mutex 实现同步。

参考:

  • 周五遇到一个有趣问题:一个已经执行者的 go 程序,如果修改其代码,重新 build, 覆盖了原先的可执行文件,那么执行中的程序是否受影响?(从实际效果看,没有影响。)进一步,如果这是开始执行新 build 的程序,两个版本的程序能否各自正常运行? [TODO]