简单分享一个很实用的在线绘制UML图的工具
https://www.processon.com
对开发、建模有非常大的帮助,可协同在线开发。

写文档的意义

怎样让程序员变得可替代?三个字:写文档。

不愿意写文档的程序员,应该立刻马上毫不犹豫地开掉。程序员工作创造的价值,至少一半是通过文档体现出来才对。

“一个项目换一个人就要让项目大地震一下”,“解决Bug换一个人就不行,因为只有老人知道要改哪一行的哪个关键字”,这不说明这个项目所涉及的技术有多复杂、不说明这个老人是什么技术大牛,而只说明这个项目的项目经理很蠢,这个项目已经失控了。

文档不是事无巨细的流水账,写文档以及组织文档是需要智商的、是需要架构师去设计的。

美国的航天飞机那么复杂,但是在Pilot手里的手册也就那么多,而这个手册可以在航天飞机出问题的时候协助Pilot快速定位绝大多数问题。

不可替代的打工者只有一种:以中高层领导的身份跟完了一个项目,而且这个项目正处于大红大紫的阶段,公司为了防止你跳槽到竞争对手那里,愿意付给你薪水,养着你天天在办公室喝茶。只要项目一直红着,公司就愿意一直养着你。

开发人员的文档的作用

给正在Code的自己看、给几个月后已经忘记这个模块当初是怎么开发的自己看、给要接手自己工作的新人看、给周边有关联开发任务的同事看、给领导等有关人员看,这是产品出bug的时候用来和别人怼的武器。

如果没有文档,这些工作量都会成倍增长。

代码再精简再直观,也不可能有人类语言直观,谁觉得自己厉害到读代码和读人类语言写的文档速度一样快。

简而言之,文档,就像盖楼房的设计图,没有图纸,你是不能开始搬砖的。

领导有没有给你看需求分析文档?有没有拿着需求分析文档给你宣讲你要做什么?没有?不干活。

测试的同事有没有给你看测试用例文档?有没有给你宣讲?没有?不干活。

你自己明白领导的意图了吗?明白测试同事的意图了吗?想明白后,开始想自己要开发的模块里的各个功能模块之间的关系,可以画时序图。

时序图画完了,看看是否有(可能)频繁变化的模块/需求,如果有,请务必使用一些设计模式,如果要用设计模式,请务必画UML类图,如果没有频繁变化的模块/需求,请一定不要用设计模式。

最后,看看在一个功能模块中,有没有逻辑比较复杂的地方,如果有,请画流程图。

模块和模块之间有没有需要明确的协议?如果有,请把协议写出来。

上面这一段话,就是你要写的文档,这个文档的读者主要是你,在你的模块出问题之前,别人通常不会读这个文档(不排除你的领导会要求看你这个文档)。

如果你既不需要时序图又不需要类图又没什么协议需要明确,那么,你就可以不写这个文档。另外,如果这个文档写得好,你的代码是不需要任何注释的。

相关链接:https://www.zhihu.com/question/312019918/answer/608965942

程序员进阶必备--写文档相关推荐

  1. 为什么程序员都不写文档?

    ‍‍‍ ‍ [CSDN 编者按]对于程序员来说文档可能是他最大的软肋.一些被称之为高手的程序员,往往是文档方面的处理会偏弱.不管这个程序员是在大公司.还在小公司.不管程序是写文档的.还是不写文档的,大 ...

  2. 程序员都讨厌写文档?这4个工具让你事半功倍

    长按识别上方二维码,关注公众号:后端面试那些事 回复"报告",获取你的GitHub年度报告! 对于一般的程序员来说,花费数小时来创建代码或修改现有代码只是一天工作中的一部分,简而言 ...

  3. redis深度历险 pdf_程序员面试必备精选文档:Redis+Ng+Tomcat+并发编程+Spring系列

    前言 相信好多程序员都想在金三银四的时候找到或者跳槽到自己心仪的大厂.但是,今年的错过了,学习的脚步是不能停下的,这样才会抓住每一次机会,希望大家都可以找到自己心仪的公司就业.当然,除了做项目来提高自 ...

  4. 软件开发人员不愿意写文档

    软件开发人员不愿意写文档, 我想这主要指的是刚参加工作时间不长的工作人员. 真正的老 鸟是不会这样的.我说说自己的看法,希望大家讨论. 1. 软件开发的大环境不好 软件开发行业在中国的兴起也就是十几年 ...

  5. 程序员面试用TXT文档写出纸牌接龙,HR当场月薪18K聘请,还能有这种骚操作?...

    今天小编逛论坛,看到了一位大牛写的博文,去一家创业公司面试,用TXT文档写出纸牌接龙,虽然第一次运行有几个BUG,但整体水平不错,最终和HR一番交流,给出了18K月薪的水平,让小遍我惊叹了,别说100 ...

  6. 如何写一份程序员爱看的需求文档?

    上回分享的从需求到最终的解决方案,产品经理该怎么做?得到了许多人的认可,在这里,非常感谢大家的支持,同时也给笔者很大的信心,接下来分享的文章,希望大家能够喜欢,enjoy- 产品经理的生涯中,肯定遇到 ...

  7. Linux内核源码分析方法—程序员进阶必备

    一.内核源码之我见 Linux内核代码的庞大令不少人"望而生畏",也正因为如此,使得人们对Linux的了解仅处于泛泛的层次.如果想透析Linux,深入操作系统的本质,阅读内核源码是 ...

  8. [转]想要成为一名优秀的Java程序员,这份文档必读

    A.规则(1–2 级) 1.在switch 中每个 case 语句都应该包含 break 或者 return . 2.不要使用空的for .if .while 语句. 3.在运算中不要减小数据的精度. ...

  9. 软件开发人员为什么不愿意写文档

    2015年第一篇文章,看到这篇文章很多都戳到自己的痛点了,呵呵!转载一下,以示训诫 原文:http://www.51testing.com/html/41/n-197641.html 软件开发人员不愿 ...

  10. 从程序员到项目经理(二十九):怎样写文档

    在软件项目中,文档既是一项的重要成果,也是项目管 理的有力工具.通过文档,可以稳定.明确的传达信息,实现项目内的有效沟通.所以写文档对项目经理来说,是一项必备的技能. 然而很多项目经理害怕写文档,似乎 ...

最新文章

  1. 微信小程序万里目_4款万里挑一的微信小程序,每一个都是黑科技!
  2. Mybatis(五) 延迟加载和缓存机制(一级二级缓存)
  3. Docker入门(一) - 仓库、容器、镜像、数据卷
  4. Linux中使用GDB调试NS2
  5. c语言中buf内容怎么给指针,C语言 指针的使用
  6. 整理了js数组去重4种方法
  7. Android Socket编程【转】http://duguyidao.iteye.com/blog/1069736
  8. php连接mysql的方式_php连接mysql的三种方式
  9. sharepoint2010基于表单认证
  10. 计算机专业英语第六版考试试卷,计算机专业英语试题及答案(A卷)
  11. woff文件 服务器上找不到,vue Iview 项目部署到服务器上woff2文件 net::ERR_ABORTED 404 (Not Found)怎么处理?...
  12. 51个赚钱最好的方法(史上最全攻略)
  13. 怎样用Python的Numpy库求反正切
  14. 数学之美:数学究竟是如何深入我们的生活
  15. c语言定时器实验程序,C语言定时器实验.doc
  16. 山威SDUWH高性能计算课程HPL HPCC软件快速安装脚本
  17. 网页集成支付宝扫码登录
  18. 软件测试中Bug的生命周期以及Bug的严重等级
  19. 8月图书畅销榜:经典书霸屏,AI持续火爆《深度学习》拔头筹
  20. matlab三点确定抛物线,曲线拟合 – 如何计算抛物线的顶点给定三点

热门文章

  1. 中兴ZXR10_5952E交换机配置SNMP
  2. 液晶屏接口定义_简介TFT-LCD液晶屏接口类型之LVDS接口
  3. Threejs导入OBJ模型出错的一些经验之谈
  4. android systrace log,Android性能优化之Systrace分析基础
  5. 打印系统开发(66)——监控打印机的打印队列
  6. java对字符串集合按字符串长度排序
  7. 物联网工程设计与实施
  8. Video.js - HTML5 视频播放器
  9. 开关电源中的电感电容
  10. html5怎么把图片置顶,html/css如何让图片上下居中(居中垂直)?