程序员写作模版献给懵逼的你
- 2019 年 11 月 8 日
- 筆記
前言:主要描述文章主要内容及要点,可适当UI配图
比如:本文主要讲述了文章写作等构成部分
意义或者目的
描述写作文章或者梳理总结的出发点。比如,本文章的目的在于给一个写作的模版供后面技术写作一个思路指导。
1. 索引目录
用于放在文档首页,呈现全部文档的结构,方便搜索查找的标题、链接等。可采用目录结构,也可以采用单纯的列表样式,例如下面的表格。长文章用到,短文章可以不需要。
写作指南收集 |
文章说明 |
---|---|
知乎问答 |
|
作业部落的写作指引 |
2. 项目/组件/业务功能介绍
一段话精简地介绍项目做什么、项目与同类项目比较的突出亮点、项目当前具备的能力。若是组件,介绍其主要完成功能及完成的效果。若是业务性的功能需求,列出需求单,开发负责人,界面效果。
2.1 需求单(业务功能需要)
需求单 |
说明 |
---|---|
客户端需求链接 |
客户端需求描述 |
2.2 主要开发人员(业务功能需要)
张三、李四、阿猫和阿狗
2.3 UI显示效果
例如:Flutter高仿网易云音乐,排行榜和评论界面
3. 快速接入使用(项目/组件)
主要针对项目或者组件的如何快速的使用,提供用户项目使用简单快捷操作指引,能够以最短时间运行或者使用,包含下面几个方面:
- 安装环境要求及说明;
- 安装或者编译方法,若为子工程如何添加到项目,有什么依赖关系;
- API的详细介绍;
- 引入图文或者视频进行展示,有demo会更加友好;
- 可能还需要一个常见问题说明;
例如:http://facebook.github.io/rebound/
4. 方案整体结构或者类关系
描述项目或者组件的整体的层次关系,并描述每个层次的作用及每个层次之间的关系。对于业务功能画出其类图或者基本的分层关系图,并描述每类的作用。
举个例子:微信Android架构历史
5. 方案选型对比或者实现思路、关键路径
5.1 对于项目或者组件来说,重点说明在实现的时候方案的选择,包括如下几个方面:
- 对比方案的实现方法;
- 对比每个实现方案的优缺点;
举个例子:爱奇艺组件化方案开源 Andromeda
其中对比了业界几个方案如下(这里不是很全,这里有个小哥总结的很全)
|
易用性 |
IPC性能 |
支持IPC |
支持跨进程事件总线 |
支持IPC Callback |
---|---|---|---|---|---|
Andromeda |
好 |
高 |
Yes |
Yes |
Yes |
DDComponentForAndroid |
较差 |
— |
No |
No |
No |
ModularizationArchitecture |
较差 |
低 |
Yes |
No |
No |
另外一种方式:以问题导向的思路的方式行文 :组件化方案调研(IOS)
问题–>组件方案–>改进–>新问题–>持续改进–>实现
5.2 对于业务功能来说,重点说明代码实现的关键路径以及每个类的作用:
比如上面网易云音乐的排行榜界面:举个例子
关键功能路径 |
|
---|---|
播放列表功能 |
PlayListManager–>playAll(); |
查看评论功能 |
CommentManager–>enter(int musicId) |
分享功能 |
ShareManager–>shareMusic(int musicId) |
再举个例子:如果你要分析源码类似的,可以用如下的结构:Android 基于 Choreographer 的渲染机制详解
6. 性能对比测试(组件和项目)
对你对方案或者组件有价值或者说服力,需要有性能的对比说明:WCDB的性能数据与Benchmark
读操作性能测试:该测试为从数据库中取出所有数据,并拼装为object。
7. 协议或者第三方依赖说明
采用了哪些协议,第三方依赖怎么加入的,一些扩展方案,比如热重载、插件化如何实现的。
8. 常见的问题及坑
对于项目、组件、业务代码来说,总会有各种遗留问题点,或者需要特殊注意的地方。这里可以做详细说明,做一个类似Q&A的地方。
9. 引用文章及说明
引用了哪些其他的文章一一列举。