重構部落格寫作
李笑來老師說:
我們從計算機上可以學到的,其實是極少數極少數聰明人的思維方式和方法論。
吳軍老師最近提出的「計算機思維」也很好的诠釋了這句話。
作為一名教程式設計、資訊安全類課程的老師,讀到這句話時我真是深深打動了。我上課跟同學們常說,你們上課學到的思維方式和方法論跟你當不當程式員沒關系,學好了,不論從事什麼工作,這些思維方式和方法論都有利于解決你的問題的。
一名合格的程式員應該都讀過一本書《重構》:

代碼重構是一名合格程式員的必備技能。什麼是「Refactor(代碼重構)」呢?
名詞:對軟體内部結構的一種調整,目的是在不改變軟體可觀察行為的前提下,提高其可了解性,降低其修改成本。
動詞:使用一系列重構手法,在不改變軟體可觀察行為的前提下,調整其結構。
也就是說在不改變程式功能的前提下改進代碼品質。我的概念裡不會重構或從不重構代碼的程式員是合格的,在我的程式設計課程裡是要求同學們必須學習掌握的。你可以簡單類比:寫篇部落格,然後排排版,美化一下,内容不變,但是讓文章更易讀了。
寫了近三年的部落格,我一直感到自己的寫作有問題,用「重構」的術語來說就是發現了自己寫作中的「壞味道(Bad Smell)」。最近聽和讀了不少書,特别是寫作系列,讀了這些書才發現自己寫作中的「壞味道(Bad Smell)」:自己寫的東西都是自顧自己表達,沒有使用者思維。
比如,我很長一段時間都主觀的認為:所有人都像我一樣,看到一個好東西,會按圖索骥學習相關知識。是以在我的部落格中我給出大量交叉引用。這篇文章如果在以前,我就期望不知道 「重構」的讀者讀到這會主動點選連結學習的,我的統計資料發現大多人不會。
還有我部落格中引用了大量圖書,遇到好書,我會盡快買來閱讀的。我引用的書我自以為是的給出圖書豆瓣網的連結,最近我鼓吹讀書當讀電子書,這些書有電子版的,我也會給出多看,Kindle,異步社群,圖靈版的電子書連結,另外鑒于我對英語學習重要性的認知,有英文版的,我也會給出英文版的連結,建議讀英文版。是以我部落格中圖書的連結都是這樣的:
看似體貼,從讀者的角度來說閱讀體驗并不好。積極主動的讀者總會找來讀的,不主動的讀者,我認為提供的資訊,對他們來說都是噪聲。
同樣的問題是,遇到值我得學習的優秀的業界士、老師、同學,我提到的時候也是這樣的:
潛台詞是:這麼牛的人,他的部落格要常看啊,微網誌什麼的要關注啊!并且我都幫你找好了,你隻要點一下就行了。同樣的問題,積極主動的讀者總會找來關注的,不主動的讀者,我認為提供的資訊,對他們來說都是噪聲。
這篇講寫作重構文章不會有這樣的問題了。比如我拿吳軍老師的事做例子講事情,按我以前的風格會寫成這樣:
吳軍老師(微網誌,知乎專欄)XXXXXXXXXXXXXXXXXX
重構後,我今天會寫成這樣:
吳軍老師XXXXXXXXXXXXXXXXXX
重構部落格寫作的另外一個原因是由于我溝通技能的欠缺,引發一個極大的誤會,收到一個修改部落格的要求。我從這個需求出發,嗅到自己部落格寫作中的兩個「壞味道」:
- 重複代碼 (Duplicated Code)
- 過大的類 (Large Class)
為了解決「重複代碼 (Duplicated Code)」的寫作問題,我重構出來一系列常用部落格和書單。這樣經過我刻意練習溝通技巧,部落格如果可能改回去時,我隻要修改一個地方就可以了。
這同時解決了另外一個引用更新的問題。如果選一本近三年對我影響最大的書,毫無疑問是《《建構之法》》了,以前我用Markdown會這麼引用:
[建構之法](http://book.douban.com/subject/26577755/)([電子版](http://www.duokan.com/book/101164))
問題是《《建構之法》》幾乎年年出新版,上面的連結是第二版的,我總是想推薦最新版,這怎麼辦?要麼全改,要麼全不改。現在不是問題了。你點《《建構之法》》總會指向最新版的連結。
「過大的類 (Large Class)」的寫作問題是有時候我要花一周,甚至一學期才寫一篇部落格,裡面承載的内容太多,當然有的是長期積累,有的是考慮通路量的問題。
這篇部落格按我以前的習慣我會講程式設計中「DRY(Don't Repeat Yourself)」原則、「高内聚,低耦合」,現在不在這講了,單列部落格寫吧,這樣就解決了程式設計中的「上帝類」的問題,我也盡量不寫「上帝部落格」,象這篇一個早上就可以寫完了。
通過程式設計中的「重構」我改進了自己的文風,我們同學畢業後很重要的技能是「公文寫作」,選修過我課程的同學都會比較容易的看懂這篇文章,重申一下,我想讓大家了解課上的知識學好了,工作中總會有用。
歡迎關注“rocedu”微信公衆号(手機上長按二維碼)
做中教,做中學,實踐中共同進步!
- 原文位址:http://www.cnblogs.com/rocedu/p/8035877.html
- 推薦網站:部落格園、新浪微網誌、扇貝背單詞、DKY背單詞小組、有道雲筆記、豆瓣讀書
- 版權聲明:自由轉載-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0
如果你覺得本文對你有幫助,請點一下左下角的“好文要頂”和“收藏該文”