歡迎加入QQ討論群258996829
我心依舊 頭像
蘋果1袋
1
我心依舊

國(guó)外iOS大牛的分享經(jīng)驗(yàn)和對(duì)Swift的看法

發(fā)布時(shí)間:2016-03-23 23:17  回復(fù):0  查看:3258   最后回復(fù):2016-03-23 23:17  
今年1月份,我參加了由梁杰發(fā)起組織的Swift大會(huì),這是國(guó)內(nèi)第一次由社區(qū)組織的移動(dòng)技術(shù)大會(huì),大會(huì)取得了圓滿成功,來(lái)自國(guó)內(nèi)外的iOS開發(fā)大牛為大家奉獻(xiàn)了精彩的演講。在大會(huì)期間我采訪了兩位國(guó)外講師Chris和Greg,他們分享了平時(shí)是如何工作的,如何做分享,以及對(duì)Swift的看法。

嘉賓介紹

國(guó)外iOS大牛的分享經(jīng)驗(yàn)和對(duì)Swift的看法
Chris Edihof是一名生活在德國(guó)柏林的荷蘭開發(fā)者,他是iOS與Mac開發(fā)者,同時(shí)還是Objc.io的創(chuàng)建者,組織了德國(guó)的面向iOS開發(fā)者的UIKonf技術(shù)會(huì)議,還寫了兩本書:Functional Programming in Swift和Advanced Swift,成為了Swift的布道者。

國(guó)外iOS大牛的分享經(jīng)驗(yàn)和對(duì)Swift的看法
Greg Heo是一名韓裔加拿大人,自由職業(yè)的軟件開發(fā)者,他同時(shí)還是Ray Wenderlich的作者和編輯,除此之外還編寫了一些iOS開發(fā)的視頻教程,出席了不少開發(fā)相關(guān)的podcast.

個(gè)人篇

作為iOS開發(fā)者,請(qǐng)問(wèn)您如何安排一天的時(shí)間?

Greg:早起對(duì)我是一個(gè)挑戰(zhàn),早上起來(lái)我通常難以集中精力做事情,所以我一般先檢查郵件、和別人溝通,到了下午我才開始專心寫代碼,一直工作到晚上,吃完晚飯后繼續(xù)寫代碼,因?yàn)榫幊淌俏宜矏鄣氖虑椋袝r(shí)候會(huì)寫到很晚。當(dāng)然,我也知道這樣是不健康的,所以也嘗試著改變。

因?yàn)槲以诩夜ぷ?,所以基本每天都是這樣,當(dāng)然,有些時(shí)候也會(huì)有其它的事情插入進(jìn)來(lái),比如電話、會(huì)議等等。

Chris:我的情況有一些不一樣,我早上的頭腦是最清醒的,所以我一般早上來(lái)解決工作上的難題。隨著時(shí)間經(jīng)過(guò),我的腦袋轉(zhuǎn)得越來(lái)越慢,所以如果工作很晚的話我也會(huì)寫出Bug,最后我進(jìn)入夢(mèng)鄉(xiāng),做的也是和編程相關(guān)的夢(mèng),經(jīng)常是關(guān)于那些Bug的。當(dāng)年我寫PHP的時(shí)候,曾經(jīng)有一段時(shí)間經(jīng)常做噩夢(mèng)(笑。

我也是在家工作,因?yàn)槲沂仟?dú)居,家里非常安靜,所以擁有很多無(wú)人打擾的思考時(shí)間,我很容易分心,如果有人打擾我的工作效率也會(huì)變慢。

因?yàn)樯厦孢@些原因,我會(huì)避免工作到很晚,并且避免為白天的工作列太多計(jì)劃。

Objc.io和Ray Wenderlich都是非常好的iOS學(xué)習(xí)資源,你們是如何開始分享的,對(duì)于分享方面有什么訣竅?

Chris:Objc.io的誕生完全是個(gè)意外,某次參加大會(huì)后,我和我的朋友Florian和Daniel坐在那里突發(fā)奇想,要不咱們開個(gè)博客吧。當(dāng)然,我想做得和其它博客不一樣,所以模仿雜志,每月出一期,每一期圍繞一個(gè)主題,并且我們會(huì)雇傭?qū)I(yè)的編輯,改善文字的可讀性以及排版設(shè)計(jì)等等。Daniel以前在蘋果工作,所以他知道很多東西,F(xiàn)lorian和我則有很多自由時(shí)間。所以這種聯(lián)合讓我們可以做出一些高質(zhì)量的內(nèi)容出來(lái)。當(dāng)我們發(fā)布了第一期issue后,很多人很喜歡并且催促我們出下一期。我們一開始設(shè)定了很高的標(biāo)準(zhǔn),后面要想達(dá)到同樣的標(biāo)準(zhǔn)真的是很難,不過(guò)也很有趣,因?yàn)樵谶@過(guò)程中我學(xué)習(xí)了很多東西。當(dāng)你需要表達(dá)某東西時(shí),你必須了解其細(xì)節(jié)。我可以說(shuō),如果我寫篇文章,文章最后所表現(xiàn)的和我需要了解的不成正比,我需要學(xué)習(xí)的要多得多。所以分享對(duì)我來(lái)說(shuō),先是學(xué)習(xí),然后才是分享,這可能有點(diǎn)自私,不過(guò)最后大家都獲得了好處。

Greg:2012年開始我在Ray Wenderlich擔(dān)任技術(shù)編輯,作者寫完文章后,我會(huì)先審校一遍,然后是第二個(gè)、第三個(gè)編輯審校,最后才會(huì)發(fā)布到網(wǎng)站上。正因?yàn)槊科恼露冀?jīng)過(guò)了很多雙眼睛,所以Ray Wenderlich上的文章質(zhì)量才能保持一個(gè)很高的水準(zhǔn)。對(duì)于分享,我的情況和Chris有些相似,因?yàn)槿绻阋鲆粋€(gè)技術(shù)分享,你必須完全了解技術(shù)的背景、內(nèi)涵以及可能遇到的各種問(wèn)題,另外還要保證分享的內(nèi)容完全無(wú)誤,哪怕是缺少一個(gè)逗號(hào),文章的代碼可能就不能運(yùn)行。在一個(gè)分享中,我所學(xué)習(xí)的要遠(yuǎn)遠(yuǎn)超過(guò)最后分享出來(lái)的內(nèi)容,而且作為編輯,我有機(jī)會(huì)學(xué)習(xí)別人的思想,和聰明人進(jìn)行交流,所以我很享受這個(gè)過(guò)程。剛才Chris提到一個(gè)詞語(yǔ)自私,我想這也適合于我吧,因?yàn)樵诜窒碇形宜@得的要遠(yuǎn)超過(guò)所分享的。

Chris:還有一點(diǎn),分享也和我是獨(dú)立開發(fā)者有一定的關(guān)系。如果是大公司的開發(fā)者,公司內(nèi)有足夠的學(xué)習(xí)資源,還有經(jīng)驗(yàn)豐富的老人教導(dǎo),學(xué)習(xí)對(duì)他并不是一件難事。但如果是獨(dú)立開發(fā)者,你需要持續(xù)學(xué)習(xí)以保持自己的競(jìng)爭(zhēng)力,而分享是一個(gè)很好的學(xué)習(xí)的辦法,它迫使你去了解更多更深入的知識(shí)。甚至可以說(shuō),如果我不分享的話,我不知道如何才有動(dòng)力持續(xù)學(xué)習(xí)。

蘋果每年都會(huì)推出很多新產(chǎn)品和技術(shù),特別是去年watchOS和tvOS帶來(lái)了新的平臺(tái)和機(jī)會(huì),你們是如何跟隨蘋果的新產(chǎn)品的?

Greg:是的,(要做到關(guān)注所有產(chǎn)品)的確很難。每年蘋果都會(huì)推出很多令人興奮的產(chǎn)品,對(duì)我來(lái)說(shuō),Apple Watch推出讓我特別興奮,我學(xué)習(xí)了大量的關(guān)于它的資料和視頻,打算做一些開發(fā),結(jié)果馬上tvOS也出來(lái)了,對(duì)于這個(gè)我也非常興奮,然而我精力有限,只能做出選擇。所以我最終選擇聚集在iOS和watchOS平臺(tái)上。要知道現(xiàn)在Swift開源了,光是Swift就有一大堆的東西要關(guān)注了。我想,比起什么都會(huì)一點(diǎn),我還愿意精通少數(shù)一些技術(shù)。

Chris:對(duì)我來(lái)說(shuō),情況可能不太一樣,直到iOS 7之前我只開發(fā)iOS Apps,但之后我轉(zhuǎn)向了Mac開發(fā),對(duì)于iOS世界里發(fā)生的事情已經(jīng)不太關(guān)注了,而現(xiàn)在Swift出來(lái),我的精力都撲在Swift上,對(duì)于Mac開發(fā)也沒有以前那樣關(guān)注了。對(duì)于我來(lái)說(shuō),很難同時(shí)去關(guān)注所有事情,所以,我決定去關(guān)注和做那些讓我感到開心和有趣的事情,比如目前就是學(xué)習(xí)Swift。我覺得,與其一個(gè)人去學(xué)習(xí)那么多東西,還不如大家都只關(guān)注自己感興趣的部分,然后將它們分享出來(lái),這樣能節(jié)省大家的時(shí)間。事實(shí)上,要同時(shí)掌握那些技術(shù)是不太可能的,你最終必須要選擇一些深入進(jìn)去。

Swift篇

你們第一次接觸Swift是什么感受,它比Objective-C好在哪里呢?

Chris:14年我本來(lái)想去現(xiàn)場(chǎng)參加WWDC,可惜抽簽沒有抽中,于是我和朋友們?nèi)ゲㄌm度假了。當(dāng)時(shí)我正在山上,只有一點(diǎn)點(diǎn)的網(wǎng)絡(luò)信號(hào),我只能拿它刷刷Twitter,來(lái)看WWDC上出現(xiàn)了什么,當(dāng)我看到他們都在說(shuō)Swift時(shí)候,我的感覺是Oh My God,我立馬去下載了它的電子書,當(dāng)我深入了解Swift后,就徹底愛上了它,因?yàn)楝F(xiàn)在我們有了FP,有更好的類型系統(tǒng),它可以幫助我們編寫更好的,更安全的代碼,我認(rèn)為它幾乎在每個(gè)方面都勝過(guò)Objective-C。

Greg:我很同意。之前很多人對(duì)Objective-C的觀感并不好,就是因?yàn)樗恼Z(yǔ)法比較奇怪,雖然我覺得沒有什么,但我發(fā)現(xiàn)這對(duì)于很多人來(lái)說(shuō)還是很重要的。而Swift沒有這種缺點(diǎn),它的語(yǔ)法很現(xiàn)代,人們會(huì)更愿意學(xué)習(xí)它。所以,我覺得Swift的優(yōu)點(diǎn)之一還在于它讓更多的開發(fā)者進(jìn)入到iOS開發(fā)里來(lái)。

Chris:Swift對(duì)于你來(lái)說(shuō)更簡(jiǎn)單嗎?

Greg:不能這么說(shuō),我覺得Swift會(huì)比Objective-C看上去簡(jiǎn)單,并且代碼的可讀性更好,而我認(rèn)為這是很重要的,但實(shí)際上,它們都是iOS開發(fā),難度都差不多,甚至因?yàn)镾wift有更多的特性,有時(shí)候會(huì)更難一些,看上去簡(jiǎn)單但實(shí)際上更難,這的確是一個(gè)難解的問(wèn)題。

對(duì)于Swift的開源,您認(rèn)為這次蘋果是否足夠開放?

Greg:是的,蘋果的確更開放了,這是第一次蘋果將它的項(xiàng)目管理都放在Github上,開發(fā)者能夠在線的關(guān)注項(xiàng)目的進(jìn)展。之前蘋果每次發(fā)布了新版的iOS,過(guò)幾個(gè)月,扔出一堆代碼說(shuō),Hi,這就是我們的開源代碼,但現(xiàn)在開發(fā)者能夠看到每一個(gè)commit的內(nèi)容,看到哪些地方的代碼修改了,并且能夠參與Swift新版特性的討論。

Chris:拿Webkit來(lái)說(shuō),因?yàn)樗抢^承自KHTML,所以蘋果不得不開源,但Swift,是蘋果自主決定來(lái)更開放的做這件事。我覺得Swift團(tuán)隊(duì)是的確關(guān)心這門語(yǔ)言,也關(guān)心語(yǔ)言的用戶,并不是所有的團(tuán)隊(duì)都是這樣,有的只是干他們必須做的工作,而Swift團(tuán)隊(duì)的動(dòng)力來(lái)自于他們的激情。而且,我還有一個(gè)印象是Swift團(tuán)隊(duì)想讓Swift擴(kuò)展到更多的地方,而不僅僅是蘋果的平臺(tái),開源也能夠幫助它們達(dá)到這個(gè)目的。

Swift還要多久成為iOS開發(fā)主流,是否還需要達(dá)成某些里程碑事件?

Greg:我知道Swift 3的目標(biāo)之一是ABI的兼容性,一旦達(dá)成這個(gè)目標(biāo),Swift 3開發(fā)的應(yīng)用就可以向前兼容,甚至運(yùn)行在OS X 10.10的系統(tǒng)上,這對(duì)于Swift來(lái)說(shuō)是非常重要的。另外還有并發(fā)特性,現(xiàn)在的移動(dòng)設(shè)備上多核已經(jīng)很普遍,有了并發(fā)就可以更好的利用CPU,對(duì)于Swift來(lái)說(shuō)也將是一個(gè)里程碑。

Chris:我相信Swift會(huì)很快成為iOS主流開發(fā)語(yǔ)言,如果你去看看年輕的開發(fā)者,他們不喜歡寫Objective-C代碼,并且很多新加入的iOS開發(fā)者,他們首先學(xué)習(xí)的也肯定是Swift,另外對(duì)于像我這樣的人來(lái)說(shuō),我已經(jīng)不寫Objective-C了,雖然有很多朋友仍然在寫,但他們的數(shù)量也越來(lái)越少。對(duì)于找工作,開發(fā)者想進(jìn)入那些已經(jīng)開始用Swift開發(fā)的公司,所以對(duì)于公司來(lái)說(shuō),要想找到有才能的開發(fā)者,他們必須盡快采用新技術(shù)。對(duì)于什么時(shí)間發(fā)生,我不知道一個(gè)確切的時(shí)間,但我知道會(huì)非??臁V劣诶锍瘫?,我認(rèn)為Swift仍需改進(jìn)的一點(diǎn)是它的編譯時(shí)間,與Objective-C相比太慢了,如果改進(jìn)之后,Objective-C開發(fā)者再也不能用它當(dāng)做拒絕Swift的借口了。另外也許當(dāng)某個(gè)WWDC上的Session全部都是Swift相關(guān)的,這應(yīng)該也能算做一個(gè)里程碑。

Greg:我還想到一個(gè)就是,什么時(shí)候蘋果能夠推出一個(gè)Swift獨(dú)有的框架,本身用Swift編寫,并且你只能用Swift來(lái)調(diào)用它,這應(yīng)該也算一個(gè)巨大的里程碑事件。到了這一步,Objective-C才真算是漸漸推出歷史舞臺(tái)吧,因?yàn)槟阆胍M(jìn)行新的開發(fā),使用新的特性,你就必須用Swift。不過(guò)目前的話,蘋果還是宣傳Objective-C不會(huì)離開,能夠用在任何地方,所以且讓我們期待這一天的到來(lái)。

感謝二位接受采訪。

您還未登錄,請(qǐng)先登錄

熱門帖子

最新帖子

?