【2018年度總結】-成長沉澱的一年

對於這篇年度總結,我算是起筆了好幾次,又放棄了好幾次,可能對於技術類型的博客,我還是可以碼一碼,但是對於這種總結類型的記錄博客,我肚子裏那點墨總是沒法碼出一篇我滿意的文章。後來想一想,博客是我爲數不多的能堅持下來的一個習慣,我相信幾年後我再回過頭來看今天的這片博客,肯定會感慨萬千吧233333

我對我2018點年度總結:成長、沉澱的一年

成長

記得去年這個時候,我可能還忙於自定義View,動畫,現在翻看當時的博客還是顯的很青澀,當然,對於Android來說,對View的認識是必不可少的一步。

設計模式

第一次真正理解設計模式的重要性

今年年初我對於自己的目標是首先完善自己的Github,至少有幾個像樣的項目,既然要開源項目,沒有良好的代碼規範,項目沒有良好的設計模式,是拿不出手的。
所以今年首先我着重了自己對於代碼架構,設計模式的培養,閱讀《Head First設計模式》,《Android源碼設計模式解析與實戰》,通過這兩本書,算是初步對於設計模式有了一個瞭解。

想想當年爲了面試準備設計模式,死記硬背各種設計模式的類圖也是搞笑,當時完全不能理解設計模式這個概念,純靠死記類圖來應對設計模式的面試(現在還記得某公司面試讓我手繪了8個設計模式的類圖....)

拜讀完兩本書後,自己纔算是真正意義上理解了設計模式中高內聚,低耦合的核心思想。如果說源碼是對於一項技術的深度學習,那麼設計模式可以說是所有技術的敲門磚,我認爲任何程序員一定要重視自己的代碼風格,一個人的技術好不好,其實看一下他寫的代碼大致都能有一個初步的定位。
看完這兩本書後,緊接着我開始學習Google推出的MVP和MVVM設計模式。這裏要說一下我學習這個兩個框架的一個特殊原因,我現在的公司,由於歷史原因,所有頁面都是用MVC搭建,一些上古代碼,都是利用MVC,充斥在Activity中。尤其是我負責的公司裏幾個核心功能,到現在,仍然存在一個8k+代碼量的Activity沒人敢動,每次功能迭代的時候,完全是一種痛不欲生的感覺。但這也算是給我變相帶來一些好處,就是我比其他人更能感覺到MVC架構的一些弊端。也正是因爲這些原因,讓我更加註重對於MVP和MVVM的學習。
到此對於設計模式可以算是有了一個初步的瞭解,設計模式這個東西可以說不是速成的東西,我對於他的理解就像練字一樣,一定要有時間的積累和各種實際情況的檢驗才能更加精進。我對於他的定位是:沒有最好的架構,只有最合適的架構,如果只是一塵不變的套用設計模式,那麼可以說只是學到了表面,只有學會了演變,根據實際場景,相應調整自己的架構,纔是真正理解。

重構

工作以來的最大的收穫

如果說我對於自己今年工作成果的總結,那麼就是重構,重構對於一個有一定規模的項目來說應該是很難遇到的,現有的基本上都是處於一個維護和更新迭代的過程,沒人敢輕易重構代碼,這裏面的風險成本可以說是很高了。但由於公司規劃調整,很有幸作爲一個校招進入公司第一年的新人,就有機會遇到公司大項目的重構。本次重構的公司最核心的一個功能頁面,也是最複雜的一個核心頁面,每日有百萬級別的訪問量,所以也感謝領導對於我的信任,讓我擔任了本次項目重構的主導。
有了前面對於設計模式的知識儲備,對於本次的重構我是有一些的準備的,從最初的整體頁面框架搭建,到多人協作的任務分配,再到頁面架構的設計,這一切都是很寶貴的經驗。整整兩個月的封閉開發,最後的成果還是不錯的。
當然更感謝的是同事對於我設計的架構的建議和認可,最終的這個架構在公司內部做了技術分享和討論,後面可以考慮寫一篇博客和大家一起討論一下這個架構。
後續通過這次重構,我在我們小組內部推廣了MVP這個設計模式,建議後續的複雜或相對核心的頁面都改用MVP作爲開發模式,這個在項目裏也算不小的改變。

技術廣度

堅持學習Java,以Java爲基礎,拓展廣度

如果不是今年的各種消息,可能自己還感覺不到原生開發的熱度的降低,從去年的RN,到今年的Flutter,再到阿里的Weex,微信的小程序,可以看出各家都在推出自己的跨平臺開發方案,讓我自己也對於自己的技術棧的理解也有了轉變,如果沒有今年的這些新技術,我可能還僅僅侷限於AndroidUI層面的學習和理解,網上的評論衆說紛紜,一段時間我自己也有些迷茫,到底是該堅守原生學習,還是轉向跨平臺的學習,又或者是轉後臺的學習呢。
後來我決定每天抽一個小時,自己親身體驗,學習一下Js和React,有Java的基礎,學習Js和React的語法還是很快的,雖然沒有一個完整的項目,但至少對於這種跨平臺開發模式有了一個基礎的學習和理解。
後面我用同樣的方式,每天抽一個小時,自學了Python的語法,每天寫幾個小腳本,跑一跑還是很有成就感的。
對於後臺開發,早期在學校的時候,我對於後臺的理解僅僅是數據的增刪改查,所以我感覺這個很枯燥乏味,但通過進入公司實際項目後,我發現後臺有微服務,分佈式,高併發等一系列可以研究等方面,而且現在大部分公司的核心架構都是對於後臺的架構的,所以還是可以看出,對於Java,自己還是要着重學習,只有Java打好基礎,無論是原生層面,還是未來的發展都是很好的。

技術博客

去年我將技術博客從CSDN轉移到了簡書,實在受不了CSDN的廣告,但沒轉多久,簡書就出了某個事件,導致輿論對於簡書一頓抨擊,導致大部分人從簡書又去了掘金,最終我還是選擇了簡書,原因也很簡單,簡書對於作者的交互還是很不錯的,文章分類很清晰,而且我寫博客的目的一個是自己學習,一個是分享交流,爲了各種其他的一些小事,導致自己寫博客的地方變來變去,感覺就變了自己寫博客的初衷,當然習慣在簡書上記錄,換個平臺真的很麻煩,博客最重要的還是堅持。
今年的博客質量相較於去年,我個人認爲還是有很大的提升,像RecyclerView系列,算是我籌劃很久的,應該算是目前我知道的對於RecyclerView原理比較全面的一個系列博客了,加起來也有7k的閱讀量了。博客也更注重於框架源碼的分析,基本上維持1個月1篇的更新,明年對於博客的寫作方向準備向Android底層進行分析,希望自己能有一個不錯的收穫。

開源框架

今年一個小目標就是完善自己的github,也算是有了一定的收穫,今年開源4個項目,按照我心裏的滿意度是:EasyTextViewEMvpRichEditorVRShow

其中EasyTextView是我最滿意的項目,因爲這個組件已經在公司內部大範圍使用了,用過的人都說好~,一個好的開源項目一定要經過實際項目的檢驗,當然star量一直漲不上去~

技術難度最高的應該算是EMvp,這個項目算是我今年學習的一個縮影,用到了Android中相對較難的AOP,開發過程中學習到了:設計模式,Python,Bintray的使用,Gradle的使用等,應該算是一個相對成熟的一個框架了,但是可惜star的人不多~

明年希望能繼續完善項目,爭取早日自己能有一個超過1k的開源項目~

沉澱

今年在Android方面的總結我感覺更多的是沉澱,還記得去年的時候,自己的博客分析主要傾向於開源框架,本來自己的打算是,Volley,OkHttp,Glide,Retrofit,總想一口吃一個胖子,一上來就給自己定一個很高的目標,總想着一步登天。
今年,再學習框架的源碼同時,我把更多的重心放到了原生源碼中,例如RecyclerView,Handler,LayoutInflater,Fragment,再到正在學習的AMS,Binder等,只有真正學習理解了這些,才能拓展自己對於框架的理解面,像阿里的vLayout其實是基於RecyclerView的特性,熱修復和插件化必須要對AMS有很深入的理解,更多的還有google新的MVVM框架,所有的這一切首先自己要有一個良好的基礎,不是所有人一上來就能開發出這麼出色的框架,只有打好基礎,基礎越牢固,才爲未來提供了更多的可能性。

總結

今年如果滿分10分的話,給自己打個7分吧。
腳踏實地,我相信有付出和回報永遠是成正比的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章