2017年你應(yīng)該學(xué)習(xí)的語言和框架
62 2017-04-19
2015年,軟件開發(fā)界發(fā)生了很多變化。有很多流行的新語言發(fā)布了,也有很多重要的框架和工具發(fā)布了新版本。下面有一個我們覺得最重要的簡短清單,同時也有我們覺得值得你在2016年花時間精力去學(xué)習(xí)的新事物的一些建議。
大趨勢
在過去的幾年里,有一個越來越明顯的趨勢是web應(yīng)用的商業(yè)邏輯逐步從后端轉(zhuǎn)移到了前端,然后后端變得只需要處理簡單的數(shù)據(jù)API。這就讓前端開發(fā)框架的選擇變得尤為重要了。
另外一個重要的改變是2015年發(fā)布的Edge瀏覽器。這是IE的替代品,擁有全新的界面和更好的性能。跟IE不一樣的是它同樣采用了跟FireFox和Chrome一樣的快速發(fā)布策略。這讓JavaScript開發(fā)者社區(qū)能夠以周為單位獲得最新版JavaScript和Web標(biāo)準(zhǔn)特性支持而不是像過去一樣需要等很多年。
語言和平臺
Python3.5在今年發(fā)布了,帶來了很多新特性比如Asyncio,為你帶來了類似node.js的事件機(jī)制,還有typehints。鑒于Python3終于真正地火起來了我們強(qiáng)烈建議你替換掉Python2。幾乎所有的庫都已經(jīng)支持Python3了,所以現(xiàn)在是一個升級歷史遺留代碼的好時機(jī)。
PHP7是一個重要的新版本,這個版本修復(fù)了很多問題并且?guī)砹诵绿匦院托阅芴嵘纯锤庞[)。PHP7大約比PHP5.6快2倍,這對一些大型項目還有WordPress和Drupal之類的CMS系統(tǒng)影響很大。我們強(qiáng)烈推薦PHP之道,已經(jīng)更新到最新的PHP7版本。如果你需要更快的速度并且不介意換一個解釋引擎的話,可以試試Facebook在用的HHVM。
JavaScript也以ES2015標(biāo)準(zhǔn)(大家通常叫做ES6)的形式發(fā)布了更新。為我們帶來了激動人心的新功能。感謝大多數(shù)瀏覽器版本的快速更新,對ES2015的支持已經(jīng)非常棒了,并且還有Babel.js這樣的工具可以讓你的新代碼跑在低版本瀏覽器上。
Node.js在這一年變化很多,開發(fā)者社區(qū)曾經(jīng)分裂成Node.js和io.js,然后又再度合并。經(jīng)歷過這些之后的結(jié)局就是我們得到了一個有很多代碼貢獻(xiàn)者積極維護(hù)的項目,并且擁有了兩個版本的Node:一個穩(wěn)定的LTS(長期支持)版本,這個版本注重穩(wěn)定性,比較適合長期項目和大公司,和一個非長期支持但是最快實現(xiàn)新特征的版本。
Swift2在今年初發(fā)布了。這是Apple出品的旨在簡化iOS和OSX開發(fā)的現(xiàn)代編程語言。幾周前,Swift正式開源并已經(jīng)兼容Linux。這意味著你可以用它來編寫服務(wù)端應(yīng)用了。
Go1.5在幾個月前發(fā)布了,并帶來了重大的架構(gòu)調(diào)整。在2015年它變得越來越流行并被早期創(chuàng)業(yè)項目和開源項目所采納。這門語言是非常簡單的,所以花一個周末你就能學(xué)會。
TypeScript是一個可編譯成JavaScript的靜態(tài)類型語言。這是由微軟開發(fā)的,所以跟VisualStudio和開源的VisualStudioCodeeditors完美地集成了。它很快就要大紅大紫了,因為即將到來的Angular2就是用它寫的。靜態(tài)類型對大型團(tuán)隊的大型項目特別有用,所以如果你正在大型團(tuán)隊中做大型項目,或者僅僅出于好奇,你也應(yīng)該嘗試一下TypeScript。
如果為了好玩兒,你也可以試試某種函數(shù)式編程語言比如Haskell或者Clojure。也有有趣的高性能語言比如Rust和Elixir。如果你在找一份程序員的工作的話,職業(yè)開發(fā)語言比如Java(在第8版中有一些很好的新特性)和C#(感謝VisualStudioCode和core實現(xiàn)了跨平臺開發(fā)和運(yùn)行)都值得你在2016年投入時間。
挑一個或幾個學(xué)習(xí):Python3,Go,PHP7,ES2015,Node.js,Swift,TypeScript
JavaScript框架
JavaScript框架是web開發(fā)技術(shù)棧中非常重要的一部分,所以我們單獨(dú)拿一小節(jié)來說這個。今年有兩個新標(biāo)準(zhǔn)——ServiceWorkers和WebAssembly,基本改變了現(xiàn)代WebAPP的開發(fā)方式。還有一些我們覺得你在2016年應(yīng)該保持關(guān)注的框架新版本發(fā)布。
Angular.js已經(jīng)成為了大型企業(yè)首選的JavaScript框架。這個框架即將發(fā)布下一個大版本的消息相信大家已經(jīng)聽過一段時間了,在今年初的時候Angular2發(fā)布了開發(fā)者預(yù)覽版。相對Angular1而言是一次顛覆性的重構(gòu),而對我們而言帶來了巨大的改進(jìn)。一旦正式發(fā)布就很有可能成為企業(yè)應(yīng)用開發(fā)框架的首選,所以Angular2的開發(fā)經(jīng)驗將會是你簡歷里很好的一個加分項。我們建議再等幾個月直到最終版正式發(fā)布之后才用于生產(chǎn),不過你不妨現(xiàn)在就讀一讀他們的快速上手指南。
React在2015年里持續(xù)升溫并且持續(xù)升級,越來越多的新項目采用它開發(fā)。幾個月前他們發(fā)布了新的開發(fā)工具。Facebook還發(fā)布了用于開發(fā)支持Android和iOS平臺原生應(yīng)用的ReactNative框架,這個框架使用了原生界面配合運(yùn)行在后臺的JavaScript線程實現(xiàn)基于React開發(fā)原生應(yīng)用??梢詤⒖嘉覀兘衲臧l(fā)表的React初級教程。
Polymer1.0是在5月份發(fā)布的。這是第一個穩(wěn)定且可用于生產(chǎn)的版本.Polymer主要是基于WebComponents標(biāo)準(zhǔn),這是一份將HTML,JS和CSS打包成獨(dú)立組件并便于快速引用的標(biāo)準(zhǔn)。目前只有Chrome和Opera支持WebComponents標(biāo)準(zhǔn),但是Polymer搞定了瀏覽器兼容性問題。
Ember.js也發(fā)布了一個新版本。Ember2帶來了模塊化功能、廢棄了一些舊特性并提升了性能。Ember遵循語義化版本并且開發(fā)團(tuán)隊盡可能保證大家能夠平滑升級。如果你需要一個穩(wěn)定且易于升級的框架的話,Ember是個不錯的選擇。
挑一個或幾個學(xué)習(xí):Angular2,React,Ember.js,Polymer,WebComponents,ServiceWorkers
前端
Bootstrap在過去的一年里變得更加流行了,正在成為Web開發(fā)的標(biāo)配。使用SASS并支持flexbox的第四版將在幾個月之后發(fā)布,官方保證可以從V3平滑升級(不會像2年前從v2升級到v3那樣),所以盡管放心,你學(xué)的第3版的相關(guān)知識照樣會適用于第4版。
Foundation是另一個可替代Bootstrap的前端框架。第6版在年初的時候發(fā)布了,這個版本主要側(cè)重于模塊化,你可以根據(jù)需要定制自己需要的部分以便縮短加載時間。
MDL是一個Google官方發(fā)布的用于開發(fā)materialdesignwebapp的框架。這個框架在今年初發(fā)布并和Polymer目標(biāo)相似,但是更容易上手。我們曾經(jīng)寫過一篇精彩的MDL與Bootstrap差異總結(jié)。
CSS預(yù)處理器也在持續(xù)改良。LESS和SASS是當(dāng)下最流行的兩個,大部分功能都差不多。但是,最新的Bootstrap4都已經(jīng)轉(zhuǎn)向了SASS,所以2016年要學(xué)的CSS預(yù)處理器中SASS獲得了一些優(yōu)勢。當(dāng)然了,也還有更新的PostCSS工具值得留意,但是我們強(qiáng)烈建議先掌握了預(yù)處理器再來學(xué)這個。
挑一個或幾個學(xué)習(xí):Bootstrap,MDL,Foundation,SASS,LESS,PostCSS
后端
這幾年的Web開發(fā)有一個非常明顯的趨勢。越來越多的應(yīng)用邏輯轉(zhuǎn)移到了前端,然后后端僅僅是API。然而傳統(tǒng)的后端生成頁面的應(yīng)用依然還有生存空間,所以我們覺得學(xué)一個經(jīng)典的全站框架依然是非常重要的。
關(guān)鍵取決于你更喜歡那種語言,可選擇的非常多。用PHP你可以選Symfony,Zend,Laravel(還有Lumen,這是新一代專注于API開發(fā)的框架),Slim等。用Python有Django和Flask。用Ruby有Rails和Sinatra。用Java有Play和Spark。用Node.js你可以選擇Express,Hapi和Sails.js,還有Go語言的Revel。
AWSLambda去年就已經(jīng)發(fā)布了,但是這個概念到現(xiàn)在才穩(wěn)定并能用于生產(chǎn)。這是一種可無限擴(kuò)展的完全取代傳統(tǒng)后端服務(wù)器的云服務(wù)。你可以根據(jù)API被訪問時的特定條件或者路由來定義不同的響應(yīng)方法。這意味著你可以完全不用管服務(wù)器。
另一個趨勢是靜態(tài)站點生成器比如Jekyll和Octopress(這里有一個完整的同類清單)。這類工具的主要功能是把一堆文本和圖片文件渲染成一個完整的靜態(tài)網(wǎng)站。那些以前通常自己搭一個Wordpress博客程序的開發(fā)者現(xiàn)在更喜歡事先生成并直接上傳一個靜態(tài)網(wǎng)站。這樣會更加安全(沒有后端服務(wù)器也不需要數(shù)據(jù)庫)并且性能非常好。結(jié)合MaxCDN或CloudFlare之類的CDN服務(wù)可以讓用戶就近訪問,明顯減少等待時間。
挑一個學(xué)習(xí):傳統(tǒng)的全棧后端框架,AWSLambda,一種靜態(tài)生成器
內(nèi)容管理系統(tǒng)(CMS)
我們主要介紹兩種最流行的CMS系統(tǒng)。都是用PHP寫的并且易于部署和上手。他們都因為PHP7的發(fā)布獲得了明顯的速度提升。
最近幾年Wordpress已經(jīng)變得早就不僅僅是個博客程序了。它是一個成熟的CMS/框架,配合插件可以做任何一種網(wǎng)站。高質(zhì)量的Wordpress皮膚是一個巨大的市場,很多自由職業(yè)者以Wordpress相關(guān)開發(fā)為生。配合類似WP-API之類的項目你可以把Wordpress變成一組RESTAPI。
Drupal8在今年發(fā)布了。這是一次側(cè)重現(xiàn)代開發(fā)最佳實踐的重構(gòu)。使用了Symfony2組件、Composer包管理器和Twig模板引擎。成千上萬的網(wǎng)站在使用Drupal,它確實是以內(nèi)容為主的門戶網(wǎng)站的一個很好的選擇。
數(shù)據(jù)庫
這一年Web開發(fā)社區(qū)對NoSQL數(shù)據(jù)庫失去了一些熱情,重新回到了關(guān)系型數(shù)據(jù)庫比如Postgres和MySQL身邊。這方面著名的例外是RethinkDB和Redis,他們都很火,我強(qiáng)烈建議你在2016年都試試。
MySQL是最火并且大部分主機(jī)供應(yīng)商都支持的開源數(shù)據(jù)庫。在5.7版里,MySQL也提供了JSONcolumns來存儲非關(guān)系型數(shù)據(jù)。如果你剛開始接觸后端開發(fā),你可能正在找連接到服務(wù)器已安裝的數(shù)據(jù)庫的方法。很可能是舊版本的,所以你沒辦法嘗試JSON類型數(shù)據(jù)。MySQL已經(jīng)包含在了很流行的XAMPP或MAMP之類的軟件包里,所以上手很容易。
挑一個學(xué)習(xí):Redis,RethinkDB,MySQL/MariaDB,PostgreSQL
移動應(yīng)用
移動平臺一直在進(jìn)步并且智能機(jī)的硬件配置現(xiàn)在跟低端筆記本的性能差不多了。這對于hybrid移動開發(fā)框架來說是個好消息,基于web技術(shù)開發(fā)的移動應(yīng)用將得到更加順滑、更像原生的體驗了。
我們曾經(jīng)寫過一篇不錯的Hybrid應(yīng)用開發(fā)框架概覽你或許會感興趣。最火的Ionic框架和Meteor都在最近發(fā)布了1.0版本且都適合做移動應(yīng)用開發(fā)。Facebook開源的ReactNative,可以在后臺JavaScript進(jìn)程里運(yùn)行React組件并更新原生的UI界面,讓你可以用幾乎同一套代碼同時寫iOS和Android應(yīng)用。
挑一個學(xué)習(xí):Ionic,ReactNative,Meteor
編輯器和開發(fā)工具
Atom在今年發(fā)布了1.0。它是一款使用web技術(shù)開發(fā)的免費(fèi)且功能強(qiáng)大的代碼編輯器。它背后有一個很多大開發(fā)者社區(qū)(譯者注:github)提供了很多擴(kuò)展包。它提供好用的自動完成并集成了代碼重構(gòu)和校驗工具。差點忘了它還有很多漂亮的皮膚可以選擇,并且你可以自己寫CoffeeScript和CSS來定制自己喜歡的皮膚。Facebook已經(jīng)這么干了,并且發(fā)布了名為Nuclide的編輯器。
微軟在今年年初發(fā)布的VisualStudioCode給了大家一個驚喜。這是一款支持多種語言并兼容Windows,Linux和OSX平臺的輕量級IDE。它提供了強(qiáng)大的智能代碼檢查并集成了ASP.Net和Node.js的調(diào)試工具。
NPM,Node.js的包管理器,火得一塌糊涂并已經(jīng)成為了前端和node開發(fā)者的標(biāo)準(zhǔn)包管理器。這是幫你的項目管理JavaScript依賴最簡單的方法并且上手很容易。
目前哪怕是一個人開發(fā)也有必要用Git。它的分布式模型讓你可以把任何一個文件夾變成一個版本控制倉庫,然后你可以把這個倉庫發(fā)布到Bitbucket或Github,同步到其他電腦上。如果你還沒用過Git,我們強(qiáng)烈建議你把它加入你2016年需要學(xué)習(xí)的清單里面。
挑一個學(xué)習(xí):Atom,VisualStudioCode,NPM,Git
搞物聯(lián)網(wǎng)
樹莓派基金會提前給我們送來了圣誕禮物,RaspberryPIZero一種只賣5美金的高性能電腦發(fā)布了。它搭載了Linux,所以你可以把它變成一臺服務(wù)器,一個家用自動化裝置,一面智能鏡子,或者把它集成到別的電器里面打造一個你夢寐以求的能聯(lián)網(wǎng)控制的咖啡機(jī)。2016年是你應(yīng)該擁有樹莓派的一年。
溫馨提示: 專業(yè)老師1對1為您解答 馬上填寫,¥1000 元豪禮免費(fèi)領(lǐng)!
掃一掃
獲取更多福利
獵學(xué)網(wǎng)企業(yè)微信
獵學(xué)網(wǎng)訂閱號
獵學(xué)網(wǎng)服務(wù)號