??年難留,時易損,2020年已經(jīng)過去,2021年已經(jīng)到來,我在這里祝大家新年快樂!今天是2021年的第一天,在此我打算寫一篇文章來總結一下自己在2020年一年時光里的歷程,同時還在對2021年做一個計劃。總結過往,展望未來。
1. 總結2020
??2020年注定是不平凡的一年,疫情影響了每個人的生活。我也不例外,年初的時候,在家辦公了一個月,同時還在家吃了一個多月的泡面,關鍵是那個時候,口味好的泡面根本就買不到,想想那個時候怪可憐的。
(1). 2020年的學習
??瞎扯了幾句無關主題的話,我還是直奔主題吧。我在去年的年度總結給自己列了4件事,分別是:
- 完成mvvm框架,維護Blade,并且深入學習jetpack。
- 深入學習Android 相關知識,比如說Java 虛擬機,Android虛擬機以及應用層相關知識。
- 堅持對算法和英語的學習。
- 閱讀1 ~ 2本文學名著。
??說句實話,有計劃是真的好。在2020年里面,我也是照著計劃來安排自己的事情,每件事都滿滿當當?shù)倪_到目標。
??首先,我說一下完成mvvm框架,維護Blade,并且深入學習jetpack這個計劃。mvvm框架起步較為早,我是從2019年國慶節(jié)開始的,當時主要是系統(tǒng)性的學習kotlin和jetpack,這一步完成之后,才正式進入mvvm框架的設計和開發(fā),前前后后大概花了4個月時間完成框架的開發(fā),到3月初才算是正式開發(fā)完,在那時我還特地的寫了一篇文章來記錄當時激動的時刻:mvvm - mvvm框架的入門使用。在這個框架中,我學到了很多東西,首先是熟練的掌握kotlin語言,其次對jetpack各個組件理解的更加深入和透徹。不過,對于框架,我有一個遺憾,就是沒有很好的維護它,更新它,其次感覺設計出來并沒有用武之地,就是一個玩具,所以為了彌補這個遺憾,在2021年制定的計劃里面,會有一項計劃會去完善這個框架,這項計劃也是我未來三年需要持之以恒完成的事。話說回來,在完成mvvm框架之后,我就開始啃jetpack 4大組件的源碼,分別是:Lifecycle,LiveData,ViewModel,Paging??羞^程的也是特別艱辛,在閱讀源碼期間,我感覺我都要把官方文檔和相關資料翻爛了,最后辛辛苦苦的寫下了4篇文章:
??這其中,Paging那篇文章花了我最多的時間,差不多2個月才寫完。這個過程其實非常的坎坷,我有幾次都想放棄,主要是有如下幾點:
- Paging庫本身特別的復雜,涉及到的源碼也特別多。
- Paging在架構設計上感覺有點不友好,代碼閱讀起來特別的費力,理解起來特別的艱難。
- 其他時間上的原因。
??基于眾多的原因,導致我寫Paging那篇文章差不多花了1個月的時間,我也完全沒有想到這篇文章會成為我自寫作以來寫的最長的一篇文章,總字數(shù)超過了1w字。
??其次,第二個計劃是學習Android相關知識。這個其實沒有特定的完成,主要是利用了工作之便學習了很多的東西,主要分為如下幾個部分:
- 更加深入的理解RecyclerView源碼實現(xiàn),基于此,我寫了兩篇關于RecyclerView 的文章:RecyclerView擴展(六) - RecyclerView平滑滑動的實現(xiàn)原理,RecyclerView擴展(七) - ConcatAdapter源碼分析。這些都是在工作中學到新知識。
- 對嵌套滑動理解更加深入,并且得以手擼一個嵌套滑動的處理框架,借公司之便,還申請了一個專利。這個專利也算是我人生中的第一個專利,雖然沒啥技術含量,但是收獲感十足。
- 對Jetpack Compose 摸索且入門學習,這個也是借工作之便完成的。Compose 是在Google今年在Jetpack新增的一個組件,大概是今年9,10月份才推出alpah版本,所以國內的資料少的可憐,最后我花了一周多的時間,學習官方文檔,研究Demo,閱讀源碼,總算是對Compse入了一個門。對于Compse的后續(xù)安排,我暫時沒有下一步的計劃,因為Compse 實現(xiàn)的特殊性,推廣起來會有很大的阻礙,所以不確定是否可以流行起來,只能伺機而動。不管怎么說,Google推出的東西不會有錯,前景可期!
??上面,我只介紹了比較大塊的知識,還學到了很多零零碎碎的知識,這些沒法一一列舉??偟膩碚f就是一句話,只有不斷的學習才能不被時代淘汰。就比如說,Google今年在jetpack里面新增加三個組件,分別是:hilt,DataStore,Paging3。除了Paging3正在學習,其他的還沒有來得及學習。
??然后,就是對算法和英語的學習,這個計劃沒有落下,一直在進行,且學習的模式不定。就如說算法,有時候會去網(wǎng)站上刷一會題,有時候會看特定的算法書或博客,用來提升自身算法的能力。其中一件事值得說說,前段時間,我在極客時間上買的一個算法課程,在這之前已經(jīng)學習完了。在這個課程中,既把大學里面學到的東西復習一遍,同時又學到了很多額外的知識,就比如說數(shù)據(jù)結構,學到了跳表;過濾器學到了BitMap和布隆過濾器等,真的是收獲滿滿。關于英語的學習,也是沒有特定的計劃執(zhí)行,平時學習的時候看的都是英文文檔,英語理解能力在一定程度上有提升,同時我還發(fā)現(xiàn)現(xiàn)在我閱讀英文文檔基本沒有什么障礙。
??最后,就是閱讀一些文學名著。今年一共看完了3本書,分別是:《活著》,《許三觀賣血記》,《天龍八部》,現(xiàn)在正在看《射雕英雄傳》。之所以要求自己看一些課外書,一個是陶冶情操,平時工作壓力大,看書可以適當?shù)姆潘尚那椋黄浯问翘嵘约很泴嵙?,比如說語言表達能力和處事待人能力,這些都可以通過看書逐漸的學到一些。通過這事,我也悟到了一個道理,一定要多看無用之書,多做無用之事,看似無用,實則大用。
(2). 2020年的生活
??2020年在生活上相比上一年并沒有多大的改變,自己依然是孑然一身,沒有女朋友。可能說的出口就是在2020年里面,搬進了新家,包括去年過年也是在新家里面過的,其次就是把買房欠下的錢還清了,經(jīng)濟算是輕松了一些吧。說到了經(jīng)濟,感覺自己要在新的一年里面好好規(guī)劃一下,本來給自己設置了月開銷的最大限度,但是幾乎每個月都超上限,感覺就是因為自己沒有嚴格執(zhí)行,從而導致今年的存款沒有達到預期。
??在這里,也隨便說說工作吧。工作上主要是兩個變動:
- 今年5月1號開始,公司開始實行大小周,這個導致我的自由時間減少了,從而導致我學習沒有那么多的努力,大家可能從我今年寫的博客就可以看出來,幾乎幾個月才一更。哎,沒有辦法,大小周真的累死人。
- 自己工作內容有變動。以前主要是完成產(chǎn)品的業(yè)務需求,事多但是不復雜;現(xiàn)在主要是做技術架構。說句實話,這么變動才開始的時候還不太適應,因為技術架構全靠自驅,你可以一周摸魚沒人管,也可以學習新技術等,同時代碼也沒有以前那么好寫了,以前寫代碼完成業(yè)務就行,稍微考慮一下擴展性就很好了;現(xiàn)在搞技術架構,寫代碼要不斷的考慮抽象,高內聚低耦合。哎,實力還不太夠,所以執(zhí)行起來還有點費力?;诖耍以?021年的計劃里面,會對其進行特定的學習和提升。
??關于工作,還有一件蠻開心的事,就是今年一共進行了兩次漲薪,一次晉升。
(3). 2020年的不足
??一個字,懶!今年博客輸出的少,一個原因是大小周,時間少了;還有一個原因就是,變得更懶了。有的時候,周末在家,就懶得動,在床上躺一天,或者打一天游戲,看一天的劇,導致很多計劃都delay完成。
??感覺【懶】這個壞毛病很難改掉,但愿在2021年里面這個毛病可以有所改善吧。
2. 展望2021
??新年新氣象,我應該也要有新的計劃。
- 學習python。做技術架構之后,發(fā)現(xiàn)自動化工具和腳本真的非常重要,所以特定的學習python,以輔助工作。
- 學習程序設計原則的課程,以及學習框架設計的經(jīng)驗。
- 深耕Android,不斷的學習Android的技術。
- 完善mvvm框架,利用現(xiàn)有最新的技術開發(fā)一個系統(tǒng)性的項目,時間周期為3年。
- 繼續(xù)學習算法和英語。
- 閱讀 1 ~ 2本文學名著。
- 制定一個經(jīng)濟開銷的計劃,且嚴格執(zhí)行。