為什麼要在工具上投資?

來源:互聯網
上載者:User

為什麼要在工具上投資。
前幾天在React-Europe會議上我分享了GraphQL,它是一個我在Facebook已經工作了三年多的項目。
這次談話後,本次會議的多個與會者問我的Facebook如何能夠始終如一地生產新技術,“重新思考當前的最佳實務”,這成功地改變我們構建軟體作為一個行業的方式。
這是一個React的會議,讓我們從這裡開始…
圖文:拉斯穆斯·安德森
當它2年前開源時,React曾被JavaScript的社區嘲笑,而且它出現在Facebook內部的最初幾個月許多人(包括我自己)都認為這是一個壞主意。Jordan Walke在所有適當的方式上都是固執的,他的理想主義最終有了影響。我們以為他瘋了,他的確是瘋了,但他同時也是對的在一些東西上。React已經改變了我們在所有平台上建立軟體的做事方式。亞當·恩斯特(Adam Ernst)借來這些想法,並為iOS建立了ComponentKit,它在第一次亮相時我們內部的iOS團隊時都持懷疑態度。它也極大地改變了我們構建iOS軟體的方式。
React和ComponentKit由單一的個體開始並沒有被要求這樣做。事實上,這些項目都開始於直接反對他們的工程團隊在當時的慣性。React直接挑戰了我們使用的其他的JavaScript架構。ComponentKit開始發展就像其他內部構建iOS的UI架構,已經準備好使用。其他工具沒有什麼不妥的,他們並不壞的(實際上很不錯),但他們也並不完美。他們有不同的權衡,長處和短處。一名工程師認為有且只有他們被允許建立工具,對他們的工作更好的工具就可能存在 。
依據我在Facebook的經驗,像這樣的實驗不僅是允許的,而且是被鼓勵的。他們是有風險的,而且像這些想法往往並不令人興奮和而是會失敗。但有時候你會得到 React, ComponentKit, HHVM, GraphQL, Immutable.js, Flow, Pop, or AsyncDisplayKit. 風險是值得的。Facebook成長為一個龐大的工程組織的一個好處是,我們有能力讓有才華的工程師來承擔這樣的風險,而不是嚴格遵守一個scrum的時間表或公司的頂線的短期目標。
我剛才提到的每一個項目,都面臨著相當大的內部反對。總會有人(有時我)想要一個項目,較早承認失敗。然而,他們仍在繼續。Facebook擁有工程管理理念,以及知道相信自己的人是多麼的重要的一些偉大的工程經理。儘管有來自值得信賴的同事的反對,儘管還沒有理解其價值,儘管還有更加重要的事情去做,在Facebook的優秀管理者相信自己的人去冒險,花費他們自己的時間在他們認為會找到影響的事情上。
我的團隊,產品的基礎設施團隊,和大多數的Facebook團隊,有一個共同的理念,工程影響不會停止於公司的產品。項目列表都是開源的,它們中的每一個都有強大的社區,每個都已經對人們的思維方式和整個行業的軟體開發有了一些顯著的效果。開源不僅僅是一個慈善理想,它是我們如何學習和展示我們的工作渴望的影響的重要組成部分。
健康的開源對於招聘也是極其強大。我親自採訪了數十人,他們告訴我,他們在看到React,AsyncDisplayKit,Pop和其他他們想參與的項目之後,他們開始關注Facebook。這使聰明的人在並且良性迴圈仍在繼續。
成功不是孤立的發現。隨著項目變得令人興奮的,潛力被別人看到,團隊構成 - 點對點或以其他方式 - 和滾雪球效應有助於推動的項目。在Facebook,工作在主要工作職責外的項目並不少見,或者是在團隊之間快速的移動,這允許發生這種滾雪球效應。這也意味著背後的這些項目有很多無名英雄。
對於GraphQL我想指出一些(但遠不是全部)誰早早就產生了有意義的影響除了原始團隊尼克·施羅克( Nick Schrock) , 丹尼爾·謝弗(Daniel Schafer )和我自己。
博哈茨霍恩(Beau Hartshorne )對於GraphQL是真正的催化劑。他發現並闡明了問題,找到了合適的人,並激勵著我們尋求解決辦法。有時很難擺脫一葉障目不見森林,但博(Beau)是一個難得的人,他是一直可以看到森林。
喬納森·丹恩(Jonathan Dann)和 David Renie 兩個iOS工程師是我們粗略的GraphQL的早期版本的支援者他們做了大量的工作將其整合到iOS的新聞訂閱。他們還協助建立了我們今天還在繼續使用的一些重要的基礎設施,它們為未來的部落格文章提供訂閱。
拉斯穆斯·安德森(Rasmus Andersson )第一個以全新的眼光來看我們的用戶端軟體開發套件,他以不同的方式想象行動裝置 App程式之間的資料流動。這成為我們的Android SDK的基礎,其中的一些觀點給了Relay靈感,一個使用GraphQL構建Web的工具。
其他GraphQL隊校友, 納撒尼爾羅馬(Nathaniel Roman )和查爾斯馬( Charles Ma) ,是我們團隊的早期成員,並協助啟動了後來成為GraphQL的用戶端工具。
斯科特Wolchok(Scott Wolchok )獨立組織和改進了GraphQL的iOS資料模型和之後跨所有平台的用戶端工具。他的批判的眼光啟發我們調查最近的橫切的改進。
如今,越來越多的團隊支援和投資GraphQL,伺服器,用戶端工具和Facebook的類型系統。
Facebook是能夠始終如一地產生新的技術,“反思當前的最佳實務”,在行業內產生巨浪,因為我們專註於生產長期價值。我們承擔風險。我們相信我們的人做他們認為是正確的事情,並且當事情可能潛力的時候,在整個團隊的聰明的人走到了一起。
我們的工作不僅是建立Facebook,我們的工作就是讓世界更加開放和串連的 - 而我們在產品的基礎設施的任務是讓整個軟體產業的工具來協助我們完成這個使命。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.