狠狠操夜夜甜|人妻在线中文字幕亚洲无码不卡av|一区二区欧美亚洲|日躁夜躁狠狠躁2001|亚洲,超碰,欧美|18AV成人电影|午夜成人免费在线|婷婷激情网深爱五月|色欲综合成人在线|在线美女搞黄大片

中企動(dòng)力 > 頭條 > python與php哪個(gè)好

網(wǎng)站性能檢測(cè)評(píng)分

注:本網(wǎng)站頁(yè)面html檢測(cè)工具掃描網(wǎng)站中存在的基本問(wèn)題,僅供參考。

python與php哪個(gè)好

Python、Java、PHP……后端選型用什么語(yǔ)言?怎么選Web框架? 企業(yè)視頻課程

img

酆不悔

關(guān)注

在進(jìn)行后端選型的時(shí)候,要選擇的實(shí)際上是一個(gè)框架。后端領(lǐng)域所使用的技術(shù)和框架已經(jīng)趨于穩(wěn)定,我們只需要框架。當(dāng)有多個(gè)框架適合時(shí),再選擇適合的語(yǔ)言。本文選自《全棧應(yīng)用開(kāi)發(fā):精益實(shí)踐》

不得不指出的是,當(dāng)我們喜歡一種語(yǔ)言的時(shí)候,我們可能會(huì)偏愛(ài)于在這門語(yǔ)言里尋找可用的方案。這自然是有好有壞,好的一點(diǎn)是:我們可以成為這門語(yǔ)言的專家;不好的一點(diǎn)是:選擇的可能不是最合適的方案。

下面先探索一下可用的語(yǔ)言,以及它們對(duì)應(yīng)的Web 框架(以下內(nèi)容均為個(gè)人觀點(diǎn))。

JavaScript

按照當(dāng)前的流行趨勢(shì)來(lái)看,JavaScript 是一門性價(jià)比非常高的語(yǔ)言。因?yàn)橹灰荳eb,就會(huì)有前端,只要有前端,就需要有JavaScript。與此同時(shí),Node.js 在后臺(tái)中的地位已經(jīng)愈發(fā)重要了。對(duì)一般的項(xiàng)目而言,可以使用它來(lái)完成前端和后臺(tái),除此之外,還有移動(dòng)應(yīng)用。

在那些可以使用瀏覽器來(lái)運(yùn)行的設(shè)備上,我們都可以使用 JavaScript 來(lái)開(kāi)發(fā)使用,例如:

使用Node.js 作為后臺(tái)語(yǔ)言,Express、Koa 等作為后臺(tái)MVC 框架,再選擇一個(gè)前端框架來(lái)實(shí)現(xiàn)前臺(tái)。使用基于瀏覽器內(nèi)核的桌面應(yīng)用Electron,加上Node.js 生態(tài)系統(tǒng)里的模塊來(lái)實(shí)現(xiàn)桌面應(yīng)用。使用混合應(yīng)用移動(dòng)框架Cordova,混合應(yīng)用框架Ionic 來(lái)實(shí)現(xiàn)跨平臺(tái)的移動(dòng)應(yīng)用。使用Tessel 和Ruff 等硬件來(lái)開(kāi)發(fā)移動(dòng)應(yīng)用。

人們使用 WebView 和JavaScript 來(lái)開(kāi)發(fā)應(yīng)用的很大一部分原因是成本比較低。除了可以高效地開(kāi)發(fā)UI,還支持跨平臺(tái)運(yùn)行,即只需要編寫一次代碼就可以在不同的操作系統(tǒng)上運(yùn)行,并且當(dāng)應(yīng)用對(duì)性能要求不高時(shí),只要適當(dāng)?shù)貎?yōu)化,它就可以表現(xiàn)得相當(dāng)不錯(cuò)。

在這門語(yǔ)言里,有兩個(gè)后臺(tái) MVC 框架比較流行。

Express:是在Node.js 上最早的MVC 框架,它由Ruby 上的輕量級(jí)框架Sinatra啟發(fā)而來(lái)的。其框架本身封裝了大量實(shí)用的功能,核心特性是使用中間件來(lái)處理HTTP 請(qǐng)求。Koa:是由Express 的核心開(kāi)發(fā)者基于 ES6 新特性打造的新框架。與Express相比,去除了一些框架自帶的功能,更加輕量級(jí),可以讓開(kāi)發(fā)者有更多的選擇。

當(dāng)然,這也意味著需要用戶自己去搭建這些環(huán)境。

簡(jiǎn)單對(duì)比一下兩者,Express 發(fā)展得比較早,其生態(tài)系統(tǒng)比較豐富,很容易找到所需要的插件。Koa 則基于ES6 語(yǔ)言帶來(lái)一些新的特性,實(shí)時(shí)解決舊語(yǔ)言的一些問(wèn)題,如回調(diào)等。

Python

Python 誕生得比較早,其語(yǔ)言特性是做事情只有一種方法,這個(gè)特點(diǎn)也決定了這門語(yǔ)言很簡(jiǎn)單。與JavaScript 相比,它仍是一門性價(jià)比非常高的語(yǔ)言,只是它不能在前端運(yùn)行。

Python 是一門簡(jiǎn)潔的語(yǔ)言,有大量的數(shù)學(xué)、科學(xué)工具、人工智能的庫(kù),這意味著在不遠(yuǎn)的將來(lái)它會(huì)發(fā)揮更大的作用。同時(shí)在Web 開(kāi)發(fā)領(lǐng)域也有廣泛的應(yīng)用,除了正常的Web開(kāi)發(fā),它還在網(wǎng)絡(luò)爬蟲中廣受歡迎。

同樣,在Python 語(yǔ)言里也有兩個(gè)不錯(cuò)的框架可以選擇,其中的Django 是重量級(jí)框架,F(xiàn)lask 則是輕量級(jí)框架。

Django:最早是被應(yīng)用于內(nèi)容管理系統(tǒng)而開(kāi)發(fā)的,其框架里自帶了相當(dāng)多的組件:ORM、表單序列化及驗(yàn)證系統(tǒng)、后臺(tái)系統(tǒng)、緩存框架、中間件支持等。在其官網(wǎng)上宣稱是:The Web framework for perfectionists with deadlines,它既可以滿足完美主義者,又可以在截止期限前交付軟件。Flask:是一個(gè)輕量級(jí)的框架,它只有簡(jiǎn)單的核心部分。換句話說(shuō),你可以按自己的需要添加ORM、用戶認(rèn)證、文件上傳等功能。在今天來(lái)看,它的生態(tài)系統(tǒng)也相當(dāng)豐富,可以完成絕大部分功能。

選擇Flask 而不是選擇Django 的原因是:Django 本身規(guī)定好了一系列的規(guī)范和習(xí)慣。

因而在編程時(shí),我們只需要按步驟一步步往下走即可。

本書采用 Django 作為Web 開(kāi)發(fā)框架的主要原因是,它適合作為CMS 框架,并且提供了豐富的組件功能,如用戶權(quán)限管理、自帶后臺(tái)管理系統(tǒng)、ORM 等。

Java

在今天看來(lái),Java 仍然受企業(yè)歡迎,除了在企業(yè)級(jí)Web 系統(tǒng)開(kāi)發(fā)上,它還在Android應(yīng)用的開(kāi)發(fā)上綻放光彩。

在校期間,筆者一點(diǎn)兒也不喜歡 Java。后來(lái)才發(fā)現(xiàn),我從 Java 中學(xué)到的東西比從其他語(yǔ)言中學(xué)的東西還多。如果 Oracle 不毀壞 Java,那么它會(huì)繼續(xù)存活很久。我可以用JavaScript 造出各種我想要的東西,但是通常我無(wú)法保證它們是優(yōu)雅地實(shí)現(xiàn)。過(guò)去人們?cè)贘ava 上花費(fèi)了很多時(shí)間,或在架構(gòu)上,或在語(yǔ)言上,或在模式上。由于這些投入,都給了人們很多啟發(fā)。這些都可以用于新的語(yǔ)言和新的設(shè)計(jì),畢竟沒(méi)有什么技術(shù)是獨(dú)立于舊的技術(shù)產(chǎn)生的。

由于在 Java 語(yǔ)言里,筆者主要接觸的是 Spring 框架,因此下面討論一下 Spring。

Spring MVC:是由Spring 框架提供的構(gòu)建 Web 應(yīng)用程序的全功能 MVC 模塊。由于框架本身高度可配置,即可以直接使用編寫 XML 而不是 Java 來(lái)實(shí)現(xiàn)功能。它是一個(gè)典型的 MVC 框架,并且也是一個(gè)純正的servlet 系統(tǒng)。Spring Boot:其作用在于創(chuàng)建和啟動(dòng)新的基于 Spring 框架的項(xiàng)目。系統(tǒng)本身做好了對(duì)不同框架的配置與集成,我們只需要對(duì)其配置,并編寫少量的代碼即可。

如果你正在考慮使用 Spring 框架,建議使用 Spring Boot。

PHP

PHP 是一門很容易上手的語(yǔ)言,由于其容易上手,并且發(fā)展得比較成熟。因此,有相多當(dāng)?shù)膫€(gè)人網(wǎng)站使用它作為開(kāi)發(fā)語(yǔ)言,如 Facebook 這樣大流量的網(wǎng)站也在使用它。另外,不得不提及的是 WordPress 已經(jīng)占領(lǐng)了 CMS 市場(chǎng)超過(guò)一半的份額,并且它也占領(lǐng)了全球網(wǎng)站的四分之一。WordPress 原生是為博客系統(tǒng)而創(chuàng)建的開(kāi)源框架,由于博客系統(tǒng)和內(nèi)容管理系統(tǒng)在功能上很多是相似的,因此它成了最具知名度的內(nèi)容管理系統(tǒng)(contentmanagement systemCMS)。

在這里并不基于 WordPress 來(lái)開(kāi)發(fā)內(nèi)容管理系統(tǒng),因?yàn)樗呀?jīng)是一個(gè)相當(dāng)成熟的框架了。如果你需要一個(gè)博客系統(tǒng)或者內(nèi)容管理系統(tǒng),首選 WordPress,然后才是自己編寫。

PHP 在框架方面有比較多的選擇,遺憾的是,筆者只對(duì)Laravel 比較了解。它是在PHP 5.3 之后開(kāi)發(fā)的新框架,其類似于Ruby on Rails—為PHP 程序員提供快速開(kāi)發(fā)的機(jī)制—提供快速開(kāi)發(fā)的工具集,如生成代碼、數(shù)據(jù)遷移、ORM 等。

Ruby

Ruby 是一門優(yōu)美而巧妙的語(yǔ)言,它可以使編寫出來(lái)的代碼看上去更自然、簡(jiǎn)潔,更具有表達(dá)力,因此深受程序員歡迎。早期 Ruby 語(yǔ)言的應(yīng)用場(chǎng)景特別少,直至Ruby OnRails 的出現(xiàn)。它是嚴(yán)格按照MVC 結(jié)構(gòu)開(kāi)發(fā)的Web 開(kāi)源框架,其致力于提升程序員的快樂(lè)感和生產(chǎn)效率—快速創(chuàng)建頁(yè)面、模板和查詢功能等。不過(guò)如今由于可維性和性能的問(wèn)題,它正在逐漸被替換。只是對(duì)初創(chuàng)公司來(lái)說(shuō),它的開(kāi)發(fā)效率仍使得它是一個(gè)不錯(cuò)的選擇,隨后在業(yè)務(wù)穩(wěn)定后使用其他框架來(lái)替換。

同樣,由于Ruby On Rails 是一個(gè)重量級(jí)的選擇,Ruby 程序員也推出了自己的輕量級(jí)框架 Sinatra。它是一個(gè)基于Ruby 語(yǔ)言的DSL(領(lǐng)域?qū)僬Z(yǔ)言),由于其代碼行數(shù)少,且簡(jiǎn)單、簡(jiǎn)潔,可以很容易深入理解框架并對(duì)其做出定制。

其他

除了上面提到的語(yǔ)言,還有一些語(yǔ)言也很不錯(cuò),如Go、Scala 等。限于作者能力有限,以及篇幅的原因,在此就不展開(kāi)詳細(xì)討論。

選擇框架和語(yǔ)言后,還需要在選型的時(shí)候考慮數(shù)據(jù)存儲(chǔ)的問(wèn)題。

《全棧應(yīng)用開(kāi)發(fā):精益實(shí)踐》

構(gòu)建全棧Web開(kāi)發(fā)知識(shí)體系,含前端后端技術(shù)選型、構(gòu)建系統(tǒng)、上線部署、數(shù)據(jù)分析等內(nèi)容。

img

在線咨詢

建站在線咨詢

img

微信咨詢

掃一掃添加
動(dòng)力姐姐微信

img
img

TOP