昨天宵距,帝都的幾位朋友去了『知乎鹽Club』,且狠狠地刷了我一臉屏呼畸。而我滿懷著羨慕妒忌恨參加了Segmentfault D-day的廣州站活動鸳兽。
總體來說嘿期,Segmentfault的這場活動給了我預(yù)期想要的東西藕咏,并且也很意外地見到了張?jiān)讫垼谥跎匣卮鹆艘坏狸P(guān)于大公司如何部署前端的問題秽五,他的答案令我醍醐灌頂。這場活動給我最大的體會就是優(yōu)化之于大公司的項(xiàng)目饥悴,花最多時(shí)間的不是開發(fā)而是持續(xù)的優(yōu)化坦喘。例如前端的優(yōu)化,隨著版面布局的不斷優(yōu)化西设,如何進(jìn)行非覆蓋式更新前端代碼瓣铣,張?jiān)讫埥o了一個(gè)很好的思路;而對于大并發(fā)的數(shù)據(jù)查詢和大規(guī)模I/O贷揽,如何通過本地以及云端緩存進(jìn)行性能的優(yōu)化棠笑,百度鷹眼項(xiàng)目的馬輝給了一個(gè)很通用的思路。由于我不做iOS和Android的開發(fā)禽绪,實(shí)際上有兩個(gè)講者講的內(nèi)容我都云里霧里蓖救,不過可以透露的是洪规,Apple Watch的APP是依賴iPhone的,而且由于可能需要用到iCloud循捺,所以在中國的體驗(yàn)可能不會太好斩例。
比較令我震撼的是最后PeachApp的CTO段巖的演講。他在演講中展示了一款由他們公司制作的一款移動端跨平臺開發(fā)框架AvantX从橘。Demo相當(dāng)驚艷念赶,一份代碼,可以直接用于iOS和Android恰力,同時(shí)直接用Vim修改代碼叉谜,就可以即時(shí)看到動態(tài)的變化。當(dāng)然踩萎,包括他自己也透露停局,很多框架包括HTML5(很多APP無非就是網(wǎng)頁加個(gè)瀏覽器殼),React Native驻民,Xamarin和老牌的Qt都是跨平臺代碼重用的框架翻具。由于我對于手機(jī)端開發(fā)不熟悉,我也就不方便評論AvantX的技術(shù)較之幾款如何如何回还。不過我個(gè)人覺得添加了AbstractView這種模式的確給開發(fā)帶來了方便裆泳,采用元素映射的方法,令代碼展示時(shí)可以對應(yīng)不同的移動端柠硕。當(dāng)然工禾,在代碼轉(zhuǎn)譯那塊,還是用了Google的Java to JS/OC/C# 的轉(zhuǎn)譯器蝗柔,相對來說闻葵,會依賴于谷歌的產(chǎn)品。
我并非想評價(jià)這款A(yù)vantX如何如何癣丧。我只是想說很佩服這些造錘子的人(注意不是輪子)槽畔。因?yàn)橛X得開發(fā)得不爽,所以造了個(gè)錘子出來幫助自己開發(fā)胁编。其實(shí)有點(diǎn)類比于方法論厢钧,每個(gè)人都有一套自己的方法論。不過嬉橙,方法論容易構(gòu)建早直,但工具構(gòu)建起來很難。For example市框,我尊敬的一位長輩霞扬,Oliver Ding,曾提倡了很多記錄整理在線學(xué)習(xí)內(nèi)容的方法;但是我們實(shí)際操作起來需要花上比較多的工具才能進(jìn)行整合喻圃,例如我需要截屏萤彩、用Evernote、需要做標(biāo)簽级及、備注等等乒疏。所以O(shè)liver Ding自己就上線了一個(gè)項(xiàng)目叫Bagtheweb,顧名思義饮焦,就是打包網(wǎng)絡(luò)怕吴,具體我就不介紹了,大家可以自行搜索县踢。這就是造錘子转绷,一般有了方法論,但實(shí)際上現(xiàn)行的解決方案過于復(fù)雜硼啤,所以選擇造錘子议经。
但一般人是不會傾向于造錘子的,因?yàn)樵戾N子的成本會很高谴返。但隨著使用方法的頻次越來越高煞肾,很多方法卻一如既往地復(fù)雜,到最后嗓袱,使用解決方案的成本還高于錘子了籍救。也正是因?yàn)镠TML5在facebook的大項(xiàng)目中越來越拖后腿,否則它不會上線一個(gè)React Native渠抹。所以蝙昙,不要害怕去造個(gè)錘子。我在大學(xué)的時(shí)候梧却,就曾經(jīng)因?yàn)閹熜值囊粋€(gè)想法奇颠,嘗試造了個(gè)錘子出來,用于把 文獻(xiàn)資料格式(.bib)的文件 自動讀取并自動排版放航。不用說烈拒,人工地復(fù)制粘貼排版也是妥妥的,但是只要文獻(xiàn)資料夠多广鳍,這個(gè)工作就成了機(jī)械無用功了缺菌,所以錘子還是很有必要的。
人類制造工具不僅僅是為了更加輕松地工作搜锰,更重要是減少機(jī)械的、重復(fù)的工作耿战,而減少的這部分時(shí)間蛋叼,也體現(xiàn)在了人類文明里了。所以,不要害怕造錘子狈涮。