電腦城

從一個開關開始,一路蓋到全端。先看地圖,再選一區逛。

全端地圖

亮色的區可以玩,灰色的區還在蓋。

第一區 · 第一章

開關與邏輯閘

隨機練習

每題都是新生成的。連續答對:0 題

第二區

資料型別與編碼:秤重

電腦只認得位元,1 個 byte=8 個位元。字、數字都要先變成 byte 才存得進去。打一串字,看它有多重。

0舊系統(Big5)byte
0現在的網頁(UTF-8)byte

半形(英文、數字)在兩種編碼都是 1 byte。全形(中文、,。)在舊系統是 2 byte,在現在的網頁是 3 byte。老師講的「半形 1、全形 2」是舊系統的算法。表情符號舊系統放不進去(標「—」)。

一個字一個格子。英文字母小格子,中文大格子;現在的網頁格子又更大一點。

測驗:這串字共幾 byte?

連續答對:0 題

資料型別:同樣長相,不同東西

資料型別決定「這串 byte 該怎麼讀」。同樣是 5,數字 5 可以加減,字串 "5" 只會接在後面。小數用浮點數存,所以 0.1+0.2 會差一點點。資料庫的欄位、API 傳的 JSON、程式的變數,都各自有型別,跨層時最容易被洗掉。

第七區

資料庫與 SQL:查詢櫃台

資料庫是一堆「表」。一張表有很多「列」(一筆資料)和固定的「欄」(每筆都有的項目),每一欄有自己的型別。下面是一張練習用的表(都是虛構資料),用選單組一句 SQL 去查它。

SELECTFROM students
WHERE
ORDER BY

    

這就是資料庫的日常: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 題

← 回 Protonia