不要被套路了!请不要尝试简化这些代码!

Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。Kubernetes 简称 K8s,用「8」替代 K 和 s 之间的 8 个字母「ubernete」。

K8s 的 pv_controller.go 源码大约 1700 行(含注释),其中包括:230+ 个 if 语句、30 个 else 语句、5 个 else if 语句嵌套在一起。

https://github.com/kubernetes/kubernetes/blob/ec2e767e59395376fa191d7c56a74f53936b7653/pkg/controller/volume/persistentvolume/pv_controller.go#L323

乍一看,这代码违背了 KISS (Keep it simple, stupid)原则。

但是,K8s 的工程师们在注释中用大写英文标注:「请不要尝试简化这些代码!」并且还写了两遍。

为啥强调两遍?K8s 他们在注释中特意解释了。大意如下:

这个控制器故意以一种非常冗长的风格编写。你会发现:

1、每个 if 语句都有一个匹配的 else 语句(检查客户端 API 调用的简单错误除外);

2、有很多被显式地注释的东西;

我们把这种风格叫做“航天飞机风格”。航天飞机的风格意味着,要确保每个分支和条件都得到考虑和说明。NASA 为航天飞机等应用程序编写的代码也是如此。

最初,这个控制器的工作被分成三个控制器。控制器是努力简化 PV 子系统的成果。在此过程中,我们要确保在代码中处理和解释了每一个条件,即使这会导致无 op 代码分支。

因此,控制器代码可能看起来过于冗长、注释过多和“分支”。但是,这里记录了大量的业务知识和上下文,以便确保未来的维护者能够正确地推断绑定行为的复杂性。因此,对这个文件的修改,应该保留并增加航天飞机的风格。

此文来源于网络 若有侵权 请联系晓雯微信:Pingwen20 删除

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • kubernetes 简介 一个迅速过一遍kubernetes 非常不错的资源:基于Kubernetes构建Doc...
    bradyjoestar阅读 15,321评论 2 7
  • iOS编程规范0规范 0.1前言 为􏰀高产品代码质量,指导广大软件开发人员编写出简洁、可维护、可靠、可 测试、高效...
    iOS行者阅读 9,924评论 21 35
  • 推荐文章:禅与 Objective-C 编程艺 前言 为􏰀高产品代码质量,指导广大软件开发人员编写出简洁、可维护、...
    WolfTin阅读 7,836评论 0 1
  • Controller HTML JS
    若愚同学阅读 1,631评论 0 0
  • 《关键对话》 关于作者这本书的作者有四位:约瑟夫·格雷尼、罗恩·麦克米兰、科里·帕特森和艾尔·史威茨勒。他们是沟通...
    地球心阅读 3,283评论 0 1