作為一名技術(shù)人員,不斷地追求代碼的質(zhì)量是前進(jìn)的不竭動力. 有時候人需要再逼一下自己!
2016年一季度工作計劃
1 提升對iOS的工作原理的基本認(rèn)識,至少在某一方面(性能,底層runTime,runLoop工作原理,動畫)有超過別人的能力.
2 工作再忙也要抽時間寫blog,總結(jié)自己近一段時間的得失.
3 研究項目架構(gòu)MVC,MVVM模式的區(qū)別,并將公司的項目融入到更好的模式中,讓代碼變得簡單.
4 對于自己手里寫出的代碼,力求嚴(yán)謹(jǐn),對以前不好的實(shí)現(xiàn)方式進(jìn)行改進(jìn).
完成情況
1 完成目標(biāo), 對iOS的工作原理有一定的了解, 當(dāng)看技術(shù)大牛的博文的時候再也不會因?yàn)閞unTime, runLoop, KVC/KVO這些晦澀的名字所嚇倒, 并能夠使用Instruments在項目中實(shí)戰(zhàn)檢測內(nèi)存泄露及CPU消耗過多的地方,并對代碼進(jìn)行優(yōu)化.
2 基本完成, 由于時間有限, 不能面面俱到的將所有工作細(xì)節(jié)搬進(jìn)blog, 但對于KVO, 單例, copy等這些平時很少用到的東西能夠通過demo的形式去理解.
3 淺嘗輒止, 在工作中,嘗試用ViewModel對ViewController進(jìn)行瘦身, 但這里做的還是不夠好, 由于對原代碼本身工作方式了解不夠透徹,導(dǎo)致代碼雖然節(jié)儉了些,但是卻多出一些bug, 自己還不夠強(qiáng)大, 無法一個人完成無縫無bug的代碼遷移.
4 非常好, 不僅將自己代碼中的問題進(jìn)行了改進(jìn), 還把其它看著惡心的代碼也改了.
工作之余, 通過學(xué)習(xí)下面的路線圖
這份路線圖的上半部分已經(jīng)學(xué)習(xí)完了, 開始覺得這些基礎(chǔ)的東西沒什么, 不太重視, 但是實(shí)際開發(fā)中, 如果對這些基礎(chǔ)的東西不夠了解, 就會造成疑惑, 單說@property這東西, 就可以學(xué)一天了.
總的來說這是收獲頗豐的一季, 從無知到知道如何去學(xué)習(xí)iOS, 學(xué)習(xí)使用開源框架(MJExtension, SDWebImage, AFNetworking, Masonry), 學(xué)習(xí)使用XCode插件(KSImageNamed, VVDocumenter, ESJsonFormat). 從懶得敲代碼(其實(shí)連基礎(chǔ)都不牢靠, 寫起代碼到處都是問題)到遇到問題自己寫demo來查問題, 從iOS門外漢到可以和微博,gitHub上的大牛問一問,你的框架怎么用,為什么要這么用,還有什么bug. 有很多大牛都是90后, 感覺壓力好大.
這里附上這一季對我影響重大的大牛的微博或者gitHub的地址
1 李明杰(小碼哥教育的創(chuàng)始人, 曾在傳智講課, MJExtension, MJRefresh的作者) 李明杰新浪微博
2 葉孤城(不知道真名叫什么, 經(jīng)常會分享些高質(zhì)量的文章, 在微博上很活躍) 葉孤城新浪微博
3 唐巧(猿題庫iOS開發(fā), 感覺很牛的一個人, 寫的文章層次都很深, 搞iOS很久的樣子, 對iOS一些基本原理有很獨(dú)到的見解) 唐巧博客
4 戴銘(滴滴iOS開發(fā), GitHub上有關(guān)于Autolayout和MVVM的demo, 感覺是對技術(shù)有很高追求的人,不人云亦云, 專心做自己的技術(shù)) 戴銘新浪微博
5 郭曜源(一位90后的iOS開發(fā), 好像搞iOS也沒很久, 網(wǎng)名ibireme, YYKit的作者, 就職于優(yōu)酷土豆) 郭曜源博客
其實(shí)活躍的大牛圈子還是很小的, 可以通過一個找到另外一個, 而且他們很多都是互相關(guān)注, 有東西互相轉(zhuǎn)發(fā)的, 但更多的大牛是隱匿在GitHub上的老外, 從GitHub上和他們issue上看, 他們不僅技術(shù)牛,而且都很謙虛.
為了成為低調(diào)奢華有內(nèi)涵還謙虛的大牛, 下面是2016年第二季度工作計劃(路還是要一步一步走的):
1 完成學(xué)習(xí)路線圖的剩余部分, 力求對iOS開發(fā)無死角, 至少在和別人的交流上不會出現(xiàn)別人說了一個名詞自己連聽都沒聽過.(基礎(chǔ)側(cè))
2 深入學(xué)習(xí)MVVM的VM數(shù)據(jù)綁定方式, 以最好的方式在項目中保證自己的代碼可讀性最高, 力求所有View上的代碼可復(fù)用, 邏輯層的代碼邏輯清晰代碼簡潔, 力求頁面部分能清晰理出控制器的職責(zé).
3 將學(xué)過的東西通過自己的項目(WeTogether)鞏固加深理解, 做出一個有下載, 上傳, 初具社交類軟件規(guī)模的項目.(實(shí)戰(zhàn)側(cè))
4 深入研究MJExtension和YYKit框架, 對runTime有更深的理解. 嘗試寫出protobuf協(xié)議解析的類似框架, 一行代碼將PBModel轉(zhuǎn)XXModel. (提升側(cè))
5 有時間學(xué)習(xí)下React Native.(忙里偷閑)