電腦城
從一個開關開始,一路蓋到全端。先看地圖,再選一區逛。
全端地圖
亮色的區可以玩,灰色的區還在蓋。
第一區 · 第一章
開關與邏輯閘
隨機練習
每題都是新生成的。連續答對:0 題
第二區
資料型別與編碼:秤重
電腦只認得位元,1 個 byte=8 個位元。字、數字都要先變成 byte 才存得進去。打一串字,看它有多重。
半形(英文、數字)在兩種編碼都是 1 byte。全形(中文、,。)在舊系統是 2 byte,在現在的網頁是 3 byte。老師講的「半形 1、全形 2」是舊系統的算法。表情符號舊系統放不進去(標「—」)。
一個字一個格子。英文字母小格子,中文大格子;現在的網頁格子又更大一點。
測驗:這串字共幾 byte?
連續答對:0 題
資料型別:同樣長相,不同東西
資料型別決定「這串 byte 該怎麼讀」。同樣是 5,數字 5 可以加減,字串 "5" 只會接在後面。小數用浮點數存,所以 0.1+0.2 會差一點點。資料庫的欄位、API 傳的 JSON、程式的變數,都各自有型別,跨層時最容易被洗掉。
第七區
資料庫與 SQL:查詢櫃台
資料庫是一堆「表」。一張表有很多「列」(一筆資料)和固定的「欄」(每筆都有的項目),每一欄有自己的型別。下面是一張練習用的表(都是虛構資料),用選單組一句 SQL 去查它。
這就是資料庫的日常:SELECT 挑欄、WHERE 挑列、ORDER BY 排順序。沒寫 WHERE 就是整張表。下面這段 JSON 是第一列變成的樣子:程式透過 API 拿到的就是這種「一筆 record」,列變成物件、欄變成屬性。注意 score 是數字、name 是字串,型別要一路保留。
表格像班級名冊:一行一個人,一欄一種資料。SQL 就是跟名冊管理員說:我要找哪幾欄、哪幾個人。
測驗:這句會回幾列?
連續答對:0 題
第八區
API 與 endpoint:接管線
程式不會直接伸手進資料庫,中間隔著一層 API。程式對 API 的某個網址(endpoint)發出請求,API 去資料庫查,再把結果用 JSON 送回來。選一個請求,看三層各長什麼樣。
① 程式送出請求
② 資料庫那一頭(API 去查的)
③ API 回傳
④ 程式拿到之後
endpoint =網址加方法(GET 讀、POST 新增)。API 回傳「一筆 record」就是一個物件,一列資料變成一個物件、每一欄變成一個屬性;多筆就是物件的陣列。狀態碼是結果的暗號:200 成功、201 已新增、400 你送來的不對、404 找不到。型別要一路保留:score 若被送成字串,程式 +10 會變成接在後面。
API 像餐廳櫃檯:你不能自己進廚房(資料庫),要跟櫃檯點餐(請求),他把餐點端出來(回傳)。
測驗:這個請求會回幾號狀態碼?
連續答對:0 題