那些年开发的时候踩过的坑

  • 可能发生的错误一定会发生,所以能尽早想到,就尽早采取措施预防

  • 系统默认的环境被人改了,例如有人默认把 python 指向了2或者3

  • 各节点时间不一致

  • 用语言相关的RPC或者缓存,例如Java RMI或者pickle,导致与语言强相关而提高了耦合度

  • 对分布式情况下的远程调用做太多假设,例如以为内网会没什么故障。然而现实告诉你,即便网络没有故障,也许被调用的服务也会 发生故障,不加超时就准备哭吧。其实开发软件,对假设做的越少,稳定性和耦合性就会越低,但是相对应的,复杂度就会提升。软件 开发永远是一种理想和现实的权衡,而权衡下做的选择,只有更好,没有最好。


更多文章
  • 如何调试?
  • Docker CE 18.03源码阅读与分析
  • 容器时代的日志处理
  • Golang和Thrift
  • 折腾Kubernetes
  • 协程(coroutine)简介 - 什么是协程?
  • goroutine 切换的时候发生了什么?
  • Prometheus 数据类型
  • Gin源码阅读与分析
  • 如何面试-作为面试官得到的经验
  • 自己写一个容器
  • Golang(Go语言)中实现典型的fork调用
  • 软件开发之禅---大事化小,各个击破
  • 程序员的自我修养:链接,装载与库 阅读笔记
  • Redis源码阅读与分析三:哈希表