日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

我是如何指数级提升开发技术的?

發(fā)布時(shí)間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我是如何指数级提升开发技术的? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如何提升開發(fā)技術(shù)的方法很多,比如專注,刻苦,熱情,興趣等,不過我這里不會(huì)提這些,下面想說的是我覺得能夠指數(shù)級(jí)提升的竅門和一些自己在求索路上的一些體會(huì),也算是一個(gè)階段性的總結(jié)吧。

竅門一,將代碼放到 GitHub 上


看到這個(gè)標(biāo)題一般人的反應(yīng)就是覺得自己的代碼和那些高大上的開源庫比起來相形見絀,有種拿不出手的感覺。但是要想提高技術(shù),是提高自己的技術(shù),只要和自己比就好了。將代碼發(fā)出來不是獻(xiàn)丑而是為了交流,交流就會(huì)獲得信息,都說信息時(shí)代科技進(jìn)步都是指數(shù)級(jí),這個(gè)道理在這里也同樣適用。

記得以前我特別喜歡 Google 做的 Google Reader,每天打開電腦第一件事情就是瀏覽下關(guān)注的那些 RSS Feeds,自己定制的信息流和 Google Reader 對(duì)信息的完整保留,體驗(yàn)上輕松的標(biāo)記已讀和全部已讀,當(dāng)時(shí)是再也找不出替代品了。在 Google 關(guān)閉這個(gè)服務(wù)后很長(zhǎng)一段時(shí)間我都沒有看過 RSS,轉(zhuǎn)向使用 Twitter 和后來的微博來關(guān)注自己感興趣的內(nèi)容,比如國(guó)內(nèi)的一些插畫家,漫畫家,游戲媒體,Cosplay 當(dāng)然還有一些感興趣的相關(guān)開發(fā)的人。

后來,我發(fā)現(xiàn)關(guān)注微博的人多了后,一些好的博客內(nèi)容很容易被埋沒在 timeline 中。這個(gè)時(shí)候我發(fā)現(xiàn)了 Reeder 這個(gè) RSS 閱讀器 APP,體驗(yàn)做得非常棒,不光是 UI 設(shè)計(jì)和交互,還有應(yīng)用的流暢度,離線瀏覽等體驗(yàn)都是頂級(jí)的。我打算也弄一個(gè)學(xué)習(xí)下,就跟小學(xué)時(shí)喜歡七龍珠就模仿著畫一樣。實(shí)現(xiàn)基本幾個(gè)功能后我就發(fā)到了 GitHub 上,結(jié)果碰到了好幾個(gè)也喜歡 RSS 的開發(fā)者,他們看我在 README.md 里提到了后面計(jì)劃做的事情,分別提了 PR 完成了那些功能,還有一個(gè)人把界面翻天覆地的改了一通,還加了 icon 和啟動(dòng)圖,最后還加上了兩個(gè)主題選擇,還修改了好幾處代碼不規(guī)范和不合理的地方,我 review 完就知此人設(shè)計(jì)和代碼功底都很深,對(duì)這樣一個(gè)藝術(shù)和程序完美結(jié)合的人佩服不已。

后來這個(gè)項(xiàng)目讓我認(rèn)識(shí)了不少的朋友,在他們提交的代碼里我也學(xué)習(xí)到了很多。

?

竅門二,選擇優(yōu)秀同事


和優(yōu)秀同事共事利于成長(zhǎng)這是個(gè)顯而易見的道理,但我為什么還要單拎出來說呢。因?yàn)檫@個(gè)點(diǎn)我體會(huì)非常深,也感覺是我技術(shù)提升的一個(gè)很大的節(jié)點(diǎn)。在這些優(yōu)秀的同事里有位大家都很熟悉的孫源一直是我學(xué)習(xí)的榜樣。記得在微博上第一次看到他分享的 RunLoop(視頻地址:http://v.youku.com/v_show/id_XODgxODkzODI0.html?) 就很有感觸,講得通俗易懂由淺入深,后面只要他有新的文章和新的技術(shù)分享不管是對(duì)外的還是公司內(nèi)部的還有直播平臺(tái)的我都一個(gè)一個(gè)看完了,其中有好幾篇都看了好多遍。這個(gè)過程猶如海綿吸水,停不下來。

滴滴里還有好多高手,方方面面,除了對(duì)各個(gè)技術(shù)點(diǎn)有深入研究的人外,還有整體架構(gòu)設(shè)計(jì)高手。安全,性能,數(shù)據(jù),智能都有著很多非常專業(yè)和領(lǐng)域影響力的老師們,公司內(nèi)會(huì)有很多技術(shù)講座,涉及到各個(gè)領(lǐng)域,滴滴的大數(shù)據(jù)和人工智能在業(yè)界也是很有名的,內(nèi)部也有著系列的講座可以去學(xué)習(xí),最近的系列課程我都有在追。每期的講師都是這個(gè)領(lǐng)域最有權(quán)威的人。當(dāng)然也少不了孫源的講座,自熱每次我也都聽了。

?

竅門三,主題分享


記得第一次技術(shù)分享是在組內(nèi)做的一個(gè)白板分享,為了避免分享時(shí)跑題和講不全,我在分享前專門把要分享的內(nèi)容在 A4 紙上畫了一遍。白板講時(shí)拿著那張紙邊看邊講,講完后我發(fā)現(xiàn)在 A4 紙上畫的這個(gè)過程最有價(jià)值了,在這個(gè)過程里我對(duì)整個(gè)相關(guān)內(nèi)容會(huì)做一個(gè)總結(jié),會(huì)考慮重點(diǎn),鋪墊等等因素,這個(gè)輪回下來在整理過程中我發(fā)現(xiàn)其實(shí)對(duì)知識(shí)點(diǎn)有了更深的記憶。

每次的分享其實(shí)都會(huì)考慮比較多的事情,首先是內(nèi)容。誰都不愿意聽到處都能夠看到的東西,這樣為了保證新鮮感,首先要根據(jù)自己的主題看看那些到處都能看到的東西是什么(這個(gè)過程其實(shí)比較痛苦需要查找大量資料),盡量避免那些大家耳熟能詳?shù)牧?#xff0c;多分享些經(jīng)過自己思考總結(jié)出來的理解,我覺得某個(gè)知識(shí)點(diǎn)只是搞懂了和實(shí)踐成功了還是遠(yuǎn)遠(yuǎn)不夠的,在搞懂的基礎(chǔ)上去想為什么這樣設(shè)計(jì)而不那樣設(shè)計(jì),通過自己的理解想通了那才是有意思的事情。這樣就會(huì)迫使自己看大量的知識(shí),自然而然也就學(xué)習(xí)到了大量的知識(shí),是不是有種被推著往前進(jìn)的感覺。

再就是要考慮準(zhǔn)備的時(shí)間,如果時(shí)間長(zhǎng)那么就可以專門準(zhǔn)備一個(gè) Demo 現(xiàn)場(chǎng)來演示,或者美化美化幻燈片之類。時(shí)間短的話只要力保內(nèi)容有用就好了。上次 GMTC 大會(huì)前組織方極客幫專門邀請(qǐng)了左耳朵耗子來給我們這些講師們分享如何做分享。他提到很重要的一點(diǎn)就是內(nèi)容要有用,就是所謂的干貨,為了不讓分享枯燥那么使用講故事的方式來吸引聽眾是最有效和最容易讓人記住的。

分享當(dāng)然還有一個(gè)很重要的好處就是和其他分享者還有聽眾交朋友,每次分享都會(huì)遇見很多人,新朋友老朋友,還有不同公司的人,能夠了解到其它公司正在做什么,他們的成果和他們正在攻克的難題,了解現(xiàn)在流行的方案是什么。開闊了視野也就開闊了思路。

?

竅門四,在定的時(shí)間節(jié)點(diǎn)里將涉及到的問題盡可能問到底


大多數(shù)人都是有惰性的,那么什么樣的竅門是能夠適合所有人的呢。我覺得時(shí)間的節(jié)點(diǎn)設(shè)定非常關(guān)鍵。先說下什么是時(shí)間節(jié)點(diǎn)呢?比如某版本需求提測(cè)時(shí)間點(diǎn),再比如某次分享的時(shí)間點(diǎn)。有了這個(gè)時(shí)間點(diǎn),就可以在節(jié)點(diǎn)時(shí)間到達(dá)前將問題考究透,這段時(shí)間先不去關(guān)注其它東西,運(yùn)氣好的話時(shí)間充沛就能夠考究的多些。每次節(jié)點(diǎn)完成都可以好好犒勞下自己,這樣下次進(jìn)入另一個(gè)周期時(shí)能夠充滿戰(zhàn)斗力。

有一個(gè)我影響很深刻的工程大小瘦身的任務(wù),這個(gè)也是有個(gè)時(shí)間節(jié)點(diǎn)。在這個(gè)任務(wù)下達(dá)之前,我們已經(jīng)手動(dòng)做過了一輪對(duì)無用資源的清理,剩下的只能依靠工具了。我?guī)缀跤帽榱怂邢嚓P(guān)工具,當(dāng)時(shí)有種孫悟空在東海龍宮試兵器的感覺,怎么都不順手。又沒有定海神針,那么只能自己造了。現(xiàn)有工具主要的問題是準(zhǔn)確度不高,所以每次都需要手動(dòng)核對(duì)下,這樣每個(gè)版本來回幾次,我們代碼又這么多,這種工作量會(huì)讓人吃不消的。但是任務(wù)又不能不完成,想著用戶在外面急著打車需要安裝滴滴時(shí),程序包太大耽誤下載時(shí)間又浪費(fèi)流量該多不好。

這種檢查核對(duì)工作重復(fù)枯燥又很耗時(shí),工期又很緊,但是為了用戶體驗(yàn),我還是決定挑戰(zhàn)下自己。我發(fā)現(xiàn),提高準(zhǔn)確度達(dá)到不需要人工檢查是很有難度的,連 App Code 都沒有做到。可人有急智,我發(fā)現(xiàn)通過模擬編譯的過程,將代碼整理成有效的結(jié)構(gòu)進(jìn)行分析和比對(duì)可以很容易自己控制各種檢查規(guī)則。想完就擼起袖子加油干,幾天后就做了出來。不過開始時(shí)沒注意時(shí)間復(fù)雜度,導(dǎo)致速度慢得無法接受。于是一點(diǎn)一點(diǎn)地?fù)?#xff0c;把它們一個(gè)個(gè)轉(zhuǎn)成空間復(fù)雜度后速度得到了質(zhì)的飛躍。接下來幾天,在實(shí)際工程代碼檢查過程中又解決了一些運(yùn)行時(shí)寫法的問題。為了提高體驗(yàn)我還做了一鍵清理,將無用的代碼直接注釋掉。這樣在后面版本里節(jié)省了大量的人工檢查時(shí)間。這次的“瘦身”過程也在今年的 GMTC 大會(huì)上做了分享,分享的 Slides 我放到了這里?https://pan.baidu.com/s/1skPAIID?。里面涉及的編譯相關(guān)的技術(shù),我也寫了篇博客進(jìn)行總結(jié),地址:深入剖析 iOS 編譯 Clang LLVM

再列個(gè)經(jīng)歷,當(dāng)時(shí)在研究自動(dòng)布局的過程中,我發(fā)現(xiàn)蘋果基于自動(dòng)布局抽象出一個(gè) Stack View 來做布局,這種布局思路更加規(guī)范,更容易提高開發(fā)效率,但是卻不支持低版本 iOS 系統(tǒng)。那時(shí),我就在想能不能和 VFL 語言結(jié)合起來,這樣開發(fā)起來豈不會(huì)效率更高?想了幾天,覺得考慮的比較全面了,就差一個(gè)落地項(xiàng)目來推著自己完成它了,我就跟老大申請(qǐng)了在一個(gè)小版本對(duì)一個(gè)大需求涉及的頁面和功能進(jìn)行重構(gòu)。當(dāng)時(shí)就是想著是有了一個(gè)時(shí)間節(jié)點(diǎn)就能夠推著自己走了,想做的事情也不會(huì)爛尾。

理想是豐滿的,可現(xiàn)實(shí)卻是骨感的——只有4天開發(fā)時(shí)間,前3天我才勉強(qiáng)完成庫的開發(fā),里面殘缺不堪的,所以我只好把周末都搭上去了。周日下午,主要流程都完成后,我買了杯咖啡來到軟件園湖邊休息了半個(gè)小時(shí)。現(xiàn)在回想,這半個(gè)小時(shí)算是版本開發(fā)周期里除了睡覺外唯一的休息了。從開發(fā)到后面測(cè)試的那些天里,我都是每天6點(diǎn)到公司,晚上12點(diǎn)離開公司。最后,掐著點(diǎn)完成了功能版本的上線。

這個(gè)庫我也是基于自動(dòng)布局來包裝的一個(gè)類似 Stack View 的庫,能支持低版本,同時(shí)設(shè)計(jì)了一個(gè)簡(jiǎn)潔的界面描述語言,通過解析這個(gè)語言來對(duì)應(yīng)生成界面,這樣開發(fā)時(shí)只需要使用簡(jiǎn)單的語言描述即可。雖然這個(gè)開發(fā)的過程比較痛苦,但是完成后的喜悅感和成就感還是蠻大的不是么。

總結(jié)

以上是生活随笔為你收集整理的我是如何指数级提升开发技术的?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。