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