แปดบท เรียงตามลำดับที่ orderctl โตขึ้นทีละชั้น
คุณเขียนภาษาอื่นเป็นอยู่แล้ว และอยากรู้ว่า Go ตัดสินใจต่างตรงไหน
คอร์สนี้ไม่ได้เริ่มที่ “ตัวแปรคืออะไร” · มันสมมติว่าคุณเขียน C#, Java, TypeScript
หรือ Python เป็นอยู่แล้ว แล้วอธิบาย Go ด้วยการเทียบกับสิ่งที่คุณรู้
ทุกบทมีอย่างน้อยหนึ่งจุดที่บอกว่า สิ่งที่คุณคาดว่าจะเกิด กับสิ่งที่เกิดจริง ต่างกันตรงไหน
เพราะจุดที่เจ็บที่สุดเวลาย้ายภาษา ไม่ใช่สิ่งที่ไม่รู้ แต่เป็นสิ่งที่คิดว่ารู้แล้ว
ของชิ้นเดียวที่โตขึ้นทุกบท ไม่ใช่ตัวอย่างเล่นๆ ที่แยกกันคนละบท
orderctl — เครื่องมือบรรทัดคำสั่งที่ประมวลผลออเดอร์อาหาร
ไม่ใช่ตัวอย่างเล่นๆ ที่แยกกันคนละบท · มันเป็นของชิ้นเดียวที่โตขึ้นทุกบท จนบทสุดท้าย
มันอ่านออเดอร์จาก JSON ตรวจความถูกต้อง คิดส่วนลด เก็บสถานะลง disk เปิด HTTP
รับออเดอร์ใหม่ และประมวลผลหลายออเดอร์พร้อมกันโดยยกเลิกกลางคันได้
สามข้อที่ตัดออก พร้อมเหตุผลของแต่ละข้อ
- ไม่ใช้ framework และไม่ใช้ ORM standard library ของ Go ทำสิ่งที่คอร์สนี้ต้องการได้ครบ
· การใส่ dependency ตั้งแต่วันแรกทำให้แยกไม่ออกว่าอะไรเป็นของภาษา อะไรเป็นของ library
- ไม่วัดความเร็ว คอร์สนี้ไม่มีตัวเลข ns/op สักตัว เพราะตัวเลขเวลาไม่ข้ามเครื่อง
- ไม่สอน generics ลึก แตะพอให้อ่าน standard library ออก แล้วบอกว่าเมื่อไรไม่ควรใช้