สวัสดี ruby’s duckie คนดีคนเดิมจ้าาาาาา ✨ หลังจากที่ได้เรียน mini gemini bootcamp จาก web ที่สอน data ที่เก่งที่สุดจาก พี่ทอย Data Rockie ก็อดไม่ได้ที่จะ Document แบ่งปัน รวมถึงเก็บไว้อ่านเองด้วยยยยยยยย เยี่ยมเลยละ 😆👍🏻 มาเรื่มกันดีกว่า อิอิ

Software 101

เป็นชุดคำสั่งที่ทำให้ระบบคอมพิวเตอร์ทำงานได้ มักจะถูกแบ่งออกเป็น 2 ส่วน :

frontend หน้าที่เราสามารถมองเห็น มีปุ่มต่างๆให้เรากด กรอก login เข้าไปในระบบ

Backend จะทำการเช็ค Sysmtem -> ทำให้สามารถส่งข้อมูลกลับไปได้ ว่าคนที่ login เข้ามามี acount แล้วหรือยัง ถ้ายังก็จะส่งกลับไปว่า “You Don’t Have Account, Please Sign in”

Software = Data ทั้งสองเรื่องนี้แทบจะเป็นเรื่องเดียวกัน เพราะทั้งคู่สามารถสร้าง Value ให้เราได้

🚀 Frontend ส่ง request ไปหา Backend , Backend ส่ง Respond ไปที่ Frontend

โดยทั้งสองส่วนนี้จะมี API (Application Programming Interface) ทำหน้าที่เป็นเหมือน ผู้สื่อสาร หรือสะพานเชื่อมส่งข้อมูลข้ามไปข้ามมา เหมือนเป็น translator ให้หลายๆ ภาษา โดยจะมี Role ว่าต้องส่งข้อมูลหรือ protocal แบบไหนถึงจะสามารถคุยกับ backend ได้เข้าใจ ซึ่งข้อมูลที่ได้สิ่งนั้นคือ respond ที่ Backend ส่งให้

💻 Logic ในโลกของ Software และการเขียนโปรแกรมง่ายๆ

มันคือกระบวนการในการเขียนโปรแกรมมีเอาไว้เพื่อ Process Data ลองนึกถึงสมการง่าย ๆ ของชีวิต เช่น

ถ้ายอดซื้อเกิน 1,000 บาท ให้ลด 10% แต่ถ้าเป็นสินค้าหมวดไอที ไม่ต้องลด 💖

เหมือนเป็นระบบที่เราต้องเขียนให้โปรแกรมวิ่งตามระบบที่เราตั้งเอาไว้

🌐 Build Our Server

ก่อนที่เราจะเริ่มสร้าง simple API server เราต้องทำอะไรบ้างง ?

hi gemini ! Build a lightweight, local CRM API server (port 8000) using only vanilla Node.js (no Express or external 
   frameworks)and http library.                                                                                         
   this is requirement.                                                                                                 
   1. Mini CRM customersCreate a database.xml file to serve as a mini-database. Include 10 sample CRM contact records.  
   2. Use the native http module to handle requests.                                                                    
   lets plan how to do this. Keep it simple.    

Genimi จะเรียก @Plan mode ขึ้นมา ให้เรา Allow ตาม Step ได้เลยย จากนั้นเราจะ Save plans เอาไว้อ่านในอนาคตว่าเราทำอะไรไปบ้าง ลังจากที่เรา OK กับ Plan ที่สร้างมาเเล้วให้เราสั่งให้ gemini รันให้ได้เลยย ~ 🚀 ซึ่งเราจะไปดื่มน้ำ กินกาแฟหรือไปซักผ้าก็ได้ระหว่างนี้ แต่ๆ ไม่ทันได้ลุกหรอ 😂 แปปเดียวก็เสร็จจจจจจ สุดยอดดดดด !! หลังจากเสร็จจะมีข้อความบอกว่า

เอ้ยย อย่าเพิ่งลุกไปกาแฟ ฉันทำเสร็จแล้ว ruby ! นายมาทดสอบ api ต่อได้เลย 🤯 😱

เริ่มตื่นเต้นขึ้นมาแล้วเลยละทุกคนน จะเห็นว่าเราจะได้มา 3 ไฟล์ ประกอบด้วย

แล้วเราทำการเริ่มเชื่อม API ของเราเองได้เลย ผ่าน teminal ด้วยคำสั่ง node server.js แล้วเอาลิงค์ locolhost ไปใส่ใน brower ได้เลยย ถ้าไม่มีปัญหาอะไรจะได้ xml data structure ออกมาแบบนี้ image

**API Endpoint **✨ คือส่วนที่เป็น http://localhpst:8000/api/custumers

✅ Query Parameter

เรา Add Query filter id ในไฟล์ server.js ของเรา เพื่อที่เราจะได้สามารถ query data มาได้

hi gemini ! looks good. Can you add query parameter id to filter data base on customer id. 😆

เมื่อเราลอง test server ที่ id 1, 2 แล้วจะได้ return custumer id ที่เรา query ไปออกมา และถ้าหาก test ?id = 99 แล้วพบว่าไม่มีจะขึ้นว่า 404 Not Found image

จากนั้นให้เราทำการ test ดูว่า ?id=9 มีไหม อย่าลืม node server.js ก่อนใน server run on และ ทุกครั้งที่เราเสร็จงานเราต้องทำการปิด server ของเราด้วยห้ามลืม control + C

จบแล้ว เป็นยังไงติดขัดตรงไหน สามารถมาแชร์กันได้เลยเด้ออออ 😆 สามารถไปอ่านต่อเต็มๆ ได้ที่ Ruby Duckie จะมีเนื้อหาที่น่าสนใจเช่นๆๆ การ Deployments ขึ้น Cloudflare, การใช้ Gemini Web base ในการ Vibe Coding !! แล้วเจอออกันน