-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

一路編程

( 簡體 字)
作者:佟達類別:1. -> 程式設計 -> 綜合
譯者:
出版社:電子工業出版社一路編程 3dWoo書號: 45803
詢問書籍請說出此書號!

缺書
NT售價: 325

出版日:1/1/2017
頁數:296
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121304781
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

推薦序
編程魔法的麻瓜入門手冊





在看一個涉及舊房改造的電視綜藝節目時,我突然意識到一件事:同樣是需要大量知識和實踐作為基礎的專業人士,程序員似乎從來沒有得到像建筑師那樣來自普羅大眾的認可與尊重。究其原因,我想可能部分原因是程序員的工作太缺乏可見性,以至于那些不懂技術的麻瓜們對程序員的印象要么是盲目崇拜,要么是盲目輕視,總之沒有那種平等而深入的交流方式。尤其在英語極不普及的中國,天書一般的程序代碼更是讓麻瓜們望而卻步,遑論去理解和交流。像本書譯者、我的同事佟達所遭遇的“家人不知道我一天到晚在干些啥”的困擾,對于廣大中國程序員而言恐怕是家常便飯。
本著幫助麻瓜進入魔法世界的崇高理想,Steven Foote寫了這么一本精彩的編程入門教材。相比常見的高校編程教材,這本《一路編程》最大的好處是它的“不求甚解”——作者堂而皇之地宣稱:你不知道一行程序代碼背后那些魔法是怎么發生的嗎?無所謂!“你不需要知道那些指令是什么,或者理解它們的工作原理,只要它們能用就行。”這么一來,讀這本書入門的麻瓜們可就比它們大部分在學校里上編程課的同儕們更有希望:當那些抱著大部頭教材的學生們正在被指針地址等高深的魔法細節嚇破膽時,這本書的讀者倒是——像已經在干著程序員這份工作的人一樣——放心大膽地忽視絕大部分細節,寫出一兩個能運行的程序,并從中獲得繼續學習必不可少的成就感。
其實——出乎麻瓜們的意料——絕大部分的軟件開發根本不是什么火箭科學。就像我經常跟朋友打趣說的,我們寫這些程序連四則運算都用不全,主要除法不怎么用。相比科學,軟件開發其實更像一種工匠手藝(craft)。使一個優秀的程序員區別于平庸程序員的,正如Neal Ford在《卓有成效的程序員》中所說,是好的習慣和趁手的工具。Foote很準確地抓住了這一點。在快速介紹Javascript編程之后,他迅速而不失全面地介紹了體面的前端程序員應該用到的全套工具箱:命令行、構建工具、數據庫、正則表達式、測試工具、文檔……招聘時我們常會對著候選人提交的一個光禿禿的源代碼文件撓頭,只有經歷過這種痛苦的人才會知道,候選人提交的代碼作業有Grunt構建腳本甚至有單元測試是一件多么令人愉悅的事。
處在當今這個數字化浪潮方興未艾的時代,能讓麻瓜順利學會編程(或者至少對編程有點概念),其意義超出家庭和諧的層面。中國無比巨大的IT需求,與有限的IT人才供應之間的矛盾,近年來不僅沒有緩解,倒有愈演愈烈之勢。另外,眾多出身、學歷平平的青年人有志于投身IT這個大有前途(至少有“錢途”)的行業,卻苦于邁不過入門的門檻。如果有更多的學校、企業、培訓機構照著Foote這個思路,用深入淺出、符合直覺、又貼合行業最佳實踐的方式來給這些青年人提供指導,不僅能創造若干就業機會,說大一點更是為“互聯網+”宏觀戰略提供人才支撐,善莫大焉。
最后,祝各位讀者閱讀愉快,祝佟達及廣大程序員都得到家人更多的理解與支持,祝更多麻瓜走進編程這一神秘的魔法世界。

ThoughtWorks總監咨詢師 熊節
2016年11月





譯者序
這是最好的時代,也是
最壞的時代





在中國,IT從業者有數百萬人之多,但這其中,稱得上會編程的,不會超過十分之一。
我所說的會編程,絕不僅僅是會寫代碼,而是包括環境搭建、版本管理、構建管理、單元測試、文檔編寫、團隊合作,以及任務拆分在內的綜合技能。很多人——包括我自己——一開始都無法理解,一個程序員除了寫代碼,為什么還需要懂這么多東西。
當年在學校,有幸參加一個學生團體,利用課余時間做點小項目。第一次幾個人一起寫代碼,還有點小激動。然而激動并沒有延續很久,過了兩天,當大家準備把各自寫的代碼合到一起時,發現這是個根本無法完成的任務,每個人都有自己的想法,從代碼組織方式,到代碼風格,甚至連IDE都不一樣。那是第一次感受到,真正的軟件開發,和寫C語言程序設計的作業完全不一樣。
2009年年底,我到微軟亞洲研究院的創新工程中心實習,當時的部門負責人是鄒欣,他是《移山之道》和《構建之法》的作者。進組的第一天,我就拿到幾張紙,上面寫著一些基本的編碼規范。分配給我的電腦上環境已經準備好,從TFS上簽出項目代碼,在項目文件中的編譯選項已經配置好,直接運行編譯,之后執行腳本就可以將服務跑起來。從新人進組到可以開始工作,不到一天時間,真是讓我眼界大開。當然,這才是開始,后面從代碼提交,到工作項分配,再到上線部署,每一件事都在刷新著我對軟件開發的理解。不過,作為一個小小的實習生,那時的我只想安安靜靜地寫代碼,沒有仔細思考這些專業工作背后的意義。
我畢業后的第一份工作就職于一家研究所,所在的部門人員能力都很強,但是因為信息相對閉塞,對于現代軟件開發方法并不是很了解,所以開發團隊的很多做法都比較原始,導致需要花費大量的時間和精力在管理代碼版本、修復由于更新代碼導致一些已有功能不能用的bug等上。我嘗試將在微軟亞洲研究院學到的那些知識引入到團隊中,覺得只要搭建起TFS,就水到渠成了。可惜現實狠狠給我上了一課,搭建TFS其實是所有事情中最簡單的,設定編碼規范、規范代碼提交流程、統一編程環境、編寫自動化腳本等,每一件事都非常困難。這時我才意識到,如果一個團隊中大部分人都不了解這些現代軟件開發的知識,靠一兩個人去推動,幾乎不可能。
后來,我來到ThoughtWorks,發現這里每個人都能夠熟練使用Git管理代碼,使用Gulp、Maven、SBT等管理構建構成,還會寫大量的自動化測試來保證質量。從代碼修改到測試環境上線,只需要5分鐘時間,整個過程不需要人參與,程序員們只要看著屏幕上的流水線走到最后亮起綠燈,就可以安心地做下一個任務。后來有人給這種工作方式起了個很直觀的名字,DevOps,中文叫作“開發自運維”。 在這里,我了解到了為什么需要敏捷開發,為什么要做持續集成、持續交付,為什么要組建全功能團隊。以前對于軟件開發的很多疑惑,都慢慢解開了。我常常想,要是我在還沒畢業的時候,就知道這些事情,會少走多少彎路啊!
最近幾年,參與了幾次技術咨詢項目,接觸到更多軟件開發者。很多業界有名的公司,實際上軟件開發人員的技能非常不足。完全不理解軟件工程任何概念的程序員大有人在,不會使用命令行工具、不知道如何處理代碼沖突、從不做單元測試、基本上全靠網上搜索一些代碼片段來完成任務,這樣的人真心不能算會編程。當然也不乏一些在日常工作中有思考,能夠理解軟件開發的痛點,但是苦于不知道如何改進的程序員。因為從來沒有人告訴他們怎么做才是正確的編程方式。
現在市面上對于每一個流行的技術都有大量的書籍文檔做介紹,然而,唯獨缺少一類書,告訴讀者如何才能做一名合格的程序員。事實上,我自己以前也一直認為,要想成為一名合格的程序員,需要讀很多不同方面的書。直到我看到了本書。
當時接下這本書的翻譯,初衷是想要將這本書送給我當時的女朋友,現在的妻子,因為她剛好也是會計,和本書作者在轉行做程序員之前的職業一樣。我的本意是通過這本書,讓我的妻子也可以對編程感興趣,能夠理解我每天對著電腦到底是在干什么。然而當我翻譯到第4章,介紹JavaScript構建工具那部分時,我發現這本書并不是我一開始想的那樣,它不只是一本介紹如何寫JavaScript代碼的入門書。在只有兩百多頁的書中,作者對所有軟件開發相關的技能都做了介紹。對于每個編程必備技能,作者僅僅介紹其在日常開發過程中最常用到的一些知識,用20%的篇幅,把80%的場景都覆蓋到了。不僅如此,因為作者自己從對編程一無所知開始學習,所以在介紹一些相對難理解的概念時,能夠設身處地地從初學者角度著想,用直白的語言,將一些概念解釋出來。盡管可能從專業人士角度看,不算非常嚴謹,但對于日常開發工作來說,剛好夠用。
對于程序員來說,這是最好的時代,物聯網幾乎改變了所有行業,甚至已經有人在提“程序員拯救世界”這種說法,作為程序員,我們應感到自豪;然而,這也是最壞的時代,軟件開發對程序員的要求越來越高,20年前也許會用HTML設計網頁已經非常厲害,但今天你需要會很多不同的技能才能成為一名合格的程序員。如果你希望能夠在軟件開發這條路上一直走下去,本書可以幫你邁出堅實的一步。
感謝本書的編輯符隆美,在翻譯本書期間給我不少鼓勵,讓我能夠堅持譯完本書,沒有她的幫助,本書不可能完成。


佟達
2016年11月



前言
我為什么寫這本書




像大多數偉大的(會計師)故事一樣,我的故事開始于一個Excel電子表格。那是2008年,我正在猶他州普若佛的楊百翰大學學習會計,同時在法學院圖書館做接待員。一天,我的老板問我知不知道如何在Excel里把一列名字隨機打亂順序。“當然,”我騙了他,然后去做了每一個說了大話的人都會做的事:谷歌一下。谷歌給我展示了至少三種能夠在Excel中打亂列表順序的不同方法。2分鐘后,我就把打亂順序的列表交給了老板。就在那時,她認定我很擅長計算機,應該去圖書館系統部工作。我不太確定是不是用谷歌檢索東西的天賦就等于擅長計算機,但我很感激她這么認為。
我的編程之旅就是從法學院圖書館系統部開始的。第一天,我的老板給了我一本有著25年歷史的書——《Perl編程》,并向我展示了我的桌子,坐落在一個沒有窗戶的房間,上面雜亂地堆放著老舊的計算機、鍵盤和顯示器。臨走之前,他告訴我,他正忙著其他事情,但是在他回來之前,這個Perl教材會讓我一直有事可做。我翻開書,開始閱讀,那是我從沒有過的感受。
那本書寫于Windows尚未出現之時,所以它假定讀者在用UNIX操作系統(我從沒聽說過UNIX)。我忽略了這條,繼續使用我的Windows XP計算機,它剛剛從圖書館計算機實驗室退休(在此之前,我從沒聽說一臺計算機對于一個圖書館計算機實驗室來說太老了的這種事)。那本書說,給某個地址寄一封貼好郵票的回郵信封,就會收到一張存著Perl的軟盤。我決定不郵寄而使用我的谷歌技能,找到下載和安裝Perl的說明。我以前下載過軟件,但我并不知道程序語言也需要下載安裝,我有點緊張,怕把我的計算機搞壞,但我發現沒法跳過這一步,只能硬著頭皮繼續。
那本書第1章展示了一些示例代碼,用來打印Hello, World!,看起來就像這樣:
print (“Hello, world!”);
書中讓我把這段示例代碼保存到一個名為hello_world.pl的文件中。我之前唯一用過能往計算機里輸入文本的軟件就是Word,于是我打開Word,開始打字。我大概花了45秒意識到Word不是寫代碼的地方,然后花了45分鐘才找到正確的地方。窮盡我所有谷歌技能,都想不出來該搜索什么才能找到寫代碼的正確方式。我現在進入了一個全新的、不熟悉的世界,我熟悉的那些檢索詞都沒用。最終,我找到了答案——記事本(正如你將在第1章“‘Hello, World!’寫下你的第一個程序”中會學到的,記事本并不是正確答案,但它確實可以工作),然后我繼續艱難前進,只是有一點點沮喪。
最終,我把書中的代碼敲進記事本,并保存文件。什么都沒發生。但我“很擅長計算機”,而且我知道如果有什么東西不工作,你應該嘗試重啟。所以我關掉了這個文件,嘗試通過雙擊重新打開它。一個黑底白字的小窗口在屏幕上一閃而過,持續不到1秒就消失了,而且記事本也沒有打開。那時,我覺得我把計算機給搞壞了,而且我不太相信我的老板不會因為一臺計算機壞了而發火,盡管它已經很舊了。然后我的腦中閃過一個想法,就是我的程序事實上已經執行完了。我穿過房間,跑到打印機旁,想看看我是不是已經成功打印了“Hello world!”。打印機空閑著,托盤里也沒有任何新打印出來的紙張。我試著重啟打印機,以防萬一。不走運(在很久之后我才知道print意味著打印到屏幕,而不是打印到一張紙上),那天下午剩下的時間就在重復著這種令人抓狂的事情。
那天結束時,我感覺我并不擅長計算機;事實上,計算機在用它們的方式對付我,而且它們好像樂在其中。我很想放棄,但我需要工作,而且我不愿言敗,我不想讓計算機獲勝。接下來的幾個月里,我只取得緩慢而零星的一些進展。我不斷在原地打轉,不得不一遍又一遍學習一些相同的東西。唯一可能有能力指導我、回答我問題的人,不是特別忙,就是太有經驗以至于幫不上什么忙。就像我在讀的那本有關Perl的書(它假設我已經知道怎么用C編程,鬼才知道那是什么東西),這些可能的指導老師都認為我懂得比我實際知道的多得多。我不想泄露我什么都不知道,怕丟掉工作(這可能不是個明智的舉動)。然而,即使一開始感到沮喪,我也能看出程序是多么強大,而且甚至還挺享受的。最終,知識碎片開始匯集到一起,我慢慢開始理解。
我的編程入門之路經歷了許多的坎坷,而且我意識到,每個希望自學編程的人,都可能有類似的經歷。有幾次,我想要放棄,覺得編程就是給那些計算機科學系的書呆子學生準備的。編程在剛開始學習時確實有些嚇人,而有經驗的程序員知道那么多東西,以至于讓人不敢對他們提問題。但是不管有多難,不管多少次你可能想要用頭撞桌子或是把計算機扔到地上,編程最終會帶給你驚人的樂趣和回報。當我意識到編程有多么棒時,我放棄了會計學碩士學位和一個在頂級會計師事務所工作的機會,轉而從事編程。我從沒后悔。我寫下這本書,是因為當年剛開始學編程時,就想有這么一本書。
為什么你應該讀這本書
計算機就在我們身邊,遍布我們生活的方方面面,然而大多數人還并不真正理解它們的工作方式,或者如何讓計算機為我們工作。我們都被限制在計算機已經知道怎么做的那些事情上,但是計算機一直以來都意圖成為可編程的機器。你可以為你桌上的計算機編程,讓它做任何你想要做的事。隨著世界越來越依賴于計算機,編程技能對每個人來說都將是必需的,不僅僅對專業軟件工程師或開發者來說是如此。這本書會幫助你學習編程,并且樂在其中。
在接下來的幾頁,你會建立編程基礎,為你實現全部編程目標做好準備。不論你想要成為一個專業的軟件開發者,還是想要學習如何更高效地和程序員溝通,或者只是對于程序如何工作感到好奇,這本書都非常適合作為幫你達成所愿的第一步。學習編程仍將困難,但卻有可能,并且有希望變得有趣,而不是讓人沮喪。
你的項目
最好的學習編程的方式就是真正去編程。貫穿本書,你將編寫一個完整的Chrome瀏覽器擴展程序。Chrome瀏覽器擴展程序是能夠增強(或者擴展)Chrome瀏覽器功能的程序。我們即將搭建的這個擴展程序會向用戶詢問名字和手機號,然后把用戶Facebook新鮮事里的所有照片,都根據用戶的位置(通過電話號碼確定)改成小貓小狗。這個擴展程序(我們稱之為貓咪書)可能沒什么特別的用處,但搭建它的過程會很有趣,而且期間會幫你學到很多重要的編程概念。
內容簡介:

這是一本編程入門的書,然而,如果以書中所講內容作為入門標準,估計十有八九的在職程序員都不能算入門。現代軟件開發,已經不僅僅是寫出正確的代碼這么簡單,環境、依賴、構建、版本、測試以及文檔,每一項都對軟件是否成功交付起到至關重要的作用,這些都是每一個程序員在開發軟件過程中必備的技能。本書對于上述的每一種技能,都做了簡潔而精煉的介紹,以滿足最基本的日常軟件開發。換句話說,本書實際上是為現代軟件開發的入門,設下了最基本的門檻。相信每一個讀此書的人,不論是即將進入軟件行業,還是已經在軟件行業工作多年,都會獲得收獲。

目錄:

1 “Hello, World”寫下第一個程序 1
選擇文本編輯器 1
核心功能 2
做出你的選擇 4
Sublime Text 5
TextMate 5
Notepad++ 5
Gedit 6
Vim 6
Eclipse 6
IntelliJ 7
Xcode 7
Visual Studio 7
創建項目目錄 8
從小處著手:創建測試文件 8
HTML和JavaScript如何在瀏覽器中一起工作 10
小幅修改的意義 11
乘勝追擊 13
在manifest.json中引用JavaScript 16
讓它運行起來 17
能力越大,責任越大 18
總結 18
2 軟件如何工作 19
什么是“軟件” 19
軟件生命周期 20
源代碼——一切開始的地方 21
一組指令 21
編程語言 22
從源代碼到0和1 27
編譯型語言與解釋型語言:源代碼何時變成二進制碼 27
運行環境 28
處理器執行 29
輸入和輸出 29
輸入讓軟件更實用(可重用) 30
輸入從哪來 31
軟件如何獲得輸入 32
輸出類型 32
GIGO:垃圾進,垃圾出(Garbage In,Garbage Out) 33
狀態 34
給kittenbook添加狀態 35
內存和變量 37
變量 37
變量存儲 38
有限的資源 41
內存泄漏 41
總結 42
3 認識你的計算機 43
計算機很笨 43
計算機有魔力 44
站在巨人的肩膀上 44
計算機內部 44
處理器 44
短期存儲器 45
長期存儲器 45
使用計算機 46
文件系統 46
命令行:取得控制權 48
總結 58
4 構建工具 59
(幾乎)全部自動化 59
安裝Node 60
安裝Grunt 62
幫你創造軟件的軟件 65
避免錯誤 66
更快地工作 66
自動化的任務 67
編譯 67
測試 68
打包 68
部署 68
構建你自己的構建過程 69
Gruntfile.js 69
使用Grunt插件 69
加載Grunt插件 72
注冊任務 73
看好了 74
總結 77
5 數據(類型)、數據(結構)、數據(庫) 79
數據類型 79
為什么存在不同的數據類型 80
基本數據類型 80
組合數據類型 85
動態和靜態類型語言 92
數據結構 93
集合 96
棧 96
樹 97
圖 98
如何選擇高效的數據結構 101
數據庫 101
長期(持久化)存儲 101
關系型數據庫 101
SQL簡介 103
總結 105
6 正則表達式 107
Ctrl+F組合鍵:尋找模式 107
在JavaScript中使用正則表達式 108
重復 109
? 109
+ 110
* 110
特殊字符和轉義字符 111
{1, 10}:創造屬于你的超能力 111
匹配任意字符的“.” 112
不要太貪婪 112
從[A-Za-z]理解方括號 113
字符列表 113
范圍 114
排除 114
電話號碼模式 115
我需要s 117
方括號的快捷方式 118
限制條件 119
提取標簽 123
高級查找和替換 124
(一行的)開頭和結尾 124
標記 125
全局匹配 125
忽略大小寫 125
多行 125
什么時候會用到正則表達式 125
grep 125
代碼重構 126
校驗 127
數據抽取 127
總結 127
7 何時使用if、for、while 129
操作符 129
比較操作符 129
邏輯操作符 130
一元操作符 132
二元操作符 132
三元操作符 135
“真”和“假” 137
“語法糖” 139
循環遍歷一個數組 140
遍歷圖片 140
嵌套循環 141
你需要停下來 142
無限循環 144
再停一下 145
當你不知道什么時候停下 145
何時執行 145
事件 145
監聽器 146
定時任務 147
超時 147
在事情出錯前接住它 148
編寫健壯的代碼 149
總結 149
8 函數和方法 151
函數結構 151
定義 152
調用 152
參數 153
調用棧 155
代碼封裝 156
一次做好一件事 156
分而治之 157
物盡其用 161
代碼重用 161
解決通用問題 161
用更少的代碼做更多的事情 161
不要做重復的事(DRY) 163
作用域 164
全局變量 166
本地變量 166
變量查找是怎么工作的 167
總結 170
9 編程標準 171
編碼慣例 171
設定標準 172
黑科技,用還是不用 172
立即付款還是先用后付款 173
寫可維護的代碼 173
代碼格式化 174
保持一致 175
空白字符 176
規則不會自己出現:要制定規則 177
使用其他人的成果 179
更快地構建 179
開源軟件 179
由社區建立 180
什么時候該自己寫 180
最佳實踐 181
文檔 181
計劃 181
測試 181
總結 182
10 文檔 183
文檔化意圖 184
自文檔代碼 185
不要將顯而易見的東西寫入文檔 187
過時文檔的危險性 188
用文檔來找bug 189
為自己寫文檔 189
你的記憶力有多好 189
為了學習而記錄文檔 190
超越注釋的文檔 190
給別人寫的文檔 194
記錄你的決定 195
記錄你的資源 195
為了教學而寫文檔 196
總結 196
11 計劃 197
三思而后行 197
創建規格說明 198
設計架構 198
畫示意圖 199
嘗試破壞你的系統 200
迭代式計劃 201
為擴展設計 202
你的優先級是什么 202
用戶體驗 202
性能 203
安全 203
伸縮性 203
截止日期 204
平衡的藝術 204
識別并創建限制條件 204
知道可以做什么,不可以做什么 204
總結 206
12 測試和調試 207
手工測試 207
邊做邊測 208
嘗試些瘋狂的事 208
吃你自己的狗糧 209
自動化測試 209
單元測試 210
給Kittenbook配置測試 213
失敗時代 217
間諜喜歡我們(我們也喜歡間諜) 218
集成測試 221
盡早發現問題 221
調試 222
錯誤 222
日志 223
斷點 224
查看、監控和控制臺 228
單步執行代碼 229
調用棧 231
找到根本原因 231
編碼、測試、調試、不斷重復 231
總結 232
13 授人以漁:如何用一生學習編程 233
如何搜索 233
找到正確的關鍵字 234
以終為始 236
識別高質量資源 236
個人博客:隱藏的寶藏 237
什么地方、什么時候,以及怎么問編程問題 237
什么地方 237
什么時候 240
怎么問 241
通過教別人來學習 241
總結 242
14 構建你的技能 243
做你自己的kittenbook 243
給Facebook重新設計風格 243
添加新功能 244
分享你的kittenbook專屬版本 245
找到你自己的項目 245
解決你自己的問題 246
志存高遠 246
獲得幫助,提供幫助 247
開源項目 247
GitHub 247
找項目 248
貢獻的不同方式 248
創建你自己的項目 249
免費在線教育 249
歐拉項目 249
Udacity 250
Coursera 250
codeacademy 251
Khan Academy(可汗學院) 251
教程 251
付費教育 251
讀書 252
Udacity和Coursera 252
Treehouse 253
總結 253
15 高級主題 255
版本控制 255
為什么使用版本控制 256
和團隊一起工作 257
Subversion 260
Git 260
OOP(面向對象編程) 266
類 266
繼承 267
實例 268
設計模式 268
發布訂閱 268
中間人 269
單例 270
總結 270
序: