สารบัญ
Series: IT Foundation — พื้นฐาน IT สำหรับยุค AI (ภาษาคน)
เกริ่นนำ — จากตรรกะสู่ร้านอาหาร
ใน EP.02 เราคุยกันเรื่อง “สมองของคอมพิวเตอร์” — Data Structures, Algorithms, ตัวแปร, ลูป, เงื่อนไข ทั้งหมดนั้นคือ “ระเบียบวินัย” ที่ทำให้ Code คิดเป็น แต่แค่คิดเป็นอย่างเดียวยังขายของไม่ได้ครับ มันต้องประกอบร่างเป็น “ซอฟต์แวร์” ที่ลูกค้าใช้งานได้จริง
EP.03 นี้ผมจะชวนทุกคนมองซอฟต์แวร์เป็น “ร้านอาหาร” หนึ่งร้าน — มีห้องอาหารให้ลูกค้านั่ง มีห้องครัวทำอาหาร มีบริกรวิ่งระหว่างสองห้อง เวลาคุณกดปุ่ม “สั่งซื้อ” บนแอปครั้งเดียว เบื้องหลังมีคนทำงานเป็นขบวนใหญ่พอๆ กับร้านอาหารเปิดใหม่เลยครับ
1. The Translation — ทำไมต้องมี “ล่าม”
ก่อนจะเปิดร้าน เรามีปัญหาพื้นฐานที่ต้องแก้ก่อน คือ มนุษย์พูดภาษาอังกฤษ (หรือไทย) แต่คอมพิวเตอร์เข้าใจแค่ไฟฟ้า 0 กับ 1 เราจะสั่งให้มันทำงานยังไงโดยไม่ต้องนั่งพิมพ์ 010101 ทั้งวัน
วิธีแก้คือเราสร้าง ภาษาโปรแกรม (Source Code) ขึ้นมา เช่น Python, JavaScript, Java — ภาษาที่คนอ่านรู้เรื่อง แล้วใช้ “ล่าม” ที่เรียกว่า Compiler หรือ Interpreter แปลกลับเป็นภาษาเครื่องให้อีกทีหนึ่ง
ผมชอบเปรียบเทียบแบบนี้ครับ: Code เหมือนแปลนบ้านที่สถาปนิกเขียน ส่วน Compiler คือ หัวหน้าคุมงาน ที่อ่านแปลนแล้วไปสั่งคนงาน (CPU) ให้ตอกตะปูทีละตัว
Management View: ภาษาโปรแกรมแต่ละภาษามีความถนัดต่างกัน — Python เก่งคำนวณและ AI, JavaScript เก่งหน้าเว็บ, Go เก่งงาน Server โหลดสูง อย่าบังคับทีม Dev ใช้ภาษาเดียวกับทุกงาน มันเหมือนเอาช่างไม้ไปเทปูน
Abstraction — ศิลปะของการซ่อนความยาก
อีกเรื่องที่ต้องรู้คือ Abstraction หรือ “การซ่อนความซับซ้อน” ถ้าจะขับรถแล้วต้องรู้จังหวะการฉีดน้ำมันเข้าลูกสูบทุกครั้ง คงไม่มีใครขับรถเป็น วิศวกรจึงทำ “ปุ่มกดง่ายๆ” (แป้นเหยียบ, พวงมาลัย) มาครอบเครื่องยนต์ไว้
ซอฟต์แวร์ที่ดีก็เช่นกัน — อย่าให้ User ต้องรู้เรื่องหลังบ้าน User เห็นแค่ปุ่ม “สั่งซื้อ” ไม่ต้องรู้ว่าข้างหลังเรียก API กี่ตัว เช็คสต็อกกี่ฐานข้อมูล
2. Frontend — ห้องอาหาร (ส่วนที่ลูกค้าสัมผัส)
ถ้าซอฟต์แวร์คือร้านอาหาร Frontend คือห้องอาหาร — โซนที่ลูกค้านั่ง เห็นหน้าร้าน จับเมนู ดูของตกแต่ง หน้าร้านต้องสวย โครงสร้างดี บริการต้องฉลาด
2.1 HTML / CSS — โครงสร้างและการตกแต่ง
ถ้าเว็บมีแต่เนื้อหาตัวอักษร มันจะดูเหมือนเอกสารราชการ น่าเบื่อ อ่านยาก เราจึงต้องใช้สองเครื่องมือคู่กัน:
- HTML — เป็น “โครงสร้าง” ครับ เสา คาน ผนัง หลังคา บอกว่าตรงนี้คือหัวข้อ ตรงนี้คือย่อหน้า ตรงนี้คือรูปภาพ
- CSS — เป็น “การตกแต่ง” ทาสี จัดแสง เลือกเก้าอี้ ฟอนต์ สี ขนาด ระยะห่าง
Management View: ลูกค้าตัดสินความน่าเชื่อถือของบริษัทคุณภายใน 3 วินาทีแรกจากหน้าตาเว็บ ถ้าเว็บคุณพังบนมือถือ (ไม่ responsive) ลูกค้าหนีไปหาคู่แข่งทันทีโดยไม่บอกลา การมี Responsive Design ที่ปรับขนาดหน้าร้านตามจอจึงไม่ใช่ของฟุ่มเฟือย แต่คือสิ่งจำเป็น
2.2 JavaScript — ความฉลาดของหน้าร้าน
เว็บสมัยก่อน (ยุค 2000 ต้นๆ) เหมือน “กระดาษแปะบอร์ด” — กดอะไรไม่ได้ รอโหลดหน้าใหม่ทุกครั้งที่จะทำอะไร ช้ามาก
วิธีแก้คือใส่ “สมอง” ให้หน้าเว็บด้วย JavaScript ทำให้เว็บขยับได้ กดปุ่มแล้วมีไฟกระพริบ โหลดข้อมูลเพิ่มได้โดยไม่ต้องเปลี่ยนหน้า (Asynchronous) เปรียบเหมือน พนักงานต้อนรับที่คล่องแคล่ว คอยบริการที่โต๊ะ ไม่ต้องให้ลูกค้าเดินไปหยิบของเอง
Keyword ที่คุ้มจำ: SPA (Single Page App) คือเว็บที่เปลี่ยนเนื้อหาในหน้าเดียวโดยไม่ต้องโหลดใหม่ (Gmail, Facebook เป็นตัวอย่าง), Async/Await คือวิธีให้เว็บทำหลายอย่างพร้อมกันโดยไม่ค้าง
2.3 Client-Side Storage — ความจำของร้าน
ปัญหาคลาสสิกของเว็บสมัยก่อน: ลูกค้าคนเดิมกลับมาที่ร้าน แต่ร้านจำไม่ได้ว่าเขาชื่ออะไร ไม่รู้ว่าเขาเคยหยิบอะไรใส่ตะกร้าไว้ — อาการ Amnesia
วิธีแก้คือ “ฝากข้อมูลไว้ที่กระเป๋าของลูกค้า” (Browser ของเขาเอง):
- Cookies — เหมือนบัตรสมาชิกใบเล็กๆ ที่ต้องโชว์ทุกครั้งที่เข้าร้าน
- Local Storage — เหมือนล็อกเกอร์ส่วนตัวในมือถือลูกค้า เก็บข้อมูลได้เยอะกว่าและไม่ต้องส่งให้เซิร์ฟเวอร์ดูตลอด
Management View: สองสิ่งนี้ช่วยเพิ่ม Conversion Rate ตรงๆ ครับ เพราะลูกค้าไม่ต้อง Login ใหม่ทุกครั้ง ไม่ต้องหยิบของใส่ตะกร้าซ้ำ ใครเคยเจอเว็บที่ตะกร้าหายทุกครั้งที่ปิดหน้าต่างจะรู้ว่ามันหงุดหงิดแค่ไหน
2.4 SEO — ป้ายหน้าร้าน
สุดท้ายของ Frontend คือเรื่องที่หลายคนลืม: ร้านสวย อาหารอร่อย แต่ถ้าตั้งในซอยลึกไม่มีใครเข้า ก็เจ๊ง
SEO (Search Engine Optimization) คือการจัดป้ายหน้าร้านให้หุ่นยนต์ของ Google อ่านออกและ “ชอบใจ” พอลูกค้าค้นหาเรื่องที่เราขาย Google จะพาเขามาหาเราเอง เราเรียกมันว่า Organic Traffic — เป็นการตลาดที่ยั่งยืนที่สุดในระยะยาว ดีกว่ายิง Ads อย่างเดียว เพราะเราไม่ต้องจ่ายเงินเข้าอย่างต่อเนื่อง
3. Backend — ห้องครัว (ส่วนสมองและความลับ)
ห้องครัวคือพื้นที่หวงห้าม ลูกค้าเดินเข้าไม่ได้ มีแต่เชฟกับวัตถุดิบ ทุกกฎของร้าน ทุกสูตรลับ ทุก “ความได้เปรียบทางธุรกิจ” อยู่ในนี้ทั้งหมดครับ
3.1 Server Runtime & Routing — เชฟและการจัดคิว
ลองจินตนาการว่าลูกค้า 50 โต๊ะสั่ง “ต้มยำ” “สเต็ก” “ซูชิ” พร้อมกัน ถ้าไม่มีระบบจัดการ ครัวจะวุ่นวายมาก
- Routing — เหมือนคนยืนหน้าครัวที่คอยตะโกนว่า “ต้มยำไปแผนกครัวไทย!”, “สเต็กไปครัวฝรั่ง!” ในภาษาโปรแกรม มันคือการกำหนดว่า Request แต่ละประเภท (URL แต่ละอัน) ไปหา Code ตัวไหน
- Runtime — คือสภาพแวดล้อมที่ทำให้เชฟ (Code) ทำงานได้ เช่น Node.js, Python runtime, Java JVM
3.2 Business Logic & Jobs — สูตรลับและงานประจำ
Business Logic คือหัวใจของธุรกิจครับ — “ลูกค้าคนนี้เป็น VIP ไหม?”, “ลดราคาได้กี่เปอร์เซ็นต์?”, “ตัดสต็อกยังไง?”, “โปรโมชั่นนี้ใช้กับสินค้าชนิดไหนได้บ้าง?”
กฎเหล็กข้อหนึ่ง: Business Logic ต้องอยู่หลังบ้าน ห้ามอยู่หน้าบ้านเด็ดขาด เพราะ Code หน้าบ้าน (Frontend) นั่งอยู่ใน Browser ของลูกค้า ใครเปิด DevTools ก็อ่านได้หมด ถ้าคุณเขียนกฎส่วนลดไว้หน้าบ้าน ลูกค้าเก่งๆ แก้ Code แล้วได้ส่วนลด 99% ในวินาทีนั้นเลย
Jobs (Cron Jobs) คือ “งานที่ทำตอนร้านปิด” — ล้างจาน สรุปยอดขาย ส่งเมลอวยพรวันเกิดลูกค้า ทำรายงานให้ผู้จัดการตอนเช้า งานพวกนี้ไม่ต้องให้ลูกค้ารอ จึงไปทำตอนดึกๆ ที่ Server ว่าง
Management View: “Secret Sauce” หรือความได้เปรียบของบริษัทคุณอยู่ที่ Logic ตรงนี้แหละครับ ไม่ใช่ที่หน้าเว็บสวยหรือปุ่มเด้ง
3.3 Error Management & Logging — กล้องวงจรปิดและสมุดบันทึก
จู่ๆ ลูกค้าโวยวายว่า “สั่งแล้วไม่ได้ของ!” หรือระบบล่มไปเฉยๆ โดยไม่มีใครรู้สาเหตุ — ถ้าคุณไม่มีระบบบันทึก คุณจะเดากันไปเดากันมาเป็นสัปดาห์
- Logging — ติด “กล้องวงจรปิด” และให้ผู้จัดการจดบันทึกทุกเหตุการณ์ (ใครเข้ามาเมื่อไหร่ ทำอะไร เกิด error อะไร)
- Error Handling — แผนรับมือฉุกเฉิน เช่น ถ้าแก๊สหมด ให้ขึ้นป้ายว่า “เมนูนี้หมดวันนี้” แทนที่จะปล่อยให้ร้านระเบิด หรือในภาษา Code ก็คือใช้ Try-Catch ดักข้อผิดพลาดแล้วตอบลูกค้าอย่างสุภาพแทนที่จะเด้ง error ดิบๆ
หลักคิดสำคัญของวิศวกรซอฟต์แวร์: ระบบที่ดีไม่ใช่ระบบที่ไม่เคยพัง แต่คือระบบที่พังแล้วเรารู้ทันทีว่าเพราะอะไร
3.4 Third-Party Integrations — Supplier ภายนอก
เราทำเองทุกอย่างไม่ไหวครับ จะสร้างธนาคารเองเพื่อรับบัตรเครดิตหรอ? เราจึงเชื่อมต่อกับผู้เชี่ยวชาญผ่าน API Integration — เช่น Stripe/Omise รับชำระเงิน, Google Maps นำทาง, SendGrid ส่งอีเมล, LINE Notify แจ้งเตือน
คำที่ต้องรู้: API Keys (กุญแจยืนยันตัวตน), Webhooks (ให้ Supplier วิ่งมาบอกเราเมื่อมีเหตุการณ์)
4. Data Flow — วงจรออเดอร์ (จากเมนูสู่จาน)

หน้า DevTools Network tab ที่ dev ดูกันทุกวัน — แต่ละแถบสีแสดงเวลาที่ใช้โหลดแต่ละไฟล์
เรามีห้องอาหารและห้องครัวแล้ว คราวนี้ต้องมีระบบวิ่งออเดอร์ระหว่างสองห้อง
sequenceDiagram
participant U as ลูกค้า (Browser)
participant F as Frontend<br/>(ห้องอาหาร)
participant B as Backend<br/>(ห้องครัว)
participant D as Database<br/>(คลังเสบียง)
U->>F: กดสั่งเมนู
F->>B: ส่งออเดอร์ผ่าน API
B->>D: ขอข้อมูลที่ต้องใช้
D-->>B: คืนข้อมูล
B-->>F: ประมวลผลแล้วส่งคำตอบ
F-->>U: แสดงจานบนโต๊ะ4.1 API — บริกร (The Waiter)
ลูกค้า (Frontend) เดินเข้าครัวไปหยิบหมูหยิบไก่เองไม่ได้ — อันตราย สกปรก และยุ่งเหยิง ต้องสั่งผ่าน บริกร (API) บริกรจะจดออเดอร์ → ส่งครัว → ยกอาหารมาเสิร์ฟที่โต๊ะ
API ย่อมาจาก Application Programming Interface — มันคือ “ช่องทางสื่อสารที่ตกลงกันไว้” ระหว่างหน้าบ้านกับหลังบ้าน ประโยชน์สำคัญคือ ความปลอดภัย และ ความเป็นระเบียบ (Interface Contract) ทุกคนรู้ว่าต้องสั่งยังไง ตอบกลับยังไง
มาตรฐานที่ใช้กันเยอะ: REST (แบบคลาสสิก ใช้กับทุกแอปได้), GraphQL (แบบใหม่ ลูกค้าเลือกเอาเฉพาะข้อมูลที่อยากได้)
4.2 CRUD Operations — ภาษาในการสั่ง
ไม่ว่าเมนูของคุณจะพิสดารแค่ไหน คำสั่งพื้นฐานมีแค่ 4 อย่างเท่านั้น:
- Create (POST) — สั่งอาหารจานใหม่ (สร้างข้อมูล เช่น สมัครสมาชิก)
- Read (GET) — ขอดูเมนู ขอดูบิล (อ่านข้อมูล เช่น เปิดดูโปรไฟล์)
- Update (PUT/PATCH) — ขอเปลี่ยนจากไก่เป็นกุ้ง (แก้ไขข้อมูล เช่น เปลี่ยนเบอร์โทร)
- Delete (DELETE) — ยกเลิกออเดอร์ (ลบข้อมูล เช่น ลบบัญชี)
ทุกแอปที่คุณใช้ในชีวิตประจำวัน ตั้งแต่ Facebook ยัน Shopee ทำงานด้วย 4 คำสั่งนี้ทั้งหมด
4.3 Caching Strategy — ซุ้มอาหารตักเอง
ปัญหา: ลูกค้า 100 คนสั่ง “ข้าวผัด” พร้อมกัน ถ้าเชฟต้องผัดใหม่ 100 รอบ มันช้าและเปลืองแรงมาก
วิธีแก้คือ Caching — ทำข้าวผัดใส่ถาดอุ่นเตรียมไว้ใน Redis (ถาดอุ่นของวงการ Tech) ใครสั่งมาปุ๊บ ตักเสิร์ฟได้เลยใน 0.1 วินาที ไม่ต้องไปรบกวนเชฟตัวจริง
Management View: Caching คือเทคนิคที่ คุ้มค่าที่สุด ในการทำให้แอปเร็วขึ้นและประหยัดค่า Server ก่อนจะเอาเงินไปซื้อเครื่องแรงขึ้น ถามทีมก่อนว่า “Cache ดีพอยัง?”
เรื่องต้องรู้เพิ่ม: TTL (Time To Live) คือเวลาหมดอายุของ Cache — ข้าวผัดวางไว้นานเกินไปต้องทิ้ง ไม่งั้นลูกค้าได้ข้อมูลเก่า
4.4 Transactions — ป้องกันออเดอร์ชนกัน
ปัญหาคลาสสิก: มี “กุ้งแม่น้ำ” ตัวสุดท้าย ลูกค้า 2 โต๊ะกดสั่งพร้อมกันเป๊ะๆ (วงการเรียกว่า Race Condition) ใครจะได้กิน? ถ้าระบบไม่ดี อาจขายให้ทั้งสองโต๊ะแล้วมีโต๊ะหนึ่งต้องเสียใจ
วิธีแก้คือระบบ Transaction — “ล็อก” กุ้งตัวนั้นให้คนแรกที่คำสั่งมาถึง อีกคนจะได้รับแจ้งว่า “ของหมด” ทันที คำย่อที่มักได้ยินคือ ACID (Atomicity, Consistency, Isolation, Durability) — 4 คุณสมบัติที่ระบบธุรกรรมต้องมี
อีกคำที่สำคัญมากในยุคนี้คือ Idempotency — กดปุ่ม “สั่งซื้อ” รัวๆ แต่ระบบตัดเงินแค่ครั้งเดียว ไม่ใช่ 5 ครั้ง ใครเคยเจอตัวเองกดซ้ำแล้วถูกตัดเงินหลายรอบจะรู้ว่าฟีเจอร์นี้สำคัญมาก
5. Recap — โรงงานผลิตซอฟต์แวร์
มาเชื่อมต่อภาพรวม 3 บทแรกกันครับ:
- EP.01 (Hardware) — คือ ร่างกาย (CPU, RAM, Network) ที่พร้อมทำงาน
- EP.02 (CS Basics) — คือ สมองและระเบียบวินัย (Data Structures + Algorithms)
- EP.03 (Software) — คือ การประกอบธุรกิจ:
- สร้างหน้าร้านสวยและจำลูกค้าได้ (Frontend + Storage)
- บริหารครัวที่มีประสิทธิภาพและตรวจสอบได้ (Backend + Logging)
- วางระบบรับออเดอร์ที่รวดเร็ว (API + Caching)
สิ่งที่ผู้นำต้องจำ
- Frontend is just the tip of the iceberg — สิ่งที่ User เห็นเป็นแค่ 20% ของงานทั้งหมด อย่าลืมให้งบกับ 80% ที่มองไม่เห็น (Backend, Security, Logging)
- Speed comes from Architecture — แอปจะเร็วได้ต้องออกแบบ Data Flow ดีๆ (Caching, ลด Request) ไม่ใช่แค่ซื้อ Server แพงๆ
- กฎต้องอยู่หลังบ้าน — ความลับทางธุรกิจ อย่าไว้ใจหน้าบ้าน เพราะหน้าบ้านอยู่ในมือลูกค้า
ก้าวต่อไป — จากร้านเดียวสู่อาณาจักรแฟรนไชส์
โมเดล “ร้านอาหารเดียว” ที่เราเรียนมาใน EP.03 เรียกในวงการว่า Monolith — มันเวิร์คสำหรับลูกค้าหลักพันถึงหลักหมื่นคน
แต่ถ้าคุณต้องรองรับลูกค้า 1 ล้านคนพร้อมกันล่ะ? ครัวเดียวเอาไม่อยู่แน่ๆ เราต้องแตกเป็นครัวย่อยๆ หลายครัว มีครัวกลางประสานงาน มีระบบขนส่งระหว่างสาขา — นี่คือโลกของ Microservices & Cloud Architecture ที่เราจะไปเจาะลึกใน EP ถัดไปครับ