現(xiàn)代網(wǎng)站使用無數(shù)技術構建。雖然您不必是這些系統(tǒng)的專家來正確管理您的網(wǎng)站項目,但最好熟悉可用技術的基礎知識及其優(yōu)缺點,以了解其長期影響將在您的網(wǎng)站上 建立網(wǎng)站沒有一個“正確的技術”。許多因素應該是您的決定的一部分,例如您的供應商的經(jīng)驗,供應商的集體團隊人才,開發(fā)和許可成本,以及您組織的內(nèi)部指南,網(wǎng)站性能,可維護性,易于擴展的擴展性等。您不應該對您的開發(fā)人員施加特定的技術,特別是如果它不是他們的第一專業(yè)領域。您的網(wǎng)站開發(fā)人員應該提出一個建議,解釋為什么他們推薦的技術是您的最佳選擇。同時,選擇錯誤的技術或網(wǎng)站開發(fā)人員在技術上的經(jīng)驗不足可能會造成很大的代價。為了避免代價高昂的錯誤,在開始項目之前,請確保以下內(nèi)容是正確的:
您完全理解技術的選擇及其對您的網(wǎng)站的長期影響。例如,它是否構成任何限制或需要額外的許可費用?
您的網(wǎng)頁開發(fā)人員真正是該項目所選技術的專家。
以下將幫助您瀏覽網(wǎng)絡開發(fā)中使用的現(xiàn)代技術的海洋:
網(wǎng)站就像是許多圖層的一個蛋糕
在決定哪個技術適合您的網(wǎng)站之前,您必須了解網(wǎng)站的所有構建塊。您可以將現(xiàn)代網(wǎng)站視為具有多層的蛋糕。每層代表一定技術。每個“技術層”都有自己的功能和目的。選擇他們明智,你有一個偉大的蛋糕。選擇不好,您的產(chǎn)品將不可食用。以下是你應該知道的一些“層”:
客戶端編碼 HTML(超文本標記語言),CSS(級聯(lián)樣式表)和JavaScript是您網(wǎng)站的基本組件。他們對您的網(wǎng)站同樣重要,因為糖是你的蛋糕。沒有這些組件,你不能建立一個現(xiàn)代化的網(wǎng)站,你的網(wǎng)頁開發(fā)人員必須是這三個專家。他們在做什么?簡單來說:HTML是一種構成網(wǎng)站內(nèi)容的語言,并告訴您的瀏覽器(如Internet Explorer或Google Chrome)在網(wǎng)站上顯示的內(nèi)容。CSS是用于描述您的網(wǎng)站的演示文稿(外觀和格式)的語言,它告訴您的瀏覽器在您的網(wǎng)站上顯示的內(nèi)容。JavaScript是一種常用于在Web瀏覽器中創(chuàng)建交互效果的編程語言。這些都是客戶端的技術。客戶端意味著當您訪問網(wǎng)站時,瀏覽器會下載HTML,CSS和JavaScript。此時,您的瀏覽器會呈現(xiàn)(或處理)HTML和CSS并執(zhí)行(或運行)JavaScript。這發(fā)生在你的電腦上 因此,這些技術是客戶端的。您可能會聽到其他客戶端技術,如Ajax或jQuery,通常是擴展和增強JavaScript功能的方法或庫。
另一個客戶端技術是Flash。Flash是應該避免的一種客戶端技術。Adobe Flash歷史上被用來創(chuàng)建動畫和互動體驗。它已被HTML5 / CSS3替代 - 新版本已經(jīng)內(nèi)置了對以前只能使用Flash的功能的支持。Flash最大的問題是iOS(Apple的操作系統(tǒng))不支持這一功能,因此您使用Flash編寫的網(wǎng)站的部分功能將無法在iPhone或iPad上運行。最后,F(xiàn)lash也不是SEO友好的。
編程語言
組成您的網(wǎng)站的其余技術層是服務器端的,這意味著它們在服務器上駐留和操作。為了在您的網(wǎng)站上編程業(yè)務邏輯或自定義功能,Web開發(fā)人員使用編程語言。有很多,但最常見的是“四大”:PHP,ASP.NET,Java和Ruby。您可能已經(jīng)聽說過Perl,ColdFusion,C / C ++或Python等不太常見或較舊的語言。
您的網(wǎng)站開發(fā)人員應該使用哪種編程語言為您的網(wǎng)站?只要你不受限制地訪問源代碼,我會留給他們。我唯一的建議是堅持“四大”之一。這將使您更輕松地移動到另一個Web開發(fā)人員。只是給你一個想法,下面是世界上最受歡迎的網(wǎng)站使用的編程語言的細節(jié)(請注意,大多數(shù)使用不止一個,所以我僅列出主要語言):
框架/平臺
框架(有時稱為平臺)是您網(wǎng)站中的下一個“層”。您可以將其視為組成您的網(wǎng)站的樂高?。基本上,一個框架是一組優(yōu)化和現(xiàn)場測試的代碼庫,提供可用于構建網(wǎng)站的構建塊。它們允許重用常用功能的代碼,而不必“重新發(fā)明”。很可能,您的網(wǎng)站開發(fā)人員有一個最常使用的框架或平臺,我建議您將此選擇留給他們。只要確定框架/平臺是其他Web開發(fā)人員能夠使用的平臺,如果您需要移動到另一個Web合作伙伴。大多數(shù)現(xiàn)代復雜網(wǎng)站依賴于框架,因為它們使Web開發(fā)更加時間和成本效益。他們通常為網(wǎng)站上常用的大多數(shù)功能和功能預先編寫了解決方案。編程語言的一些最常見的框架如下所示:
數(shù)據(jù)庫引擎
數(shù)據(jù)庫引擎或數(shù)據(jù)庫服務器是您的網(wǎng)站的基礎組件,其中存儲了整個網(wǎng)站的數(shù)據(jù)。這就是您的網(wǎng)站將存儲產(chǎn)品,訂單,交易,用戶記錄等所有信息的地方。您可能會驚訝地發(fā)現(xiàn),大多數(shù)CMS(內(nèi)容管理系統(tǒng))使用數(shù)據(jù)庫來存儲網(wǎng)站的內(nèi)容。是的,這意味著即使您網(wǎng)站上的文字也可能存儲在數(shù)據(jù)庫中。數(shù)據(jù)庫引擎的選擇在很大程度上取決于其他因素,如編程語言/框架,Web服務器等。Web開發(fā)人員最常見的數(shù)據(jù)庫是MySQL,Microsoft SQL Server,Oracle和Postgres。選擇通常取決于下面所述的其他技術。請注意,MySQL和Postgres通常是“免費”(開源)數(shù)據(jù)庫引擎,
Web服務器軟件
術語Web服務器可以指的是硬件(物理計算機)或軟件(計算機應用程序),有助于將您的網(wǎng)站提供給最終用戶。由于我們正在談論您網(wǎng)站的技術蛋糕層,我們指的是服務器上的使您的網(wǎng)站正常工作的軟件。Web服務器是操作系統(tǒng)和蛋糕的其余部分之間的層。選擇通常取決于您正在使用的其他技術以及您將在何處托管您的網(wǎng)站。兩個網(wǎng)絡服務器主導互聯(lián)網(wǎng)的景觀:Apache(Linux)和IIS(Microsoft)。
操作系統(tǒng)
雖然Linux是一個固有的開源(免費)操作系統(tǒng),它可以在數(shù)百種不同的風格和發(fā)行版(Ubuntu,Red Hat,CentOs,SUSE,Debian,F(xiàn)edora)中使用,每個都由不同的組織和組織支持,包括發(fā)行版和附加組件,可能不是免費的。Windows Server是一種Microsoft產(chǎn)品,需要購買許可證。最終“使所有工作”的網(wǎng)站的底層是在物理服務器機器上運行的操作系統(tǒng)。對于絕大多數(shù)網(wǎng)站,有兩個底層操作系統(tǒng):Linux和Microsoft Windows。
網(wǎng)絡堆棧
現(xiàn)在,您了解所有的“蛋糕層”,有一些流行的食譜,其特征是通常結合使用的層的組合。它們被稱為“堆?!薄6褩J翘峁┩暾δ艿木W(wǎng)站所需的技術或組件的組合。大多數(shù)網(wǎng)站分為兩類:LAMP(基于Linux)或WISA(基于Windows)。您可以看到下面擴展的首字母縮略詞和各個組件:
我會說這兩個都是非常受歡迎的選擇,你不能錯過任何一個設置。事實上,大多數(shù)Web開發(fā)人員在這兩個陣營之間分裂,并在Linux或Microsoft Windows下構建網(wǎng)站。如果您發(fā)送RFP,您可能會收到兩者的出價。哪個是更好的選擇,它有什么不同?在您回答這個問題之前,我們來看幾個其他因素。