開頭
Swift從WWDC2014發(fā)布,到今年的WWDC2018,已經(jīng)有整整的四年時間了。在這四年中,產(chǎn)生了很多個版本的Swift。從Swift1.0(1.0,1.x, 2.x , 3.x )到最新的Swift4.2 已經(jīng)有不下5個版本。而這每一個版本的后面,都能看出蘋果的激進,對于API的大幅修改,導致業(yè)界有一個學了一門Swift,每個版本都是在學一門新的語言的調(diào)侃。
在Swift1.0 官方發(fā)布后,以梁杰為首的一批SwiftGG 前期成員即刻著手翻譯《The Swift Programming Language 》,經(jīng)過十多天的努力,一份中文版的《The Swift Programming Language》中文版出現(xiàn)在大家面前。翻閱中文版的時候,看到了一句比價霸氣的話“這次,中國終于和世界同步了”,從此便開始關(guān)注了Swift這門新的語言。
2018@Swift
Swift GG組織的中國Swift開發(fā)者大會,已連續(xù)舉辦兩屆,2018@Swift為第三屆中國Swift開發(fā)者大會。
議程安排
此次開發(fā)者大會的時間為 2018 年 09月 15 號,周六


主題
iOS Architecture improvements with Swift
AndyyHope 從MVC,MVVM,VIPOR ,講述了各種架構(gòu)的好處和缺點,最后給出了一個通過JSON配置頁面的Nemo。通過修改JSON數(shù)據(jù)格式,控制App中的不同頁面展示,控制頁面中不同數(shù)據(jù)的位置,覺得在一些App中,覺得在靈活性上,還是有一定的有點的。
AndyyHope 的英文演講,其中的內(nèi)容覺得也就接受了一半而已,Nemo 需要自己消化一段時間,其中的巧妙設計完全可以用在以后的項目中的。
提問嘉賓的英文能力還是不錯的, 能全場和Andy 無障礙交流,雖然是chinEnglish, 但是這種自己的的自信是我現(xiàn)在不具備的。
從Swift 到機器學習
喵神的幽默的看場方式,以及對于游戲中這個萌萌的動作選中,最后這個萌萌的動作成了大會中的標準賣萌表情。
其中講到了Create ML 這個框架,還有自己對于一個視頻通過Swift腳本切割每一幀的圖像,還是驚喜滿滿。
怎么用Swift寫解釋器以及實用場景
戴銘老師的這個session中,已經(jīng)被精美的PPT萌化了,講到的內(nèi)容中,只能獲取一二,真的不怪我,只怪PPT太精美,讓我沉浸在其中了。
下面來幾張拍的PPT。





猿輔導從OC到Swift的遷移之路
巧哥的這個猿題庫Swift遷移之路,可以說是磨難之路,三個產(chǎn)品中,猿輔導相對來說比價順利,其中的編譯慢的問題,Xcode不友好的問題,自己在以前也是遇到了,想不到經(jīng)過這三年的發(fā)展,Xcode的發(fā)展還是沒有跟上Swift的發(fā)展,這個開發(fā)人員造成了很多的困難,也就讓一部分開發(fā)人員望而卻步。
其中巧哥提到了,他們的小猿搜題,重新用Swift開發(fā),然后想著趕上需求,自己覺得巧哥還是太年輕, 我們的產(chǎn)品經(jīng)理的需求比吃飯睡覺還要準時,你怎么能指望趕上呢。
項目重構(gòu)這一塊,我覺得還是有話說的,我們從去年7月份開始在主產(chǎn)品上做模塊化,經(jīng)過和Android組的討論,覺得最保守的方式或者說是行之有效的方式就是在現(xiàn)有的基礎(chǔ)上,單開一個項目或者單開一個分支做模塊化,堅決不能推到重做。而iOS組比價保守,就選擇在最新版本的基礎(chǔ)上開始拆分模塊,每人負責幾個模塊開始,其中的新需求就是邊做,邊遷移到模塊化工程(誰負責的新需求開發(fā),誰負責遷移到模塊化工程),從4.7 到5.2 五個版本的追趕,最終在5.2 需求在模塊化基礎(chǔ)上開發(fā)并順利發(fā)布。
Android組是選擇重新寫,從最基本的架構(gòu)開始,到模塊拆分,一年多了,已經(jīng)變成了爛尾(Android組中間出現(xiàn)人員變動也是一個原因);以后新的需求還是不斷的來,這樣版本越追越追不上了;時間拖得越長,到時候?qū)е聽€尾的風險更大。現(xiàn)在和Android組聊天,聊到模塊化項目,也在做,從表情中能感受到其中的痛苦。
其中的模塊化,可以說是我們技術(shù)人員的一廂情愿。其實QA的同學才不管你這個工程的技術(shù)實現(xiàn)。他們只關(guān)注健壯,沒有bug 就可以了。而我們的模塊化最后會導致人家的加班等,所以拖得時間越長,QA這邊也是會困難重重。不可能把每一個版本的功能都走一遍的。在iOS組的模塊化完成后,QA也是跳票好幾次,模塊化項目上了,皆大歡喜。
話又說回來了,高風險帶來高回報嗎?選好了,就開始革命吧。
Strings Seven Ways
劉鎮(zhèn)夫老師的這個字符串的七種方式,回顧了一下ASSIC 碼到最后Unicode碼的轉(zhuǎn)變。對于劉老師的多種人類語言的掌握比較驚訝。
Live Code
糖炒小蝦,蝦叔的Swift在Server side 的支持,并且在生產(chǎn)環(huán)境中,使用Swift去替換Ruby的功能, 勇氣和能力令人嘆服。其中講到Vapor的性能優(yōu)化,在工作中,效率較Ruby提高300%領(lǐng)我感嘆不已,并說道和Go的性能差不多的時候,我都有種要放棄Go的沖動。
Swift Server side 自己也是一直有了解的,但是沒有想到這幾年的發(fā)展到這個地步,這種發(fā)展還是讓人有所吃驚的。
Swift For Tensorflow
蓮叔的這個session,和喵神上午的Session是有很多相似的,
其中喵神是用到了蘋果提供的Create ML來訓練模型的。蓮叔則是選擇用Swift for Tensorflow來訓練模型。
蓮叔的值通篇英文的PPT也是很拉風的,內(nèi)容也是充實。雖然在Chris Lantiner 發(fā)起這個項目開始就有關(guān)注,但是在蓮叔呈現(xiàn)在會場的時候,被震撼到了。
其中的協(xié)同分類(Collaboration Classify ) 和 協(xié)同過濾 (Collaboration Filter)內(nèi)容詳實,好多的數(shù)學公式覺得需要再次學一遍高數(shù)了,作為一個互聯(lián)網(wǎng)的老兵,讓我看到了一個老兵的風采。
做一個有趣的多人AR游戲
這個Session自己沒有聽講,有點遺憾。
總結(jié)
整個參會的感受就是,震驚,收獲頗多。其中不光有講師的風采,同樣有一個個參會者的突出。如果填調(diào)查問卷反饋,我覺得全部給滿分,能在這么短的時間內(nèi),讓我們看到Swift的光彩和Swift的坑,真的足矣。下屆@Swift舉辦的話,一定會參加。
在和喵神的聊天中,知道了國內(nèi)的互聯(lián)網(wǎng)和日本還是有很大不同的,兩個都有好處,覺得就是兩個不同的發(fā)展思路不同而已。其中喵神說到Line 公司的測試很專業(yè),說自己提交代碼,覺得一個問題也沒有,都會給你能找出十多個bug,保證了線上幾乎是沒有bug的,所有他們就沒有對熱修復的渴求。在聊到跨平臺的時候,他們也是沒有這種需求的,國內(nèi)對RN,Weex,F(xiàn)lutter很是追捧,求變也是國內(nèi)互聯(lián)網(wǎng)發(fā)展的一個原因。其實所有的根源,在于兩邊對于軟件的開發(fā)規(guī)范和產(chǎn)品迭代的思路不同,日本那邊需求幾乎是半年都不會有多大變化的;而國內(nèi),幾乎每一個版本都是對上一個版本的否定,這樣就導致QA測試不充分,軟件質(zhì)量的下降。喵神的“守護原生開發(fā)者尊嚴”覺得在國內(nèi)還是不好守護的。