写点什么

程序员写作模版献给懵逼的你

作者:jerry
  • 2021 年 12 月 04 日
  • 本文字数:1717 字

    阅读完需:约 6 分钟

专业写作码农配图

嗯,不错

意义或者目的

描述写作文章或者梳理总结的出发点。比如,本文章的目的在于给一个写作的模版供后面技术写作一个思路指导。

1. 索引目录

用于放在文档首页,呈现全部文档的结构,方便搜索查找的标题、链接等。可采用目录结构,也可以采用单纯的列表样式,例如下面的表格。长文章用到,短文章可以不需要。

写作指南收集

文章说明

1.如何提高技术写作能力?

知乎问答

2.markdown写作语法指南

作业部落的写作指引

3.掘金专栏写作指南

掘金的技术写作指南,有范文

2. 项目/组件/业务功能介绍

一段话精简地介绍项目做什么、项目与同类项目比较的突出亮点、项目当前具备的能力。若是组件,介绍其主要完成功能及完成的效果。若是业务性的功能需求,列出需求单,开发负责人,界面效果。

2.1 需求单(业务功能需要)

需求单

说明

客户端需求链接

客户端需求描述


2.2 主要开发人员(业务功能需要)

张三、李四、阿猫和阿狗

2.3 UI 显示效果

例如:Flutter高仿网易云音乐,排行榜和评论界面

UI 界面效果展示

3. 快速接入使用(项目/组件)

主要针对项目或者组件的如何快速的使用,提供用户项目使用简单快捷操作指引,能够以最短时间运行或者使用,包含下面几个方面:

  1. 安装环境要求及说明;

  2. 安装或者编译方法,若为子工程如何添加到项目,有什么依赖关系;

  3. API 的详细介绍;

  4. 引入图文或者视频进行展示,有 demo 会更加友好;

  5. 可能还需要一个常见问题说明;

例如:facebook.github.io/rebound/

4. 方案整体结构或者类关系

描述项目或者组件的整体的层次关系,并描述每个层次的作用及每个层次之间的关系。对于业务功能画出其类图或者基本的分层关系图,并描述每类的作用。

举个例子:微信Android架构历史

出自:微信 Android 架构历史

5. 方案选型对比或者实现思路、关键路径

5.1 对于项目或者组件来说,重点说明在实现的时候方案的选择,包括如下几个方面:

  1. 对比方案的实现方法;

  2. 对比每个实现方案的优缺点;

举个例子:爱奇艺组件化方案开源 Andromeda

其中对比了业界几个方案如下(这里不是很全,这里有个小哥总结的很全

另外一种方式:以问题导向的思路的方式行文 :组件化方案调研(IOS)

问题-->组件方案-->改进-->新问题-->持续改进-->实现

5.2 对于业务功能来说,重点说明代码实现的关键路径以及每个类的作用:

比如上面网易云音乐的排行榜界面:举个例子

再举个例子:如果你要分析源码类似的,可以用如下的结构:Android 基于 Choreographer 的渲染机制详解

源码分析行文思路

6. 性能对比测试(组件和项目)

对你对方案或者组件有价值或者说服力,需要有性能的对比说明。

举个例子:WCDB的性能数据与Benchmark(IOS)Android Benchmark

如下图,截取了部分对比效果,这里针对不通平台的不通方案之间分别做了性能测试,数据在同一标准下比较有说服力。

读操作性能测试:该测试为从数据库中取出所有数据,并拼装为 object。

WCDB 性能对比

Nexus 5X Android 7.1.2 (arm64-v8a)


7. 协议或者第三方依赖说明

采用了哪些协议,第三方依赖怎么加入的,一些扩展方案,比如热重载、插件化如何实现的。

8. 常见的问题及坑

对于项目、组件、业务代码来说,总会有各种遗留问题点,或者需要特殊注意的地方。这里可以做详细说明,做一个类似 Q&A 的地方。

例如:Android动态模糊实现的研究中的注意事项

8.1 OpenGL ES Context 在多线程环境下的管理

OpenGL 在多线程环境下工作需要额外的处理,为了正常工作需要遵守两条规则:

  • 一个线程只能有一个渲染上下文(Render context)

  • 一个 context 只能绑定一个线程

因此在多线程环境下的实现 context 共享的处理方式如下:

  1. 将 context 与线程 1 绑定: eglMakeCurrent(display, surface, surface, context);

  2. 在线程 1 执行 OpenGL 操作…

  3. 将 context 与线程 1 解绑: eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);

  4. 将 context 与线程 2 绑定: eglMakeCurrent(display, surface, surface, context);

  5. 在线程 2 执行 OpenGL 操作…


9. 引用文章及说明

引用了哪些其他的文章一一列举。

这里推荐一些写的比较出色的文章:


推荐文章

描述

Android动态模糊实现的研究

方案型文章代表。有条理、思路清晰; 从背景知识点到方案实现再到性能分析

Android 基于 Choreographer 的渲染机制详解

源码总结分析类型文章代表 原理讲解到代码分析,图文详细

发布于: 4 小时前阅读数: 5
用户头像

jerry

关注

还未添加个人签名 2017.12.14 加入

还未添加个人简介

评论

发布
暂无评论
程序员写作模版献给懵逼的你