2010-06-08 21 views
5

我對web開發很感興趣,我的意思是像Facebook或Twitter這樣的大項目。我知道java,css,php和mysql的基礎知識。我知道那裏有更多。我讀過它。但我不知道目的是什麼以及如何實施。我知道大局,但不能把它放在原地

的東西,如:抄寫,節儉,卡桑德拉,Unix/Linux操作系統,外殼/的Perl/Python腳本時,PostgreSQL,MongoDB的,非關係的NoSQL數據存儲,JVM,Nginx的

我想知道他們爲什麼需要它,他們如何使用它以及目的是什麼。

我需要的是一本像Facebook等技術背景的書。 是否有任何書籍或網站從頭開始解釋這一點?

謝謝!

編輯:

謝謝你的答案!你一直很有幫助。我是在假設,有經驗的程序員知道幾乎所有關於當今使用的技術的東西。但是,當我閱讀時,你只能知道這麼多,我需要弄清楚使用哪種技術。我接受鼓勵開始建設小型企業。並將採取PHP並提高我的技能。

再次感謝!

回答

0

有很多框架可以做很多不同的事情。你已經從很多不同的領域命名了很多不同的東西。考慮這些事情的最好方法是按類別對它們進行分組。這裏有一個例子:

假設你有一臺筆記本電腦,你想主辦一個網站。您至少需要以下內容:

1)Web Server軟件。兩種流行的選擇是微軟的IIS和Apache Web服務器。

這真的是你所需要的。您可以設置您的www_root文件夾並將文件加載到該文件夾​​中。假設所有配置都正確,現在可以將HTML頁面加載到該文件夾​​並通過IP地址訪問它們。您在網頁瀏覽器中查看的每一頁都是HTML格式。 CSS是一種樣式表語言,它定義了HTML的格式。您也可以開始編寫Javascript,因爲大多數現代瀏覽器都支持客戶端腳本語言。

您可能還需要以下內容:

2)數據庫軟件。兩種流行的選項是Microsoft的SQL Server和MySQL 3)服務器端腳本。 PHP和ASP一樣非常流行。您需要在服務器上部署運行時。 Python,Ruby,Perl等都屬於這個類別。 4)Web應用程序框架。這將爲您提供選擇語言的庫,以幫助開發Web應用程序和網站。CakePHP,Ruby on Rails和Google Web Toolkit是Web應用程序框架的示例。

此外,您可能希望利用:

5)附加庫。例如,JQuery正迅速成爲Javascript的流行庫,爲您處理許多常見任務。不用編寫複雜的效果代碼,也不用編寫自己的代碼,只需使用JQuery庫中預先編寫的代碼即可。 6)數據交換技術。如果您傳遞大量信息,您可能希望以邏輯格式封裝這些數據。理想情況下,這種格式將描述數據並允許應用程序根據標準輕鬆讀取/處理它。這是XML和JSON發揮作用的地方。

我不能推薦一本好書讓你學習這些東西,但我覺得在這裏對你的問題的集體答覆應該足以讓你開始。

最終,你需要做的是確定你需要什麼技術,然後選擇合適的工作。不要僅僅因爲它是Twitter所使用的Ruby on Rails來構建應用程序,而是選擇它,因爲它爲您提供了其他選項的一些優勢。

2

這就是爲我眼中的工作選擇合適的工具。那裏有太多的技術,不可能全部學習。只需選擇適合您的子集。

2

最好的開始是通過建立小型簡單的網站,當你遇到需要解決的問題時,你需要研究解決這些問題所需的工具。

如果你一次攻擊所有的區域,這將是壓倒性的,你不會得到任何地方。

有關每種技術的一般概述,維基百科對大多數技術進行了很好的概述。

如果你對數據庫內容感興趣,看起來像你一樣,開始閱讀正常化的好地方。

+0

看起來像我需要開始打字更快:) – 2010-06-08 15:15:40

1

抄寫,節儉,卡桑德拉,Unix/Linux操作系統,外殼/的Perl/Python腳本時,PostgreSQL,MongoDB的,非關係的NoSQL數據存儲,JVM,Nginx的

這些我會在維基百科上搜索到快速瀏覽。 Facebook是用PHP/MySQL編寫的。有一些關於創建社交網站主題的書籍,有些書籍在Amazon.com上得到了體面的評論,但是,我自己並沒有閱讀其中的任何一本書。

如果我是你,我會從PHP/MySQL開始,坐下來寫一個簡單的社交網絡。將項目分解爲組件和任務,並將Google遇到的每個挑戰都分解爲會話,數據庫結構,安全性,朋友結構以及處理POST和GET請求。

你會學到很多,你會得到大局。一旦你看到大局,你可以再看看可用的不同技術,然後決定哪些組件可以用其他工具更好地開發。我個人認爲,對現有技術過分看好對於仍處於起步階段的人來說是有益的。開始做,從中學習,然後你的問題變得更具體,許多事情會變得更有意義。

5

http://highscalability.com/

這是最好的網站在那裏的一個。有幾個案例研究描述了許多網站使用什麼和爲什麼,並指出了進一步的參考。我還要看看谷歌的可擴展性會議2007年談判

http://www.google.com/search?q=Google+Scalability&hl=en&client=firefox-a&hs=YUg&rls=org.mozilla:en-US:official&prmd=v&source=univ&tbs=vid:1&tbo=u&ei=fl4OTPUkorIwueCQxQw&sa=X&oi=video_result_group&ct=title&resnum=4&ved=0CDIQqwQwAw

+0

+1。愛第一個鏈接! – 2010-06-08 15:17:29

1

您遇到的問題是,你正在尋找更小,特色產品,而不是在更大,更成熟的技術。維基百科實際上會給你一個體面的大多數大中型項目的概述。

Cassandra,Hadoop,Mongo和NoSQL都很可愛......但它們是專業工具。 SQL是一種通用的解決方案,適用於網上99%的網站。

Unix/Linux不是專業工具;你可能想嘗試訪問Ubuntu的網站並安裝Linux,並且每天使用它,就像使用Windows一樣。當你需要弄清楚一些新的東西時,比如設置一個網絡服務器,在Linux機器上的上運行一個Windows操作系統,你最終可以學習到linux相當不錯的工具。對於腳本編寫,O'Reilly編寫了關於Bash,Perl和Python的大量書籍。

JVM是一個Java虛擬機,它是獲取Java代碼的核心。 Sun的網站上有很多關於學習Java的教程。

選擇一個你想要學習的項目(或者三個)可能會更容易,並且通過這樣做來了解其中的一些。在學習新建立的替代方案之前,我可能會建議學習一些SQL;可以讓你學習系統的其他部分,因爲SQL非常簡單。一旦你把剩下的東西變得可靠,那麼就嘗試在那個時候換一個NoSQL解決方案。

相關問題