百度|作为一个程序员,要不要写文档?

百度|作为一个程序员,要不要写文档?

文章图片



很多程序员都会经历过要不要写文档这个问题 , 有些人就特别强调文档的重要性 , 一些人则觉得写了也没啥用 , 尤其是对于很多军工企业来讲 , 因为文档齐套性的要求 , 项目验收的时候不得不按照GJB438的要求补很多文档 , 让很多程序员苦不堪言 , 文档质量也非常的差 , 当然 , 这本质上是项目管理的问题 。 但是 , 对于程序员来讲 , 文档到底重要不重要呢?
就像小马过河一样 , 对于每个人来讲 , 适应的条件也是不同的 。 具体我们来看一看 。
第一种情况:你是一个大牛
大牛是可以不写文档的 , 他们的产品代码本身 , 就是众人学习和使用的对象 。 并没有人关心大牛是怎样具体实现某个过程的 。 很多人甚至会为大牛写的代码写应用文档 , 比如说网上一搜nginx配置 , 就会有很多人告诉你该怎样使用它 , 甚至还会有专著来剖析你是怎样写代码的 , 会有很多类似于《深入理解nginx》之类的书籍出现 。
因此 , 如果你是一位大牛的话 , 是可以不用写文档来让别人理解你的设计思路的 。 你只需要说Tald is cheap show me the code就好 。
第二种情况:需要快速完成原型
在很多情况下 , 比如说移动互联网早期的很多创意 。 它们具有两个特点 , 一是要快速拿出来让终端用户看到你要做一个什么东西 , 提供什么功能 。 二是如果没圈到钱 , 这东西可能就直接扔了 。 不会有人再看一眼 。 那么这种就不用写文档了 。

第三种情况:你的项目后续会有人看有人改
有些项目 , 尤其是一些传统行业的应用软件 , 例如说财务 , 军工等 。 其指标和参数非常的重要 , 那么整个软件的设计思路 , 每个参数的决策过程 , 那就非常重要了 。 尤其是后续需要进行优化和修改的时候 , 如果不清楚整个的决策过程 , 则很有可能出大问题 。 在这种情况下 , 文档就非常重要了 。 文档是需要留给后来者的 , 因此很多文档中途会有设计变更的过程 , 最终定稿的版本是要和软件一一对应的 。 从而有效为后来者提供支撑 。
第四种情况:如果你想提高软件设计能力
写文档过程的本质上是对软件整体进行思考的过程 , 没有这个思维锻炼的过程 , 很难成为一名好的程序员 , 更不可能成为一名好的架构师 。 例如之前网上热烈讨论的求两个数平均值的问题 。 一般人不仔细想的话 , 那么就简单的

但是这种算法在数据很大的时候 , 就会存在数据溢出 , 导致结果失败 。 所以如果没有在做设计的时候充分考虑到各种可能 。 就不可避免地会存在问题 。 而写文档 , 则是尽可能避免问题的一个重要方法 。
第五种情况:当你的程序一直在线运行并且会不断有新人修改的时候
【百度|作为一个程序员,要不要写文档?】如果你写的代码长期在线稳定运行 , 但是时不时会有新的功能或bug需要修改 。 那么不可避免的 , 你将会被无知的新人骚扰很多次 。 而且很多可能还是很二逼的新人 。 那么这种情况下 , 最好的方法就是 , 扔给他一堆文档 , 告诉他自己去看 。
在你的工作里 , 还遇到过哪些情况呢?欢迎在评论区讨论哦 。
活在信息时代的其它文章:
想学机器学习?这几种算法你需要掌握