摘要:不久,傳說中的月影大大進入了視線。目前擔任奇虎副總監技術委員會委員兼前端技術委員會主席,前端最大團隊奇舞團負責人,顧問。圖靈訪談我知道月影大大在前端方面特別有名,圖靈社區的好多留言也都感嘆終于有機會訪談到月影大大了。
編者語本文僅用于學習和交流,不用于商業目的。非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/Art...
月影(本名吳亮)通往360的酒仙橋路真是名副其實的“堵”,難到是大公司感召人才的魅力所致?采訪當天,恰巧碰到高校畢業生面試大軍。這么想來,李松峰老師特意下來直接把我領進辦公樓,確實有種“走了后門兒”的竊喜。之后,李老師帶我來到了360著名的“南瓜車”型休息區,坐在里面有種"公舉"的感覺。不久,傳說中的月影大大進入了視線。筆記本加手機,嗯,夠專業!等真正進入了采訪,月影大大的談吐、邏輯完全顛覆了我之前對技術員的偏見。后期整理雖然枯燥,時不時能被他廣博的知識和獨特的視角給驚醒,揉揉眼又是智慧一眼。
早年曾在微軟亞洲研究院做過訪問學生,在金蝶軟件有限公司先后擔任核心開發工程師和項目經理,在百度電子商務事業部做過Web開發項目經理。在盛大創新院搜索主題院做過高級研究員。目前擔任奇虎360副總監、360技術委員會委員兼前端技術委員會主席,前端最大團隊——奇舞團負責人,w3ctech顧問。
多年來致力于JavaScript技術和Web標準的推廣,曾經活躍于國內極有影響力的JavaScript專業網站——無憂腳本(www.51js.com),并擔任JavaScript版的版主。
平時熱愛文學、寫作和圍棋。著有暢銷書《JavaScript王者歸來》、網絡火爆技術文章《寫給想成為前端工程師的同學們》《前端動畫原理與實現》等。
圖靈訪談:我知道月影大大在前端方面特別有名,圖靈社區的好多留言也都感嘆終于有機會訪談到月影大大了。是什么時候開始接觸JavaScript的?
我接觸的時間算是比較早的了,如果從寫網頁開始的話,那時還沒上大學,在高中的時候,大概1996年左右。我們家上網比較早,算是第一批網民,那會兒我自己就寫一些網頁,只是簡單地用一些HTML寫一寫,不是很專業,就做著玩。那個年代,很流行個人站長,我也跟著玩。后面接觸到了動態網頁技術,我記得當時用Perl寫了像聊天室、留言本之類的頁面。基本上不是很體系,就是瞎玩。
當時還是以C語言為主,寫一些小程序。大學的時候,學校并沒有專門的前端專業,但社團里面需要做一些網頁,包括一些其他的宣傳。
畢業以后,我的第一家公司是深圳金蝶,做ERP軟件的。挺有意思的是,我們那一屆有一個半年輪崗的實習期。派到分公司后,我接觸到的不全是開發,也做過售后、售前等各種東西。半年以后回到總部,參與了總部正在開發的一個內部web系統。當時的話,我還考慮是用.NET還是Java,最后選擇了Java。
當時看來,Java是比較適合的,因為這種企業級的系統用Java比較成熟,而且金蝶是一個Java很強的公司,所以也就學了Java這一塊的東西。
涉及web系統就不可避免地要用到前端,我自己又沒有系統地學習過前端,所以就用了Java的一些前端框架。之后,我發現用后端程序員使用的Java工具開發前端很不方便,于是回歸到了標準的HTML、CSS、JavaScript 上,開始系統地學習JavaScript,比如說看犀牛書(《JavaScript權威指南》)、混跡無憂腳本。
圖靈訪談:對,還是51.JS論壇的版主。
因為經常發一些技術知識,參與一些討論,算是比較活躍。
圖靈訪談:應該說IT行業挺看重分享、開源的?
對,做技術的話,我挺看重分享的,這是一種互聯網行業的精神。互聯網早期的時候,可能比現在更純粹一點。雖然現在的互聯網,表面上看,存在一些開放精神,其實很多時候這些產品都已經商業化了,講的更多的,是流量、變現、價值。
我希望做技術的同學能夠繼承早期互聯網時期那些草根站長們身上的互聯網精神。不一定為了訪問量,才去做產品。回歸到初心,我覺得通過技術把產品做出來,分享給大家,享受分享的過程,這本身就很美好。
圖靈訪談:你的微博昵稱“十年蹤跡”,讓我想到了納蘭性德的詞“十年蹤跡十年心”。不知道是否出自這里?
對,確實出自納蘭容若的詞。雖然是理科出身,其實我蠻喜歡文學,尤其是古詩詞。像詩經、楚辭、宋詞、元曲,我都會去涉獵一些。雖然小時候常吟誦的唐詩宋詞大多遺忘了,但接觸到這些詩歌都還挺美的。當成愛好跟朋友分享、拿來自己欣賞或是寫寫都挺有意思。
圖靈訪談:從“十年蹤跡”“月影”到你寫的《JavaScript王者歸來》這些名字,可以看出作為“技術界的一股清流”你是很喜歡文學的。除了文學,平時你還喜歡寫作、圍棋。
之前會寫一些包括技術的、非技術的文章,最近幾年比較少了,但會堅持寫技術博客。
圖靈訪談:你怎樣平衡生活跟工作呢?
其實剛畢業那段時間,平衡這塊也不是很好。因為從事了自己興趣愛好方面的工作,很開心。腦子里沒有把工作和生活區分開的概念,平時下了班也想寫寫代碼,寫一點其他的東西。但是后來慢慢意識到,還是要花些時間多陪陪家人、周末健身、休息旅游,合理安排自己的生活。
我在這方面還是挺有代表性的。以前沒有關注過這些東西,現在會關心身體鍛煉。周末的時候,固定時間游泳健身,也會在家做做菜。
圖靈訪談:其實圖靈出過一本書叫《程序員健康指南》,但是受歡迎程度遠不如技術書。從你這邊說,是否應該注重一下?
應該注重一下健康問題。很多人可能有意識到,但改變多年養成的習慣也挺難的。
身體鍛煉很重要,中午到公司健身房做些不太劇烈的運動,比如跑步機上慢跑一會,哪怕是樓下走一圈、散散步,保持更好的狀態、更高效率地工作。
不要覺得年輕、身體好,所以這些東西無所謂。當你工作了一段時間以后,你會覺得每天熬夜、長時間久坐,很不舒服。
現在帶團隊的話,我不希望底下的同學因為工作導致身體方面的問題。我鼓勵大家都運動運動,原則上也不鼓勵過多的加班。做產品研發,所以項目都是有周期的,有忙有閑,是很正常的一個狀態。如果遇到忙的情況,可能會出現周末加班,占用大家的一部分時間,但等到項目上線,后面會有一個調整期,大家可能相對的閑一點,個人學習時間也多一點。
圖靈訪談:有人說前端的門檻低,切個圖,搞個動態,拼個頁面就行了。你覺得優秀的前端開發人員應該具備怎么樣的技能?
前端很有必要分成兩塊:一個是專業的領域,還有一個是業余愛好者的領域。其實,我不反對把前端的門檻變得更低,因為前端實在太有用了,它的重要性決定了它的普及廣度。舉一個最簡單的例子,把時間倒回20年前,誰會想到如今幾乎每個人甚至說一個家庭里面的孩子,都可以熟練使用電腦。20年前PC剛出現的時候,這是沒法想象的。
當時,只有專業人士經過專門的培訓之后,才能夠上手使用,但現在的門檻已經變得很低了,PC就像家庭電器一樣,已經普及成每一個家庭必備的工具了,它影響和改變著我們的生活方式。
前端也一樣,前端在未來太重要了。過去的話,我們可能把前端只看成是在瀏覽器上面展現UI的東西。未來隨著互聯網(IOT)、萬維物聯網(WOT)的迅速的發展,包括所有虛擬現實在內的各種智能終端可以幫我們做很多事情。像智能手表、智能手環、智能家居,會需要越來越多的終端與人來交互。
智能自動化洗衣機可能是大家用的第一臺智能設備,未來發展的方向是把這些設備組合起來用。舉一個簡單的例子,我吃早餐的時候喜歡看新聞節目。假如我家的智能電視能夠在我打開微波爐加熱牛奶的時候,自動幫我切換到早間新聞的話,是不是就不用手動操作了?這其實是很生活化、個性化的需求。如果物聯網做得足夠發達,就是沒有經過太專業培訓的人,也可以實現這種類似于簡單編程的活動:通過一些圖形化,或者是一些簡單的直觀方式來控制不同品牌、不同廠家制造的家電來完成這種自動化的邏輯。這也是未來前端普及的方向。
另一塊是更專業的領域,就是如何在這些家電的底層,在人機交互的界面,做出更好的展示、更炫酷的東西。舉個例子,最近3D打印的話題很熱門。其實,3D打印技術和顯示屏的工作原理從本質來講都一樣。你可以把在瀏覽器上顯示網頁理解成定時地、快速地、不間斷地把內容打印在瀏覽器界面上,只是速度非常快,可能一秒鐘打印幾十次。所以CSS的媒體查詢(media query)里面包含了打印機。從2D打印跨到3D打印,最大的難題,是我們需要一個3D的表現模型,無論對于CSS還是JS都是更高的要求。
虛擬現實的話,像3D眼鏡、還有我在上海科技館看到的那種球幕電影,未來都可能作為個人影音產品進入到我們的家庭。這種情況下,如何把元素展現在這種球幕上,其實需要有更專業的技術。所以說前端的水很深,我們要把它分成專業的和不太專業的。
最近在開奧運,可能大家對體育相對比較關注,我就用體育項目來做類比解釋下“門檻高低”的問題。入門門檻高的領域,你可以把它理解成像跳水、體操的項目,因為不是所有的人,只要身體素質好就可以上去在單杠、雙杠上面轉幾圈的,體操需要有專業的訓練才能實現。入門門檻低的領域就像跑步項目一樣,任何人都可以,只要身體健康、四肢健全的話,其實都可以跑步。但是我們也知道愛好者的跑步和專業運動員的跑步是不一樣的:奧運賽場上的專業運動員,其實不夸張地說,在賽場上能夠很精準地控制每一塊肌肉,他能夠追求很細節的、屬于毫秒級的速度提升,這些不是普通人能夠達到的。所以,跑步項目的金牌含量和跳水項目的金牌含量其實是一樣的。
前端跟跑步差不多,你可以用記事本、用簡單的標簽隨手寫一個網頁,很簡單,但是從專業的角度來看,一個專業的產品很可能需要專業前端工程師追求毫秒級性能提升、像素級設計稿還原。這就是一種專業精神,只有真正從事這個行業,真正進入這個行業的專業領域的時候,你才能感受到;只有經過長年累月的積累和修煉,你才能達到這樣的專業度。
圖靈訪談:如何理解“計算機不僅是一門科學,而且是一門藝術”?相比其他的領域,其實前端領域對這句話的感受應該更強,因為前端就是要做出一些用戶體驗良好的界面也好,東西也好。平時工作的時候,怎樣操作這門藝術來符合用戶的胃口?
計算機科學是一種科學,它的本質是提高生產力。提高生產力的一個非常重要的方法就是合理抽象,只有把功能抽象到足夠高,這個功能模塊才能適用于越廣泛的領域。
程序設計沒有太多的訣竅,不管你是面向對象、面向過程、還是函數式編程,不管采用哪種設計模式,本質上是在做抽象工作。當你把現實生活的模型轉變成一種數學模型,并反應在程序里面的時候,就能夠提高生產效率,這也是程序最核心、最本質的價值。但是前端很難做到這一點,因為每一個人的操作習慣都不一樣,每個人想看到的東西都不同,每個產品向用戶傳達的東西也不一樣,人的活動是很自由的,你沒辦法去抽象。如果把個性的要求過度抽象,它們就會更貼近機器而對人不友好了。當你對人友好的時候,其實就沒法對機器很友好,這是一個矛盾。前端的用戶交互領域,一直存在這樣的矛盾,不管是模塊化開發還是采用像MVC框架、MVVM框架,我們只是在做有限的抽象:把一些復雜的交互活動拆解成一個一個的原子,包括HTML提出的標簽、屬性,CSS的樣式。本質上是對渲染層做一些原子級的拆分和抽象。
但是這種抽象的能力很有限。服務端的話,可能存在一套普適的方法論,有一個很牛的算法來解決這一類問題。但在前端的話,幾乎沒有一套方法能夠去解決所有的交互問題。我們沒辦法單用程序的思維去解決前端問題,它需要運用各種知識才能把人類的交互體驗帶到一個新的高度。
我一直相信這樣一個觀念,就是程序員的工作是創作,寫代碼不是為了完成某個固定的工作。如果只是為了完成某個固定的工作,這些工作就是沒有意義的,未來肯定會被人工智能所取代。前端真正解決的是與人打交道的問題,因此差異性特別大。
圖靈訪談:移動互聯網的到來對前端開發人員產生了不小的影響,前端人員應該如何去面對挑戰?
我曾經給團隊設定的目標就是“從前端到端”,前端人員不應該把自己的目光只鎖定在瀏覽器上,還要放眼于移動端和未來更多的終端。前端發展至今形成了一些相對比較成熟的方法論,可以適用于其他領域。
舉個例子,我以前做手機開發的時候,我發現像iPhone、Android下面其實都有一些自己的布局,比如安卓有自己的layout,有通過xml方式的布局。沒有前端背景的安卓工程師會用很繁瑣的方式實現哪怕是簡單的布局。比如說,在手機界面底部放一個bottom bar(一個固定高度的底欄)。考慮到不同型號手機的屏幕高度不同,沒有從事過前端開發的安卓工程師可能會用一些比較復雜的layout組合來實現;但對于前端來說的話,其實只需要用linear layout,把中間layout的高度設置成自適應,再把底下的擠到屏幕外面去,然后用一個負的margin把它浮動上來,就可以很完美地解決這個問題了。
過去的話,前端跟后端還有其他程序領域的交流很少,很多前端工程師并沒有從服務端去學習一些更先進的東西,web 服務端以及手機的原生應用開發者,也沒有從前端學習一些東西。
現在,這個情況在慢慢地改變,邊界也會變得更模糊。各種分辨率的屏幕、終端、甚至一些其他的設備比如非顯示屏設備,包括各種傳感器、執行器,其實都可以用前端的方法論來解決交互問題。
圖靈訪談:作為360前端最大團隊“奇舞團”的負責人,主要支持哪些業務?
主要還是支持公司的業務,也有像眾成翻譯、爆米兔這些實驗性的產品。而公司業務的話,我們其實支持的產品線也還挺多的。
圖靈訪談:這么多年的技術管理經驗,是否可以分享給想要從技術轉向管理的后輩?
其實很多公司都會給技術做的比較好的同學一些機會。但就我的理解,我覺得有一些人可能更喜歡做技術,愿意更深入地做技術、寫代碼。
我帶技術團隊的話,其實優勢還是在技術上。從管理來講,這么多年也是磕磕絆絆,經歷過很多的事情。我覺得說,做管理其實比做技術更難,你必須去處理很多的雜事。如果你是一個喜歡專注、集中精力投入到一件事的人,剛開始做管理時會覺得挺痛苦,但是慢慢地也會習慣。如果你致力于把前端行業做好,帶團隊能夠做的事情肯定更多。
圖靈訪談:那你覺得,做技術管理一定要像你這樣在技術上見長么?
其實沒有關系。關鍵的問題,是做管理需要對技術大方向的理解到位、看清趨勢,還有一定的知識廣度。技術見長的管理者要切忌心態狹隘,一定要開放,不要讓自己的技術成為整個團隊發展的天花板;避免保守,相信其他的新技術。我相信一個技術管理者肯定有他獨到的一面,但即便是技術不夠好或者不夠自信,也可以承認這一點、開放一點,鼓勵團隊里面的技術牛人來發揮他們的價值,甚至可以招聘或者培養一個技術牛人來一起帶領團隊。
另外,一些工程師在微博、知乎上抱怨經理“不干正事凈做些政治斗爭”。在我來看,大都是些誤會。因為很多技術管理者都是技術出身,相對來說的話,大家還是比較單純的。可能真的是管理者的管理水平問題,才導致了這些不舒服。你可以跟他好好地聊一次,他自己可能都沒有意識到。對于團隊來說,團隊成員間的溝通,leader對團隊成員的絕對信任,以及團隊成員對leader的支持幫助,其實是非常重要的。不是所有的人天生就能面面俱到,不管是技術還是管理,其實都是需要幫助的。
圖靈訪談:團隊面臨多項目集體構建的時候,如何應對項目間共用組件的問題?
奇舞團有自己公共的平臺,像公共組件庫和公共編譯部署工具,供所有項目開發過程中使用。這些是我們結合360的流程特點,給業務定制的,它能夠適應大多數業務的基礎搭建需求。反過來,從業務上收集到的需求也能夠不斷完善公共平臺的建設。
公共組件是由每個業務根據實踐總結、提交上來的。當然我們沒必要說,一定要所有的小組都去采用同樣的標準、同樣的方式去做業務,因為互聯網產品的差異也蠻大的,有PC上面的、移動的、有嵌入式的(嵌入在桌面軟件里的)、還有混合編程的。每個產品的特點都不一樣,選擇最適合的技術就好。不能為了做技術規范而做規范,相對來說,我更看重的是產品技術方案的成熟度,包括文檔、Style Guideline、代碼review、線上質量、潛在風險,等等。
另外,我覺得組建團隊的一個重要原則,就是多元化。針對不同產品選擇不同的技術,團隊成員也會有更高的自由度。開發一個特別大的項目,或者帶一個特別龐大的團隊時,尤其團隊人員的水平又參差不齊的時候,你是不得不去采用統一的架構做規范的。也許這個架構并不是最適合、最高效益的方案,但它有一個非常大的優點,就是保證技術人員不會寫出一些破壞性的東西來把整個項目毀掉。
圖靈訪談:如何支持底下技術人員的職業發展?
技術人員的發展有幾個階段,分別是學習、沉淀、分享和影響力。具體來說,你要先學習,然后在工作中沉淀,等有了一定的知識沉淀以后去分享,然后打造你的影響力。影響力對于個人的職業發展很有幫助,奇舞團鼓勵中高級工程師具備一定的個人影響力。確實,有的同學可能有產生惰性的時候,奇舞團的人比較多,也沒辦法一一照顧到。但是還有另外一種情況,有的同學個人是有意愿的,但是最近項目太忙根本沒時間去規劃發展自己。這個時候我們會介入處理的,否則他就會完全陷入到業務里面,對個人的發展一點好處都沒有。我們可能通過調配資源、增加人員、跟業務方溝通,或者其他的管理手段去解決問題,我覺得,這也是團隊管理的價值所在。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/80444.html
摘要:不久,傳說中的月影大大進入了視線。目前擔任奇虎副總監技術委員會委員兼前端技術委員會主席,前端最大團隊奇舞團負責人,顧問。圖靈訪談我知道月影大大在前端方面特別有名,圖靈社區的好多留言也都感嘆終于有機會訪談到月影大大了。 本文僅用于學習和交流,不用于商業目的。非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/Art... 編者語 通往...
摘要:不久,傳說中的月影大大進入了視線。目前擔任奇虎副總監技術委員會委員兼前端技術委員會主席,前端最大團隊奇舞團負責人,顧問。圖靈訪談我知道月影大大在前端方面特別有名,圖靈社區的好多留言也都感嘆終于有機會訪談到月影大大了。 本文僅用于學習和交流,不用于商業目的。非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/Art... 編者語 通往...
摘要:網頁源碼解析智聯招聘信息頁面根據招聘列表里面跳轉過來的詳細招聘信息頁面。巨優信息是法國阿爾卡特朗訊公司企業通信系統全國金牌代理商,同時也是華為思科等國際知名品牌的核心合作伙伴。主頁是智聯招聘里唯一能夠讓企業自己定制的頁面了。 網頁源碼解析 - 智聯招聘信息頁面 根據招聘列表里面跳轉過來的詳細招聘信息頁面。爬蟲再根據這里進行關鍵信息提取。相比于搜索列表頁來說,這頁內容很簡單,而我們需要的...
摘要:單元測試是方法級別的測試,是保證代碼質量的基礎,一般由開發同學自行完成。但接口測試和測試無法覆蓋所有測試需求,比如算法。 摘要: 質量是企業長遠生存的根基,是企業競爭的免死金牌。作為質量控制團隊的一員,保障和提高所負責系統的質量,是工作的核心。而完善的測試覆蓋,是保證質量的有效手段。 寫在前面質量是企業長遠生存的根基,是企業競爭的免死金牌。作為質量控制團隊的一員,保障和提高所負責系統的...
閱讀 2136·2021-11-22 15:22
閱讀 1285·2021-11-11 16:54
閱讀 1807·2021-09-23 11:32
閱讀 3007·2021-09-22 10:02
閱讀 1770·2019-08-30 12:59
閱讀 1085·2019-08-29 16:27
閱讀 621·2019-08-29 13:21
閱讀 2463·2019-08-28 17:57