一路編程

一路編程

《一路編程》 一書原作者Steven Foote(史蒂夫 富特),中文版由佟達譯,電子工業出版社2017年1月出版

內容提要

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

強烈推薦剛剛或將要成為程式設計師的人及其朋友們閱讀《一路編程》。

目錄

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

相關詞條

熱門詞條

聯絡我們