前言:主要描述文章主要内容及要点,可适当UI配图
比如:本文主要讲述了文章写作等构成部分
描述写作文章或者梳理总结的出发点。比如,本文章的目的在于给一个写作的模版供后面技术写作一个思路指导。
用于放在文档首页,呈现全部文档的结构,方便搜索查找的标题、链接等。可采用目录结构,也可以采用单纯的列表样式,例如下面的表格。长文章用到,短文章可以不需要。
写作指南收集 | 文章说明 |
---|---|
知乎问答 | |
作业部落的写作指引 | |
掘金的技术写作指南,有范文 |
一段话精简地介绍项目做什么、项目与同类项目比较的突出亮点、项目当前具备的能力。若是组件,介绍其主要完成功能及完成的效果。若是业务性的功能需求,列出需求单,开发负责人,界面效果。
需求单 | 说明 |
---|---|
客户端需求链接 | 客户端需求描述 |
张三、李四、阿猫和阿狗
例如:Flutter高仿网易云音乐,排行榜和评论界面
主要针对项目或者组件的如何快速的使用,提供用户项目使用简单快捷操作指引,能够以最短时间运行或者使用,包含下面几个方面:
例如:http://facebook.github.io/rebound/
描述项目或者组件的整体的层次关系,并描述每个层次的作用及每个层次之间的关系。对于业务功能画出其类图或者基本的分层关系图,并描述每类的作用。
举个例子:微信Android架构历史
举个例子:爱奇艺组件化方案开源 Andromeda
其中对比了业界几个方案如下(这里不是很全,这里有个小哥总结的很全)
易用性 | IPC性能 | 支持IPC | 支持跨进程事件总线 | 支持IPC Callback | |
---|---|---|---|---|---|
Andromeda | 好 | 高 | Yes | Yes | Yes |
DDComponentForAndroid | 较差 | -- | No | No | No |
ModularizationArchitecture | 较差 | 低 | Yes | No | No |
另外一种方式:以问题导向的思路的方式行文 :组件化方案调研(IOS)
问题-->组件方案-->改进-->新问题-->持续改进-->实现
比如上面网易云音乐的排行榜界面:举个例子
关键功能路径 | |
---|---|
播放列表功能 | PlayListManager-->playAll(); |
查看评论功能 | CommentManager-->enter(int musicId) |
分享功能 | ShareManager-->shareMusic(int musicId) |
再举个例子:如果你要分析源码类似的,可以用如下的结构:Android 基于 Choreographer 的渲染机制详解
对你对方案或者组件有价值或者说服力,需要有性能的对比说明。
举个例子:WCDB的性能数据与Benchmark(IOS) Android Benchmark
如下图,截取了部分对比效果,这里针对不通平台的不通方案之间分别做了性能测试,数据在同一标准下比较有说服力。
读操作性能测试:该测试为从数据库中取出所有数据,并拼装为object。
Create | Insert Transaction | Insert Separated | Insert Rollback | Update One SQL | Update Transaction | |
---|---|---|---|---|---|---|
Framework | 49 | 1081 | 7121 | 91 | 71 | 510 |
Framework(W) | 53 | 1112 | 1789 | 80 | 69 | 497 |
SQLCipher | 28 | 857 | 15208 | 75 | 73 | 397 |
SQLCipher(E) | 303 | 971 | 16900 | 72 | 115 | 444 |
WCDB | 28 | 1027 | 6601 | 88 | 80 | 492 |
WCDB(E) | 243 | 1093 | 17283 | 94 | 91 | 546 |
WCDB(W) | 36 | 1077 | 1491 | 73 | 68 | 475 |
WCDB(EW) | 212 | 1051 | 3574 | 76 | 85 | 492 |
采用了哪些协议,第三方依赖怎么加入的,一些扩展方案,比如热重载、插件化如何实现的。
对于项目、组件、业务代码来说,总会有各种遗留问题点,或者需要特殊注意的地方。这里可以做详细说明,做一个类似Q&A的地方。
例如:Android动态模糊实现的研究中的注意事项
OpenGL在多线程环境下工作需要额外的处理,为了正常工作需要遵守两条规则:
因此在多线程环境下的实现context共享的处理方式如下:
eglMakeCurrent(display, surface, surface, context);
eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
eglMakeCurrent(display, surface, surface, context);
引用了哪些其他的文章一一列举。
这里推荐一些写的比较出色的文章:
推荐文章 | 描述 |
---|---|
方案型文章代表。有条理、思路清晰; 从背景知识点到方案实现再到性能分析 | |
源码总结分析类型文章代表 原理讲解到代码分析,图文详细 |
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。