当前位置:网站首页>【软件工程之美 - 专栏笔记】16 | 怎样才能写好项目文档?
【软件工程之美 - 专栏笔记】16 | 怎样才能写好项目文档?
2022-07-29 05:23:00 【if...else...】
专栏信息
专栏作者:宝玉
专栏发布平台:极客时间
主要内容
总结
基本上大家都认同:“项目文档很重要”,然而我们在项目中总是短期高估文档的重要性,而长期低估文档的重要性。
结果就是口号喊的很响:要重视文档、要写好文档、要多写文档,然而随着项目的推进,总有比文档优先级更重要的任务,文档的优先级总是被有意无意推迟,导致项目的文档缺失、老旧、无人维护。
为什么程序员都不爱写文档呢?大致有下面这些原因:
- 不知道怎么写
- 太忙没时间写或者懒得写
- 因为是敏捷开发,所以不用写文档?
一 为什么要写文档?
- 帮助写文档的人理清楚思路
- 便于未来的维护和交接
- 便于团队更好的协作沟通
二 如何写好文档?
- 从模仿开始
模仿就是最好的写文档方式,尤其是现在网上可以参考的例子也很多,当你写文档不知道该如何下手的时候,不妨去找一个类似的文档,模仿着写试试。 - 从小文档开始
一开始写文档,内容不需要很多,可以从小的文档开始。就像前面我提到的,记一些笔记,不要在意格式,一两句话,一些截图,就是不错的笔记。 - 从粗到细,迭代更新
小时候写作文,老师给的最多的建议就是要列提纲,这个建议我小时候当耳边风没怎么听,后来要写项目文档的时候用起来反倒觉得非常实用。 - 一些基本的画图的技巧
有人说:“字不如表,表不如图,一图胜千言”。这个观点我非常认同,好的图能帮助你简单而直观地把问题说明清楚。线框图

流程图

时序图

各种格式截图
截图也是个非常简单直接的方式,把软件的 UI、交互设计的效果、数据趋势图、数据统计图等直接截图,必要的话配上一些箭头、文字,也可以很好的说明清楚问题。尤其是产品设计文档,经常用到。
三 一些关于文档的其他建议
有时候我也看到一些比较极端的情况,就是过于追求文档,项目中要花大量的时间写文档,而很多文档是形式化的,并没有太大意义,可能写完了不会用来讨论,也不会有人看。
敏捷宣言观点:文档很重要,但是工作的软件高于详尽的文档。这里面的平衡很重要。
四 其他摘抄
- 先写文档,就会抛开代码细节,去站在全局思考。
- 真正的障碍是没想清楚,在心中只有一些未成型的混乱的想法和概念,必须要努力把这些模糊的想法确定化和具体化,才能写出来。
- 换个角度来说,如果你连文档都写不出来,那又怎么能指望代码写得好呢?
- 写得越细则无用功越多,最后,你甚至会因为不想改文档而抵触不同的意见。
- 要画好流程图不难,重点是要理清楚逻辑关系,各个关键节点在不同条件下的走向。
总结
没时间写或者懒,不能成为不写文档的理由。对于重要的项目文档,就应该加入到日常的开发任务中,把写文档,摆在和设计、开发同等重要的位置。从某种角度来说,写不好文档,代码也很难写好。
边栏推荐
- 京微齐力:基于HMEP060的OLED字符显示(及FUXI工程建立演示)
- 基于F407ZGT6的WS2812B彩灯驱动
- QT学习笔记-数据管理系统设计实现
- ML8自学笔记-LDA原理公式推导
- 2022 spring move - core technology FPGA development post pen test question (original question and experience)
- Jianzhi core taocloud full flash SDS helps build high-performance cloud services
- HAL库学习笔记-10 HAL库外设驱动框架概述
- Ml17 neural network practice
- QT learning notes - Import and export of Excel
- How to use the pre training language model
猜你喜欢

ML9自学笔记

ML8自学笔记-LDA原理公式推导

Beijing Baode & taocloud jointly build the road of information innovation

4、 Application of one hot and loss function

Zero basics FPGA (5): counter of sequential logic circuit design (with introduction to breathing lamp experiment and simple combinational logic design)

Transfer joint matching for unsupervised domain adaptation

入门到入魂:单片机如何利用TB6600高精度控制步进电机(42/57)

Hal learning notes - Basic timer of 7 timer

Based on stc51: schematic diagram and source code of four axis flight control open source project (entry-level DIY)

Pytorch's data reading mechanism
随机推荐
QT learning notes QT model/view
低成本2.4GHz 无线收发芯片--Ci24R1
基于msp430f2491的proteus仿真
基于FPGA:运动目标检测(补充仿真结果,可用毕设)
Design and implementation of QT learning notes data management system
防爆倾角传感器应用于LNG液化天然气安全作业
HAL库学习笔记-13 I2C和SPI的应用
Zero basics FPGA (5): counter of sequential logic circuit design (with introduction to breathing lamp experiment and simple combinational logic design)
How to perform POC in depth with full flash distribution?
2、 During OCR training, txt files and picture data are converted to LMDB file format
2、 Multi concurrent interface pressure test
CV520国产替代Ci521 13.56MHz 非接触式读写器芯片
基于FPGA:运动目标检测(原理图+源码+硬件选择,可用毕设)
扬尘噪声监控系统
ML4自学笔记
基于F407ZGT6的WS2812B彩灯驱动
Huawei cloud 14 day Hongmeng device development -day2 compilation framework
Reading papers on fake news detection (2): semi supervised learning and graph neural networks for fake news detection
ML8自学笔记-LDA原理公式推导
STM32FF030 替代国产单片机——DP32G030