手把手教你寫高質量Android技術部落格,畫圖工具,錄影工具,Markdown寫法

foxleezh發表於2017-10-16

前言

作為程式設計師,寫部落格是一件很有意義的事情,可以加深自己對技術的理解,可以結交更多的朋友,記錄自己的技術軌跡,而且分享可以讓更多的人從中受益,獨樂樂不如眾樂樂嘛。

但是要寫好部落格也不是件容易的事,一是寫部落格是長期堅持的過程,心血來潮寫個一兩篇並沒有什麼意義,很多人寫著寫著就放棄了,二是寫部落格需要自己用心去寫,一方面需要自己對分享的內容很熟悉,鑽研得深,另一方面需要一些文筆和技巧,能把自己會的東西通俗得展示出來。

對於上面兩個問題,第一個本文就不探討了,我主要探討第二個問題,如何寫出好一篇文章,我將通過兩方面來探討:

  • 不斷學習,培養鑽研精神,讓自己有東西可分享
  • 如何將會的東西,通俗得展示出來

一、不斷學習,培養鑽研精神

為什麼我會講鑽研精神,因為你寫部落格首先得有東西可寫,那不然就是紙上談兵了,再好的寫作技巧也沒有用。而要想有好的東西分享出來,自己就得多鑽研,對自己熟悉的領域砥礪深耕,讓自己成為行業佼佼者,而這一切都是很不容易的。

他人勵志的故事特別多,我就講一個自己的吧,讓大家見笑了。

我現在是個Android程式設計師,但是大學的專業是法學,可能很多人都覺得這跨度也太大了吧,一個法學的文科生居然跑去寫程式碼,其實我高中的時候理科就比文科好,當初選法學只是覺得文理要雙修,只會理科的加減乘除會讓自己變得死板,即便現在我已經從事程式開發了,還是後悔當初英語為什麼沒好好學,因為好的文件都是英文的,語文為什麼沒好好學,因為寫部落格都沒有條理,陳詞濫調,所以多學點東西總是好的。

大學畢業後,同學都去考研,考公務員,然後去當法官,檢察官,律師法務什麼的,但是我本身還是對理科的東西感興趣點,正好13年的時候移動網際網路很火,於是我就去報了個培訓班,開始了自己的Hello world!

那時自己內心是彷徨的,因為自己一點基礎都沒有,培訓期間又沒有收入,之間兼職就剩3000塊錢,要管6個月,房租,吃飯,日用,每個月都過得很拮据,租的房子10平米不到,吃飯全是自己做,因為這樣一天只需要8塊。家裡的人也不支援,好端端一個法學生,幹嘛去學程式,為此還跟家裡人吵了一架。。。哎,現在回想那真是一生中最艱苦的半年。

在培訓班裡,就我一個外行,其他都是科班出身,我從第一行System.out.println開始惡補,經常為寫好一個功能熬夜到兩三點,我就記得那時候老師讓我們寫一個五子棋的專案,用Swing來寫的,一直寫到凌晨五點,終於第二天交給老師看,全班就我寫出來了,而且老師把原始碼展示給大家看,說註釋寫得不錯,那是我進班以來第一次受到表揚,後來就一發不可收拾,經常受到老師關注,學校也破例讓我直接跳到就業班,提前結束了培訓。

現在回想起來,應該歸功於自己對程式的熱愛吧,讓自己有無限的動力去鑽研,不把一個東西弄出來就不甘心,每次成功之後又讓自己信心大增,然後更有動力去學習,形成了良性迴圈。

後來到了第一家公司,接觸的是跨平臺開發工具Xamarin,用C#寫,用Mac開發,用Git管理程式碼,靠!又是一堆搞不懂的東西,畢竟學校用的Eclipse+Java+Windows開發的,程式碼管理?壓根沒聽說過,於是學C#,學Mac命令,學Xcode,學Git,經過瘋狂補腦,不到一週時間,已經能順利開發了。這其中關於Git的學習真是刻苦,對我而言,第一次接觸命令列,一臉懵逼,當時老闆強制用命令列操作,說這樣快,給了我一本500頁的書,不過也還是自己去寫命令列 + 百度學會了,那本書基本沒看。後來還為此寫了篇部落格,Git使用,實戰版

之後到了現在的公司,15年進的,進公司又是接觸新的開發工具Android Studio,那時候Android Studio還是1.3.0版本,又是重新學Android Studio,學Gradle。不過還好我會Git,公司還在用svn,領導覺得Git好,於是就安排我做了次分享,將公司程式碼全部用Git管理了。說白了,之前用Xamarin開發都是半調子的Android開發,因為還要開發ios,用Android Studio開發後才真正完全開發Android,於是我開始認真去研究Android,學著用ButterKnife、EventBus、Volley、Glide、Lottie等三方庫,學習MVP框架,學習NDK、C++、編譯so,學習Aes,Des加密演算法,學習groovy,寫指令碼打多渠道包,皮膚包,資源混淆。

後來又學習程式碼元件化,Tinker熱修復,MVVM,Retrofit+RxJava,Robolectric單元測試,我想說新的東西匯出不窮,程式設計師不學習,不去鑽研,很快就落伍了,下面是我這些年收集的Android資料,專案地址 AndroidDoc

如今我打算迴歸原始碼,會用的東西永遠是別人的,自己卻寫不出來,原因就是原始碼讀得少,所以我打算系統地看一下AOSP的原始碼,之前看了些Android系統啟動流程,Application啟動流程以及Binder的東西,還不夠多,理解得也不深,現在從頭再來,歡迎大家關注 AOSP

分享了自己的經歷,也是想告訴大家,不管我們過去什麼樣,從事過什麼工作,只要你現在想去改變點什麼,你就去做,只要自己夠努力,有刻苦鑽研的精神,遲早一天也會發光發亮,誰說文科生不能寫程式碼呢?

哈哈,說這麼多讓大家見笑了,接下來,我講講怎麼寫部落格吧

二、如何寫出通俗易懂的部落格

肚子裡有了好東西,我們也需要技巧把它展示出來,俗話說酒好也怕巷子深嘛,沒有好的吆喝功夫,再好的酒也賣不好。接下來我將展示一些我寫部落格的技巧:

  • 列好提綱,做到條理清晰
  • 用好畫圖工具,製作流程圖、思維導圖等
  • 用好錄影工具,製作Gif圖
  • 好好學習Markdown

2.1 列好提綱,條理清晰

我們寫文章之前,對自己要講的內容必須清楚明白,不然到時候亂寫一通,只會讓讀者看得雲裡霧裡的。我們可以列個提綱,幫助自己整理思路,先講什麼,後講什麼,文中要注意些什麼細節的探討等等。

我們列好提綱後,可以在文章的開頭寫個前言,主要講述寫這篇文章的目的,然後羅列一下這篇文章要講哪些內容,這樣讀者一看開頭就大概知道你要講些什麼了,然後就會順著你的思路去看。

接下來我們可以把前言中提到的幾個方面作為大標題,然後開始寫具體內容,如果該內容太多,可以把內容再拆分下,列出幾個小標題。如果小標題內容也還是多,那可以再拆分,介最好不要超過三層,因為層級太多反而看得眼花繚亂。

對於字號,前言,大標題我一般用##,小標題我一般用###,小標題以下,我會用####,對於序號,大標題前用中文的一,二,三,小標題用數字的1.1,1.2,如果小標題以下,就是1.1.1,1.1.2。

在文章結尾寫一個小結,總結一下本文講的內容,也可以提出一些問題給讀者思考。

對於內容要適當地分段落,不要把所有內容都寫在一個段落裡,儘量一個段落寫一個方面的東西。段落裡也不要一逗到底,說完一個事情就句號結束,啊。。。突然想到以前我們語文老師教我們寫作文也是這麼說的。

上張圖吧,一篇文章大概是這樣子的

2.2 畫圖工具使用

光是寫文字有時候並不能很好地展示內容,比如我們要分享一個工具的使用,要點哪些按鈕,光是文字說明並不直觀,截圖卻能一目瞭然

又比如講一個程式碼執行流程,如果我們畫一個圖出來會更加容易理解

對於上面第一種情況,截個圖就可以了,截圖工具我就直接用的QQ的,感覺還是很方便

對於第二種情況,就要用畫圖工具了,畫圖工具有很多,目前我只用過下面這些,當然還有其他的,大家可以在評論裡推薦下。

畫圖工具大概分兩種,一種線上版的,一種PC版的,線上版的有:

PC版的有:

2.2.1 processon 使用

我平常用的最多的是processon,它有許多優勢:

  • 線上版,免安裝,跨平臺,可以在任何時候,任何電腦上使用
  • 有云端儲存,只要登入賬號就可以雲同步
  • 操作簡單,容易上手
  • 國內網站,不需要翻牆,速度快

首先,這個工具需要註冊,這個簡單,直接訪問 processon ,點選註冊即可


註冊後登入,然後點選新建,選擇一個你想要的模版型別,系統已經提供了許多常用的模版,我們可以選擇一個自己最需要的進行克隆。

當然你也可以不用模版,直接點選新建後,選擇一個你想繪製的型別即可

這裡要注意一點,這個工具檔案個數有限制,新建的檔案不要刪除掉了,畫完一個可以清空內容重新畫,這樣就相當於無限使用了

下面講講如何畫圖吧,這個工具簡單在無腦操作,直接拖控制元件就可以了

如果你覺得圖形不夠,你可以選擇更多圖形

如果你還是覺得不夠,可以插入你本地的圖片,網路圖片

圖形風格可以任意切換

插入文字在圖形上直接雙擊就可以了,也可以去拖拽,或者點選插入選單,文字可以調整字型大小,顏色

線條可以點選插入選單,也可以直接從圖形上拖出來,調整粗細,樣式,顏色

這個工具還有許多快捷鍵,可以方便操作

我平常畫時序圖比較多,我演示下如何畫時序圖

畫完之後我們就可以取個名字,然後儲存為png,pdf,svg等格式然後下載

如果還想了解更多功能使用,官方還有 幫助文件

2.2.2 websequencediagrams 使用

websequencediagrams 這個工具很有意思,它畫圖是直接用程式碼來畫的,當然這個程式碼只是一種類似於markdown的語法,寫起來非常的方便。

它還可以用Java,PHP等語言來編寫,直接轉為圖片, 官方文件

但是它功能比較侷限,只能畫時序圖,而且必須付費才能有高清的圖片下載,否則只是低清的圖

2.2.3 Google Drawings 使用

這是Google的一個外掛,也是非常方便的一個工具,但是前提要翻牆,外掛安裝

功能跟processon基本一致,操作也十分類似,比如畫圖形

插入文字,改變字型大小,顏色,樣式

插入線條,改變線條粗線,顏色,樣式等

畫完後儲存為png,pdf,svg等下載

Google Drawings 與 processon 各有優缺,下面我對比下,讀者可根據自己喜好選擇

功能 processon Google Drawings
線上版
支援圖形、文字、線條
支援png,pdf,svg等高清圖
翻牆 不需要 需要
可操作性 簡單流暢 相對複雜,有時會有些bug,比如畫線的時候要雙擊才能結束,有時會到處跳
支援畫圖型別 全面,包括UML,思維導圖等,有現成的模版可以用 只是個畫圖工具,提供的圖形不夠全面,並且沒有模版可用,全部需要手動畫
是否收費 有檔案個數限制,初始9個,要無限使用需要付費 完全免費,無限制

2.2.4 edraw max(億圖圖示) 使用

這個軟體也是非常強大的,功能比processon還豐富,畢竟是PC版!整體介面跟word很像,如果你喜歡使用word,那麼你上手會覺得很熟悉,來張介面圖

一進入軟體,會讓我們先選擇我們要畫哪種型別的圖,種類是相當的多,並且每種都有模版可以使用,我們可以選擇一個合適的,比如UML,點選建立

老規矩,我們先試下畫圖形,這也是非常方便,直接拖拽就是

如果覺得不夠,可以新增其他型別的圖

當然你也可以直接選擇本地圖片插入

文字方面,直接在圖形或線條上雙擊即可,支援修改字型大小等也不在話下,而且支援插入各種特殊字元,只要word能做的,它都能做

畫線方面,可以畫折線,貝塞爾曲線,可以改變線條粗細,樣式,顏色

它支援整體切換主題,字型,顏色,線條風格,加水印等

儲存檔案除了支援png,pdf,svg等外,還支援儲存為word,ppt,ps,visio等,可以進行二次繪製,可謂是非常全面而強大

如果你想了解更多的功能,這裡有 官方視訊教程

總之,Edraw max的功能是非常強大的,整理如下:

  • 提供全面而實用的模版
  • 各種畫圖方式的支援相當完美
  • 整體介面類似word,操作容易上手
  • 風格切換多樣,可以自由定製
  • 儲存格式種類全面,可以匯入PS,PPT等進行二次繪圖
  • Windows,Linux,Mac全平臺支援

官方英文版下載地址 www.edrawsoft.com/download-ed…
官方中文版下載地址 www.edrawsoft.cn/download-ed…
百度網盤下載(8.7 Windows中文版) pan.baidu.com/s/1kVN2mGJ
這個軟體是需要註冊的,不過我們可以免費用30天,如果大家要中文破解版,可以私信找我。

2.3 錄影工具使用

大家在閱讀本文的時候也可以看到,Gif圖可以方便地展示工具的操作,不僅如此,要展示一些App的效果也是很直觀的,這是我朋友的一個專案,趣聞


Gif圖可以直接當作圖片在Markdown中使用,所以如果錄影工具可以直接把視訊轉換成Gif圖,那將是很方便的,這種工具也比較多,今天我介紹下LICEcap

它的使用很簡單:

  • 調整錄影位置和大小
  • 點選錄製,然後選擇一個儲存目錄儲存
  • 顯示滑鼠指標選項勾選,錄影會顯示滑鼠點選事件,展示一個圈
  • 錄影過程中可以暫停
  • 點選停止結束錄製,然後開啟之前選擇的目錄,找到對應gif檔案,就可以點選檢視了

下載地址

2.4 好好學習Markdown

我寫部落格都是用的Markdown,主要是因為各個平臺都支援,而且本身寫起來也比較方便,我推薦幾個學習的網址:

我再推薦幾個寫Markdown的工具

  • 掘金 簡書 可能有人會笑,但是我覺得這是目前最好的工具,跨平臺,雲同步,支援上傳圖片,關鍵是寫部落格順便就發這上面啊!
  • github github也是很好的Markdown工具,我們是可以直接在網頁上修改md檔案的,並且支援上傳圖片
  • gfm外掛 這個外掛可以直接在Android Studio或IntelliJ裡檢視和編輯md檔案,對於我們平常開發來說非常方便,但是官網下載太慢,我這兒有百度雲的下載地址

作為Android程式設計師,平常寫技術部落格比較多,裡面會有比較多程式碼展示,在程式碼展示時,最好在```後面加上程式碼類別,比如Java,xml,C++等,這樣程式碼會有高亮顯示,另外,寫Markdown時,有時我們展示程式碼的時候需要在程式碼前加行號,方便補充說明的時候指定某行,類似

  1 int main(int argc, char** argv) {
  2     if (!strcmp(basename(argv[0]), "ueventd")) {
  3         return ueventd_main(argc, argv);
  4     }
  5 
  6     if (!strcmp(basename(argv[0]), "watchdogd")) {
  7         return watchdogd_main(argc, argv);
  8     }
  9 
 10     if (REBOOT_BOOTLOADER_ON_PANIC) {
 11         install_reboot_signal_handlers();
 12     }
 13 }

 第11行主要作用將各種訊號量,如SIGABRT,SIGABRT等的行為設定為SA_RESTART複製程式碼

如果每次都要去手動寫行號是特別麻煩的,我這裡有個工具可以直接生成行號 下載地址

小結

要想寫出高質量的部落格,技術沉澱和寫作技巧是兩個不可或缺的東。一方面我們要有一顆不斷學習,積極向上的心,通過自己一點一滴的積累,用部落格去記錄自己的成長;另一方面,多學習一些寫作技巧,學會畫圖工具,錄影工具的使用,可以更清晰地把內容展示出來。

關於我

相關文章