<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          追趕時髦的技術(shù)

          共 3104字,需瀏覽 7分鐘

           ·

          2017-06-07 23:30

          在 Web 開發(fā)領(lǐng)域,我們會經(jīng)常看到有人討論當(dāng)前最好的框架或編程語言。Scribd 的聯(lián)合創(chuàng)始人 Jared Friedman 在 2015 年的時候?qū)iT寫了一篇文章推薦創(chuàng)業(yè)公司使用 Node.js 代替 Rails。

          他有以下觀點:

          Rails 很慢。
          Hack academy 的畢業(yè)生都在用 Rails,讓高級工程師貶值,并減少了它們的未來前景。
          一個創(chuàng)業(yè)公司應(yīng)該使用工程師想用的技術(shù),這樣能保證應(yīng)用程序的質(zhì)量。
          在 Scribd,他們這幾年已經(jīng)把技術(shù)棧從 Prototype 過渡到 jQuery,再到 CoffeeScript,再到 Angular,再到 React。
          Node.js 對于創(chuàng)業(yè)公司來說是一個很好的選擇,但他提到的兩點讓我很困惑。
          首先,一個創(chuàng)業(yè)公司的工程師要明白哪個技術(shù)會在幾年內(nèi)流行并且讓技術(shù)棧不會過時。
          然后,優(yōu)秀的軟件工程師會被一個創(chuàng)業(yè)公司的技術(shù)棧吸引,而不是它們要解決的技術(shù)難題。
          在過去,我聽說過一些不好的傳聞:

          創(chuàng)業(yè)公司里的開發(fā)者不會接受用 ES5 的 Offer(那時候 CoffeeScript 剛出來)。
          在 Mongo 發(fā)布不久,工程師傾向在生產(chǎn)環(huán)境下用 Mongo 代替 Postgres。
          工程師們都渴望用最新的前端框架來不斷重構(gòu)他們的項目。
          我擔(dān)心有些程序員(和他們的雇主)有這種傾向,也就是把注意力都放在遷移技術(shù)棧上。他們選擇公司的時候會基于框架,想在工作中用上最先的技術(shù),而不是最適合的工具。他們把時間都花在新的庫和框架上,而不是用來提升自己的核心技術(shù)能力。我把他們稱為「技術(shù)棧追逐者」—— 那些把新技術(shù)(或者他們最喜歡的技術(shù))都用在創(chuàng)業(yè)公司的技術(shù)棧上,但對核心輸出(用戶體驗,團(tuán)隊生產(chǎn)力)提升有限的人。

          「現(xiàn)代化」的 Web 開發(fā)
          很同情在 Hacker News 上現(xiàn)代的 Web 或者移動開發(fā)者。作為一個全棧工程師,在 2012 年你們開發(fā)網(wǎng)站時后端用 Ruby/Rails ,前端用 Backbone/CoffeeScript/Underscore,部署時用 Capistrano (或者是和 Python 的 analog 相關(guān)的工具)。到了 2013 年,你們后端遷移到 Node/Express/Mongo,前端遷移到 Grunt/Ember。到了 2014 年,你們已經(jīng)把全站切換到 MEAN 技術(shù)棧了,但要試驗 Koa 和 Go(在 Express 的核心開發(fā)者跑路)。在 2015 年,你們在前端開始用 Gulp/ES2015/React,后端用 Express/Go,用 React Native 來替代原生開發(fā)語言,并且用 Docker 慢慢地把系統(tǒng)遷移到微服務(wù)架構(gòu)。不久之后,你將會遷移到 Phoenix,如果 Angular 2 更好的話,你們會遷移過去。或許以后 Go 能用來開發(fā)安卓,Swift 可能會適合你們的技術(shù)棧(雖然我顯然是夸張了,但在 Hacker News 的頭條上討論什么更流行是很正常的表現(xiàn))。

          如果考慮下面提到的這些原因,那么這種行為是可以被理解的,現(xiàn)代的 Web 開發(fā)工程師要獲得一份更好的工作,他們要更加「時尚」。雇主用框架或者編程語言來篩選雇員,而不是測試他們的思考方式和技能。然而,雇主并沒有意識到,優(yōu)秀的開發(fā)者可以在幾周,甚至幾天就能掌握很多語言或者框架。有時候趨勢是無法阻止的:Swift 正在替代 Objective C,世界向著輕量的方向發(fā)展,后端需要變得更輕量,前端要更多的響應(yīng)式。通常,這種變化都會帶來巨大的好處:生產(chǎn)力有本質(zhì)上的提升,用戶功能更加容易實現(xiàn)。另外,對于中小型企業(yè)來說,這些改變會關(guān)系到企業(yè)的存亡。

          我們可以用在創(chuàng)業(yè)公司里的現(xiàn)代的 Web 或移動開發(fā)者與我們的計算機(jī)科學(xué)家作為對比。我有一個朋友在一家頂級的科技公司做計算機(jī)神經(jīng)系統(tǒng)科學(xué)家,跟大部分技術(shù)人一樣,他的世界幾個月就會發(fā)生變化 —— 得益于計算能力,腦成像和深度學(xué)習(xí)算法的快速發(fā)展。但他的編程工具幾乎沒發(fā)生什么變化。公平來講,只有 C++ 從 11 遷移到 14 引起了一點擔(dān)心。其他的變化還有分布式系統(tǒng),鍵值存儲和其他外部服務(wù),但這些用的都是穩(wěn)定的 API。他大部分的時間都花在架構(gòu)和算法上,不會花時間去重寫功能相似的代碼或?qū)W習(xí)類庫。

          選擇工具
          人們可能會建議創(chuàng)業(yè)公司去選擇現(xiàn)代化的技術(shù)棧,因為這是招聘優(yōu)秀工程師的一個很關(guān)鍵的工具。根據(jù)我自己的觀察,優(yōu)秀的工程師關(guān)注的是其他方面,他們最關(guān)注的是解決感興趣的問題,和有趣的同事一起解決問題。吸引優(yōu)秀的人(工程師或者其他崗位)的附加條件是要引領(lǐng)時代發(fā)展和肩負(fù)偉大的使命。

          我并不是在抱怨技術(shù)發(fā)展太快,也不是說我們都應(yīng)該用匯編語言或者 C++ 或者 Ruby。軟件工程師們清楚他們的目標(biāo) —— 領(lǐng)域發(fā)展太快,他們得花精力在上面,因為那會影響線上的數(shù)十億人。但我想說的是,你們需要挑選新框架,編程語言,或者類庫的能力,然后和你們周圍那些經(jīng)驗豐富的工程師一起,提高你們的生產(chǎn)力。除此之外,你們要深刻理解編程語言的多樣性,了解各種語言間的差異,不要只關(guān)注當(dāng)前流行的那個(同樣,不要盲目地選擇框架)。

          對于創(chuàng)業(yè)公司,Paul Graham 在 2013 年的時候被問到關(guān)于理想的編程語言:「我們有些創(chuàng)業(yè)公司用 PHP 來寫他們的產(chǎn)品 —— 那讓我有點擔(dān)憂。但這并不像其他事情那么值得我擔(dān)憂。」
          Github 的技術(shù)人員 Sam Lambert 在一次的采訪中說第一次面試時,CTO 對他說 Github 大量使用 Rails,C,和 Bash 腳本,他非常驚訝:「隨著面試進(jìn)行,他向我透露那實際上是一群非常務(wù)實的黑客在 hack Ruby,hack C,把他們的時間都花在感興趣的事情上,使用一個穩(wěn)定的技術(shù)棧,好過追逐最新最酷炫的技術(shù)?!?br /> Github 的方式在我看來是 Web 和移動開發(fā)者的一個合理的平衡:廣泛地探索工具,但按照實際需求來選擇工具來解決你們要面臨的問題。

          我擔(dān)心的是某些開發(fā)者,特別是在他們早期的職業(yè)生涯當(dāng)中,有這么一種想法:一個創(chuàng)業(yè)公司的工程師并不是專門解決問題的,也不是計算機(jī)科學(xué)家,只是一個榮譽(yù)查找表 —— 他們的任務(wù)是每幾個月就去研究新的類庫/框架/編程語言,來獲取有限的提升。這使我們這些早期的工程師貶值,因為我們的工作是創(chuàng)造人們想要的東西,關(guān)注感興趣的技術(shù)難題,快速的用代碼實現(xiàn)。

          因此,務(wù)必在你的業(yè)余時間中才去實驗新技術(shù)。只有當(dāng)切換技術(shù)棧有非常巨大的提升的情況下,才在生產(chǎn)環(huán)境下切換編程語言/框架,同時要好好想想切換獲得了什么優(yōu)勢。警惕那些不考慮新技術(shù)對團(tuán)隊的影響,卻不斷為新技術(shù)歡呼的人。你應(yīng)該把時間花在學(xué)習(xí)概念,解決技術(shù)難題或用戶反饋上。如果你有合適的應(yīng)用程序,而你現(xiàn)在又在選擇框架來實現(xiàn)它,那么你的技術(shù)選型會有一定的靈活性,但要經(jīng)過持久的努力才能適應(yīng)市場。

          任何一天打開 Hacker News,你都能看到有帖子誘惑你去用某個框架、語言、類庫或者服務(wù)來構(gòu)建應(yīng)用程序。有些工具擁有改變游戲規(guī)則的能力,其他的卻只有細(xì)微的差異,但要精通它們都是需要時間的。有些工具會大力宣傳它們的特點,并嘲笑你所學(xué)的技能 —— 但他們卻需要你的技能和注意力,這樣才能與現(xiàn)在有的技術(shù)競爭。你會怎么選擇?

          雖然本文是用 MacVim 7.4 寫的,但我覺得應(yīng)該用 Atom,或者至少是 Neovim。

          出處
          http://scarletsky.github.io/2...

          參考連接
          Chasing the Shiny and New in Software

          瀏覽 52
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  手机av网站大全 手机在线性爱视频 | 你懂的网址国产,欧美 | 久久精品一道 | 国产精品6 | 免费网站观看www在线观看 |