程序员:你写文档吗?

简介: 上午看了沈剑老师的两篇文章,内容主要关于技术文档。有感而发,下面从个人经历聊聊写文档这件事。

技术人需要写文档吗?


放在 1 年前问我这个问题,我肯定回答不需要。为什么?因为没有体会到写文档带来实质好处。需求代码都写不完,哪有空去写这玩意。


还记得刚参加工作的那两年,那时候不管接到什么需求,都会直接进行撸码,一边思考代码逻辑,一边实现功能。这个过程偶尔会发现一些问题,加班加点也能实现。所以在这一阵时间内,并不知道文档,所以也不会去想着写文档。


后来接到一个需求,需要接入第三方支付,搭建一个基础的支付系统。刚接到这个需求,想想需求实现也很简单吗。无非就是涉及几张表,然后调用第三方支付,完成一次支付。大致参考原有类似系统的实现方案,根据产品给出的需求文稿,没怎么经过仔细思考就开始实现功能,并且还盲目的给出一个工期。


后来实现过程中才发现各种问题,有的是因为项目需求不合理,当前系统根本无法完成这样的设计。所以这个时候需要跟产品讨论协调,如何折衷的改动,最后定下方案,然后删掉写到一半的代码,重新实现逻辑。


其次,原本以为有些功能其他项目组已经实现,直接调用即可。真正对接的时候才发现,他们提供接口根本不能当前需求。没办法只能让其他项目组的同学帮助实现,这就涉及到协调其他组同学开发。


另外这个项目还涉及到与客户端交互,所以需要提前给出交互接口的相关信息。客户端同学按照接口文档,进行接入调试。原以为给出完整的接口信息,可是在客户端同学接入的过程中,才发现有些页面需要新接口,有些接口交互逻辑不合理,这个过程又不得不去重新思考设计。


总之这个项目过程十分艰难,所幸靠着加班加点最终也将其完成。


回顾反思这个过程,我认为最根本的原因在于项目前期没有经过完整的详细系统设计,所有实现功完全按着产品需求流程走动。经历过这个项目之后,慢慢有了一些改变,会提前思考设计,才会去动手写代码。


去年加入现在的公司,公司流程规定,项目需求必须有详细的设计文档。当然,刚开始很反感这种规定,尤其还要将文档写在 word 上。


不过也没办法,慢慢开始接受了这种方式。刚开始以为写技术文档很简单,可是等到真正需要用文字输出的时候,才发现自己竟然写不明白。这个时候就不得不再去思考,去仔细理清逻辑。


今年在几个项目开始体验这种做法,想清楚了系统设计,然后写在文档上。由于前期已经将思路逻辑想明白了,后期代码实现过程照着实现就可以了。


所以现在问我技术人需要写文档吗?


我的回答是 需要


引用沈剑老师文档的一段内容:


为什么要写设计文档?


对自己,让自己在动手写代码之前,帮助自己想得更清楚;

对项目,保证信息的一致性,保证项目的可控性,减少项目风险;

对团队,确保知识的沉淀与传承;


文档需要写些什么?


刚开始写技术文档时候,也只是大概写了一些交互流程,表结构设计之类。后面与测试交谈中才发现,他们测试会根据我们技术文档为基础,去设计测试案例。所以文档阅读者不仅仅是开发,还有可能是测试,甚至产品。


所以为了让文档能让大家都看明白,我们需要在文档中体现一下内容。


1. 需求描述。


阅读一份我们需要文档用途或者目的,所以需要一定需求描述。如果有对应需求文档,可以摘录需求文档描述即可。


2. 实现逻辑


我觉得最重要是这部分内容,从这部分内容我们可以了解到整个功能逻辑。在这部分功能,最好不要长篇大论,多使用程序图,时序图,ER 图去代替。这些图能很清晰代表逻辑。一些项目需要使用到业务规则,计算规则也可以写在这一部分。


3. 其他


一些项目难免会存在一些专有名词,可以在文档专门解析这些名词,这样后面描述中使用这些名词也不会让人疑惑。


总之,文档并不一定要按照某个具体格式去写,只要能写清楚,能让其他人理解,我觉得就足够了。


欢迎加入我们的知识星球,一起成长,交流经验。加入方式,长按下方二维码噢

最后,我想重复一句话:选择和一群优秀的人一起成长,你成长的速度绝对会不一样!

相关文章
|
1月前
|
程序员 测试技术
程序员的代码规范需求
程序员的代码规范需求
44 1
|
6月前
|
运维 算法 程序员
不会写文档的程序员不是好的程序员
在当今数字化的世界中,软件开发行业正经历着前所未有的繁荣。从移动应用到大型企业系统,软件构建了现代社会的基础。在IT行业中,文档是一种非常重要的沟通工具。它可以帮助程序员和客户及团队成员之间进行有效的沟通和协作,提高工作效率和项目成功率。然而,许多程序员往往忽视了文档的重要性,认为只要代码写得很好就可以了。但实际上,一个优秀的程序员不仅需要精通编码,还需要具备良好的文档编写能力。
66 0
|
6月前
|
程序员 开发工具 C++
C/C++ 程序员编程规范之排版
C/C++ 程序员编程规范之排版
74 1
|
程序员 Go 定位技术
程序员如何走向世界!
程序员如何走向世界!
47 0
|
程序员 开发者
对程序员来说最重要的小事——整洁代码
对程序员来说最重要的小事——整洁代码
130 0
|
架构师 程序员 Android开发
35岁以上程序员都去哪里了?
人这一辈子没法做太多的事情,所以每一件都要做得精彩绝伦。 你的时间有限,所以不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右自己内心的声音。 最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。 身边好几个年轻的同事都在说房价,很多人抱怨房价太高了买不起怎么办好迷茫…
35岁以上程序员都去哪里了?
|
Java 程序员 应用服务中间件
不会写文档,叫什么高级程序员!
文档的重要性无容置疑,而且文档编写能力是程序员最重要的软实力之一。不过编写文档不仅枯燥,而且后期制作难度高,谁都不愿意做。 今天我们来聊一聊,如何利用 markdown[1] 高效地编写阅读方便结构完整,甚至支持关键字搜索的 Web 文档吧,让写文档上瘾。开干!
227 0
不会写文档,叫什么高级程序员!
|
前端开发 程序员 C#
水瓶座的回顾-高贵的程序员
水瓶座的回顾-高贵的程序员
110 0
|
程序员
程序员,如何写好文档?
程序要要不要写文档?为什么要写文档?如何写好文档,讨论如下。
4883 0