為什么進步太慢,因為你沒有一個好習慣

原文地址: http://www.lxweimin.com/p/4188476f1a1d

有人問我如何做好架構設計?怎樣靈活運用設計模式?我的回答是,你做不好這些只是因為你沒有養成一個良好的編程習慣

我為什么寫這么多開源框架,還長期保持維護?

除了我想讓更多人受益于開源外,還有一點就是,我想保持我良好的編程習慣

寫業務代碼也可以保持良好的編程習慣啊

能,但是太慢!

寫業務時無法注意到的細節

在寫業務代碼時,即使項目時間充裕,你也會忽略掉很多細節,而這些細節正是影響你進步速度的關鍵,但你自己卻很難察覺,在不知不覺間就對你的進階之路造成了很大的影響

所以你的進步速度非常之慢,做了多年也只是熟練而已,無法更進一步

業務代碼和框架代碼最直觀的差別就是,業務代碼可以隨意修改,而框架代碼,使用者不能直接修改

由于業務代碼的修改不受限制,所以一有需求變動,你就直接通過修改問題代碼的方式來快速解決問題,即使這個代碼的變動非常頻繁,但你的第一反應卻不是通過代碼設計的方式來解決后續的擴展問題,因為這看似一勞永逸的方式,會浪費你當下大量的時間

人類的潛意識會更注重當下付出的成本,而忽略掉未來會獲得的收益

因為你上面的編碼方式,所養成的不好的編程習慣,會讓你本能的不注重代碼的耦合性、靈活性、可擴展性

所以即使你天天敲代碼,你的進步也如此之慢,因為你平時就缺乏架構設計、代碼設計的鍛煉,日積月累,你也只是搬磚的速度比之前更快一點而已

寫開源框架時給你帶來的改變

這個時候如果有一個好的 leader 能每天 review 你的代碼,還時常提醒你這些問題,只要你慢慢改成,并養成習慣,那你的進階之路也會十分順暢

但如此好的 leader 是可遇不可求的,那我們如果沒有一個好 leader,該如何養成一個好習慣呢?

我的建議就是做開源庫,而且盡量做開源框架,比如架構框架、UI 框架,網絡框架、圖片框架,盡量少做開源 App(當然如果為了學習某項技術也是可以的)

因為開源 App 主要是幫助你和別人學習某些技術,也是有大量的業務代碼存在的,無非就是用了一些新的技術,而且還是你一個人寫,有些細節你更不會考慮 …

而開源框架是拿給別人調用的,所以對代碼質量要求更高,考慮的細節更多,對你的提升也越大

并且你的框架代碼是放在服務器上的,使用者無法修改你的代碼,這就會強迫你更關注代碼的耦合性、靈活性、可擴展性,甚至是你寫業務時根本不會注重的注釋和文檔

因為使用者用得稍有不爽就會給你發起 issue,不斷地督促你優化你的代碼、注釋、文檔,不斷地幫助你培養一個良好的編程習慣

這就好比你有成百上千個好 leader 每天 review 你的代碼,并指出你的問題,給予更好的建議,而且這些 leader 中絕對藏龍臥虎,這樣日積月累下去,你怎能不成長?

良好的編程習慣助你快速進步

我的很多編程習慣,經過不斷的糾錯,優化,糾錯,優化,已經深深的刻進我的腦子里了

我框架用到的大多數設計模式,都不是我刻意去用的,都是遇到某些問題,或者使用者需要增加什么功能,我為了不影響之前的版本,保證擴展性的前提下,去解決這些問題,而不得不去使用這些設計模式,很多情況下,代碼已經寫完了,才知道,原來我用的是 xx 設計模式

在這種不斷優化代碼,養成的良好編程習慣下,我寫代碼時,使用設計模式已經變成了潛意識的行為,根本說不出為什么要用這個設計模式,只因為覺得這樣用才是最優解,這就好比拳擊手,遇到攻擊時會潛意識的躲閃、反擊一樣,這就是不斷實戰、不斷訓練的結果

我的所有開源框架加起來每個月平均下載量在 5 萬左右,每天都有各種 issue 向我飛來,這些成千上萬的使用者(監督者),迫使我不斷地優化自己的代碼,甚至連每個注釋我都精雕細琢

框架要做到滿足所有人的需求太難了,但只要你不斷優化,能做到讓大部分人滿意,那對你的提升絕對是巨大的,而且你的編程習慣也會有巨大的飛躍

比如我寫注釋的編程習慣培養起來后,我的每個開源框架,都寫了大量的注釋,描述的非常詳細,保證大部分人都能明白原理,但還是有很多人跑過來問我文檔和注釋上已經寫了的問題

我真的是吐血,兄弟,我真不想回答,你殺了我好吧 …

一個好的習慣,堅持一天,就往目標前進一步

一個壞的習慣,持續一天,也就浪費一天時間

我做開源三年時間改掉了我很多不好的編程習慣,讓我進步飛速,所以我感謝開源

我也鼓勵更多的人積極參與開源,讓別人受益的同時,別人也讓你不斷進步

當然做開源,并不只是代碼寫的好,就能收獲大量的 star,他還需要綜合性的能力,比如框架定位、產品需求分析、運營、推廣等很多東西,其中最重要的就是持續維護

我去年創新的新框架 AndroidAutoSize,上線一個月時間就 3k star,現在每個月有 2 萬以上的下載量,超過我之前的所有開源框架,這就是因為我之前所積累的開源經驗所賜,關于 Github 的運營之道后面我也會分享的

公眾號

掃碼關注我的公眾號 JessYan,一起學習進步,如果框架有更新,我也會在公眾號上第一時間通知大家

公眾號

Hello 我叫 JessYan,如果您喜歡我的文章,可以在以下平臺關注我

-- The end

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,578評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,701評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,691評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,974評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,694評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,026評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,015評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,193評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,719評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,442評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,668評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,151評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,846評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,255評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,592評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,394評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380