在進行後端選型的時候,實際上咱們要選擇的是一個框架。後端領域所使用的技術和框架已經趨於穩定,咱們只須要按咱們的須要選擇所須要的框架。當存在多個框架適合時,咱們再選擇適合的語言。不得不指出的是,當咱們喜好一個語言的時候,咱們可能會偏心於在這門語言裏尋找可用的方案。這天然是有好有壞,好的一點是:咱們能夠成爲這門語言的專家,很差的一點是:咱們可能選擇的不是最合適的方案。javascript
讓咱們先來探索一下可用的語言,以及它們對應的 Web 框架(如下內容均爲我的觀點):php
按照當前的流行趨勢來看,JavaScript是一門性價比很是高的語言。由於只要是 Web 就會有前端,只要有前端就須要有 javascript。與此同時 Node.js 在後臺中的地位已經愈發重要了。對於通常的項目而言,咱們可使用它來完成前端和後臺,除此還有移動應用。html
在那些可使用瀏覽器來運行的設備上,咱們均可以使用 JavaScript 來開發使用,如前端
人們使用 WebView 和 JavaScript 來開發應用的很大一部分緣由是,成本比較低。除了能夠高效的開發 UI,還能支持跨平臺運行——即只須要編寫一次代碼就能夠在不一樣的操做系統 上運行。而且當應用對於性能要求不高時,只要適當地優化,它就能夠表現得至關不錯。java
在這門語言裏,有兩個後臺 MVC 框架比較流行:node
簡單的對比一個二者,Express發展得比較早,其生態系統比較豐富——很容易找到所須要的插件。Koa 則基於 ES6 語言帶來一些新的特性,實時解決舊語言的一些問題,如回調等等。python
Python 誕生得比較早,其語言特性——作事情只有一件方法,也決定了這門語言很簡單。與 JavaScript 相比,它還是一門性價比很是高的語言——除了它不能在前端運行,帶來了一點劣勢。android
python 是一門簡潔的語言,並且有大量的數學、科學工具、人工智能的庫,這意味着在不遠的未來它會發揮更大的做用。同時在 Web 開發領域,他也有普遍的應用,除了正常的 Web 開發,他還在網絡爬蟲中飽受歡迎。程序員
一樣的,在 Python 語言裏,也有兩個不錯的框架能夠選擇,其中的 Django 是重量級框架,Flask 則是輕量級框架。spring
選擇 Flask 而不是選擇 Django 的緣由是:Django自己規定好了一系列的規範和習慣。於是在編程時,咱們只須要按步驟一步步往下走便可。
本書裏採用 Django 做爲 Web 開發框架的主要緣由是,它適合做爲 CMS 框架,而且提供了豐富的組件功能,如咱們所須要的用戶權限管理、自帶後臺管理系統、ORM等等。
Java 在今天看來仍然至關的受企業歡迎,除了在企業級 Web 系統開發上,它還在 Android 應用的開發上綻開光彩。
在學校的時候,一點兒也不喜歡 Java。後來才發現,我從 Java 上學到的東西比其餘語言上學得還多。若是 Oracle 不毀壞 Java,那麼他會繼續存活好久。我能夠用 JavaScript 造出各類我想要的東西,可是一般我沒法保證他們是優雅的實現。過去人們在 Java 上花費了不少的時間,或在架構上,或在語言上,或在模式上。因爲這些投入,都給了人們不少的啓發。這些均可以用於新的語言,新的設計,畢竟沒有什麼技術是獨立於舊的技術產生出來的。
因爲在 Java 語言裏,我主要接觸的是 spring 框架,所以讓咱們來討論一下 Spring:
若是你正在考慮使用 Spring 框架,那麼請使用 Spring Boot。
PHP是一門很容易上手的語言,因爲其容易上手,而且發展得比較成熟。有相多當的我的網站使用它做爲開發語言,除此還有諸如 Facebook 這樣大流量的網站也在使用它。除此不得不說起的是 WordPress 已經佔領了 CMS 市場超過一半的份額,而且它也佔領了全球網站的四分之一。WordPress原生是爲博客系統而建立的開源框架,因爲博客系統和內容管理系統在功能上不少是類似的,也所以它成爲了最具知名度的內容管理系統(CMS,content management system)。
在這裏咱們並不基於 WordPress 來開發咱們的內容管理系統,由於它已是一個至關成熟的框架了。若是你須要一個博客系統或者內容管理系統,首先先寫 WordPress,而後再本身編寫一下吧。
php在框架方面有比較多的選擇,遺憾的是筆者只對Laravel比較瞭解。它是在PHP 5.3以後開發的新框架,其相似於Ruby on Rails——爲PHP程序員提供快速開發的機制——提供快速開發的工具集,如生成代碼、數據遷移、ORM等等。
Ruby是一門優美而巧妙的語言,它可使編寫出來的代碼看上去更天然、簡潔,更具備表達力,所以而受程序員歡迎。早期 Ruby 語言的應用場景特別少,直至Ruby On Rails的出現。它是嚴格按照MVC結構開發的Web開源框架,其致力於提高程序員的快樂感和生產效率——快速建立頁面、模板和查詢功能等等。不過在今天因爲可維性和性能的問題,它正在逐漸被替換。只是對於初創公司來講,它的開發效率仍使得它是一個不錯的選擇,隨後在業務穩定後使用其餘框架來替換。
一樣的,因爲 Ruby On Rails是一個重量級的選擇,Ruby程序員也推出了本身的輕量級框架 Sinatra。它是一個基於Ruby語言的DSL( 領域專屬語言),因爲其代碼行數少,簡單簡潔,能夠很容易深刻理解框架並對其作出定製。
除了上面咱們提到的語言,還有一些語言也很不錯,如Go、Scala等等。限於做者能力有限以及篇幅的緣由就不展開詳細的討論。
節選自:《全棧應用開發:精益實踐》
亞馬遜:https://www.amazon.cn/dp/B0722YJR89
京東:http://item.jd.com/12195442.html
噹噹:http://product.dangdang.com/25077858.html