本節書摘來自異步社區《Node應用程序構建——使用MongoDB和Backbone》一書中的第1章,第1.1節,作者【美】Mike Wilson,更多章節內容可以訪問云棲社區“異步社區”公眾號查看
第 1 章 介紹與總覽
Node應用程序構建——使用MongoDB和Backbone
互聯網已經成為發展最快的技術領域之一,它還在加速。對于希望通過編寫軟件來獲得收入的人來說,這既是好消息,也是壞消息。今天,優秀的開發人員擁有難得的機會,可以做他們喜歡的事,拓展視野,不斷進步,并從工作中得到更大的滿足,只要他們愿意付出必要的努力,去理解海量的、快速增長的知識。
精彩的職業生涯是有代價的。作為一名軟件開發者,你必須不斷尋找下一個優秀的工具,來幫助你更多、更好、更快地實現夢想。你在10年后面對的東西,與今天面對的東西會完全不同。本質上說,你需要多次再培訓自己,才能保持好的狀態。
馬爾科姆·格拉德威爾(Malcolm Gladwell)在他2008年所著的《Outliers》一書中指出,專業水準的融匯貫通需要10 000小時的努力。即使是天才也需要投入時間來收獲成功,平庸者和精湛者之間的差異歸結于個人實踐經驗的多少。閱讀本書這樣的書籍,能讓你成為精湛者。現在你正在花費額外的時間,接觸這門前沿的手藝。未來即將到來,你會首先獲得它的好處。
Node.js已經將一大批軟件開發者引入了面向事件編程。無論你的技術背景如何,只要有開放的心態,放下對JavaScript的偏見,就會領悟到在這個瘋狂應用多線程的世界里,單線程編程是多么強大。更重要的是,你會更欣賞事件處理,在其他編程語言中處理多線程問題時,也會有所幫助。
JavaScript是一種獨特的編程語言,有時會被誤解,現在它在開發人員的工具箱中終于得到了應有的地位。由于開發JavaScript應用程序的工具集不斷完善和成熟,你會看到全球范圍內這種編程語言的重要性在持續增長。
1.1 打造一個社交網絡
Node應用程序構建——使用MongoDB和Backbone
本書將手把手指導你搭建一個社交網絡,類似于LinkedIn、MySpace或Facebook。使用Node.js,Backbone.js和MongoDB作為工具,你將學會如何創建一個快速響應的應用,并且可以擴展到幾百萬用戶。
由于是例子,本書中介紹的許多組件會走捷徑,使用Node或MongoDB提供的內建方法,來展示某項功能,但在“真正”大型的部署中是不合適的。如果出現這樣的捷徑,我會給出特別提示,并探討如何轉向更具擴展性或更容易修改的結構。本書的挑戰是在清晰性和構建真正實用的應用之間取得平衡。
什么是社交網絡?“社交網絡”這個簡單的詞組似乎傳達了很多意義(在行為科學領域,確實如此),讓我們逐詞解讀,并應用于因特網。“網絡”是互聯的一組系統,它可以是任何東西,從遍布全國的高速公路網,到學校實驗室里的一排計算機,或是名片盒里的專業聯系人。“社交”這個詞指的是生物體的交互(如動物或人),以及它們作為群體的存在。所以社交網絡在這里指的是一群互聯、互動的人。
在社交網絡里,人的因素高于一切。在構建任何軟件時,如果不首先(并且持續)考慮最終用戶(不論是客戶、教授還是你自己),就針對某一特定功能或目標進行開發,這就是不負責任。要抵制為了技術的緣故而繼續編程之路的沖動,直至你能看清楚工作的最終目的。
我們說打造一個社交網絡時,當然不可能是打造這里定義的社交網絡。你要創建的是一個論壇,一條道路,讓社交網絡生根成長。系統的每一項功能都為這一目標服務,消除用戶的障礙,提供足夠的功能來推動、鼓勵和促進溝通,而沒有過多的修飾。這是一條充滿困難的道路,但也是區分偉大和平庸的產品的唯一途徑。