描述寫做文章或者梳理總結的出發點。好比,本文章的目的在於給一個寫做的模版供後面技術寫做一個思路指導。android
用於放在文檔首頁,呈現所有文檔的結構,方便搜索查找的標題、連接等。可採用目錄結構,也能夠採用單純的列表樣式,例以下面的表格。長文章用到,短文章能夠不須要。git
寫做指南收集github |
文章說明數據庫 |
---|---|
知乎問答markdown |
|
做業部落的寫做指引架構 |
|
3.掘金專欄寫做指南源碼分析 |
掘金的技術寫做指南,有範文組件化 |
一段話精簡地介紹項目作什麼、項目與同類項目比較的突出亮點、項目當前具有的能力。如果組件,介紹其主要完成功能及完成的效果。如果業務性的功能需求,列出需求單,開發負責人,界面效果。
需求單 |
說明 |
---|---|
客戶端需求連接 |
客戶端需求描述 |
張3、李4、阿貓和阿狗
例如:Flutter高仿網易雲音樂,排行榜和評論界面
主要針對項目或者組件的如何快速的使用,提供用戶項目使用簡單快捷操做指引,可以以最短期運行或者使用,包含下面幾個方面:
例如: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);
引用了哪些其餘的文章一一列舉。
這裏推薦一些寫的比較出色的文章:
推薦文章 |
描述 |
---|---|
方案型文章表明。有條理、思路清晰; 從背景知識點到方案實現再到性能分析 |
|
源碼總結分析類型文章表明 原理講解到代碼分析,圖文詳細 |