▶SUBTHAIแปลไทย · ซับ · พากย์⚙
บทความแปลภาษาไทย · YouTube

Replay - Vibe Coding Academy Broadcast #1

0:000:00
เล่นเสียงต้นฉบับของวิดีโอ พร้อมแสดงซับไทยซิงก์ตามเวลา
กำลังโหลดวิดีโอ…
01

สรุปย่อ

ประเด็นสำคัญจากวิดีโอ

- **ช่อง:** Vibe Coding Academy · **ความยาว:** ~66 นาที · **ลิงก์:** https://www.youtube.com/watch?v=wQgIGYlab14

# สรุป: Replay - Vibe Coding Academy Broadcast #1
- **ช่อง:** Vibe Coding Academy · **ความยาว:** ~66 นาที · **ลิงก์:** https://www.youtube.com/watch?v=wQgIGYlab14

## ประเด็นหลัก
- Jul ผู้ก่อตั้ง Vibe Coding Academy แนะนำตัวว่าเป็นอดีต product manager ที่เปลี่ยนผ่านสู่การเป็น product builder ยุค AI และเปิดตัวไลฟ์ "Broadcast" ฉบับแรก ซึ่งเป็นเวอร์ชันไลฟ์ของจดหมายข่าวรายสองสัปดาห์ของเขา
- ค่านิยมสามข้อของแอคาเดมี: ความไว้วางใจ (trust) ความจริงใจ (authenticity) และการโชว์ฝีมือจริง (craft) — เน้นการแชร์สิ่งที่ทดสอบด้วยตัวเองจริง
- ข่าวแอคาเดมี: คอร์ส Code for Product Managers ทั้งรุ่นอังกฤษ (จบแล้ว) และฝรั่งเศส (เพิ่งเริ่ม) รวมถึง bootcamp แปดสัปดาห์ Ship Your First Test with Code พร้อมโค้ดส่วนลด 20% สำหรับสมาชิก
- ข่าววงการ vibe coding: GPT-5.6 จาก OpenAI (สูสีกับ Opus 4.6, ยังเป็นรอง Fable), ฟีเจอร์ interactive AI presentation ของ Bolt, การรวม Codex เข้ากับ ChatGPT, และบทความของ Anthropic เรื่องการเลือกโมเดลกับระดับ effort ที่เหมาะสม
- บทความจาก Lenny's Newsletter: CPTO ของ Netflix เน้นว่าโลกยุค AI ต้องการ "system thinkers" ที่ประสานการใช้ AI ให้เป็นหนึ่งเดียวทั่วทั้งทีม
- หัวข้อหลักคือ loop engineering: อธิบาย turn-based loops (แบบที่ Claude Code ใช้อยู่แล้ว), goal-based loops (คำสั่ง /goal) และ agent-based loops ที่แยกบทบาท planner กับ executor
- ปัญหา "complex task trap": ใช้ frontier model ราคาแพงทั้งงาน หรือใช้โมเดลถูกแต่ต้อง prompt ซ้ำไม่รู้จบ — loops เป็นทางออกที่ใช้ frontier model เฉพาะจุดสำคัญ (สเปก + QA) และใช้โมเดลถูกสำหรับงานลงมือเขียนโค้ด
- สาธิตจริง: สร้างฟีเจอร์ flip cards testimonials สไตล์ Senja ลงบนเว็บไซต์ Vibe Coding Academy โดยมี senior dev (ใช้ Fable) เขียนสเปก แบ่งงาน ตรวจ QA และ junior dev (ใช้ Sonnet) ลงมือ implement front end, back end และ wire up
- การตั้งค่าแบบนี้ถูกกว่า เชื่อถือได้กว่า และใช้ context engineering ให้ agent โฟกัสเฉพาะงานของตัวเอง เหมือนการบริหารทีมมนุษย์
- บทเรียนจากเดโม: งานไม่สำเร็จในครั้งแรก (ปัญหาหน้าจอ/cache กับวิดเจ็ต Senja) — ต้องนำ feedback ไปปรับปรุง agent ให้ QA ตามสเปกตั้งต้นแม่นขึ้น

## ความเห็นสรุป
วิดีโอนี้เหมาะมากสำหรับคนสาย product ที่อยากเห็นภาพชัดว่า "ทีม AI" แบบ multi-agent ทำงานจริงอย่างไร ตั้งแต่หลักการจนถึงเดโมสดที่มีทั้งความสำเร็จและอุปสรรคอย่างตรงไปตรงมา จุดแข็งคือความจริงใจตามค่านิยมที่ผู้พูดประกาศไว้ — ไม่ปิดบังว่าการตั้งค่าแบบนี้ต้อง iterate หลายรอบ และไม่เหมาะกับงานเล็กๆ ครั้งเดียวจบ
02

คำแปลเต็ม

แปลตามบทสนทนาต้นฉบับ ปรับเป็นภาษาไทยธรรมชาติ

[P1] การสตรีมจะเปิดให้เข้าร่วมได้ และ คนอื่นๆ ก็จะเข้ามาได้ครับ โอเค ผมจะขอปรับเลย์เอาต์ (layout) ตรงนี้นิดหน่อยนะครับ อีกจุดเดียว แล้ว ผมจะเริ่มเลย ทุกคนได้ยินผมชัดไหมครับ เห็นหน้าจอผมชัดไหมครับ ทุกอย่าง เรียบร้อยดีไหม >> ครับ ทุกอย่างโอเค >> เยี่ยมมากครับ ทุกคนตอบได้ผ่านอิโมจิ และ อย่าลืมถามคำถามได้ตลอดการนำเสนอเลยนะครับ โอเค ผมจะเริ่มจับเวลา แล้ว เราจะเริ่มกันทันที เอาล่ะ ขอต้อนรับอีกครั้งสู่ Vibe Coding Academy Broadcast ฉบับแรกครับ

[P2] ต้องขอโทษอีกครั้ง สำหรับ ปัญหาทางเทคนิคเล็กน้อยนะครับ เราจะดำเนินการจัด Vibe Coding Academy Broadcast ฉบับแรกนี้กัน โดยพื้นฐานแล้ว นี่คือฉบับไลฟ์ของจดหมายข่าว (newsletter) ของ Vibe Coding Academy ที่ทุกคนจะได้รับทุกสองสัปดาห์ และ เดี๋ยวผมจะอธิบายรายละเอียดเพิ่มเติมว่า ทำไมผมถึงเกิดไอเดียจัด broadcast ทุกสองสัปดาห์นี้ขึ้นมา เอาล่ะ ไม่รอช้าแล้ว ขอเริ่มจากแนะนำตัวสั้นๆ ก่อน เพราะ บางคนอาจจะยังไม่รู้จักผม หรือ รู้ว่าผมทำอะไรอยู่ ขอทบทวนให้อีกครั้งนะครับ ผมชื่อ Jul

[P3] ผมเป็นอดีต product manager และ ตอนนี้เป็นผู้ก่อตั้ง Vibe Coding Academy ซึ่งเป็นแพลตฟอร์มที่ช่วยคนสาย product ในการเปลี่ยนผ่านสู่บทบาทใหม่ๆ อย่าง product builder ที่ขับเคลื่อนด้วย AI หรือ จะเรียกเป็น product manager ยุคใหม่ก็ได้ ซึ่งเป็นตำแหน่งงานใหม่ที่ผู้คนทำงานโปรเจกต์ให้เดินหน้าต่อไปได้โดยไม่ต้องพึ่งพาใคร เพราะ ด้วย AI พวกเขาสามารถเข้าถึงทักษะทั้งหมดที่เมื่อก่อนมีแค่ในมือของนักพัฒนา นักออกแบบ นักวิเคราะห์ข้อมูล ฯลฯ

[P4] และ ผ่าน Vibe Coding Academy ผมมีการเรียน e-learning การสอน รวมถึงคอร์สไลฟ์ ซึ่งเดี๋ยวผมจะลงรายละเอียดเพิ่มเติม แต่สิ่งที่ผมแชร์ด้วยก็คือจดหมายข่าวรายสองสัปดาห์ ที่ผมจะแชร์ข่าวสารเกี่ยวกับแอคาเดมี รวมถึงข่าวอื่นๆ ที่เกี่ยวข้องกับช่อง YouTube ของผม ฯลฯ ครับ เอาล่ะ สวัสดีทุกคนที่เพิ่งเข้าร่วม ขอโทษอีกครั้ง สำหรับ ปัญหาทางเทคนิค และ ขอบคุณ ที่เข้าร่วมกันอีกครั้งครับ

[P5] แล้วทำไมผมถึงตัดสินใจเปลี่ยนจดหมายข่าวนี้ให้กลายเป็น podcast ล่ะ? ก็คือ ผมมีอัตราการเปิดอ่าน (open rate) ที่ค่อนข้างดี ผมคิดว่าน่าจะต่ำกว่า 40% นิดหน่อย ดังนั้น ผมดีใจที่เห็นคนเข้ามาอ่านบทความทุกสองสัปดาห์ แต่ไม่กี่สัปดาห์ก่อน ผมถอยออกมามองภาพรวม และ พยายามคิดทบทวนถึงคุณค่าต่างๆ ที่ผมอยากสื่อสาร ในฐานะผู้ก่อตั้ง Vibe Coding Academy และ มันก็ง่ายมากที่จะได้คุณค่าสามข้อนี้มา ข้อแรกคือความไว้วางใจ (trust)

[P6] โดยพื้นฐาน ผมอยากให้ทุกคนเชื่อว่า สิ่งที่ผมแชร์ในคอนเทนต์ทั้งหมดนั้นเป็นเรื่องจริง และ เป็นสิ่งที่ผมทดสอบด้วยตัวเองจริงๆ เพราะ เป้าหมายของผมคือการช่วยให้ทุกคนเรียนรู้ทักษะเหล่านี้ ข้อที่สองคือความจริงใจ (authenticity) ผมอยากลดตัวกรอง (filter) ให้เหลือน้อยที่สุด ผมอยากให้ทุกคนเห็นว่า อะไรใช้ได้ อะไรใช้ไม่ได้ เพราะ การได้เห็นของจริงทั้งที่ใช้ได้และใช้ไม่ได้นี่แหละ ที่ทำให้ทุกคนเรียนรู้ได้จริง และ สิ่งที่ผมอยากโชว์อีกอย่างคือฝีมือ (craft) ผมอยากโชว์งานจริงๆ

[P7] ผมอยากโชว์ทักษะที่เป็นจริง ที่ผมสามารถสอนและถ่ายทอดให้ทุกคนได้ ไม่ว่าจะผ่านเซสชันไลฟ์เหล่านี้ หรือ ผ่านคอร์สที่ผมมี ขอหยุดแป๊บนึงนะครับ เพราะ เห็นว่ามีคนตอบรับเข้ามา ขอแชร์ลิงก์อีกครั้งนะครับ เอาล่ะ ขอโทษทีครับ เรามาดูแผนการวันนี้กันต่อดีกว่า แผนของ broadcast นี้โดยรวม ก็คือแผนเดียวกับที่ผมใช้จัดระเบียบจดหมายข่าวของผม

[P8] เราจะเริ่มด้วยข่าวเกี่ยวกับ Vibe Coding Academy ว่าเกิดอะไรขึ้นในสองสัปดาห์ที่ผ่านมา จากนั้นเราจะเจาะลึกข่าววงการ vibe coding ว่าเกิดอะไรขึ้นในโลกของ vibe coding และ สุดท้ายแต่ไม่ท้ายสุด เราจะโฟกัสที่หัวข้อหลัก ซึ่งก็คือ loop engineering เราจะมาเรียนรู้กันว่า วงวน (loop) คืออะไร และ ผมจะพาทุกคนลงมือทำ loop จริงๆ หนึ่งตัว สำหรับฟีเจอร์เฉพาะที่เราจะสร้างร่วมกัน เอาล่ะ แล้วสองสัปดาห์ที่ผ่านมาเกิดอะไรขึ้นบ้าง?

[P9] ก็มีคอร์สไลฟ์สองรุ่น (cohort) ของคอร์สชื่อ Code for Product Managers ที่กำลังดำเนินอยู่ ตอนนี้เหลืออยู่รุ่นเดียว เพราะ รุ่นภาษาอังกฤษเพิ่งจบไป เมื่อวานนี้เอง ที่มีเซสชันสุดท้าย กับคนที่มาจากเยอรมนี อเมริกา และ ฝรั่งเศส มันคุ้มค่ามาก และ ดีใจที่เห็นคนเริ่มเก่งทักษะ Claude Code มากขึ้น และ นำไปใช้กับแบบฝึกหัดจริง ฯลฯ และ ในอีกด้านหนึ่ง ผมก็เริ่มคอร์สรุ่นภาษาฝรั่งเศส ของคอร์ส Code for Product Managers เมื่อวานเช่นกัน

[P10] เซสชันภาษาฝรั่งเศสเพิ่งเริ่ม เซสชันแรกมีคนในห้องกว่าสิบคนนิดหน่อย และ จะดำเนินต่อไปในอีกไม่กี่สัปดาห์ข้างหน้า ด้วยเซสชันเพิ่มเติมอีกสองเซสชัน ในสองสัปดาห์ที่จะถึงนี้ และ มีข่าวเกี่ยวกับสิ่งที่กำลังจะมาถึงด้วย คอร์สทั้งสองนี้ ทั้ง Code for Product Managers และ เวอร์ชันภาษาฝรั่งเศส ผมเปิดรอบรับสมัคร (cohort) ใหม่แล้ว ทุกคนสามารถกดลิงก์เพื่อสมัครได้เลย

[P11] ผมจะแชร์แหล่งข้อมูลให้แน่นอน แต่คอร์สเปิดรับสมัครแล้ว เริ่มสมัครได้ตั้งแต่วันนี้ และ ในฐานะสมาชิกชุมชนของแอคาเดมี ทุกคนได้ส่วนลด 20% ด้วยโค้ดโปรโมชัน สำหรับคอร์สสองตัวนี้ ไม่ว่าจะเป็นเวอร์ชันภาษาฝรั่งเศสหรือภาษาอังกฤษ แล้วแต่ที่ทุกคนถนัด และ ยังมีอีกคอร์สที่ผมคิดว่าได้แชร์ในจดหมายข่าวฉบับล่าสุดแล้ว ซึ่งเป็นคอร์สที่แตกต่างไปโดยสิ้นเชิง ชื่อว่า Ship Your First Test with Code

[P12] โดยพื้นฐานแล้ว นี่คือ bootcamp แปดสัปดาห์ สำหรับผู้ที่ใฝ่ฝันจะเป็นผู้ก่อตั้ง ที่อยากไปจากศูนย์ จากไอเดีย (idea) จริงๆ จนกลายเป็นผลิตภัณฑ์ที่พร้อมขึ้น production ครับ นี่เป็นคอร์สที่แตกต่างจากคอร์สอื่นๆ ที่ผมทำมา โดยอิงจาก master course ซึ่งเป็นคอร์สเรือธงของ Vibe Coding Academy ที่คุณจะได้เรียนรู้วิธีสร้างแอปพลิเคชันจริงๆ เพียงแต่ แทนที่จะต้องดูวิดีโอแบบ asynchronous

[P13] สิ่งที่ผมทำคือจัดเซสชันไลฟ์ และ เซสชันเหล่านี้กระจายไปทั่วแปดสัปดาห์ ปิดท้ายด้วย demo day ที่ทุกคนจะโชว์เดโมสดของผลิตภัณฑ์ตัวเอง ซึ่งผลิตภัณฑ์ที่พร้อมขึ้น production หมายความว่า ต้องมีระบบชำระเงินด้วย Stripe มีการเตรียมพร้อมสำหรับ deployment มีการยืนยันตัวตนด้วย Supabase และ เข้าใจทุกอย่างที่ทำงานอยู่เบื้องหลัง ซึ่งสำคัญมาก เมื่อต้องสร้างผลิตภัณฑ์ที่พร้อมขึ้นโปรดักชัน และ คุณสบายใจที่จะ iterate ปรับปรุง ตอบสนองคำขอฟีเจอร์ ฯลฯ นี่คือข่าวทั้งหมด และ ผมยังไม่ได้พูดถึง แต่สำหรับคอร์สนี้ ก็มีโค้ดส่วนลด 20% ที่ใช้ได้ทันที มีผลจนถึงสิ้นเดือนกรกฎาคม และ อีกอย่างที่ผมไม่ได้พูดถึง ในสไลด์ก่อนหน้า เกี่ยวกับ broadcast นี้

[P14] เป้าหมายก็คือการพูดคุยกับชุมชน ตอบคำถาม และ รับฟัง feedback จากทุกคน เป้าหมายของเซสชันเหล่านี้คือ ทุกคนสามารถถามคำถามอะไรก็ได้ที่อยากรู้ ดังนั้น ถามได้เลยในแชท แล้วผมจะตอบ และ ถ้าใครอยากจะพูดออกมาถามสดๆ ก็เชิญได้เลยครับ ผมอยากทำให้รูปแบบนี้โต้ตอบได้มากที่สุด เอาล่ะ มาถึงส่วนที่สองของเว็บบินาร์แล้ว อะไรใหม่ใน Vibe Coding Academy?

[P15] เกิดอะไรขึ้นบ้าง และ ผมเห็นอะไรในสองสัปดาห์ที่ผ่านมา ที่น่าสนใจสำหรับคนที่อยากติดตามข่าว vibe coding ข่าวเหล่านี้มาจากอีกโปรเจกต์หนึ่ง ที่ผมเคยแชร์ในจดหมายข่าวก่อนหน้านี้ ซึ่งเป็นช่องทางรวม changelog (Yet Another Changelog) ที่รวบรวมข่าว vibe coding ล่าสุดและร้อนแรงที่สุด และ จากข้อมูลนี้ สำหรับแต่ละผลิตภัณฑ์ ผมคัดเลือกสี่รีลีสหลัก ที่โดนใจผมจริงๆ และ คิดว่าน่าจะเกี่ยวข้องกับทุกคน

[P16] อย่างแรกก็คือการปล่อย GPT 5.6 ขอโทษที การปล่อย GPT-5.6 นี่คือโมเดลใหม่ล่าสุดจาก OpenAI ผมเริ่มเล่นกับมันแล้ว แต่ถ้าจะให้พูดตรงๆ ว่าผมได้ข้อสรุปจริงๆ เกี่ยวกับโมเดลนี้ไหม ผมรู้สึกว่ามันสูสีกับ Opus 4.6 แต่สำหรับผม มันยังเป็นรอง Fable อยู่ ข้อดีคือ ดูเหมือนมันกิน token น้อยกว่า Opus 4.8 แต่ก็เป็นการคาดเดาล้วนๆ ผมยังไม่ได้ทดสอบมันมากพอ ที่จะให้ข้อสรุปที่เป็นรูปธรรมจริงๆ

[P17] อีกรีลีสหนึ่งที่ผมว่าสนุกดีคือ Bolt ครับ ทุกคนอาจจะรู้จัก Bolt พวกเขาเป็นคู่แข่งของ Lovable และ เพิ่งออกฟีเจอร์เจ๋งๆ คือ interactive AI presentation คุณสามารถสร้างสไลด์ได้โดยตรงภายใน Bolt จาก Codex หรือ Cursor ก็ได้ นั่นเป็นการเพิ่มเติมที่ดี และ อีกครั้ง ผมไม่ได้วางแผนจะใช้มัน เพราะ ผมใช้ Figma Slides อยู่แล้ว แต่น่าจะลองดูได้นะครับ

[P18] อีกเรื่องหนึ่งที่อาจฟังดูไม่สำคัญ แต่สำหรับผม มันเป็นตัวเปลี่ยนเกมครั้งใหญ่ นั่นคือ OpenAI ตัดสินใจรวม Codex เข้ากับ ChatGPT หมายความว่า พวกเขาเสนอความสามารถทั้งหมดของโมเดล OpenAI ในแอปเดียว ในแบบเดียวกับที่แอป Claude ให้เข้าถึง Claude Code และ Claude Chat ในที่เดียว และ สุดท้าย มีบทความหนึ่งที่อยากแชร์ ซึ่งเขียนโดย Anthropic เกี่ยวกับวิธีเลือกโมเดลที่ใช่ และ ระดับความพยายาม (effort) ที่ใช่ สำหรับงานที่ใช่

[P19] ขอแชร์ลิงก์ให้ในแชทเลย แล้ว ก็มีส่วนหนึ่งที่น่าสนใจมาก มีส่วนที่คุณจะเห็นว่า OpenAI ที่ low effort เป็นยังไง ที่ high effort เป็นยังไง และ Fable แม้แต่ที่ low effort เป็นยังไง เช่น เขาบอกว่า Sonnet ที่ high effort ก็เหมือนได้นักทำงานทั่วไปที่เก่งมากมาทั้งบ่าย เขาจะอ่านทุกอย่าง รันทุกอย่าง ตรวจงานสองรอบ และ สุดท้ายเข้าใจโค้ดเฉพาะของคุณอย่างถ่องแท้

[P20] และ พวกเขาไม่ได้มีความรู้สึกแบบ "ฉันเคยเห็นแบบนี้มาก่อน" ในขณะที่ Fable แม้แต่ที่ low effort ก็เป็นเหมือนผู้เชี่ยวชาญเฉพาะทาง ที่มองงานคุณปุ๊บ แล้วสามารถหาและชี้จุดที่ไม่มีใครอื่นเห็นได้ เอาล่ะ ผมจะไม่ลงรายละเอียดของพรีเซนเทชันนี้แน่นอน เพราะ เราไม่มีเวลา แต่ผมแนะนำอย่างยิ่ง ให้ทุกคนไปลองดู มันน่าสนใจจริงๆ โอเค ไปสไลด์ถัดไปกัน และ ไปที่บทความจริงกันเลย

[P21] ผมไม่รู้ว่าทุกคนติดตามจดหมายข่าวของ Lenny หรือเปล่า แต่ผมว่ามันดีที่สุด ถ้ายังไม่ได้ติดตาม ผมแนะนำให้ติดตามเลย เพราะ ปริมาณคอนเทนต์ที่เขาทำออกมา กับแขกระดับสูงมากมายขนาดนั้น หาที่เปรียบได้ยาก และ ในพอดแคสต์ล่าสุด เขาสัมภาษณ์ CPTO ของ Netflix คือ Elizabeth Stone ซึ่งบอกว่า เราต้องการคนที่คิดเชิงระบบ (system thinkers) มากขึ้น ในโลกที่เต็มไปด้วย AI แล้วเธอหมายความว่าอะไร? สิ่งที่เธอหมายถึงก็คือ ในโลกที่เทคโนโลยีสุดยอดนี้เปิดให้ทุกคนเข้าถึงได้

[P22] สิ่งที่สร้างความแตกต่างอย่างแท้จริงคือ คุณสามารถประสาน และ รวมการใช้ AI ภายในบริษัทหนึ่งๆ ได้มากแค่ไหน

[P23] เพราะ ถ้าในบริษัทหนึ่ง มีสมาชิกทีมคนหนึ่งที่เป็นผู้ใช้ระดับสูง ผู้เชี่ยวชาญและ power user ของ Claude Code ในขณะที่ product designer ที่เขาร่วมงานด้วย กลับใช้ AI ไม่เป็น ในองค์กรแบบนี้ คุณกำลังสูญเสียพลังที่แท้จริงของ AI ไป และ นี่เป็นตัวอย่างที่เฉพาะเจาะจงและง่ายมาก จริงๆ แล้วง่ายมาก แต่ขอย้ำว่า ตัวสร้างความแตกต่างหลักในทุกวันนี้ คือการทำให้วิธีการทำงานของสมาชิกในทีมเป็นหนึ่งเดียวกัน แม้แต่กับคนที่เชี่ยวชาญโค้ดอยู่แล้ว ซึ่งหมายถึงการสร้าง skills การสร้าง sub agents หรือ ทั้งหมดที่เราเรียกว่า harness ซึ่งต้องใช้การฝึกฝนพอสมควร นี่คือเหตุผลที่ผมสร้างคอร์ส Code for PMs ขึ้นมา

[P24] แต่มีระบบหนึ่งที่คุณสามารถสร้าง และ แพร่กระจายในทีมของคุณได้ นั่นคือ loops แล้วทำไม loops ถึงน่าสนใจ? ขออธิบายปัญหาที่มันแก้ได้ก่อน ผมเรียกมันว่า กับดักงานซับซ้อน (complex task trap) ลองจินตนาการว่า เราอยู่ในสถานการณ์นี้ เราเริ่มใช้ Claude Code

[P25] ผมไม่รู้ว่าทุกคนอยู่ระดับไหน แต่ถ้าคุณเริ่มเล่นกับ Claude Code รู้พื้นฐานของ Claude Code แล้ว ตอนนี้อาจเริ่มรัน agents หรือ ใช้ skills เพื่อเพิ่มประสิทธิภาพการใช้งาน ถ้าคุณเริ่มมีสิ่งที่เราเรียกว่า harness ที่ให้คุณทำงานอัตโนมัติ และ ใช้ AI อย่างมีประสิทธิภาพ คุณอาจเริ่มทำงานที่ซับซ้อน ซึ่งหมายความว่า คุณอาจเริ่มใช้ frontier model

[P26] โมเดลระดับ frontier อย่าง Fable ที่สามารถจัดการงานซับซ้อนพวกนั้นได้จริง แต่ข้อเสียหลักคือ Fable กิน token เยอะมาก และ ยังไม่พร้อมใช้งานเสมอไป มันใช้ได้เฉพาะแผน Max เท่านั้น พูดง่ายๆ คือแพงมาก

[P27] ในทางกลับกัน คุณอาจบอกว่า โอเค ฉันจะใช้โมเดลที่ถูกกว่า ใช้ Sonnet แทน แต่สำหรับงานซับซ้อนพวกนี้ ถ้าคุณอยากให้งานสำเร็จอย่างถูกต้อง คุณจะต้อง prompt ซ้ำแล้วซ้ำเล่า iterate ไปเรื่อยๆ ซึ่งสุดท้าย คุณก็จะกิน token เยอะพอๆ กับการใช้ frontier model เช่นเดียวกัน ดังนั้น สิ่งที่เกิดขึ้นคือ ไม่ทางใดก็ทางหนึ่ง คุณจ่าย ไม่ด้วย token ก็ด้วยคุณภาพ

[P28] นั่นหมายความว่า มันแพงมาก หรือ ไม่ก็ต้องยอมลดคุณภาพลง และ มันน่าหงุดหงิดมาก เวลาต้องยอมลดคุณภาพ เมื่อคุณอยากขายของ หรือ อยากสร้างผลิตภัณฑ์ที่ดูดี โดยเฉพาะทุกวันนี้ ที่ใครๆ ก็สร้างได้ ดังนั้น ยังมีอีกวิธีหนึ่ง ที่จะใช้ frontier model เหล่านั้น โดยไม่กิน token มากเกินไป และ ไม่ต้องยอมลดคุณภาพ นั่นก็คือ loops

[P29] ผมเรียนรู้เรื่อง loops เยอะมากจากคอนเทนต์ออนไลน์ แต่มีบทความหนึ่งของ Anthropic ที่เกี่ยวข้องมาก ที่ช่วยให้เริ่มต้นกับ loops ได้ และ เพื่อเป็นการเริ่ม ผมสรุปบางส่วนของบทความนี้ไว้ เพื่อประหยัดเวลาให้ทุกคน และ อย่างน้อย ทุกคนจะเข้าใจอย่างรวดเร็วว่า loops คืออะไร

[P30] หลักการหลักก็คือ คุณตั้งเป้าหมาย (goal) สำหรับสิ่งที่อยากทำให้สำเร็จ จากนั้นลงมือทำงาน เปรียบเทียบผลลัพธ์ของงานกับเป้าหมาย และ ตราบใดที่เป้าหมายยังไม่สำเร็จ คุณก็ยังคง execute, prompt AI ไปเรื่อยๆ และ ด้วยวิธีนี้ คุณสามารถแบ่งงานระหว่าง planner กับ executor ได้ เดี๋ยวผมจะลงรายละเอียดเพิ่มเติมอีกทีหลัง เอาล่ะ นี่คือแนวคิดแรกที่พวกเขานำเสนอ คือ turn-based loops แล้ว turn-based loops คืออะไร? [P31] นี่คือวิธีการที่ Claude Code ทำงานอยู่ในปัจจุบันพอดี แล้วมันทำงานยังไงล่ะ? ก็คือ คุณเริ่มจาก prompt เมื่อคุณ prompt Claude Code สิ่งที่เกิดขึ้นคือ คุณเริ่มด้วย prompt พร้อมกับบริบท (context) ที่โมเดลจะรวบรวม ลงมือทำ และ มันจะตรวจสอบงานของตัวเอง กับเป้าหมายที่มันกำหนดขึ้นเอง จากบริบทที่มันเข้าใจ

[P32] นั่นหมายความว่า โดยค่าเริ่มต้นแล้ว Claude Code ใช้ loops เหล่านี้ สำหรับงานซับซ้อน โดยอิงจากเป้าหมายที่ตัวมันเองตีความ และ เปรียบเทียบไปเรื่อยๆ จนกว่าจะได้ผลลัพธ์ที่มันคิดว่าถูกต้อง โอเค

[P33] นี่คือสิ่งที่คุณใช้งานอยู่ โดยที่ไม่รู้ตัว และ มันทำงานได้ดีมาก ถ้าคุณโฟกัสกับงานเล็กๆ งานง่ายๆ ฯลฯ จากนั้นก็มี goal-based loops ซึ่งก็คือหลักการเดียวกันเป๊ะ เว้นแต่ ใช้คำสั่ง /goal ที่คุณอาจจะรู้จัก และ ใช้ได้กับผู้ใช้ Claude Code ทุกคน แทนที่จะให้ AI กำหนดเป้าหมายเอง จากบริบทที่คุณให้ คุณเริ่มต้นด้วยการ prompt ด้วยเป้าหมายแทน

[P34] คุณจะพิมพ์ว่า /goal เปลี่ยนแบรนดิ้ง (branding) ของเว็บไซต์เรา ให้เหมาะกับแอคาเดมี หรือ แพลตฟอร์ม e-learning มากขึ้น เป็นต้น นี่ถือเป็นการอัปเกรดจาก loop แบบแรก แต่ก็ยังค่อนข้างจำกัด และ มันไม่สามารถแก้ปัญหาที่ผมยกขึ้นมาได้ นั่นคือ โอเค ฉันอยากใช้ Fable สำหรับบางงานเท่านั้น และ อยากใช้โมเดลที่ถูกกว่าสำหรับงานอื่น และ นี่คือจุดที่ agent-based loops เข้ามา วิธีการทำงานเป็นแบบนี้ คุณมีตัวกระตุ้น (trigger) สำหรับ loop

[P35] ตัวกระตุ้นคือ คุณเปิดใช้งานมันด้วยมือ หรือ คุณตั้งเวลามัน เพื่อให้รันอัตโนมัติ เช่น ทุกวันเที่ยงคืน แล้ว สิ่งที่มันจะทำคือ เรียก agent หนึ่ง ที่จะเรียก agent ที่สอง มันจะคิดงานขึ้นมา เขียนสเปก (spec) แล้ว เรียก agent อีกตัว ที่จะทำงานนั้นให้สำเร็จ จากนั้นส่งผลลัพธ์กลับไปให้ agent ตัวแรก โอเค?

[P36] และ ด้วยวิธีนี้ เรามีระบบของ agents ที่คุยกันเอง ไปเรื่อยๆ จนกว่าเป้าหมายจะสำเร็จ แล้วมันหมายความว่าอะไรในทางปฏิบัติ? ผมจะโชว์ให้ดูจริงๆ ว่า รัน agent-based loops เหล่านี้ยังไง และ เราจะนำมันไปใช้ จริงๆ กับการสร้างฟีเจอร์ใหม่ให้ Vibe Coding Academy โดยสิ่งที่เราจะทำคือ ใช้สอง agents หนึ่งคือ senior developer ที่ใช้ Fable และ อีกหนึ่งคือ junior developer ที่ใช้ Sonnet และ สองคนนี้จะทำงานร่วมกันแบบนี้

[P37] ขอเปิดไดอะแกรมที่อยากแชร์ให้ดูหน่อย โดยพื้นฐาน สิ่งที่จะเกิดขึ้นเป็นแบบนี้ โอเค ผมว่า ทุกคนยังไม่เห็นนะ เอาล่ะ ขอแชร์หน้าจออีกครั้ง เอาล่ะ ปกติแล้ว ทุกคนน่าจะเห็นไดอะแกรม Excalidraw แล้ว ขอแป๊บนึง เพราะ ผมไม่แน่ใจว่ามันถูกต้องไหม ใช่ นี่คือสิ่งที่ผมต้องการ ใช่ เยี่ยมมาก แล้วจะเกิดอะไรขึ้นตรงนี้?

[P38] เรามีไอเดียฟีเจอร์ใหม่ที่อยากสร้าง และ สิ่งที่เราจะทำคือ รัน loop และ สิ่งที่จะเกิดขึ้นคือ เมื่อไหร่ก็ตามที่ loop ถูกกระตุ้น senior dev จะเขียนสเปกขึ้นมา สเปกเหล่านี้จะถูกแบ่งออกเป็นสามงานหลัก งานหนึ่งสำหรับ front end งานหนึ่งสำหรับ back end และ งานหนึ่งสำหรับเชื่อมต่อ front end กับ back end เข้าด้วยกัน

[P39] และ เมื่องานเหล่านี้ถูกแบ่งออกแล้ว งานเหล่านี้จะถูกส่งต่อโดย senior dev ให้ junior dev ลงมือทำ และ จากนั้น ขอให้ senior dev ตรวจสอบ หรือ ทำ QA ให้ งานแรก แล้ว ถ้าผ่านการตรวจสอบ senior dev ก็จะส่งต่องานให้ junior dev ลงมือทำให้สำเร็จ ถ้า QA ไม่ผ่าน senior dev ก็จะบอก junior dev ว่า อันนี้ใช้ไม่ได้ ลงมือทำงานใหม่ ฯลฯ ไปเรื่อยๆ จนกว่างานทั้งหมดจะเสร็จ

[P40] และ สิ่งที่น่าสนใจในหลักการหลักนี้คือ เรามี senior dev ที่ทำงานกับ Fable ตรงนี้ และ เรามี junior dev ที่ทำงานกับ Sonnet และ นั่นหมายความว่า การแตกงาน (breakdown) ไม่ว่าจะตรงนี้ หรือ ตรงนี้ จะเกิดขึ้นด้วย frontier model ซึ่งเป็นตัวที่แพงที่สุด ในขณะที่งานที่ง่ายที่สุด ซึ่งก็คือการลงมือเขียนโค้ดตามสเปก และ ตามการแบ่งงาน จะทำโดย dev ที่ใช้ Sonnet โดยตรง

[P41] เราจะนำสิ่งนี้ไปใช้จริง กับตัวอย่างที่เป็นรูปธรรม ขอพักแป๊บนึงตรงนี้ ทุกคนเข้าใจไหม หรือ งงไปหมดแล้ว? บอกผมได้เลย แค่อยากรู้ว่า อย่างน้อยมันก็เข้าใจได้ใช่ไหม ตอบได้ด้วยอิโมจิ ถ้าชอบ ทุกอย่างดี เยี่ยมมาก ดีมาก โอเค ผมยังไม่ได้เปิดแชท เยี่ยม ไปที่การสาธิตกันต่อดีกว่า เอาล่ะ ไปกันเลย เราจะสร้างฟีเจอร์ใหม่ให้เว็บไซต์ของ Vibe Coding Academy ขอเปิด Vibe Coding Academy ก่อน

[P42] ผมเปิดมันไว้ใน environment ในเครื่องของผมแล้ว ซึ่งโดยพื้นฐานก็ตรงกับที่อยู่บน production และ อย่างที่เห็นบนหน้า index ของ Vibe Coding Academy ผมมี testimonials จากนักเรียนของ Vibe Coding Academy ตรงนี้ มันดูดีทีเดียว แต่ผมอยากปรับปรุงดีไซน์ของ testimonials เหล่านี้

[P43] และ มีจุดหนึ่งเกี่ยวกับ testimonials เหล่านี้ คือ มันถูกรวบรวมขึ้นตามคอร์สที่ผมสอน และ ผมเก็บมันไว้ในเครื่องมือเฉพาะที่ชื่อว่า Senja (senja.io) ซึ่งเป็น SaaS ที่จัดการเรื่อง testimonials ให้คุณ และ มีอยู่หน้าหนึ่งที่ผมชอบมาก ที่มี testimonials แบบ flip cards ที่ผมอยากนำมาปรับใช้บนเว็บไซต์ของผม นี่คือสิ่งที่เราจะสร้าง

[P44] สิ่งที่เราอยากทำคือ แทนที่ ticker ตรงนี้ ด้วย carousel ของ flip cards แบบนี้ ที่ดูเหมือนกับอันนี้เป๊ะ เอาล่ะ มาลงมือทำกัน ในการทำแบบนี้ ผมจะเปิด Claude Code ขอโทษด้วยนะครับ แต่ด้วยเหตุผลหลายอย่าง ที่ผมจะไม่ลงรายละเอียด ผมจะใช้ Claude Code จากเทอร์มินัล ไม่ใช่แอป Claude Code desktop แต่ไม่ต้องกังวล มันทำงานเหมือนกันเป๊ะบน Claude Code desktop แค่สะดวกกว่าสำหรับผมในการเปิดใช้งาน

[P45] ตรงนี้ เราสามารถเปิดเซสชัน Claude Code ได้ และ สิ่งที่เราจะทำคือ เปลี่ยนโหมด ไปที่ auto mode ถ้าคุณไม่รู้จักช็อตคัตนี้ คุณกดปุ่ม shift + tab แล้ว จะสลับไปมาระหว่างโหมดต่างๆ และ โหมดที่ผมอยากใช้คือ auto mode ซึ่งเป็นโหมดที่ผมไม่ต้องตรวจสอบงานทั้งหมดที่ Claude Code รัน และ สิ่งที่ผมจะทำคือ อธิบายสิ่งที่อยากทำ และ ขอให้เริ่ม loop อย่างชัดเจน

[P46] โอเค ผมจะพูดว่า ผมจะเปิดใช้ custom command ที่ผมสร้างไว้ ผมจะไม่ลงรายละเอียด เกี่ยวกับวิธีสร้าง custom command ที่ผมสร้างเอง และ ช่วยให้ผมปรับแต่งงานเฉพาะได้ ยังไงก็ตาม ผมจะไม่ใช้ Fable สำหรับอันนี้ ผมจะใช้ Opus แม้ว่า อย่างที่ทุกคนเข้าใจ โมเดลที่ใช้อย่างน้อยในการกระตุ้นงาน จะไม่สำคัญเท่า สิ่งที่สำคัญคือโมเดลที่จะใช้สำหรับทั้ง junior dev และ senior dev ของเรา โดยพื้นฐาน นี่คือวิธีเริ่มมัน

[P47] งั้น loop ผมอยากสร้างฟีเจอร์ใหม่บนเว็บไซต์ Vibe Coding Academy แทนที่ ตรงไหนนะ ใช่ แทนที่ ticker ของ testimonials ที่มีอยู่บนหน้า index และ ตรงนี้ สิ่งที่ผมจะทำคือ วาง screenshot ที่ผมถ่ายไว้ลงในเทอร์มินัล โอเค ผมจะเปิด screenshot ของผม และ เอาอันนี้ โอเค ผมอยากรีดีไซน์มัน ให้ดูเหมือน testimonials ที่อยู่บนหน้านี้

[P48] และ นี่คือจุดที่ผมจะวางลิงก์ที่เพิ่งโชว์จาก Senja และ เจาะจงกว่านั้น นี่คือลักษณะที่มันเป็น โอเค ตรงนี้ คุณรู้ไหม ผมใช้เวลาจริงๆ ในการ prompt ตรงนี้ ถ้าผมอยู่คนเดียว ผมจะทำแบบนี้ด้วยเครื่องมือ dictation แต่ เพราะ ผมแค่อยากโชว์ให้ทุกคนเห็นรายละเอียดมากขึ้นว่า มันควรมีอะไรบ้าง ผมเลยทำแบบ manual มากขึ้น นี่คือ flip card ที่มีรูปของนักเรียน และ testimonial ของพวกเขาอยู่ด้านหลัง สิ่งที่ผมอยากทำคือ ระบุเกณฑ์ความสำเร็จ (success criteria) ของโปรเจกต์นี้

[P49] ตรงนี้ สิ่งที่อยากพูดคือ เพื่อยืนยันความสำเร็จของโปรเจกต์นี้ front end หรือ flip cards ควรจะดูเหมือนบนเว็บไซต์อ้างอิงเป๊ะ และ ผมคิดว่า ประมาณนี้ ถ้าผมจำไม่ผิด เราเพิ่งพูดถึงเจาะจงขึ้น เกี่ยวกับดีไซน์ใหม่ และ รูปลักษณ์ต้นแบบ (lookalike) ที่เราอยากอ้างอิง งั้นลองกดคำสั่งนี้ดู แล้ว คุณจะเห็นว่า ปกติมันจะแตกออกเป็นชุดของ agents อย่างที่เห็นตรงนี้ มันบอกว่า step zero คือประกอบ design reference

[P50] โดยพื้นฐาน มันเป็นขั้นตอนแรก ในการกำหนดว่า เกณฑ์ความสำเร็จที่แท้จริงคืออะไร เราจะรอสักครู่ ให้งานรัน ตรงนี้เราอยู่ที่ step zero senior dev ยังไม่ได้เข้ามาแทรกอะไร แค่ประกอบดีไซน์ เพื่อกำหนดเป้าหมาย นี่คือขั้นตอนแรกจริงๆ สำหรับงานเฉพาะนี้ โมเดลที่ใช้คือตัวที่คุณเลือกเป็นค่าเริ่มต้น และ อย่างที่เห็น ตรงนี้มันเรียกว่า senior dev

[P51] ตอนนี้ senior dev กำลังสำรวจ repo และ ร่างสเปก เดี๋ยวผมจะโชว์ให้ดู เมื่อมันกลับมา แล้ว มอบหมายงาน front end ให้ junior dev อย่างที่เห็น คุณกดปุ่มลูกศรย้อนกลับได้ และ ที่ด้านล่างตรงนี้ ถ้าคุณคลิกที่เซสชันนั้น จะเห็นว่า มี prompt เฉพาะที่ถูกส่งไปยังเซสชันนี้ ให้ senior dev ทำงานกับสเปก และ senior dev นี้ ตามที่นิยามไว้ตรงนี้ ใช้ Fable เป็นโมเดลหลัก โอเค เราจะหยุดแป๊บนึงตรงนี้

[P52] เราหยุดตรงนี้ และ อย่างที่เห็น senior dev ทำงานเสร็จแล้ว และ มันบอกว่า โอเค ไปทำ native central style flip card carousel เป็นคอมโพเนนต์ใหม่ บลาๆ บลาๆ stage หนึ่ง front end mock แล้ว มันจะเริ่มด้วยโปรโตไทป์ จากนั้น จะทำ back end และ จากนั้น เชื่อมต่อระหว่าง front end กับ back end และ สิ่งที่เจ๋งคือ ในแต่ละ stage เราจะมี senior dev ตรวจสอบงาน (QA) จริงๆ โอเค งั้นเรามาดำเนินการต่อ

[P53] โดยพื้นฐาน สิ่งที่เกิดขึ้นคือ ตอนนี้ senior dev ทำงานเสร็จแล้ว senior dev ทำสเปกเสร็จ ผมจะใส่สีเขียวให้ senior dev นะ และ ตอนนี้มันกำลังส่งต่องานให้ junior dev ซึ่งปกติจะเริ่มทำงาน มาดูกันว่ามันเริ่มทำงานหรือยัง อย่างที่เห็น junior dev กำลังทำงาน ถ้าผมกลับไปที่เซสชันที่เริ่มแบบคู่ขนาน junior dev กำลังทำงาน และ อย่างที่เห็น มี branch เฉพาะ

[P54] คุณคือ junior dev ในกลุ่ม senior junior build group จงทำ stage หนึ่ง front end mock data ตามสเปกด้านล่าง และ สเปกมีอยู่ตรงนี้ พร้อมเกณฑ์การยอมรับ (acceptance criteria) ฯลฯ ฯลฯ โอเค คุณจะเห็นว่า มันกำลังเพิ่มโค้ดเข้าไปใน front end นี่คือสิ่งที่เราจะเพิ่มตรงนี้ เอาล่ะ junior dev กำลังลงมือเขียนโค้ด front end สิ่งที่เจ๋งคือ เมื่อคุณกลับไปที่เซสชันหลักตรงนี้ คุณจะไม่เห็นอะไรนอกจาก background agent ที่ทำงานอยู่เบื้องหลัง

[P55] โอเค แต่คุณสามารถดำดิ่งและโฟกัสไปที่เซสชันเฉพาะนี้ได้ และ ใช่ นั่นเป็นสิ่งที่เจ๋งมาก ที่ได้เห็นว่าสิ่งต่างๆ เดินหน้าไปยังไง นี่คือสิ่งที่คุณอาจไม่รู้ ถ้าคุณยังไม่เคยใช้ sub agents แต่สิ่งที่น่าสนใจหลักของการใช้ sub agents คือ พวกมันทำงานใน code session ของตัวเอง ภายใน context ของตัวเอง เอาล่ะ junior dev ดูเหมือนทำงานเสร็จแล้ว มาดูกันว่าเกิดอะไรขึ้นต่อ เราน่าจะได้รับคำแนะนำบางอย่าง ว่าเราจะเห็น testimonial ใหม่นั้นได้หรือไม่

[P56] เรามารอสักครู่ และ ดูว่าเกิดอะไรขึ้น ถ้ามีคำถาม ถามได้เลยนะครับ เรามีกันไม่กี่คนในเซสชันนี้ คุณสามารถถามได้ ถ้ามีอะไรไม่ชัดเจน เอาล่ะ รอแป๊บนึงตรงนี้ เรากำลังใช้สอง sub agents ตามที่ผมโชว์ให้ดู ซึ่งนิยามโดยไฟล์ markdown สองไฟล์นี้ เราสามารถดูพรีวิวของอินเทอร์แอคชันนี้ได้ อย่างที่เห็น เราใช้ junior developer บลาๆ บลาๆ งานของคุณคือทำงานให้เร็ว และ implement ตามที่ถูกขอเป๊ะ

[P57] ในระหว่างนั้น อย่างที่เห็น senior dev กำลังรีวิว stage front end อยู่ ตอนนี้ senior กำลังทำ QA ของตัวเอง ถ่าย screenshot พรีวิว และ เปรียบเทียบเคียงข้างกัน กับกรอบอ้างอิงจาก Senja โอเค เพื่อให้รู้ไว้ สิ่งที่มันทำคือ ใช้เครื่องมือที่ชื่อว่า Playwright ซึ่งให้คุณรันเบราว์เซอร์ เพื่อทดสอบงาน front end และ จริงๆ แล้ว senior dev กำลังใช้ Playwright เพื่อเปรียบเทียบผลลัพธ์ที่มันสร้าง กับเป้าหมายตรงนี้

[P58] เราก้าวหน้าไปแล้ว และ จริงๆ แล้วสิ่งที่เกิดขึ้นคือ junior dev ส่งต่องาน QA ให้ senior dev แล้ว ตรงนี้ผมไม่ได้โชว์ loops โดยตรง แต่แค่โชว์ว่างานถูกวางซ้อนกันทีละงาน senior dev กำลังเข้าคิว front end ในระหว่างนั้น ผมสงสัยว่า เราจะเห็นมันได้ที่ไหนสักแห่งไหม บางทีสิ่งที่ทำได้คือ คุณสามารถกดคำสั่ง ที่ให้คุณถามคำถามระหว่างทางได้

[P59] หน้าอะไร ที่โปรโตไทป์นี้พร้อมใช้งาน? ผมไม่รู้ว่าทุกคนรู้จักคำสั่ง slash นี้หรือเปล่า แต่มันมีประโยชน์มาก ถ้าคุณอยากถามคำถาม โดยไม่ต้องหยุดงานที่กำลังดำเนินอยู่ เอาล่ะ มาดูกันว่ามันทำงานยังไง และ อย่างที่เห็น เรามีสิ่งที่ดูเหมือนจะคล้ายกับดีไซน์ที่เรามีตรงนี้มาก และ สิ่งที่เกิดขึ้นคือ นี่คือ testimonials ปลอม โอเค พวกนี้ไม่ใช่ testimonials ของนักเรียน Vibe Coding Academy จริงๆ

[P60] พวกนี้คือ mock data อีกครั้ง ข้อมูลจริงมาจาก testimonials จริง ที่ผมมีอยู่ในบัญชี Senja ของผม และ เราควรจะเห็นมัน ตอนท้ายของเดโมนี่ เราจะได้เห็นว่ามันจะออกมาเป็นยังไง บางทีมันอาจจะดึงสิ่งต่างๆ ขึ้นมาที่เราไม่เห็นในทันที จะน่าสนใจที่จะดูว่ามันทำอะไรออกมา เอาล่ะ มันกำลังเพิ่มโค้ดอยู่ แต่โค้ดนี้ใช้สำหรับการทำ QA ใช่แล้ว ใช่ [P61] รออีกสักครู่ตรงนี้ดีกว่า สิ่งที่มักใช้เวลานานกว่าคือการตรวจสอบ front end เพราะ เมื่อพูดถึง อ้อ ขอโทษที ผมไม่เห็นว่ามีคำถาม ขอโทษ Carlo ที่พลาดคำถามของคุณ ขอตอบทันทีเลย คำถามคือ อันนี้รันด้วย extension ได้ไหม หรือ ใช้ในเทอร์มินัลเท่านั้น? ใช่ ได้แน่นอน มันรันด้วย extension ได้ มันรันด้วย Claude Code desktop ได้ ไม่มีข้อจำกัดอะไร

[P62] เหตุผลที่ผมใช้ Claude Code ตรงนี้ ก็เพราะ ด้วย Claude Code มันง่ายกว่ามาก ในการจัดการกับ screenshot มันอาจฟังดูงี่เง่านิดหน่อย แต่ด้วย Claude Code คุณสามารถวางลิงก์ไปยังรูปภาพเฉพาะ ณ ตำแหน่งเฉพาะใน prompt ได้ ซึ่งดีกว่า เพราะ คุณส่ง screenshot ไปยังจุดที่คุณต้องการใช้มันจริงๆ นี่คือเหตุผลหนึ่ง

[P63] และ ผมเกรงว่า อย่างน้อยในเดโมนี่ ถ้าผมไม่แม่นยำพอ กับ prompt ผมอาจพลาดบางอย่างไป เอาล่ะ มันบอกว่า senior กำลังทำ QA ของตัวเอง ถ่าย screenshot พรีวิว และ เปรียบเทียบเคียงข้างกัน ผล verdict ผ่าน อย่างที่เห็น front end ผ่านในครั้งแรก senior ยืนยันด้วย screenshot geometry overlay flip with yellow highlight และ side-by-side fidelity ตรงกันทั้งหมด

[P64] ตอนนี้ มันส่งต่อไปยัง stage สอง ซึ่งก็คือการสร้างฟีเจอร์ back end ต่อ เมื่อ front end ผ่านการตรวจสอบแล้ว และ นี่คือจุดที่มันทรงพลังมาก คุณสามารถปรับแต่ง agent ของคุณได้ตามที่ต้องการ หมายความว่า ยิ่งคุณให้รายละเอียดเกี่ยวกับ agents เหล่านี้ เกี่ยวกับข้อกำหนดเฉพาะของคุณในแง่ QA มากเท่าไหร่ ยิ่งดี และ ตรงนี้ ไม่มีขีดจำกัด สำหรับทีมแบบที่คุณจะสร้างได้

[P65] โดยพื้นฐาน คุณต้องคิดถึงการตั้งค่านี้ เหมือนกับว่าคุณเป็น head of product หรือ lead developer หรือ CTO เช่น คุณอยากจ้างคนที่มีความเชี่ยวชาญเฉพาะเจาะจงมาก และ อยากให้พวกเขาทำงานร่วมกันอย่างมีประสิทธิภาพ เอาล่ะ Mariam ถามว่า "agent ของคุณมีบัญชีใน Playwright เพื่อรันเทสต์อัตโนมัติไหม?" ใช่ มี มันมีบัญชีสำหรับรันเทสต์อัตโนมัติ

[P66] คุณเคยใช้เครื่องมือแบบนี้มาก่อนไหม Mariam หรือ คุณคุ้นเคยกับเครื่องมือแบบนี้ไหม? ไม่เป็นไร ถ้ายังไม่รู้ เดี๋ยวเราค่อยหาคำตอบกันทีหลัง โอเค จริงๆ แล้วขั้นตอน back end กำลังดำเนินอยู่ ดูเหมือน senior dev กำลังรีวิว stage back end อยู่ senior กำลังรีวิว backend API conversion fit adapter บลาๆ บลาๆ โดยพื้นฐาน มันบอกว่า มันสร้าง API endpoint ใหม่ หรือ ใช้ API endpoint ที่มีอยู่แล้ว ที่เป็นไปตาม best practices ของเรา

[P67] ใช่ นี่คือสิ่งที่มันกำลังทำอยู่ในตอนนี้แน่นอน เอาล่ะ review mode stage under review back end บลาๆ บลาๆ โอเค โอเค ในระหว่างนี้ ผมจะดำเนินการนำเสนอต่อไป มีอะไรที่ผมอยากพูดถึงอีก? โดยพื้นฐาน ทำไมการตั้งค่านี้ถึงชนะ? เพราะ อย่างแรก มันถูกกว่า หมายความว่า ปริมาณงานส่วนใหญ่รันบน Sonnet ปริมาณงานส่วนใหญ่ของงานโดยพื้นฐาน

[P68] ในขณะที่ frontier model ใช้สำหรับงานเฉพาะเจาะจงเท่านั้น ซึ่งก็คือการเขียนสเปก การแบ่งงาน และ การทำ QA โอเค คุณยังใช้ token อยู่ แต่คุณใช้ token อย่างชาญฉลาดขึ้น ซึ่งหมายความว่า คุณใช้ประโยชน์จากการสมัครสมาชิก Anthropic หรือ Claude ของคุณได้ดีขึ้น และ สิ่งที่น่าสนใจอีกอย่างคือ การตั้งค่าแบบนี้เชื่อถือได้มากกว่า เพราะ คุณมีโมเดลที่ดีที่สุด ในขั้นตอนที่ leverage สูงที่สุด ซึ่งก็คือสเปก เพราะ ทุกอย่างในการเขียนโค้ดหมุนรอบความแม่นยำของสเปกของคุณ

[P69] และ ใช่ สิ่งที่ฉลาดมากอีกอย่างเกี่ยวกับการตั้งค่าแบบนี้คือ คุณใช้สิ่งที่เราเรียกว่า context engineering หมายความว่า แทนที่จะมี agent ตัวเดียว ทำงานบางอย่าง และ เติม context ให้เต็ม เรามี agents เฉพาะทาง ที่โฟกัสกับงานของตัวเองอย่างเฉียบคม

[P70] และ คุณรู้ไหม agents ทำงานเหมือนกับมนุษย์ หมายความว่า ยิ่งมี context มากเท่าไหร่ โอเค มันดีสำหรับเราที่มี context บ้างเพื่อทำงาน แต่ถ้าเรามี context มากเกินไป เราอาจหลงทาง และ ทำงานได้ไม่ดีอย่างที่ต้องการ แล้วเราอยู่ตรงไหนแล้ว? ดูเหมือน stage back end ผ่านแล้ว senior ยืนยัน root บลาๆ บลาๆ นี่คือเรื่องเทคนิค ที่เราไม่ต้องลงรายละเอียดตอนนี้ และ ตอนนี้เรากำลังไปสู่ stage เชื่อมต่อ (wire up)

[P71] และ นั่นหมายความว่า เราจะเชื่อมต่อ back end ใหม่ กับ front end ใหม่ที่เราตรวจสอบแล้ว ผมพูดว่าเรา แต่จริงๆ แล้ว เมื่อไหร่ที่คุ้มค่าที่จะใช้ loops แบบนี้? สำหรับผม มีหลายเกณฑ์ ด้วยเหตุนี้ มันสมเหตุสมผลมากสำหรับงานใหญ่ ผมว่า สำหรับฟีเจอร์เล็กๆ แบบนี้ อาจจะเกินความจำเป็นนิดหน่อย แต่คุณรู้ไหม ผมใช้มัน เพราะ ผมอยากโชว์ตัวอย่างที่เป็นรูปธรรมให้ดู

[P72] แน่นอน มันสมเหตุสมผลมาก เมื่อคุณต้องทำงานแบบนี้ให้อัตโนมัติ เพราะ ผมไม่ค่อยโอเค กับการทำให้ทุกอย่างเป็นอัตโนมัติด้วย AI ผมยังคิดว่า ควรมีสัมผัสของมนุษย์แทรกอยู่ตลอดโปรเจกต์ต่างๆ แต่สำหรับงานเฉพาะแบบนี้ ผมไม่ต้องเข้าไปยุ่ง ยกเว้น ถ้าผมไม่ไว้ใจ senior dev ของผม ว่าจะทำ QA หน้า front end ได้แม่นยำมากพอ แต่สำหรับงานแบบนี้ อย่างน้อยในการสร้างเวอร์ชันแรก มันโอเคที่จะทำงานให้อัตโนมัติเต็มรูปแบบ

[P73] มันยังใช้ได้ดี เมื่อคุณมีเกณฑ์ความสำเร็จที่ชัดเจน ที่สามารถตรวจสอบได้ และ เกณฑ์นั้นไม่ใช่ ในกรณีของเรามันยังโอเค เพราะ front end ตรวจสอบได้ แม้มันจะค่อนข้าง subjective สำหรับ agent แต่ก็มีบางกรณี ที่คุณต้องให้มนุษย์ตรวจสอบจริงๆ และ โดยพื้นฐาน เมื่อความเชื่อถือได้ (reliability) มีความสำคัญ เมื่อคุณอยากใช้เวลา ให้โมเดลระดับ frontier ตรวจสอบเป้าหมาย เพราะ คุณต้องการความเชื่อถือได้ นั่นหมายความว่า คุณอยู่ในกรณีที่คุ้มค่าจริงๆ โอเค

[P74] และ คุณควรข้ามมันไป ถ้าคุณมีงานเล็กๆ ทำครั้งเดียวจบ (one-shot) ไม่มีนิยามของความสำเร็จที่ตรวจสอบได้ และ ถ้าค่าใช้จ่ายในการประสานงาน สูงกว่าสิ่งที่ประหยัดได้ ขอเช็คดูว่าเราอยู่ตรงไหนแล้ว เอาล่ะ ดูเหมือน junior dev สร้าง wire up เสร็จแล้ว ดูเหมือนเรากำลังมุ่งหน้าไปสู่ขั้นตอนสุดท้าย มาดูกันว่า มีอะไรถูก implement จริงหรือเปล่า โอเค เรามี error ตรงนี้ ใช่ ดูเหมือนเซิร์ฟเวอร์หยุดทำงาน ซึ่งไม่เป็นไร เพราะ พวกเขายังทำงานอยู่

[P75] มันยังแสดง error อยู่ ซึ่งโอเคสำหรับตอนนี้ มีอะไรจะพูดถึงอีก? แน่นอน loops คุณจะได้ยินคำนี้บ่อยมาก ในงานวิศวกรรม โดยพื้นฐาน การสร้างฟีเจอร์ใหม่ การสร้างผลิตภัณฑ์ใหม่ แต่จริงๆ แล้วมันใช้ได้กับงานทุกประเภท ที่คุณทำกับ Claude

[P76] โดยพื้นฐาน ถ้าคุณเขียนคอนเทนต์ ถ้าคุณเขียนบล็อกโพสต์เพื่อ SEO ถ้าคุณทำโฆษณา ถ้าคุณอยากปล่อยฟีเจอร์จนกว่า metric ตัวเดียวจะขยับ คุณอยู่ในกรณีการใช้งาน ที่ loops สมเหตุสมผลมาก และ ตรงนี้ ผมโชว์ loop ที่คุณรันด้วยมือ และ ที่คุณอยากให้การตรวจสอบเกิดขึ้นแบบสดๆ

[P77] แต่คุณสามารถสร้าง loops ที่รันตามตารางเวลา (schedule) ได้ และ ให้การตรวจสอบรันตามตารางเวลาด้วย เช่น สมมติว่า คุณมี agent ที่จะเขียนคอนเทนต์บล็อกของคุณ ณ จุดเวลาหนึ่ง ผลลัพธ์จากการเขียนบล็อกโพสต์ เกี่ยวกับจำนวน impression ใน SEO โดยทั่วไป ต้องใช้เวลาอย่างน้อยหนึ่งสัปดาห์ ถึงจะเห็นผลแรกจากการกระทำนี้ และ นี่คือจุดที่การตั้งเวลาสำหรับ reviewer ด้วย ไม่ใช่แค่ executor ก็สมเหตุสมผลเช่นกัน

[P78] นี่คือกรณีการใช้งานที่ซับซ้อนกว่านั้นมาก ที่ผมไม่โชว์ให้ดูวันนี้ แต่ เมื่อคุณเข้าใจวิธีสร้างการตั้งค่าแบบนี้แล้ว โดยพื้นฐาน ท้องฟ้าคือขีดจำกัด และ คุณสามารถสร้างสิ่งที่ซับซ้อนกว่านี้ได้อีกมาก ตอนนี้ senior กำลังรัน QA สุดท้าย บนหน้าแรกสด ด้วยข้อมูล Senna จริง ตรวจสอบ overflow ฯลฯ ฯลฯ ใช่ ส่วน testimonials ไม่ถูกแตะต้อง บลาๆ บลาๆ โอเค รออีกไม่กี่วินาที มาดูกันว่ามีอะไรพร้อมใช้งานแล้วหรือยัง โอเค ดูเหมือนมันยังไม่ได้ implement

[P79] มันยังเป็นงานระหว่างทำ (work in progress) ลองดูพรีวิวหน่อยดีกว่า และ ในระหว่างนั้น เราเห็นว่า wire up ทำงานได้จริง เพราะ สิ่งที่เราเห็นตรงนี้ คือข้อมูลจริงจากนักเรียนจริงของ Vibe Coding Academy ตรงนี้ โอเค พวกนี้คือ testimonials จริง เช่น มี testimonial จาก Mario ตรงนี้ อันนี้มีอยู่บน production จริงๆ อย่างตรงนี้ โอเค พวกนี้คือ testimonials จริง และ ตอนนี้มันไลฟ์แล้ว

[P80] ปัญหาที่เหลืออยู่เพียงอย่างเดียวคือ testimonials ตรงนี้ มีแค่ในหน้าพรีวิวนี้เท่านั้น และ ตอนนี้เราอยากย้ายมัน ไปยังตำแหน่งเฉพาะตรงนั้น มาดูกันว่ามันจะเป็นยังไง เอาล่ะ ในขณะที่มันยังทำงาน QA อยู่ ไปที่ขั้นตอนสุดท้ายกัน อ้อ จริงๆ แล้วผมพูดสิ่งที่อยากพูดจบแล้ว โดยพื้นฐาน การวางแผน (planning) บวกการลงมือทำ (executing) และ การแบ่งงานระหว่างสองบทบาทนี้ มันสมเหตุสมผลมาก

[P81] และ ถ้าคุณให้พวกเขาทำงานร่วมกันเป็น loop ได้ดี คุณจะได้ผลลัพธ์ที่ดีกว่า แน่นอน ด้วยค่าใช้จ่ายที่ถูกกว่า หรือ อย่างน้อยก็ใช้ token น้อยลง โดยพื้นฐาน ถ้าอยากให้ feedback คุณสามารถสแกน QR code ได้ และ ผมยินดีมากที่จะรับฟัง feedback ของคุณ แน่นอน ผมขอโทษอีกครั้ง สำหรับปัญหาทางเทคนิค เห็นว่าบางคนอยากเข้าร่วม แต่ผมว่า พวกเขากลับไปแล้ว เข้าร่วมไม่สำเร็จ

[P82] แต่ ใช่ ผมหวังว่ามันมีประโยชน์ และ นี่คือเวลาสำหรับคำถามทั้งหมดของคุณ ถ้ามี คุณสามารถพูดออกมาได้เลย และ ถามผมได้โดยตรง ถ้าคุณคิดว่ามันสมเหตุสมผล เอาล่ะ ในระหว่างที่ให้ทุกคนคิดคำถามใหม่ๆ ดูเหมือนว่ามันทำงานแล้ว ดูเหมือนด่านสุดท้ายผ่านแล้ว loop เสร็จสมบูรณ์ หน้าแรกแบบไลฟ์ตอนนี้เรนเดอร์ flip cards สไตล์ Senja ด้วยข้อมูล testimonials จริง บลาๆ บลาๆ ฯลฯ ฯลฯ มันยังไม่ได้ commit แต่เราดูได้ที่ localhost:3000

[P83] โอเค มาดูกันตรงนี้ โอเค ดูเหมือนมันไม่ทำงาน ขอโทษที ดูเหมือนมันไม่ได้ implement จริง เรามีเวอร์ชันเดิมอยู่ ซึ่งอาจเป็นปัญหา cache หรือ อาจเป็นสิ่งที่ AI ไม่ได้สังเกตเห็น บนเบราว์เซอร์ที่เราใช้ แต่ ขอให้ Claude Code ประเมินปัญหานี้ก่อน

[P84] ผมจะเปิดในโหมด incognito เพื่อดูว่าเป็นปัญหา cache หรือเปล่า โอเค มันแปลก เพราะ ผมไม่เห็นมันอีกแล้ว ยังไงก็ตาม ดูเหมือนมีอะไรเกี่ยวข้องกับ cache เพราะ ตรงนี้ เมื่ออยู่ใน incognito มันกำลังทำงานจริงๆ ใช่ ดูเหมือนมันกำลังทำการแทนที่ตรงนี้ คุณเห็นไหม และ นั่นคือเหตุผลที่ผมอยากโชว์เดโมแบบสด

[P85] คุณเห็นไหมว่า มันไม่จำเป็นต้องทำงานสำเร็จในครั้งแรก หมายความว่า การ implement การตั้งค่า loops ที่สมบูรณ์ ต้องใช้การลองหลายรอบ และ ตรงนี้ ผลลัพธ์จากการพูดคุยนี้คือ โอเค บางทีผมต้องขอให้ senior dev คำนึงถึงคำแนะนำที่ให้ไว้มากขึ้น หรือ อย่างน้อย ตรวจสอบให้แน่ใจว่า เราไม่พึ่งพาแค่พรีวิวของฟีเจอร์ แต่ตรวจสอบให้แน่ใจว่า เราทำ QA ฟีเจอร์ตามสเปกตั้งต้น และ นี่อาจเป็นความผิดพลาดของผมเอง

[P86] ผมน่าจะขอให้ senior dev ให้ผมตรวจสอบสเปกก่อน เพื่อให้แน่ใจว่าเราเห็นตรงกัน ในโค้ดเดียวกัน เอาล่ะ มาดูตรงนี้กัน หวังว่ามันจะทำงานแล้ว เอาล่ะ ผมไม่เห็นมันอีกแล้ว โอเค ผมไม่แน่ใจว่าเกิดอะไรขึ้น เพราะ พรีวิว flip cards ไม่มีอยู่อีกแล้ว เอาล่ะ ขอ push มันตรงนี้ เราไม่เห็นมันอีกแล้ว ใช่ มันค่อนข้างแปลก พูดตรงๆ

[P87] สมมติฐานของผมคือ มีบางอย่างที่ใช้ไม่ได้ กับวิดเจ็ต Senja เพราะ ผมเคยใช้วิดเจ็ตจาก Senja และ มันอาจพังไป หรือ กับตัวตั้งค่า แต่ให้มันซ่อมก่อน โอเค มาดูกันว่ามันสรุปอะไรออกมา และ ไปกันเลย โอเค ในที่สุด เราก็มี ticker ตรงนี้ และ ตอนนี้เรามันแล้ว และ เราสามารถ push มันขึ้น production ได้ โอเค ใช่ โชคร้ายหน่อย ที่ไม่สามารถ push และ ทำให้สำเร็จได้ในครั้งแรก

[P88] แต่ อีกครั้ง สิ่งที่ผมจะทำคือ ปรับปรุง junior dev และ senior dev เพื่อให้ error ในแง่ QA พวกนี้ ไม่เกิดขึ้นอีก โอเค และ คุณเห็นไหมว่า ทีมของคุณพัฒนาขึ้นได้ยังไง โดยการหาว่าอะไรที่ขาดหายไป และ ทำให้แน่ใจว่า ครั้งหน้า มันจะไม่เกิดขึ้นอีก และ นี่คือวิธีเดียวกับที่คุณพัฒนาทีมของคุณ เพื่อที่ในระยะยาว ทุกคนพัฒนาขึ้นเรื่อยๆ และ ผลลัพธ์ก็ดีขึ้นเรื่อยๆ

[P89] ใช่ นั่นคือทั้งหมดสำหรับผม ในเว็บบินาร์นี้ มันยาวกว่าที่คาดไว้เล็กน้อย ขอโทษด้วย และ ขอโทษสำหรับปัญหาทางเทคนิคอีกครั้ง แต่ ขอบคุณมาก สำหรับการมีส่วนร่วมและคำถามของคุณ ใช่ ได้โปรดบอกผมด้วย ถ้าคุณคิดว่า feedback แบบนี้ มันน่าสนใจมาก เช่น feedback ของคุณ Mariam เพื่อเป็นการเตือนความจำ broadcast เวอร์ชันนี้ จะถูกแปลงเป็นบทความฉบับเต็ม ที่คุณจะได้รับตามปกติในอินบ็อกซ์ของคุณ ภายในพรุ่งนี้ตอนบ่ายสองโมง

[P90] และ แน่นอน ถ้าคุณคิดว่า และ ถ้าผมมี feedback แบบคุณ Mariam ผมจะจัดเดโมแบบนี้ ทุกสองสัปดาห์ด้วยเช่นกัน มันน่าสนใจมาก ที่ได้พูดคุยกับทุกคน และ ได้เจอชุมชน ดังนั้น ขอบคุณอีกครั้ง และ ขอให้ทุกคนมีวันที่ดี หรือ ค่ำคืนที่ดี ไม่ว่าคุณจะอยู่ที่ไหน และ ขอบคุณมาก บาย บาย

03

หมายเหตุการแปล

ความโปร่งใสเกี่ยวกับความไม่แน่นอนในต้นฉบับ

  • ## ส่วนที่ฟังไม่ชัด
  • ไม่มีส่วนที่ใช้ `[ฟังไม่ชัด]` เนื่องจากคำบรรยายอัตโนมัติครอบคลุมทุกช่วงของวิดีโอ และจุดที่คลุมเครือเป็นการสะกดชื่อแบรนด์ที่เพี้ยน ซึ่ง normalize ตามบริบทแล้ว (ดูหัวข้อข้างบน)
04

อภิธานศัพท์เทคนิค

คำศัพท์และชื่อผลิตภัณฑ์ที่คงรูปภาษาอังกฤษ

ศัพท์คำแปล / คำอธิบาย
------
Vibe Coding Academyชื่อแอคาเดมี/ช่องของผู้พูด (Jul) แพลตฟอร์มสอนคนสาย product สร้างผลิตภัณฑ์ด้วย AI
product manager / PMผู้จัดการผลิตภัณฑ์ — คนดูแลทิศทางของผลิตภัณฑ์
product builderบทบาทใหม่ที่ใช้ AI สร้างผลิตภัณฑ์ได้เองโดยไม่พึ่งนักพัฒนา/นักออกแบบ
Claude Codeเครื่องมือเขียนโค้ดด้วย AI ของ Anthropic (ใช้จากเทอร์มินัลหรือแอปเดสก์ท็อป)
newsletterจดหมายข่าว
open rateอัตราการเปิดอ่าน (จดหมายข่าว/อีเมล)
cohortรุ่นผู้เรียน (กลุ่มคนที่เรียนคอร์สเดียวกันพร้อมกัน)
promo codeโค้ดส่วนลด
bootcampคอร์สเร่งรัดเข้มข้น (ระยะเวลาจำกัด)
master courseคอร์สเรือธง (คอร์สหลักของแอคาเดมี)
demo dayวันโชว์เดโมผลงาน
production (prod)สภาพแวดล้อมที่ใช้งานจริงบนระบบจริง
Stripeระบบชำระเงินออนไลน์
Supabaseแพลตฟอร์ม backend ที่ให้บริการ authentication, ฐานข้อมูล ฯลฯ
deploymentการนำซอฟต์แวร์ขึ้นใช้งานจริง
iterateปรับปรุงซ้ำไปเรื่อยๆ
changelogบันทึกการเปลี่ยนแปลง/เวอร์ชันของซอฟต์แวร์
Yet Another Changelogช่องทางรวบรวมข่าว/รีลีสของเครื่องมือ AI ต่างๆ
GPT-5.6โมเดลภาษาใหม่ล่าสุดจาก OpenAI
Opus 4.6 / Opus 4.8โมเดลระดับสูงของ Anthropic
Fableโมเดลระดับ frontier (ใช้ได้เฉพาะแผน Max ของ Claude) — เก่งงานซับซ้อนแต่กิน token มาก
Sonnetโมเดลของ Anthropic ระดับกลาง ราคาถูกกว่า เหมาะกับงานลงมือทำ
tokenหน่วยที่โมเดล AI ใช้ประมวลผลข้อความ (ยิ่งใช้มากยิ่งแพง)
frontier modelโมเดล AI ระดับแนวหน้าที่เก่งที่สุด (แพงและกิน token สูง)
plan Maxแผนแพ็กเกจสูงสุดของ Claude ที่เข้าถึงโมเดลระดับ Fable
effort (low/high effort)ระดับความพยายาม/ทรัพยากรที่ให้โมเดลทำงาน
Boltเครื่องมือสร้างแอป/สไลด์ด้วย AI (คู่แข่งของ Lovable)
Lovableแพลตฟอร์มสร้างแอปด้วย AI
Codexเครื่องมือเขียนโค้ดด้วย AI ของ OpenAI
ChatGPTแชทบอต AI ของ OpenAI
Claude / Claude Chatแอป/แชทของ Anthropic
Figma Slidesเครื่องมือทำสไลด์ของ Figma
system thinkerคนที่คิดเชิงระบบ — มองภาพรวมและความเชื่อมโยงของระบบ
CPTOChief Product & Technology Officer — ผู้บริหารสูงสุดฝ่ายผลิตภัณฑ์และเทคโนโลยี
skillsทักษะ/คำสั่งสำเร็จรูปที่กำหนดให้ AI ทำงานเฉพาะทาง
sub agentเอเจนต์ย่อยที่ทำงานในเซสชัน/บริบทของตัวเอง
harnessชุดโครงสร้างที่รวม skills, sub agents และระบบอัตโนมัติสำหรับใช้ AI
loopวงวนทำงาน: ตั้งเป้าหมาย → ลงมือ → ตรวจเทียบกับเป้าหมาย → ทำซ้ำจนสำเร็จ
loop engineeringศาสตร์/เทคนิคการออกแบบวงวนทำงานเหล่านี้
complex task trapกับดักงานซับซ้อน: จ่ายแพงด้วย frontier model หรือเสียคุณภาพด้วยโมเดลถูก
turn-based loopวงวนแบบผลัดกันทำ — หลักการที่ Claude Code ใช้อยู่แล้ว
goal-based loopวงวนที่ระบุเป้าหมายชัดเจนผ่านคำสั่ง /goal
agent-based loopวงวนที่ใช้หลาย agents ทำงานร่วมกัน (planner + executor)
triggerตัวกระตุ้นให้วงวนเริ่มทำงาน (รันด้วยมือหรือตั้งเวลา)
plannerผู้วางแผน — เอเจนต์ที่เขียนสเปก/แบ่งงาน
executorผู้ลงมือทำ — เอเจนต์ที่เขียนโค้ดตามสเปก
specสเปก/รายละเอียดข้อกำหนดของงาน
QA (quality assurance)การตรวจสอบคุณภาพงาน
acceptance criteriaเกณฑ์การยอมรับว่างานสำเร็จ
success criteriaเกณฑ์ความสำเร็จของโปรเจกต์
senior developer / junior developerนักพัฒนาอาวุโส / นักพัฒนามือใหม่ (ในเดโมใช้เป็นบทบาทของ agent)
Playwrightเครื่องมือทดสอบ front end โดยควบคุมเบราว์เซอร์จริง
front endส่วนที่ผู้ใช้เห็น/โต้ตอบ
back endส่วนระบบ/เซิร์ฟเวอร์เบื้องหลัง
wire upการเชื่อมต่อ front end กับ back end เข้าด้วยกัน
API endpointจุดเชื่อมต่อ API ที่ให้บริการข้อมูล/การทำงาน
mock dataข้อมูลจำลองสำหรับทดสอบ
tickerแถบข้อความ/รายการเลื่อน
flip cardการ์ดที่พลิกได้ (ด้านหน้ารูป ด้านหลังข้อความ)
carouselแถบเลื่อน/สไลด์โชว์รายการ
Senja (senja.io)SaaS จัดการ testimonials (คำรับรองจากลูกค้า)
testimonialคำรับรอง/รีวิวจากลูกค้าหรือนักเรียน
Figmaเครื่องมือออกแบบ UI
Excalidrawเครื่องมือวาดไดอะแกรม
design referenceภาพ/แบบอ้างอิงดีไซน์
context engineeringเทคนิคออกแบบให้ agent แต่ละตัวมีบริบทเฉพาะโฟกัสงานตัวเอง
localhost:3000ที่อยู่เว็บในเครื่องพัฒนา (พอร์ต 3000)
cacheข้อมูลสำรองชั่วคราวที่อาจทำให้เห็นเวอร์ชันเก่า
incognito modeโหมดไม่ระบุตัวตนของเบราว์เซอร์
custom commandคำสั่งที่ผู้ใช้สร้างขึ้นเองใน Claude Code
auto modeโหมดของ Claude Code ที่ไม่ต้องยืนยันงานทุกขั้นตอน
shift + tabปุ่มลัดสลับโหมดใน Claude Code
e-learningการเรียนออนไลน์
SaaSซอฟต์แวร์บริการผ่านเว็บ (Software as a Service)
SEOการทำเว็บให้ติดอันดับค้นหา
impressionจำนวนครั้งที่คอนเทนต์ถูกแสดงผล
QR codeคิวอาร์โค้ดสำหรับสแกนให้ feedback
Lenny's Newsletterจดหมายข่าวของ Lenny Rachitsky เกี่ยวกับ product
Elizabeth StoneCPTO ของ Netflix
Netflixแพลตฟอร์มสตรีมมิ่งวิดีโอ
OpenAIบริษัทผู้พัฒนา GPT/ChatGPT
Anthropicบริษัทผู้พัฒนา Claude
05

ซับไตเติ้ลภาษาไทย

ดาวน์โหลดหรือดูซับทั้งหมด

1
00:00:00,000 --> 00:00:07,795
[P1] การสตรีมจะเปิดให้เข้าร่วมได้ และ คนอื่นๆ ก็จะเข้ามาได้ครับ

2
00:00:07,795 --> 00:00:14,477
โอเค ผมจะขอปรับเลย์เอาต์ (layout) ตรงนี้นิดหน่อยนะครับ

3
00:00:14,477 --> 00:00:21,035
อีกจุดเดียว แล้ว ผมจะเริ่มเลย ทุกคนได้ยินผมชัดไหมครับ

4
00:00:21,035 --> 00:00:27,098
เห็นหน้าจอผมชัดไหมครับ ทุกอย่าง เรียบร้อยดีไหม >>
thai-subtitles.srt
SubRip — ใช้กับเครื่องเล่นวิดีโอส่วนใหญ่
↓ ดาวน์โหลด
thai-subtitles.vtt
WebVTT — ใช้กับเว็บ / YouTube
↓ ดาวน์โหลด
เปิดดูซับไตเติ้ลทั้งหมด (573 segments)
1
00:00:00,000 --> 00:00:07,795
[P1] การสตรีมจะเปิดให้เข้าร่วมได้ และ คนอื่นๆ ก็จะเข้ามาได้ครับ

2
00:00:07,795 --> 00:00:14,477
โอเค ผมจะขอปรับเลย์เอาต์ (layout) ตรงนี้นิดหน่อยนะครับ

3
00:00:14,477 --> 00:00:21,035
อีกจุดเดียว แล้ว ผมจะเริ่มเลย ทุกคนได้ยินผมชัดไหมครับ

4
00:00:21,035 --> 00:00:27,098
เห็นหน้าจอผมชัดไหมครับ ทุกอย่าง เรียบร้อยดีไหม >>

5
00:00:27,098 --> 00:00:34,027
ครับ ทุกอย่างโอเค >> เยี่ยมมากครับ ทุกคนตอบได้ผ่านอิโมจิ

6
00:00:34,027 --> 00:00:40,090
และ อย่าลืมถามคำถามได้ตลอดการนำเสนอเลยนะครับ โอเค

7
00:00:40,090 --> 00:00:45,905
ผมจะเริ่มจับเวลา แล้ว เราจะเริ่มกันทันที เอาล่ะ

8
00:00:45,905 --> 00:00:52,092
ขอต้อนรับอีกครั้งสู่ Vibe Coding Academy Broadcast

9
00:00:52,092 --> 00:01:00,753
ฉบับแรกครับ [P2] ต้องขอโทษอีกครั้ง สำหรับ ปัญหาทางเทคนิคเล็กน้อยนะครับ

10
00:01:00,753 --> 00:01:06,569
เราจะดำเนินการจัด Vibe Coding Academy Broadcast

11
00:01:06,569 --> 00:01:13,498
ฉบับแรกนี้กัน โดยพื้นฐานแล้ว นี่คือฉบับไลฟ์ของจดหมายข่าว

12
00:01:13,498 --> 00:01:21,664
(newsletter) ของ Vibe Coding Academy ที่ทุกคนจะได้รับทุกสองสัปดาห์

13
00:01:21,664 --> 00:01:29,707
และ เดี๋ยวผมจะอธิบายรายละเอียดเพิ่มเติมว่า ทำไมผมถึงเกิดไอเดียจัด

14
00:01:29,707 --> 00:01:36,141
broadcast ทุกสองสัปดาห์นี้ขึ้นมา เอาล่ะ ไม่รอช้าแล้ว

15
00:01:36,141 --> 00:01:43,441
ขอเริ่มจากแนะนำตัวสั้นๆ ก่อน เพราะ บางคนอาจจะยังไม่รู้จักผม

16
00:01:43,441 --> 00:01:49,381
หรือ รู้ว่าผมทำอะไรอยู่ ขอทบทวนให้อีกครั้งนะครับ

17
00:01:49,381 --> 00:01:57,671
ผมชื่อ Jul [P3] ผมเป็นอดีต product manager และ ตอนนี้เป็นผู้ก่อตั้ง

18
00:01:57,671 --> 00:02:03,734
Vibe Coding Academy ซึ่งเป็นแพลตฟอร์มที่ช่วยคนสาย

19
00:02:03,734 --> 00:02:10,044
product ในการเปลี่ยนผ่านสู่บทบาทใหม่ๆ อย่าง product

20
00:02:10,044 --> 00:02:16,602
builder ที่ขับเคลื่อนด้วย AI หรือ จะเรียกเป็น product

21
00:02:16,602 --> 00:02:29,223
manager ยุคใหม่ก็ได้ ซึ่งเป็นตำแหน่งงานใหม่ที่ผู้คนทำงานโปรเจกต์ให้เดินหน้าต่อไปได้โดยไม่ต้องพึ่งพาใคร

22
00:02:29,223 --> 00:02:38,874
เพราะ ด้วย AI พวกเขาสามารถเข้าถึงทักษะทั้งหมดที่เมื่อก่อนมีแค่ในมือของนักพัฒนา

23
00:02:38,874 --> 00:02:45,184
นักออกแบบ นักวิเคราะห์ข้อมูล ฯลฯ [P4] และ ผ่าน Vibe

24
00:02:45,184 --> 00:02:52,732
Coding Academy ผมมีการเรียน e-learning การสอน รวมถึงคอร์สไลฟ์

25
00:02:52,732 --> 00:03:03,126
ซึ่งเดี๋ยวผมจะลงรายละเอียดเพิ่มเติม แต่สิ่งที่ผมแชร์ด้วยก็คือจดหมายข่าวรายสองสัปดาห์

26
00:03:03,126 --> 00:03:09,436
ที่ผมจะแชร์ข่าวสารเกี่ยวกับแอคาเดมี รวมถึงข่าวอื่นๆ

27
00:03:09,436 --> 00:03:15,623
ที่เกี่ยวข้องกับช่อง YouTube ของผม ฯลฯ ครับ เอาล่ะ

28
00:03:15,623 --> 00:03:21,562
สวัสดีทุกคนที่เพิ่งเข้าร่วม ขอโทษอีกครั้ง สำหรับ

29
00:03:21,562 --> 00:03:27,996
ปัญหาทางเทคนิค และ ขอบคุณ ที่เข้าร่วมกันอีกครั้งครับ

30
00:03:27,996 --> 00:03:35,049
[P5] แล้วทำไมผมถึงตัดสินใจเปลี่ยนจดหมายข่าวนี้ให้กลายเป็น

31
00:03:35,049 --> 00:03:41,359
podcast ล่ะ? ก็คือ ผมมีอัตราการเปิดอ่าน (open rate)

32
00:03:41,359 --> 00:03:47,175
ที่ค่อนข้างดี ผมคิดว่าน่าจะต่ำกว่า 40% นิดหน่อย

33
00:03:47,175 --> 00:03:53,609
ดังนั้น ผมดีใจที่เห็นคนเข้ามาอ่านบทความทุกสองสัปดาห์

34
00:03:53,609 --> 00:04:02,642
แต่ไม่กี่สัปดาห์ก่อน ผมถอยออกมามองภาพรวม และ พยายามคิดทบทวนถึงคุณค่าต่างๆ

35
00:04:02,642 --> 00:04:09,200
ที่ผมอยากสื่อสาร ในฐานะผู้ก่อตั้ง Vibe Coding Academy

36
00:04:09,200 --> 00:04:16,995
และ มันก็ง่ายมากที่จะได้คุณค่าสามข้อนี้มา ข้อแรกคือความไว้วางใจ

37
00:04:16,995 --> 00:04:28,749
(trust) [P6] โดยพื้นฐาน ผมอยากให้ทุกคนเชื่อว่า สิ่งที่ผมแชร์ในคอนเทนต์ทั้งหมดนั้นเป็นเรื่องจริง

38
00:04:28,749 --> 00:04:40,628
และ เป็นสิ่งที่ผมทดสอบด้วยตัวเองจริงๆ เพราะ เป้าหมายของผมคือการช่วยให้ทุกคนเรียนรู้ทักษะเหล่านี้

39
00:04:40,628 --> 00:04:47,186
ข้อที่สองคือความจริงใจ (authenticity) ผมอยากลดตัวกรอง

40
00:04:47,186 --> 00:04:53,249
(filter) ให้เหลือน้อยที่สุด ผมอยากให้ทุกคนเห็นว่า

41
00:04:53,249 --> 00:05:03,147
อะไรใช้ได้ อะไรใช้ไม่ได้ เพราะ การได้เห็นของจริงทั้งที่ใช้ได้และใช้ไม่ได้นี่แหละ

42
00:05:03,147 --> 00:05:11,314
ที่ทำให้ทุกคนเรียนรู้ได้จริง และ สิ่งที่ผมอยากโชว์อีกอย่างคือฝีมือ

43
00:05:11,314 --> 00:05:18,490
(craft) ผมอยากโชว์งานจริงๆ [P7] ผมอยากโชว์ทักษะที่เป็นจริง

44
00:05:18,490 --> 00:05:26,657
ที่ผมสามารถสอนและถ่ายทอดให้ทุกคนได้ ไม่ว่าจะผ่านเซสชันไลฟ์เหล่านี้

45
00:05:26,657 --> 00:05:32,472
หรือ ผ่านคอร์สที่ผมมี ขอหยุดแป๊บนึงนะครับ เพราะ

46
00:05:32,472 --> 00:05:38,535
เห็นว่ามีคนตอบรับเข้ามา ขอแชร์ลิงก์อีกครั้งนะครับ

47
00:05:38,535 --> 00:05:44,722
เอาล่ะ ขอโทษทีครับ เรามาดูแผนการวันนี้กันต่อดีกว่า

48
00:05:44,722 --> 00:05:54,126
แผนของ broadcast นี้โดยรวม ก็คือแผนเดียวกับที่ผมใช้จัดระเบียบจดหมายข่าวของผม

49
00:05:54,126 --> 00:06:00,560
[P8] เราจะเริ่มด้วยข่าวเกี่ยวกับ Vibe Coding Academy

50
00:06:00,560 --> 00:06:08,602
ว่าเกิดอะไรขึ้นในสองสัปดาห์ที่ผ่านมา จากนั้นเราจะเจาะลึกข่าววงการ

51
00:06:08,602 --> 00:06:14,418
vibe coding ว่าเกิดอะไรขึ้นในโลกของ vibe coding

52
00:06:14,418 --> 00:06:20,357
และ สุดท้ายแต่ไม่ท้ายสุด เราจะโฟกัสที่หัวข้อหลัก

53
00:06:20,357 --> 00:06:26,296
ซึ่งก็คือ loop engineering เราจะมาเรียนรู้กันว่า

54
00:06:26,296 --> 00:06:32,112
วงวน (loop) คืออะไร และ ผมจะพาทุกคนลงมือทำ loop

55
00:06:32,112 --> 00:06:38,670
จริงๆ หนึ่งตัว สำหรับฟีเจอร์เฉพาะที่เราจะสร้างร่วมกัน

56
00:06:38,670 --> 00:06:44,485
เอาล่ะ แล้วสองสัปดาห์ที่ผ่านมาเกิดอะไรขึ้นบ้าง?

57
00:06:44,485 --> 00:06:50,301
[P9] ก็มีคอร์สไลฟ์สองรุ่น (cohort) ของคอร์สชื่อ

58
00:06:50,301 --> 00:06:58,838
Code for Product Managers ที่กำลังดำเนินอยู่ ตอนนี้เหลืออยู่รุ่นเดียว

59
00:06:58,838 --> 00:07:06,634
เพราะ รุ่นภาษาอังกฤษเพิ่งจบไป เมื่อวานนี้เอง ที่มีเซสชันสุดท้าย

60
00:07:06,634 --> 00:07:13,439
กับคนที่มาจากเยอรมนี อเมริกา และ ฝรั่งเศส มันคุ้มค่ามาก

61
00:07:13,439 --> 00:07:19,749
และ ดีใจที่เห็นคนเริ่มเก่งทักษะ Claude Code มากขึ้น

62
00:07:19,749 --> 00:07:25,936
และ นำไปใช้กับแบบฝึกหัดจริง ฯลฯ และ ในอีกด้านหนึ่ง

63
00:07:25,936 --> 00:07:31,875
ผมก็เริ่มคอร์สรุ่นภาษาฝรั่งเศส ของคอร์ส Code for

64
00:07:31,875 --> 00:07:40,165
Product Managers เมื่อวานเช่นกัน [P10] เซสชันภาษาฝรั่งเศสเพิ่งเริ่ม

65
00:07:40,165 --> 00:07:50,064
เซสชันแรกมีคนในห้องกว่าสิบคนนิดหน่อย และ จะดำเนินต่อไปในอีกไม่กี่สัปดาห์ข้างหน้า

66
00:07:50,064 --> 00:07:56,869
ด้วยเซสชันเพิ่มเติมอีกสองเซสชัน ในสองสัปดาห์ที่จะถึงนี้

67
00:07:56,869 --> 00:08:04,046
และ มีข่าวเกี่ยวกับสิ่งที่กำลังจะมาถึงด้วย คอร์สทั้งสองนี้

68
00:08:04,046 --> 00:08:10,851
ทั้ง Code for Product Managers และ เวอร์ชันภาษาฝรั่งเศส

69
00:08:10,851 --> 00:08:19,513
ผมเปิดรอบรับสมัคร (cohort) ใหม่แล้ว ทุกคนสามารถกดลิงก์เพื่อสมัครได้เลย

70
00:08:19,513 --> 00:08:26,813
[P11] ผมจะแชร์แหล่งข้อมูลให้แน่นอน แต่คอร์สเปิดรับสมัครแล้ว

71
00:08:26,813 --> 00:08:34,113
เริ่มสมัครได้ตั้งแต่วันนี้ และ ในฐานะสมาชิกชุมชนของแอคาเดมี

72
00:08:34,113 --> 00:08:41,042
ทุกคนได้ส่วนลด 20% ด้วยโค้ดโปรโมชัน สำหรับคอร์สสองตัวนี้

73
00:08:41,042 --> 00:08:49,209
ไม่ว่าจะเป็นเวอร์ชันภาษาฝรั่งเศสหรือภาษาอังกฤษ แล้วแต่ที่ทุกคนถนัด

74
00:08:49,209 --> 00:08:56,756
และ ยังมีอีกคอร์สที่ผมคิดว่าได้แชร์ในจดหมายข่าวฉบับล่าสุดแล้ว

75
00:08:56,756 --> 00:09:02,819
ซึ่งเป็นคอร์สที่แตกต่างไปโดยสิ้นเชิง ชื่อว่า Ship

76
00:09:02,819 --> 00:09:09,377
Your First Test with Code [P12] โดยพื้นฐานแล้ว นี่คือ

77
00:09:09,377 --> 00:09:16,059
bootcamp แปดสัปดาห์ สำหรับผู้ที่ใฝ่ฝันจะเป็นผู้ก่อตั้ง

78
00:09:16,059 --> 00:09:24,968
ที่อยากไปจากศูนย์ จากไอเดีย (idea) จริงๆ จนกลายเป็นผลิตภัณฑ์ที่พร้อมขึ้น

79
00:09:24,968 --> 00:09:31,278
production ครับ นี่เป็นคอร์สที่แตกต่างจากคอร์สอื่นๆ

80
00:09:31,278 --> 00:09:38,207
ที่ผมทำมา โดยอิงจาก master course ซึ่งเป็นคอร์สเรือธงของ

81
00:09:38,207 --> 00:09:46,126
Vibe Coding Academy ที่คุณจะได้เรียนรู้วิธีสร้างแอปพลิเคชันจริงๆ

82
00:09:46,126 --> 00:09:52,437
เพียงแต่ แทนที่จะต้องดูวิดีโอแบบ asynchronous [P13]

83
00:09:52,437 --> 00:10:00,850
สิ่งที่ผมทำคือจัดเซสชันไลฟ์ และ เซสชันเหล่านี้กระจายไปทั่วแปดสัปดาห์

84
00:10:00,850 --> 00:10:08,151
ปิดท้ายด้วย demo day ที่ทุกคนจะโชว์เดโมสดของผลิตภัณฑ์ตัวเอง

85
00:10:08,151 --> 00:10:14,090
ซึ่งผลิตภัณฑ์ที่พร้อมขึ้น production หมายความว่า

86
00:10:14,090 --> 00:10:20,524
ต้องมีระบบชำระเงินด้วย Stripe มีการเตรียมพร้อมสำหรับ

87
00:10:20,524 --> 00:10:30,547
deployment มีการยืนยันตัวตนด้วย Supabase และ เข้าใจทุกอย่างที่ทำงานอยู่เบื้องหลัง

88
00:10:30,547 --> 00:10:37,599
ซึ่งสำคัญมาก เมื่อต้องสร้างผลิตภัณฑ์ที่พร้อมขึ้นโปรดักชัน

89
00:10:37,599 --> 00:10:44,281
และ คุณสบายใจที่จะ iterate ปรับปรุง ตอบสนองคำขอฟีเจอร์

90
00:10:44,281 --> 00:10:51,829
ฯลฯ นี่คือข่าวทั้งหมด และ ผมยังไม่ได้พูดถึง แต่สำหรับคอร์สนี้

91
00:10:51,829 --> 00:10:59,129
ก็มีโค้ดส่วนลด 20% ที่ใช้ได้ทันที มีผลจนถึงสิ้นเดือนกรกฎาคม

92
00:10:59,129 --> 00:11:05,934
และ อีกอย่างที่ผมไม่ได้พูดถึง ในสไลด์ก่อนหน้า เกี่ยวกับ

93
00:11:05,934 --> 00:11:12,121
broadcast นี้ [P14] เป้าหมายก็คือการพูดคุยกับชุมชน

94
00:11:12,121 --> 00:11:20,287
ตอบคำถาม และ รับฟัง feedback จากทุกคน เป้าหมายของเซสชันเหล่านี้คือ

95
00:11:20,287 --> 00:11:27,835
ทุกคนสามารถถามคำถามอะไรก็ได้ที่อยากรู้ ดังนั้น ถามได้เลยในแชท

96
00:11:27,835 --> 00:11:35,135
แล้วผมจะตอบ และ ถ้าใครอยากจะพูดออกมาถามสดๆ ก็เชิญได้เลยครับ

97
00:11:35,135 --> 00:11:44,787
ผมอยากทำให้รูปแบบนี้โต้ตอบได้มากที่สุด เอาล่ะ มาถึงส่วนที่สองของเว็บบินาร์แล้ว

98
00:11:44,787 --> 00:11:51,468
อะไรใหม่ใน Vibe Coding Academy? [P15] เกิดอะไรขึ้นบ้าง

99
00:11:51,468 --> 00:12:00,253
และ ผมเห็นอะไรในสองสัปดาห์ที่ผ่านมา ที่น่าสนใจสำหรับคนที่อยากติดตามข่าว

100
00:12:00,253 --> 00:12:10,276
vibe coding ข่าวเหล่านี้มาจากอีกโปรเจกต์หนึ่ง ที่ผมเคยแชร์ในจดหมายข่าวก่อนหน้านี้

101
00:12:10,276 --> 00:12:16,710
ซึ่งเป็นช่องทางรวม changelog (Yet Another Changelog)

102
00:12:16,710 --> 00:12:22,649
ที่รวบรวมข่าว vibe coding ล่าสุดและร้อนแรงที่สุด

103
00:12:22,649 --> 00:12:30,073
และ จากข้อมูลนี้ สำหรับแต่ละผลิตภัณฑ์ ผมคัดเลือกสี่รีลีสหลัก

104
00:12:30,073 --> 00:12:36,136
ที่โดนใจผมจริงๆ และ คิดว่าน่าจะเกี่ยวข้องกับทุกคน

105
00:12:36,136 --> 00:12:42,570
[P16] อย่างแรกก็คือการปล่อย GPT 5.6 ขอโทษที การปล่อย

106
00:12:42,570 --> 00:12:50,118
GPT-5.6 นี่คือโมเดลใหม่ล่าสุดจาก OpenAI ผมเริ่มเล่นกับมันแล้ว

107
00:12:50,118 --> 00:12:57,542
แต่ถ้าจะให้พูดตรงๆ ว่าผมได้ข้อสรุปจริงๆ เกี่ยวกับโมเดลนี้ไหม

108
00:12:57,542 --> 00:13:04,471
ผมรู้สึกว่ามันสูสีกับ Opus 4.6 แต่สำหรับผม มันยังเป็นรอง

109
00:13:04,471 --> 00:13:10,534
Fable อยู่ ข้อดีคือ ดูเหมือนมันกิน token น้อยกว่า

110
00:13:10,534 --> 00:13:17,587
Opus 4.8 แต่ก็เป็นการคาดเดาล้วนๆ ผมยังไม่ได้ทดสอบมันมากพอ

111
00:13:17,587 --> 00:13:26,372
ที่จะให้ข้อสรุปที่เป็นรูปธรรมจริงๆ [P17] อีกรีลีสหนึ่งที่ผมว่าสนุกดีคือ

112
00:13:26,372 --> 00:13:32,806
Bolt ครับ ทุกคนอาจจะรู้จัก Bolt พวกเขาเป็นคู่แข่งของ

113
00:13:32,806 --> 00:13:38,745
Lovable และ เพิ่งออกฟีเจอร์เจ๋งๆ คือ interactive

114
00:13:38,745 --> 00:13:44,808
AI presentation คุณสามารถสร้างสไลด์ได้โดยตรงภายใน

115
00:13:44,808 --> 00:13:51,985
Bolt จาก Codex หรือ Cursor ก็ได้ นั่นเป็นการเพิ่มเติมที่ดี

116
00:13:51,985 --> 00:13:57,800
และ อีกครั้ง ผมไม่ได้วางแผนจะใช้มัน เพราะ ผมใช้

117
00:13:57,800 --> 00:14:03,987
Figma Slides อยู่แล้ว แต่น่าจะลองดูได้นะครับ [P18]

118
00:14:03,987 --> 00:14:13,267
อีกเรื่องหนึ่งที่อาจฟังดูไม่สำคัญ แต่สำหรับผม มันเป็นตัวเปลี่ยนเกมครั้งใหญ่

119
00:14:13,267 --> 00:14:19,206
นั่นคือ OpenAI ตัดสินใจรวม Codex เข้ากับ ChatGPT

120
00:14:19,206 --> 00:14:25,022
หมายความว่า พวกเขาเสนอความสามารถทั้งหมดของโมเดล

121
00:14:25,022 --> 00:14:31,827
OpenAI ในแอปเดียว ในแบบเดียวกับที่แอป Claude ให้เข้าถึง

122
00:14:31,827 --> 00:14:38,014
Claude Code และ Claude Chat ในที่เดียว และ สุดท้าย

123
00:14:38,014 --> 00:14:43,829
มีบทความหนึ่งที่อยากแชร์ ซึ่งเขียนโดย Anthropic

124
00:14:43,829 --> 00:14:49,892
เกี่ยวกับวิธีเลือกโมเดลที่ใช่ และ ระดับความพยายาม

125
00:14:49,892 --> 00:14:57,316
(effort) ที่ใช่ สำหรับงานที่ใช่ [P19] ขอแชร์ลิงก์ให้ในแชทเลย

126
00:14:57,316 --> 00:15:03,874
แล้ว ก็มีส่วนหนึ่งที่น่าสนใจมาก มีส่วนที่คุณจะเห็นว่า

127
00:15:03,874 --> 00:15:09,690
OpenAI ที่ low effort เป็นยังไง ที่ high effort

128
00:15:09,690 --> 00:15:15,876
เป็นยังไง และ Fable แม้แต่ที่ low effort เป็นยังไง

129
00:15:15,876 --> 00:15:26,146
เช่น เขาบอกว่า Sonnet ที่ high effort ก็เหมือนได้นักทำงานทั่วไปที่เก่งมากมาทั้งบ่าย

130
00:15:26,146 --> 00:15:31,962
เขาจะอ่านทุกอย่าง รันทุกอย่าง ตรวจงานสองรอบ และ

131
00:15:31,962 --> 00:15:38,148
สุดท้ายเข้าใจโค้ดเฉพาะของคุณอย่างถ่องแท้ [P20] และ

132
00:15:38,148 --> 00:15:44,582
พวกเขาไม่ได้มีความรู้สึกแบบ "ฉันเคยเห็นแบบนี้มาก่อน"

133
00:15:44,582 --> 00:15:52,996
ในขณะที่ Fable แม้แต่ที่ low effort ก็เป็นเหมือนผู้เชี่ยวชาญเฉพาะทาง

134
00:15:52,996 --> 00:16:00,420
ที่มองงานคุณปุ๊บ แล้วสามารถหาและชี้จุดที่ไม่มีใครอื่นเห็นได้

135
00:16:00,420 --> 00:16:06,483
เอาล่ะ ผมจะไม่ลงรายละเอียดของพรีเซนเทชันนี้แน่นอน

136
00:16:06,483 --> 00:16:13,165
เพราะ เราไม่มีเวลา แต่ผมแนะนำอย่างยิ่ง ให้ทุกคนไปลองดู

137
00:16:13,165 --> 00:16:20,836
มันน่าสนใจจริงๆ โอเค ไปสไลด์ถัดไปกัน และ ไปที่บทความจริงกันเลย

138
00:16:20,836 --> 00:16:26,652
[P21] ผมไม่รู้ว่าทุกคนติดตามจดหมายข่าวของ Lenny

139
00:16:26,652 --> 00:16:32,591
หรือเปล่า แต่ผมว่ามันดีที่สุด ถ้ายังไม่ได้ติดตาม

140
00:16:32,591 --> 00:16:39,149
ผมแนะนำให้ติดตามเลย เพราะ ปริมาณคอนเทนต์ที่เขาทำออกมา

141
00:16:39,149 --> 00:16:45,336
กับแขกระดับสูงมากมายขนาดนั้น หาที่เปรียบได้ยาก และ

142
00:16:45,336 --> 00:16:51,399
ในพอดแคสต์ล่าสุด เขาสัมภาษณ์ CPTO ของ Netflix คือ

143
00:16:51,399 --> 00:16:57,956
Elizabeth Stone ซึ่งบอกว่า เราต้องการคนที่คิดเชิงระบบ

144
00:16:57,956 --> 00:17:03,772
(system thinkers) มากขึ้น ในโลกที่เต็มไปด้วย AI

145
00:17:03,772 --> 00:17:15,527
แล้วเธอหมายความว่าอะไร? สิ่งที่เธอหมายถึงก็คือ ในโลกที่เทคโนโลยีสุดยอดนี้เปิดให้ทุกคนเข้าถึงได้

146
00:17:15,527 --> 00:17:22,951
[P22] สิ่งที่สร้างความแตกต่างอย่างแท้จริงคือ คุณสามารถประสาน

147
00:17:22,951 --> 00:17:28,766
และ รวมการใช้ AI ภายในบริษัทหนึ่งๆ ได้มากแค่ไหน

148
00:17:28,766 --> 00:17:37,180
[P23] เพราะ ถ้าในบริษัทหนึ่ง มีสมาชิกทีมคนหนึ่งที่เป็นผู้ใช้ระดับสูง

149
00:17:37,180 --> 00:17:43,490
ผู้เชี่ยวชาญและ power user ของ Claude Code ในขณะที่

150
00:17:43,490 --> 00:17:50,048
product designer ที่เขาร่วมงานด้วย กลับใช้ AI ไม่เป็น

151
00:17:50,048 --> 00:17:55,864
ในองค์กรแบบนี้ คุณกำลังสูญเสียพลังที่แท้จริงของ

152
00:17:55,864 --> 00:18:01,927
AI ไป และ นี่เป็นตัวอย่างที่เฉพาะเจาะจงและง่ายมาก

153
00:18:01,927 --> 00:18:09,846
จริงๆ แล้วง่ายมาก แต่ขอย้ำว่า ตัวสร้างความแตกต่างหลักในทุกวันนี้

154
00:18:09,846 --> 00:18:16,527
คือการทำให้วิธีการทำงานของสมาชิกในทีมเป็นหนึ่งเดียวกัน

155
00:18:16,527 --> 00:18:23,333
แม้แต่กับคนที่เชี่ยวชาญโค้ดอยู่แล้ว ซึ่งหมายถึงการสร้าง

156
00:18:23,333 --> 00:18:29,891
skills การสร้าง sub agents หรือ ทั้งหมดที่เราเรียกว่า

157
00:18:29,891 --> 00:18:37,562
harness ซึ่งต้องใช้การฝึกฝนพอสมควร นี่คือเหตุผลที่ผมสร้างคอร์ส

158
00:18:37,562 --> 00:18:44,615
Code for PMs ขึ้นมา [P24] แต่มีระบบหนึ่งที่คุณสามารถสร้าง

159
00:18:44,615 --> 00:18:50,925
และ แพร่กระจายในทีมของคุณได้ นั่นคือ loops แล้วทำไม

160
00:18:50,925 --> 00:18:56,741
loops ถึงน่าสนใจ? ขออธิบายปัญหาที่มันแก้ได้ก่อน

161
00:18:56,741 --> 00:19:02,927
ผมเรียกมันว่า กับดักงานซับซ้อน (complex task trap)

162
00:19:02,927 --> 00:19:08,990
ลองจินตนาการว่า เราอยู่ในสถานการณ์นี้ เราเริ่มใช้

163
00:19:08,990 --> 00:19:17,404
Claude Code [P25] ผมไม่รู้ว่าทุกคนอยู่ระดับไหน แต่ถ้าคุณเริ่มเล่นกับ

164
00:19:17,404 --> 00:19:24,828
Claude Code รู้พื้นฐานของ Claude Code แล้ว ตอนนี้อาจเริ่มรัน

165
00:19:24,828 --> 00:19:31,386
agents หรือ ใช้ skills เพื่อเพิ่มประสิทธิภาพการใช้งาน

166
00:19:31,386 --> 00:19:39,181
ถ้าคุณเริ่มมีสิ่งที่เราเรียกว่า harness ที่ให้คุณทำงานอัตโนมัติ

167
00:19:39,181 --> 00:19:46,110
และ ใช้ AI อย่างมีประสิทธิภาพ คุณอาจเริ่มทำงานที่ซับซ้อน

168
00:19:46,110 --> 00:19:52,421
ซึ่งหมายความว่า คุณอาจเริ่มใช้ frontier model [P26]

169
00:19:52,421 --> 00:20:01,206
โมเดลระดับ frontier อย่าง Fable ที่สามารถจัดการงานซับซ้อนพวกนั้นได้จริง

170
00:20:01,206 --> 00:20:09,744
แต่ข้อเสียหลักคือ Fable กิน token เยอะมาก และ ยังไม่พร้อมใช้งานเสมอไป

171
00:20:09,744 --> 00:20:15,807
มันใช้ได้เฉพาะแผน Max เท่านั้น พูดง่ายๆ คือแพงมาก

172
00:20:15,807 --> 00:20:23,231
[P27] ในทางกลับกัน คุณอาจบอกว่า โอเค ฉันจะใช้โมเดลที่ถูกกว่า

173
00:20:23,231 --> 00:20:32,511
ใช้ Sonnet แทน แต่สำหรับงานซับซ้อนพวกนี้ ถ้าคุณอยากให้งานสำเร็จอย่างถูกต้อง

174
00:20:32,511 --> 00:20:38,574
คุณจะต้อง prompt ซ้ำแล้วซ้ำเล่า iterate ไปเรื่อยๆ

175
00:20:38,574 --> 00:20:45,379
ซึ่งสุดท้าย คุณก็จะกิน token เยอะพอๆ กับการใช้ frontier

176
00:20:45,379 --> 00:20:53,298
model เช่นเดียวกัน ดังนั้น สิ่งที่เกิดขึ้นคือ ไม่ทางใดก็ทางหนึ่ง

177
00:20:53,298 --> 00:21:00,227
คุณจ่าย ไม่ด้วย token ก็ด้วยคุณภาพ [P28] นั่นหมายความว่า

178
00:21:00,227 --> 00:21:07,527
มันแพงมาก หรือ ไม่ก็ต้องยอมลดคุณภาพลง และ มันน่าหงุดหงิดมาก

179
00:21:07,527 --> 00:21:16,065
เวลาต้องยอมลดคุณภาพ เมื่อคุณอยากขายของ หรือ อยากสร้างผลิตภัณฑ์ที่ดูดี

180
00:21:16,065 --> 00:21:23,736
โดยเฉพาะทุกวันนี้ ที่ใครๆ ก็สร้างได้ ดังนั้น ยังมีอีกวิธีหนึ่ง

181
00:21:23,736 --> 00:21:29,799
ที่จะใช้ frontier model เหล่านั้น โดยไม่กิน token

182
00:21:29,799 --> 00:21:35,738
มากเกินไป และ ไม่ต้องยอมลดคุณภาพ นั่นก็คือ loops

183
00:21:35,738 --> 00:21:42,420
[P29] ผมเรียนรู้เรื่อง loops เยอะมากจากคอนเทนต์ออนไลน์

184
00:21:42,420 --> 00:21:50,834
แต่มีบทความหนึ่งของ Anthropic ที่เกี่ยวข้องมาก ที่ช่วยให้เริ่มต้นกับ

185
00:21:50,834 --> 00:21:58,258
loops ได้ และ เพื่อเป็นการเริ่ม ผมสรุปบางส่วนของบทความนี้ไว้

186
00:21:58,258 --> 00:22:06,548
เพื่อประหยัดเวลาให้ทุกคน และ อย่างน้อย ทุกคนจะเข้าใจอย่างรวดเร็วว่า

187
00:22:06,548 --> 00:22:12,982
loops คืออะไร [P30] หลักการหลักก็คือ คุณตั้งเป้าหมาย

188
00:22:12,982 --> 00:22:19,540
(goal) สำหรับสิ่งที่อยากทำให้สำเร็จ จากนั้นลงมือทำงาน

189
00:22:19,540 --> 00:22:28,078
เปรียบเทียบผลลัพธ์ของงานกับเป้าหมาย และ ตราบใดที่เป้าหมายยังไม่สำเร็จ

190
00:22:28,078 --> 00:22:34,883
คุณก็ยังคง execute, prompt AI ไปเรื่อยๆ และ ด้วยวิธีนี้

191
00:22:34,883 --> 00:22:40,822
คุณสามารถแบ่งงานระหว่าง planner กับ executor ได้

192
00:22:40,822 --> 00:22:46,638
เดี๋ยวผมจะลงรายละเอียดเพิ่มเติมอีกทีหลัง เอาล่ะ

193
00:22:46,638 --> 00:22:52,948
นี่คือแนวคิดแรกที่พวกเขานำเสนอ คือ turn-based loops

194
00:22:52,948 --> 00:22:59,506
แล้ว turn-based loops คืออะไร? [P31] นี่คือวิธีการที่

195
00:22:59,506 --> 00:23:06,559
Claude Code ทำงานอยู่ในปัจจุบันพอดี แล้วมันทำงานยังไงล่ะ?

196
00:23:06,559 --> 00:23:12,374
ก็คือ คุณเริ่มจาก prompt เมื่อคุณ prompt Claude

197
00:23:12,374 --> 00:23:19,427
Code สิ่งที่เกิดขึ้นคือ คุณเริ่มด้วย prompt พร้อมกับบริบท

198
00:23:19,427 --> 00:23:27,222
(context) ที่โมเดลจะรวบรวม ลงมือทำ และ มันจะตรวจสอบงานของตัวเอง

199
00:23:27,222 --> 00:23:33,409
กับเป้าหมายที่มันกำหนดขึ้นเอง จากบริบทที่มันเข้าใจ

200
00:23:33,409 --> 00:23:39,225
[P32] นั่นหมายความว่า โดยค่าเริ่มต้นแล้ว Claude

201
00:23:39,225 --> 00:23:48,628
Code ใช้ loops เหล่านี้ สำหรับงานซับซ้อน โดยอิงจากเป้าหมายที่ตัวมันเองตีความ

202
00:23:48,628 --> 00:23:56,300
และ เปรียบเทียบไปเรื่อยๆ จนกว่าจะได้ผลลัพธ์ที่มันคิดว่าถูกต้อง

203
00:23:56,300 --> 00:24:02,858
โอเค [P33] นี่คือสิ่งที่คุณใช้งานอยู่ โดยที่ไม่รู้ตัว

204
00:24:02,858 --> 00:24:09,292
และ มันทำงานได้ดีมาก ถ้าคุณโฟกัสกับงานเล็กๆ งานง่ายๆ

205
00:24:09,292 --> 00:24:16,840
ฯลฯ จากนั้นก็มี goal-based loops ซึ่งก็คือหลักการเดียวกันเป๊ะ

206
00:24:16,840 --> 00:24:24,387
เว้นแต่ ใช้คำสั่ง /goal ที่คุณอาจจะรู้จัก และ ใช้ได้กับผู้ใช้

207
00:24:24,387 --> 00:24:30,450
Claude Code ทุกคน แทนที่จะให้ AI กำหนดเป้าหมายเอง

208
00:24:30,450 --> 00:24:37,751
จากบริบทที่คุณให้ คุณเริ่มต้นด้วยการ prompt ด้วยเป้าหมายแทน

209
00:24:37,751 --> 00:24:44,185
[P34] คุณจะพิมพ์ว่า /goal เปลี่ยนแบรนดิ้ง (branding)

210
00:24:44,185 --> 00:24:50,248
ของเว็บไซต์เรา ให้เหมาะกับแอคาเดมี หรือ แพลตฟอร์ม

211
00:24:50,248 --> 00:24:56,434
e-learning มากขึ้น เป็นต้น นี่ถือเป็นการอัปเกรดจาก

212
00:24:56,434 --> 00:25:05,591
loop แบบแรก แต่ก็ยังค่อนข้างจำกัด และ มันไม่สามารถแก้ปัญหาที่ผมยกขึ้นมาได้

213
00:25:05,591 --> 00:25:11,777
นั่นคือ โอเค ฉันอยากใช้ Fable สำหรับบางงานเท่านั้น

214
00:25:11,777 --> 00:25:18,706
และ อยากใช้โมเดลที่ถูกกว่าสำหรับงานอื่น และ นี่คือจุดที่

215
00:25:18,706 --> 00:25:24,522
agent-based loops เข้ามา วิธีการทำงานเป็นแบบนี้

216
00:25:24,522 --> 00:25:31,575
คุณมีตัวกระตุ้น (trigger) สำหรับ loop [P35] ตัวกระตุ้นคือ

217
00:25:31,575 --> 00:25:39,494
คุณเปิดใช้งานมันด้วยมือ หรือ คุณตั้งเวลามัน เพื่อให้รันอัตโนมัติ

218
00:25:39,494 --> 00:25:45,557
เช่น ทุกวันเที่ยงคืน แล้ว สิ่งที่มันจะทำคือ เรียก

219
00:25:45,557 --> 00:25:52,115
agent หนึ่ง ที่จะเรียก agent ที่สอง มันจะคิดงานขึ้นมา

220
00:25:52,115 --> 00:26:00,033
เขียนสเปก (spec) แล้ว เรียก agent อีกตัว ที่จะทำงานนั้นให้สำเร็จ

221
00:26:00,033 --> 00:26:06,344
จากนั้นส่งผลลัพธ์กลับไปให้ agent ตัวแรก โอเค? [P36]

222
00:26:06,344 --> 00:26:12,283
และ ด้วยวิธีนี้ เรามีระบบของ agents ที่คุยกันเอง

223
00:26:12,283 --> 00:26:20,697
ไปเรื่อยๆ จนกว่าเป้าหมายจะสำเร็จ แล้วมันหมายความว่าอะไรในทางปฏิบัติ?

224
00:26:20,697 --> 00:26:27,874
ผมจะโชว์ให้ดูจริงๆ ว่า รัน agent-based loops เหล่านี้ยังไง

225
00:26:27,874 --> 00:26:34,184
และ เราจะนำมันไปใช้ จริงๆ กับการสร้างฟีเจอร์ใหม่ให้

226
00:26:34,184 --> 00:26:39,999
Vibe Coding Academy โดยสิ่งที่เราจะทำคือ ใช้สอง

227
00:26:39,999 --> 00:26:46,062
agents หนึ่งคือ senior developer ที่ใช้ Fable และ

228
00:26:46,062 --> 00:26:55,342
อีกหนึ่งคือ junior developer ที่ใช้ Sonnet และ สองคนนี้จะทำงานร่วมกันแบบนี้

229
00:26:55,342 --> 00:27:01,777
[P37] ขอเปิดไดอะแกรมที่อยากแชร์ให้ดูหน่อย โดยพื้นฐาน

230
00:27:01,777 --> 00:27:08,706
สิ่งที่จะเกิดขึ้นเป็นแบบนี้ โอเค ผมว่า ทุกคนยังไม่เห็นนะ

231
00:27:08,706 --> 00:27:16,872
เอาล่ะ ขอแชร์หน้าจออีกครั้ง เอาล่ะ ปกติแล้ว ทุกคนน่าจะเห็นไดอะแกรม

232
00:27:16,872 --> 00:27:24,049
Excalidraw แล้ว ขอแป๊บนึง เพราะ ผมไม่แน่ใจว่ามันถูกต้องไหม

233
00:27:24,049 --> 00:27:32,215
ใช่ นี่คือสิ่งที่ผมต้องการ ใช่ เยี่ยมมาก แล้วจะเกิดอะไรขึ้นตรงนี้?

234
00:27:32,215 --> 00:27:39,886
[P38] เรามีไอเดียฟีเจอร์ใหม่ที่อยากสร้าง และ สิ่งที่เราจะทำคือ

235
00:27:39,886 --> 00:27:46,197
รัน loop และ สิ่งที่จะเกิดขึ้นคือ เมื่อไหร่ก็ตามที่

236
00:27:46,197 --> 00:27:56,467
loop ถูกกระตุ้น senior dev จะเขียนสเปกขึ้นมา สเปกเหล่านี้จะถูกแบ่งออกเป็นสามงานหลัก

237
00:27:56,467 --> 00:28:02,406
งานหนึ่งสำหรับ front end งานหนึ่งสำหรับ back end

238
00:28:02,406 --> 00:28:08,593
และ งานหนึ่งสำหรับเชื่อมต่อ front end กับ back end

239
00:28:08,593 --> 00:28:15,027
เข้าด้วยกัน [P39] และ เมื่องานเหล่านี้ถูกแบ่งออกแล้ว

240
00:28:15,027 --> 00:28:20,842
งานเหล่านี้จะถูกส่งต่อโดย senior dev ให้ junior

241
00:28:20,842 --> 00:28:26,782
dev ลงมือทำ และ จากนั้น ขอให้ senior dev ตรวจสอบ

242
00:28:26,782 --> 00:28:33,092
หรือ ทำ QA ให้ งานแรก แล้ว ถ้าผ่านการตรวจสอบ senior

243
00:28:33,092 --> 00:28:39,031
dev ก็จะส่งต่องานให้ junior dev ลงมือทำให้สำเร็จ

244
00:28:39,031 --> 00:28:44,970
ถ้า QA ไม่ผ่าน senior dev ก็จะบอก junior dev ว่า

245
00:28:44,970 --> 00:28:53,384
อันนี้ใช้ไม่ได้ ลงมือทำงานใหม่ ฯลฯ ไปเรื่อยๆ จนกว่างานทั้งหมดจะเสร็จ

246
00:28:53,384 --> 00:28:59,447
[P40] และ สิ่งที่น่าสนใจในหลักการหลักนี้คือ เรามี

247
00:28:59,447 --> 00:29:05,881
senior dev ที่ทำงานกับ Fable ตรงนี้ และ เรามี junior

248
00:29:05,881 --> 00:29:12,316
dev ที่ทำงานกับ Sonnet และ นั่นหมายความว่า การแตกงาน

249
00:29:12,316 --> 00:29:18,873
(breakdown) ไม่ว่าจะตรงนี้ หรือ ตรงนี้ จะเกิดขึ้นด้วย

250
00:29:18,873 --> 00:29:26,669
frontier model ซึ่งเป็นตัวที่แพงที่สุด ในขณะที่งานที่ง่ายที่สุด

251
00:29:26,669 --> 00:29:32,979
ซึ่งก็คือการลงมือเขียนโค้ดตามสเปก และ ตามการแบ่งงาน

252
00:29:32,979 --> 00:29:40,651
จะทำโดย dev ที่ใช้ Sonnet โดยตรง [P41] เราจะนำสิ่งนี้ไปใช้จริง

253
00:29:40,651 --> 00:29:47,951
กับตัวอย่างที่เป็นรูปธรรม ขอพักแป๊บนึงตรงนี้ ทุกคนเข้าใจไหม

254
00:29:47,951 --> 00:29:56,983
หรือ งงไปหมดแล้ว? บอกผมได้เลย แค่อยากรู้ว่า อย่างน้อยมันก็เข้าใจได้ใช่ไหม

255
00:29:56,983 --> 00:30:03,170
ตอบได้ด้วยอิโมจิ ถ้าชอบ ทุกอย่างดี เยี่ยมมาก ดีมาก

256
00:30:03,170 --> 00:30:10,099
โอเค ผมยังไม่ได้เปิดแชท เยี่ยม ไปที่การสาธิตกันต่อดีกว่า

257
00:30:10,099 --> 00:30:16,410
เอาล่ะ ไปกันเลย เราจะสร้างฟีเจอร์ใหม่ให้เว็บไซต์ของ

258
00:30:16,410 --> 00:30:22,720
Vibe Coding Academy ขอเปิด Vibe Coding Academy ก่อน

259
00:30:22,720 --> 00:30:29,030
[P42] ผมเปิดมันไว้ใน environment ในเครื่องของผมแล้ว

260
00:30:29,030 --> 00:30:37,073
ซึ่งโดยพื้นฐานก็ตรงกับที่อยู่บน production และ อย่างที่เห็นบนหน้า

261
00:30:37,073 --> 00:30:42,889
index ของ Vibe Coding Academy ผมมี testimonials

262
00:30:42,889 --> 00:30:49,818
จากนักเรียนของ Vibe Coding Academy ตรงนี้ มันดูดีทีเดียว

263
00:30:49,818 --> 00:30:55,757
แต่ผมอยากปรับปรุงดีไซน์ของ testimonials เหล่านี้

264
00:30:55,757 --> 00:31:02,067
[P43] และ มีจุดหนึ่งเกี่ยวกับ testimonials เหล่านี้

265
00:31:02,067 --> 00:31:11,966
คือ มันถูกรวบรวมขึ้นตามคอร์สที่ผมสอน และ ผมเก็บมันไว้ในเครื่องมือเฉพาะที่ชื่อว่า

266
00:31:11,966 --> 00:31:19,266
Senja (senja.io) ซึ่งเป็น SaaS ที่จัดการเรื่อง testimonials

267
00:31:19,266 --> 00:31:26,195
ให้คุณ และ มีอยู่หน้าหนึ่งที่ผมชอบมาก ที่มี testimonials

268
00:31:26,195 --> 00:31:32,382
แบบ flip cards ที่ผมอยากนำมาปรับใช้บนเว็บไซต์ของผม

269
00:31:32,382 --> 00:31:38,445
นี่คือสิ่งที่เราจะสร้าง [P44] สิ่งที่เราอยากทำคือ

270
00:31:38,445 --> 00:31:44,508
แทนที่ ticker ตรงนี้ ด้วย carousel ของ flip cards

271
00:31:44,508 --> 00:31:50,818
แบบนี้ ที่ดูเหมือนกับอันนี้เป๊ะ เอาล่ะ มาลงมือทำกัน

272
00:31:50,818 --> 00:31:57,005
ในการทำแบบนี้ ผมจะเปิด Claude Code ขอโทษด้วยนะครับ

273
00:31:57,005 --> 00:32:03,563
แต่ด้วยเหตุผลหลายอย่าง ที่ผมจะไม่ลงรายละเอียด ผมจะใช้

274
00:32:03,563 --> 00:32:09,378
Claude Code จากเทอร์มินัล ไม่ใช่แอป Claude Code

275
00:32:09,378 --> 00:32:15,194
desktop แต่ไม่ต้องกังวล มันทำงานเหมือนกันเป๊ะบน

276
00:32:15,194 --> 00:32:21,999
Claude Code desktop แค่สะดวกกว่าสำหรับผมในการเปิดใช้งาน

277
00:32:21,999 --> 00:32:27,938
[P45] ตรงนี้ เราสามารถเปิดเซสชัน Claude Code ได้

278
00:32:27,938 --> 00:32:34,001
และ สิ่งที่เราจะทำคือ เปลี่ยนโหมด ไปที่ auto mode

279
00:32:34,001 --> 00:32:39,817
ถ้าคุณไม่รู้จักช็อตคัตนี้ คุณกดปุ่ม shift + tab

280
00:32:39,817 --> 00:32:46,622
แล้ว จะสลับไปมาระหว่างโหมดต่างๆ และ โหมดที่ผมอยากใช้คือ

281
00:32:46,622 --> 00:32:53,304
auto mode ซึ่งเป็นโหมดที่ผมไม่ต้องตรวจสอบงานทั้งหมดที่

282
00:32:53,304 --> 00:33:00,233
Claude Code รัน และ สิ่งที่ผมจะทำคือ อธิบายสิ่งที่อยากทำ

283
00:33:00,233 --> 00:33:06,791
และ ขอให้เริ่ม loop อย่างชัดเจน [P46] โอเค ผมจะพูดว่า

284
00:33:06,791 --> 00:33:14,215
ผมจะเปิดใช้ custom command ที่ผมสร้างไว้ ผมจะไม่ลงรายละเอียด

285
00:33:14,215 --> 00:33:20,030
เกี่ยวกับวิธีสร้าง custom command ที่ผมสร้างเอง

286
00:33:20,030 --> 00:33:26,712
และ ช่วยให้ผมปรับแต่งงานเฉพาะได้ ยังไงก็ตาม ผมจะไม่ใช้

287
00:33:26,712 --> 00:33:33,888
Fable สำหรับอันนี้ ผมจะใช้ Opus แม้ว่า อย่างที่ทุกคนเข้าใจ

288
00:33:33,888 --> 00:33:40,075
โมเดลที่ใช้อย่างน้อยในการกระตุ้นงาน จะไม่สำคัญเท่า

289
00:33:40,075 --> 00:33:46,138
สิ่งที่สำคัญคือโมเดลที่จะใช้สำหรับทั้ง junior dev

290
00:33:46,138 --> 00:33:52,448
และ senior dev ของเรา โดยพื้นฐาน นี่คือวิธีเริ่มมัน

291
00:33:52,448 --> 00:33:58,388
[P47] งั้น loop ผมอยากสร้างฟีเจอร์ใหม่บนเว็บไซต์

292
00:33:58,388 --> 00:34:04,946
Vibe Coding Academy แทนที่ ตรงไหนนะ ใช่ แทนที่ ticker

293
00:34:04,946 --> 00:34:11,008
ของ testimonials ที่มีอยู่บนหน้า index และ ตรงนี้

294
00:34:11,008 --> 00:34:18,185
สิ่งที่ผมจะทำคือ วาง screenshot ที่ผมถ่ายไว้ลงในเทอร์มินัล

295
00:34:18,185 --> 00:34:24,248
โอเค ผมจะเปิด screenshot ของผม และ เอาอันนี้ โอเค

296
00:34:24,248 --> 00:34:31,548
ผมอยากรีดีไซน์มัน ให้ดูเหมือน testimonials ที่อยู่บนหน้านี้

297
00:34:31,548 --> 00:34:37,611
[P48] และ นี่คือจุดที่ผมจะวางลิงก์ที่เพิ่งโชว์จาก

298
00:34:37,611 --> 00:34:43,427
Senja และ เจาะจงกว่านั้น นี่คือลักษณะที่มันเป็น

299
00:34:43,427 --> 00:34:49,490
โอเค ตรงนี้ คุณรู้ไหม ผมใช้เวลาจริงๆ ในการ prompt

300
00:34:49,490 --> 00:34:55,676
ตรงนี้ ถ้าผมอยู่คนเดียว ผมจะทำแบบนี้ด้วยเครื่องมือ

301
00:34:55,676 --> 00:35:03,719
dictation แต่ เพราะ ผมแค่อยากโชว์ให้ทุกคนเห็นรายละเอียดมากขึ้นว่า

302
00:35:03,719 --> 00:35:09,782
มันควรมีอะไรบ้าง ผมเลยทำแบบ manual มากขึ้น นี่คือ

303
00:35:09,782 --> 00:35:18,072
flip card ที่มีรูปของนักเรียน และ testimonial ของพวกเขาอยู่ด้านหลัง

304
00:35:18,072 --> 00:35:23,888
สิ่งที่ผมอยากทำคือ ระบุเกณฑ์ความสำเร็จ (success

305
00:35:23,888 --> 00:35:30,693
criteria) ของโปรเจกต์นี้ [P49] ตรงนี้ สิ่งที่อยากพูดคือ

306
00:35:30,693 --> 00:35:36,880
เพื่อยืนยันความสำเร็จของโปรเจกต์นี้ front end หรือ

307
00:35:36,880 --> 00:35:42,943
flip cards ควรจะดูเหมือนบนเว็บไซต์อ้างอิงเป๊ะ และ

308
00:35:42,943 --> 00:35:49,995
ผมคิดว่า ประมาณนี้ ถ้าผมจำไม่ผิด เราเพิ่งพูดถึงเจาะจงขึ้น

309
00:35:49,995 --> 00:35:56,306
เกี่ยวกับดีไซน์ใหม่ และ รูปลักษณ์ต้นแบบ (lookalike)

310
00:35:56,306 --> 00:36:03,235
ที่เราอยากอ้างอิง งั้นลองกดคำสั่งนี้ดู แล้ว คุณจะเห็นว่า

311
00:36:03,235 --> 00:36:09,545
ปกติมันจะแตกออกเป็นชุดของ agents อย่างที่เห็นตรงนี้

312
00:36:09,545 --> 00:36:15,979
มันบอกว่า step zero คือประกอบ design reference [P50]

313
00:36:15,979 --> 00:36:25,259
โดยพื้นฐาน มันเป็นขั้นตอนแรก ในการกำหนดว่า เกณฑ์ความสำเร็จที่แท้จริงคืออะไร

314
00:36:25,259 --> 00:36:31,570
เราจะรอสักครู่ ให้งานรัน ตรงนี้เราอยู่ที่ step zero

315
00:36:31,570 --> 00:36:37,757
senior dev ยังไม่ได้เข้ามาแทรกอะไร แค่ประกอบดีไซน์

316
00:36:37,757 --> 00:36:44,933
เพื่อกำหนดเป้าหมาย นี่คือขั้นตอนแรกจริงๆ สำหรับงานเฉพาะนี้

317
00:36:44,933 --> 00:36:50,749
โมเดลที่ใช้คือตัวที่คุณเลือกเป็นค่าเริ่มต้น และ

318
00:36:50,749 --> 00:36:56,564
อย่างที่เห็น ตรงนี้มันเรียกว่า senior dev [P51]

319
00:36:56,564 --> 00:37:04,730
ตอนนี้ senior dev กำลังสำรวจ repo และ ร่างสเปก เดี๋ยวผมจะโชว์ให้ดู

320
00:37:04,730 --> 00:37:11,041
เมื่อมันกลับมา แล้ว มอบหมายงาน front end ให้ junior

321
00:37:11,041 --> 00:37:18,960
dev อย่างที่เห็น คุณกดปุ่มลูกศรย้อนกลับได้ และ ที่ด้านล่างตรงนี้

322
00:37:18,960 --> 00:37:27,869
ถ้าคุณคลิกที่เซสชันนั้น จะเห็นว่า มี prompt เฉพาะที่ถูกส่งไปยังเซสชันนี้

323
00:37:27,869 --> 00:37:36,159
ให้ senior dev ทำงานกับสเปก และ senior dev นี้ ตามที่นิยามไว้ตรงนี้

324
00:37:36,159 --> 00:37:42,469
ใช้ Fable เป็นโมเดลหลัก โอเค เราจะหยุดแป๊บนึงตรงนี้

325
00:37:42,469 --> 00:37:48,285
[P52] เราหยุดตรงนี้ และ อย่างที่เห็น senior dev

326
00:37:48,285 --> 00:37:54,843
ทำงานเสร็จแล้ว และ มันบอกว่า โอเค ไปทำ native central

327
00:37:54,843 --> 00:38:00,782
style flip card carousel เป็นคอมโพเนนต์ใหม่ บลาๆ

328
00:38:00,782 --> 00:38:08,206
บลาๆ stage หนึ่ง front end mock แล้ว มันจะเริ่มด้วยโปรโตไทป์

329
00:38:08,206 --> 00:38:14,392
จากนั้น จะทำ back end และ จากนั้น เชื่อมต่อระหว่าง

330
00:38:14,392 --> 00:38:20,455
front end กับ back end และ สิ่งที่เจ๋งคือ ในแต่ละ

331
00:38:20,455 --> 00:38:26,766
stage เราจะมี senior dev ตรวจสอบงาน (QA) จริงๆ โอเค

332
00:38:26,766 --> 00:38:33,819
งั้นเรามาดำเนินการต่อ [P53] โดยพื้นฐาน สิ่งที่เกิดขึ้นคือ

333
00:38:33,819 --> 00:38:40,624
ตอนนี้ senior dev ทำงานเสร็จแล้ว senior dev ทำสเปกเสร็จ

334
00:38:40,624 --> 00:38:48,295
ผมจะใส่สีเขียวให้ senior dev นะ และ ตอนนี้มันกำลังส่งต่องานให้

335
00:38:48,295 --> 00:38:55,967
junior dev ซึ่งปกติจะเริ่มทำงาน มาดูกันว่ามันเริ่มทำงานหรือยัง

336
00:38:55,967 --> 00:39:05,000
อย่างที่เห็น junior dev กำลังทำงาน ถ้าผมกลับไปที่เซสชันที่เริ่มแบบคู่ขนาน

337
00:39:05,000 --> 00:39:10,939
junior dev กำลังทำงาน และ อย่างที่เห็น มี branch

338
00:39:10,939 --> 00:39:17,249
เฉพาะ [P54] คุณคือ junior dev ในกลุ่ม senior junior

339
00:39:17,249 --> 00:39:23,188
build group จงทำ stage หนึ่ง front end mock data

340
00:39:23,188 --> 00:39:30,117
ตามสเปกด้านล่าง และ สเปกมีอยู่ตรงนี้ พร้อมเกณฑ์การยอมรับ

341
00:39:30,117 --> 00:39:35,933
(acceptance criteria) ฯลฯ ฯลฯ โอเค คุณจะเห็นว่า

342
00:39:35,933 --> 00:39:43,976
มันกำลังเพิ่มโค้ดเข้าไปใน front end นี่คือสิ่งที่เราจะเพิ่มตรงนี้

343
00:39:43,976 --> 00:39:49,791
เอาล่ะ junior dev กำลังลงมือเขียนโค้ด front end

344
00:39:49,791 --> 00:39:55,730
สิ่งที่เจ๋งคือ เมื่อคุณกลับไปที่เซสชันหลักตรงนี้

345
00:39:55,730 --> 00:40:03,402
คุณจะไม่เห็นอะไรนอกจาก background agent ที่ทำงานอยู่เบื้องหลัง

346
00:40:03,402 --> 00:40:10,702
[P55] โอเค แต่คุณสามารถดำดิ่งและโฟกัสไปที่เซสชันเฉพาะนี้ได้

347
00:40:10,702 --> 00:40:17,260
และ ใช่ นั่นเป็นสิ่งที่เจ๋งมาก ที่ได้เห็นว่าสิ่งต่างๆ

348
00:40:17,260 --> 00:40:24,684
เดินหน้าไปยังไง นี่คือสิ่งที่คุณอาจไม่รู้ ถ้าคุณยังไม่เคยใช้

349
00:40:24,684 --> 00:40:31,118
sub agents แต่สิ่งที่น่าสนใจหลักของการใช้ sub agents

350
00:40:31,118 --> 00:40:37,800
คือ พวกมันทำงานใน code session ของตัวเอง ภายใน context

351
00:40:37,800 --> 00:40:43,986
ของตัวเอง เอาล่ะ junior dev ดูเหมือนทำงานเสร็จแล้ว

352
00:40:43,986 --> 00:40:50,792
มาดูกันว่าเกิดอะไรขึ้นต่อ เราน่าจะได้รับคำแนะนำบางอย่าง

353
00:40:50,792 --> 00:40:56,855
ว่าเราจะเห็น testimonial ใหม่นั้นได้หรือไม่ [P56]

354
00:40:56,855 --> 00:41:02,670
เรามารอสักครู่ และ ดูว่าเกิดอะไรขึ้น ถ้ามีคำถาม

355
00:41:02,670 --> 00:41:09,970
ถามได้เลยนะครับ เรามีกันไม่กี่คนในเซสชันนี้ คุณสามารถถามได้

356
00:41:09,970 --> 00:41:16,900
ถ้ามีอะไรไม่ชัดเจน เอาล่ะ รอแป๊บนึงตรงนี้ เรากำลังใช้สอง

357
00:41:16,900 --> 00:41:23,581
sub agents ตามที่ผมโชว์ให้ดู ซึ่งนิยามโดยไฟล์ markdown

358
00:41:23,581 --> 00:41:29,892
สองไฟล์นี้ เราสามารถดูพรีวิวของอินเทอร์แอคชันนี้ได้

359
00:41:29,892 --> 00:41:38,677
อย่างที่เห็น เราใช้ junior developer บลาๆ บลาๆ งานของคุณคือทำงานให้เร็ว

360
00:41:38,677 --> 00:41:44,740
และ implement ตามที่ถูกขอเป๊ะ [P57] ในระหว่างนั้น

361
00:41:44,740 --> 00:41:50,926
อย่างที่เห็น senior dev กำลังรีวิว stage front end

362
00:41:50,926 --> 00:41:57,732
อยู่ ตอนนี้ senior กำลังทำ QA ของตัวเอง ถ่าย screenshot

363
00:41:57,732 --> 00:42:04,166
พรีวิว และ เปรียบเทียบเคียงข้างกัน กับกรอบอ้างอิงจาก

364
00:42:04,166 --> 00:42:12,209
Senja โอเค เพื่อให้รู้ไว้ สิ่งที่มันทำคือ ใช้เครื่องมือที่ชื่อว่า

365
00:42:12,209 --> 00:42:18,271
Playwright ซึ่งให้คุณรันเบราว์เซอร์ เพื่อทดสอบงาน

366
00:42:18,271 --> 00:42:25,077
front end และ จริงๆ แล้ว senior dev กำลังใช้ Playwright

367
00:42:25,077 --> 00:42:31,511
เพื่อเปรียบเทียบผลลัพธ์ที่มันสร้าง กับเป้าหมายตรงนี้

368
00:42:31,511 --> 00:42:38,440
[P58] เราก้าวหน้าไปแล้ว และ จริงๆ แล้วสิ่งที่เกิดขึ้นคือ

369
00:42:38,440 --> 00:42:46,112
junior dev ส่งต่องาน QA ให้ senior dev แล้ว ตรงนี้ผมไม่ได้โชว์

370
00:42:46,112 --> 00:42:52,174
loops โดยตรง แต่แค่โชว์ว่างานถูกวางซ้อนกันทีละงาน

371
00:42:52,174 --> 00:42:57,990
senior dev กำลังเข้าคิว front end ในระหว่างนั้น

372
00:42:57,990 --> 00:43:05,785
ผมสงสัยว่า เราจะเห็นมันได้ที่ไหนสักแห่งไหม บางทีสิ่งที่ทำได้คือ

373
00:43:05,785 --> 00:43:11,724
คุณสามารถกดคำสั่ง ที่ให้คุณถามคำถามระหว่างทางได้

374
00:43:11,724 --> 00:43:20,509
[P59] หน้าอะไร ที่โปรโตไทป์นี้พร้อมใช้งาน? ผมไม่รู้ว่าทุกคนรู้จักคำสั่ง

375
00:43:20,509 --> 00:43:27,562
slash นี้หรือเปล่า แต่มันมีประโยชน์มาก ถ้าคุณอยากถามคำถาม

376
00:43:27,562 --> 00:43:35,729
โดยไม่ต้องหยุดงานที่กำลังดำเนินอยู่ เอาล่ะ มาดูกันว่ามันทำงานยังไง

377
00:43:35,729 --> 00:43:44,390
และ อย่างที่เห็น เรามีสิ่งที่ดูเหมือนจะคล้ายกับดีไซน์ที่เรามีตรงนี้มาก

378
00:43:44,390 --> 00:43:50,206
และ สิ่งที่เกิดขึ้นคือ นี่คือ testimonials ปลอม

379
00:43:50,206 --> 00:43:56,021
โอเค พวกนี้ไม่ใช่ testimonials ของนักเรียน Vibe

380
00:43:56,021 --> 00:44:02,826
Coding Academy จริงๆ [P60] พวกนี้คือ mock data อีกครั้ง

381
00:44:02,826 --> 00:44:09,261
ข้อมูลจริงมาจาก testimonials จริง ที่ผมมีอยู่ในบัญชี

382
00:44:09,261 --> 00:44:15,323
Senja ของผม และ เราควรจะเห็นมัน ตอนท้ายของเดโมนี่

383
00:44:15,323 --> 00:44:22,747
เราจะได้เห็นว่ามันจะออกมาเป็นยังไง บางทีมันอาจจะดึงสิ่งต่างๆ

384
00:44:22,747 --> 00:44:30,171
ขึ้นมาที่เราไม่เห็นในทันที จะน่าสนใจที่จะดูว่ามันทำอะไรออกมา

385
00:44:30,171 --> 00:44:36,729
เอาล่ะ มันกำลังเพิ่มโค้ดอยู่ แต่โค้ดนี้ใช้สำหรับการทำ

386
00:44:36,729 --> 00:44:46,999
QA ใช่แล้ว ใช่ [P61] รออีกสักครู่ตรงนี้ดีกว่า สิ่งที่มักใช้เวลานานกว่าคือการตรวจสอบ

387
00:44:46,999 --> 00:44:54,300
front end เพราะ เมื่อพูดถึง อ้อ ขอโทษที ผมไม่เห็นว่ามีคำถาม

388
00:44:54,300 --> 00:45:00,857
ขอโทษ Carlo ที่พลาดคำถามของคุณ ขอตอบทันทีเลย คำถามคือ

389
00:45:00,857 --> 00:45:08,281
อันนี้รันด้วย extension ได้ไหม หรือ ใช้ในเทอร์มินัลเท่านั้น?

390
00:45:08,281 --> 00:45:14,344
ใช่ ได้แน่นอน มันรันด้วย extension ได้ มันรันด้วย

391
00:45:14,344 --> 00:45:20,160
Claude Code desktop ได้ ไม่มีข้อจำกัดอะไร [P62]

392
00:45:20,160 --> 00:45:26,718
เหตุผลที่ผมใช้ Claude Code ตรงนี้ ก็เพราะ ด้วย Claude

393
00:45:26,718 --> 00:45:35,627
Code มันง่ายกว่ามาก ในการจัดการกับ screenshot มันอาจฟังดูงี่เง่านิดหน่อย

394
00:45:35,627 --> 00:45:42,184
แต่ด้วย Claude Code คุณสามารถวางลิงก์ไปยังรูปภาพเฉพาะ

395
00:45:42,184 --> 00:45:48,495
ณ ตำแหน่งเฉพาะใน prompt ได้ ซึ่งดีกว่า เพราะ คุณส่ง

396
00:45:48,495 --> 00:45:56,043
screenshot ไปยังจุดที่คุณต้องการใช้มันจริงๆ นี่คือเหตุผลหนึ่ง

397
00:45:56,043 --> 00:46:02,848
[P63] และ ผมเกรงว่า อย่างน้อยในเดโมนี่ ถ้าผมไม่แม่นยำพอ

398
00:46:02,848 --> 00:46:08,663
กับ prompt ผมอาจพลาดบางอย่างไป เอาล่ะ มันบอกว่า

399
00:46:08,663 --> 00:46:14,850
senior กำลังทำ QA ของตัวเอง ถ่าย screenshot พรีวิว

400
00:46:14,850 --> 00:46:21,779
และ เปรียบเทียบเคียงข้างกัน ผล verdict ผ่าน อย่างที่เห็น

401
00:46:21,779 --> 00:46:28,337
front end ผ่านในครั้งแรก senior ยืนยันด้วย screenshot

402
00:46:28,337 --> 00:46:34,153
geometry overlay flip with yellow highlight และ

403
00:46:34,153 --> 00:46:40,092
side-by-side fidelity ตรงกันทั้งหมด [P64] ตอนนี้

404
00:46:40,092 --> 00:46:46,155
มันส่งต่อไปยัง stage สอง ซึ่งก็คือการสร้างฟีเจอร์

405
00:46:46,155 --> 00:46:51,970
back end ต่อ เมื่อ front end ผ่านการตรวจสอบแล้ว

406
00:46:51,970 --> 00:46:57,786
และ นี่คือจุดที่มันทรงพลังมาก คุณสามารถปรับแต่ง

407
00:46:57,786 --> 00:47:06,447
agent ของคุณได้ตามที่ต้องการ หมายความว่า ยิ่งคุณให้รายละเอียดเกี่ยวกับ

408
00:47:06,447 --> 00:47:12,510
agents เหล่านี้ เกี่ยวกับข้อกำหนดเฉพาะของคุณในแง่

409
00:47:12,510 --> 00:47:21,790
QA มากเท่าไหร่ ยิ่งดี และ ตรงนี้ ไม่มีขีดจำกัด สำหรับทีมแบบที่คุณจะสร้างได้

410
00:47:21,790 --> 00:47:29,585
[P65] โดยพื้นฐาน คุณต้องคิดถึงการตั้งค่านี้ เหมือนกับว่าคุณเป็น

411
00:47:29,585 --> 00:47:35,648
head of product หรือ lead developer หรือ CTO เช่น

412
00:47:35,648 --> 00:47:41,711
คุณอยากจ้างคนที่มีความเชี่ยวชาญเฉพาะเจาะจงมาก และ

413
00:47:41,711 --> 00:47:47,898
อยากให้พวกเขาทำงานร่วมกันอย่างมีประสิทธิภาพ เอาล่ะ

414
00:47:47,898 --> 00:47:53,713
Mariam ถามว่า "agent ของคุณมีบัญชีใน Playwright

415
00:47:53,713 --> 00:48:02,127
เพื่อรันเทสต์อัตโนมัติไหม?" ใช่ มี มันมีบัญชีสำหรับรันเทสต์อัตโนมัติ

416
00:48:02,127 --> 00:48:07,943
[P66] คุณเคยใช้เครื่องมือแบบนี้มาก่อนไหม Mariam

417
00:48:07,943 --> 00:48:13,882
หรือ คุณคุ้นเคยกับเครื่องมือแบบนี้ไหม? ไม่เป็นไร

418
00:48:13,882 --> 00:48:19,697
ถ้ายังไม่รู้ เดี๋ยวเราค่อยหาคำตอบกันทีหลัง โอเค

419
00:48:19,697 --> 00:48:26,008
จริงๆ แล้วขั้นตอน back end กำลังดำเนินอยู่ ดูเหมือน

420
00:48:26,008 --> 00:48:31,947
senior dev กำลังรีวิว stage back end อยู่ senior

421
00:48:31,947 --> 00:48:38,134
กำลังรีวิว backend API conversion fit adapter บลาๆ

422
00:48:38,134 --> 00:48:43,949
บลาๆ โดยพื้นฐาน มันบอกว่า มันสร้าง API endpoint

423
00:48:43,949 --> 00:48:50,507
ใหม่ หรือ ใช้ API endpoint ที่มีอยู่แล้ว ที่เป็นไปตาม

424
00:48:50,507 --> 00:48:59,540
best practices ของเรา [P67] ใช่ นี่คือสิ่งที่มันกำลังทำอยู่ในตอนนี้แน่นอน

425
00:48:59,540 --> 00:49:05,850
เอาล่ะ review mode stage under review back end บลาๆ

426
00:49:05,850 --> 00:49:12,284
บลาๆ โอเค โอเค ในระหว่างนี้ ผมจะดำเนินการนำเสนอต่อไป

427
00:49:12,284 --> 00:49:19,832
มีอะไรที่ผมอยากพูดถึงอีก? โดยพื้นฐาน ทำไมการตั้งค่านี้ถึงชนะ?

428
00:49:19,832 --> 00:49:27,256
เพราะ อย่างแรก มันถูกกว่า หมายความว่า ปริมาณงานส่วนใหญ่รันบน

429
00:49:27,256 --> 00:49:34,061
Sonnet ปริมาณงานส่วนใหญ่ของงานโดยพื้นฐาน [P68] ในขณะที่

430
00:49:34,061 --> 00:49:42,475
frontier model ใช้สำหรับงานเฉพาะเจาะจงเท่านั้น ซึ่งก็คือการเขียนสเปก

431
00:49:42,475 --> 00:49:48,538
การแบ่งงาน และ การทำ QA โอเค คุณยังใช้ token อยู่

432
00:49:48,538 --> 00:49:54,477
แต่คุณใช้ token อย่างชาญฉลาดขึ้น ซึ่งหมายความว่า

433
00:49:54,477 --> 00:50:01,035
คุณใช้ประโยชน์จากการสมัครสมาชิก Anthropic หรือ Claude

434
00:50:01,035 --> 00:50:10,934
ของคุณได้ดีขึ้น และ สิ่งที่น่าสนใจอีกอย่างคือ การตั้งค่าแบบนี้เชื่อถือได้มากกว่า

435
00:50:10,934 --> 00:50:16,997
เพราะ คุณมีโมเดลที่ดีที่สุด ในขั้นตอนที่ leverage

436
00:50:16,997 --> 00:50:27,143
สูงที่สุด ซึ่งก็คือสเปก เพราะ ทุกอย่างในการเขียนโค้ดหมุนรอบความแม่นยำของสเปกของคุณ

437
00:50:27,143 --> 00:50:35,062
[P69] และ ใช่ สิ่งที่ฉลาดมากอีกอย่างเกี่ยวกับการตั้งค่าแบบนี้คือ

438
00:50:35,062 --> 00:50:41,991
คุณใช้สิ่งที่เราเรียกว่า context engineering หมายความว่า

439
00:50:41,991 --> 00:50:47,930
แทนที่จะมี agent ตัวเดียว ทำงานบางอย่าง และ เติม

440
00:50:47,930 --> 00:50:56,963
context ให้เต็ม เรามี agents เฉพาะทาง ที่โฟกัสกับงานของตัวเองอย่างเฉียบคม

441
00:50:56,963 --> 00:51:02,778
[P70] และ คุณรู้ไหม agents ทำงานเหมือนกับมนุษย์

442
00:51:02,778 --> 00:51:10,573
หมายความว่า ยิ่งมี context มากเท่าไหร่ โอเค มันดีสำหรับเราที่มี

443
00:51:10,573 --> 00:51:17,008
context บ้างเพื่อทำงาน แต่ถ้าเรามี context มากเกินไป

444
00:51:17,008 --> 00:51:25,422
เราอาจหลงทาง และ ทำงานได้ไม่ดีอย่างที่ต้องการ แล้วเราอยู่ตรงไหนแล้ว?

445
00:51:25,422 --> 00:51:31,732
ดูเหมือน stage back end ผ่านแล้ว senior ยืนยัน root

446
00:51:31,732 --> 00:51:39,156
บลาๆ บลาๆ นี่คือเรื่องเทคนิค ที่เราไม่ต้องลงรายละเอียดตอนนี้

447
00:51:39,156 --> 00:51:45,219
และ ตอนนี้เรากำลังไปสู่ stage เชื่อมต่อ (wire up)

448
00:51:45,219 --> 00:51:51,282
[P71] และ นั่นหมายความว่า เราจะเชื่อมต่อ back end

449
00:51:51,282 --> 00:51:57,716
ใหม่ กับ front end ใหม่ที่เราตรวจสอบแล้ว ผมพูดว่าเรา

450
00:51:57,716 --> 00:52:03,531
แต่จริงๆ แล้ว เมื่อไหร่ที่คุ้มค่าที่จะใช้ loops

451
00:52:03,531 --> 00:52:12,193
แบบนี้? สำหรับผม มีหลายเกณฑ์ ด้วยเหตุนี้ มันสมเหตุสมผลมากสำหรับงานใหญ่

452
00:52:12,193 --> 00:52:19,493
ผมว่า สำหรับฟีเจอร์เล็กๆ แบบนี้ อาจจะเกินความจำเป็นนิดหน่อย

453
00:52:19,493 --> 00:52:27,536
แต่คุณรู้ไหม ผมใช้มัน เพราะ ผมอยากโชว์ตัวอย่างที่เป็นรูปธรรมให้ดู

454
00:52:27,536 --> 00:52:35,578
[P72] แน่นอน มันสมเหตุสมผลมาก เมื่อคุณต้องทำงานแบบนี้ให้อัตโนมัติ

455
00:52:35,578 --> 00:52:42,508
เพราะ ผมไม่ค่อยโอเค กับการทำให้ทุกอย่างเป็นอัตโนมัติด้วย

456
00:52:42,508 --> 00:52:49,932
AI ผมยังคิดว่า ควรมีสัมผัสของมนุษย์แทรกอยู่ตลอดโปรเจกต์ต่างๆ

457
00:52:49,932 --> 00:52:56,118
แต่สำหรับงานเฉพาะแบบนี้ ผมไม่ต้องเข้าไปยุ่ง ยกเว้น

458
00:52:56,118 --> 00:53:02,552
ถ้าผมไม่ไว้ใจ senior dev ของผม ว่าจะทำ QA หน้า front

459
00:53:02,552 --> 00:53:10,966
end ได้แม่นยำมากพอ แต่สำหรับงานแบบนี้ อย่างน้อยในการสร้างเวอร์ชันแรก

460
00:53:10,966 --> 00:53:18,390
มันโอเคที่จะทำงานให้อัตโนมัติเต็มรูปแบบ [P73] มันยังใช้ได้ดี

461
00:53:18,390 --> 00:53:25,072
เมื่อคุณมีเกณฑ์ความสำเร็จที่ชัดเจน ที่สามารถตรวจสอบได้

462
00:53:25,072 --> 00:53:31,011
และ เกณฑ์นั้นไม่ใช่ ในกรณีของเรามันยังโอเค เพราะ

463
00:53:31,011 --> 00:53:36,950
front end ตรวจสอบได้ แม้มันจะค่อนข้าง subjective

464
00:53:36,950 --> 00:53:44,251
สำหรับ agent แต่ก็มีบางกรณี ที่คุณต้องให้มนุษย์ตรวจสอบจริงๆ

465
00:53:44,251 --> 00:53:50,314
และ โดยพื้นฐาน เมื่อความเชื่อถือได้ (reliability)

466
00:53:50,314 --> 00:53:56,995
มีความสำคัญ เมื่อคุณอยากใช้เวลา ให้โมเดลระดับ frontier

467
00:53:56,995 --> 00:54:02,811
ตรวจสอบเป้าหมาย เพราะ คุณต้องการความเชื่อถือได้

468
00:54:02,811 --> 00:54:08,874
นั่นหมายความว่า คุณอยู่ในกรณีที่คุ้มค่าจริงๆ โอเค

469
00:54:08,874 --> 00:54:15,926
[P74] และ คุณควรข้ามมันไป ถ้าคุณมีงานเล็กๆ ทำครั้งเดียวจบ

470
00:54:15,926 --> 00:54:21,742
(one-shot) ไม่มีนิยามของความสำเร็จที่ตรวจสอบได้

471
00:54:21,742 --> 00:54:28,671
และ ถ้าค่าใช้จ่ายในการประสานงาน สูงกว่าสิ่งที่ประหยัดได้

472
00:54:28,671 --> 00:54:34,981
ขอเช็คดูว่าเราอยู่ตรงไหนแล้ว เอาล่ะ ดูเหมือน junior

473
00:54:34,981 --> 00:54:43,767
dev สร้าง wire up เสร็จแล้ว ดูเหมือนเรากำลังมุ่งหน้าไปสู่ขั้นตอนสุดท้าย

474
00:54:43,767 --> 00:54:49,829
มาดูกันว่า มีอะไรถูก implement จริงหรือเปล่า โอเค

475
00:54:49,829 --> 00:54:56,140
เรามี error ตรงนี้ ใช่ ดูเหมือนเซิร์ฟเวอร์หยุดทำงาน

476
00:54:56,140 --> 00:55:02,945
ซึ่งไม่เป็นไร เพราะ พวกเขายังทำงานอยู่ [P75] มันยังแสดง

477
00:55:02,945 --> 00:55:09,132
error อยู่ ซึ่งโอเคสำหรับตอนนี้ มีอะไรจะพูดถึงอีก?

478
00:55:09,132 --> 00:55:15,319
แน่นอน loops คุณจะได้ยินคำนี้บ่อยมาก ในงานวิศวกรรม

479
00:55:15,319 --> 00:55:21,753
โดยพื้นฐาน การสร้างฟีเจอร์ใหม่ การสร้างผลิตภัณฑ์ใหม่

480
00:55:21,753 --> 00:55:27,816
แต่จริงๆ แล้วมันใช้ได้กับงานทุกประเภท ที่คุณทำกับ

481
00:55:27,816 --> 00:55:36,477
Claude [P76] โดยพื้นฐาน ถ้าคุณเขียนคอนเทนต์ ถ้าคุณเขียนบล็อกโพสต์เพื่อ

482
00:55:36,477 --> 00:55:43,035
SEO ถ้าคุณทำโฆษณา ถ้าคุณอยากปล่อยฟีเจอร์จนกว่า metric

483
00:55:43,035 --> 00:55:48,850
ตัวเดียวจะขยับ คุณอยู่ในกรณีการใช้งาน ที่ loops

484
00:55:48,850 --> 00:55:55,408
สมเหตุสมผลมาก และ ตรงนี้ ผมโชว์ loop ที่คุณรันด้วยมือ

485
00:55:55,408 --> 00:56:01,224
และ ที่คุณอยากให้การตรวจสอบเกิดขึ้นแบบสดๆ [P77]

486
00:56:01,224 --> 00:56:07,782
แต่คุณสามารถสร้าง loops ที่รันตามตารางเวลา (schedule)

487
00:56:07,782 --> 00:56:14,463
ได้ และ ให้การตรวจสอบรันตามตารางเวลาด้วย เช่น สมมติว่า

488
00:56:14,463 --> 00:56:21,392
คุณมี agent ที่จะเขียนคอนเทนต์บล็อกของคุณ ณ จุดเวลาหนึ่ง

489
00:56:21,392 --> 00:56:28,074
ผลลัพธ์จากการเขียนบล็อกโพสต์ เกี่ยวกับจำนวน impression

490
00:56:28,074 --> 00:56:34,137
ใน SEO โดยทั่วไป ต้องใช้เวลาอย่างน้อยหนึ่งสัปดาห์

491
00:56:34,137 --> 00:56:41,808
ถึงจะเห็นผลแรกจากการกระทำนี้ และ นี่คือจุดที่การตั้งเวลาสำหรับ

492
00:56:41,808 --> 00:56:48,243
reviewer ด้วย ไม่ใช่แค่ executor ก็สมเหตุสมผลเช่นกัน

493
00:56:48,243 --> 00:56:56,904
[P78] นี่คือกรณีการใช้งานที่ซับซ้อนกว่านั้นมาก ที่ผมไม่โชว์ให้ดูวันนี้

494
00:56:56,904 --> 00:57:02,719
แต่ เมื่อคุณเข้าใจวิธีสร้างการตั้งค่าแบบนี้แล้ว

495
00:57:02,719 --> 00:57:12,371
โดยพื้นฐาน ท้องฟ้าคือขีดจำกัด และ คุณสามารถสร้างสิ่งที่ซับซ้อนกว่านี้ได้อีกมาก

496
00:57:12,371 --> 00:57:19,300
ตอนนี้ senior กำลังรัน QA สุดท้าย บนหน้าแรกสด ด้วยข้อมูล

497
00:57:19,300 --> 00:57:26,352
Senna จริง ตรวจสอบ overflow ฯลฯ ฯลฯ ใช่ ส่วน testimonials

498
00:57:26,352 --> 00:57:36,870
ไม่ถูกแตะต้อง บลาๆ บลาๆ โอเค รออีกไม่กี่วินาที มาดูกันว่ามีอะไรพร้อมใช้งานแล้วหรือยัง

499
00:57:36,870 --> 00:57:44,789
โอเค ดูเหมือนมันยังไม่ได้ implement [P79] มันยังเป็นงานระหว่างทำ

500
00:57:44,789 --> 00:57:52,089
(work in progress) ลองดูพรีวิวหน่อยดีกว่า และ ในระหว่างนั้น

501
00:57:52,089 --> 00:57:59,266
เราเห็นว่า wire up ทำงานได้จริง เพราะ สิ่งที่เราเห็นตรงนี้

502
00:57:59,266 --> 00:58:05,576
คือข้อมูลจริงจากนักเรียนจริงของ Vibe Coding Academy

503
00:58:05,576 --> 00:58:11,392
ตรงนี้ โอเค พวกนี้คือ testimonials จริง เช่น มี

504
00:58:11,392 --> 00:58:18,073
testimonial จาก Mario ตรงนี้ อันนี้มีอยู่บน production

505
00:58:18,073 --> 00:58:24,260
จริงๆ อย่างตรงนี้ โอเค พวกนี้คือ testimonials จริง

506
00:58:24,260 --> 00:58:32,055
และ ตอนนี้มันไลฟ์แล้ว [P80] ปัญหาที่เหลืออยู่เพียงอย่างเดียวคือ

507
00:58:32,055 --> 00:58:37,994
testimonials ตรงนี้ มีแค่ในหน้าพรีวิวนี้เท่านั้น

508
00:58:37,994 --> 00:58:44,057
และ ตอนนี้เราอยากย้ายมัน ไปยังตำแหน่งเฉพาะตรงนั้น

509
00:58:44,057 --> 00:58:50,368
มาดูกันว่ามันจะเป็นยังไง เอาล่ะ ในขณะที่มันยังทำงาน

510
00:58:50,368 --> 00:58:59,029
QA อยู่ ไปที่ขั้นตอนสุดท้ายกัน อ้อ จริงๆ แล้วผมพูดสิ่งที่อยากพูดจบแล้ว

511
00:58:59,029 --> 00:59:06,082
โดยพื้นฐาน การวางแผน (planning) บวกการลงมือทำ (executing)

512
00:59:06,082 --> 00:59:12,145
และ การแบ่งงานระหว่างสองบทบาทนี้ มันสมเหตุสมผลมาก

513
00:59:12,145 --> 00:59:18,579
[P81] และ ถ้าคุณให้พวกเขาทำงานร่วมกันเป็น loop ได้ดี

514
00:59:18,579 --> 00:59:25,508
คุณจะได้ผลลัพธ์ที่ดีกว่า แน่นอน ด้วยค่าใช้จ่ายที่ถูกกว่า

515
00:59:25,508 --> 00:59:32,190
หรือ อย่างน้อยก็ใช้ token น้อยลง โดยพื้นฐาน ถ้าอยากให้

516
00:59:32,190 --> 00:59:39,614
feedback คุณสามารถสแกน QR code ได้ และ ผมยินดีมากที่จะรับฟัง

517
00:59:39,614 --> 00:59:46,914
feedback ของคุณ แน่นอน ผมขอโทษอีกครั้ง สำหรับปัญหาทางเทคนิค

518
00:59:46,914 --> 00:59:53,101
เห็นว่าบางคนอยากเข้าร่วม แต่ผมว่า พวกเขากลับไปแล้ว

519
00:59:53,101 --> 00:59:59,782
เข้าร่วมไม่สำเร็จ [P82] แต่ ใช่ ผมหวังว่ามันมีประโยชน์

520
00:59:59,782 --> 01:00:08,196
และ นี่คือเวลาสำหรับคำถามทั้งหมดของคุณ ถ้ามี คุณสามารถพูดออกมาได้เลย

521
01:00:08,196 --> 01:00:14,506
และ ถามผมได้โดยตรง ถ้าคุณคิดว่ามันสมเหตุสมผล เอาล่ะ

522
01:00:14,506 --> 01:00:21,559
ในระหว่างที่ให้ทุกคนคิดคำถามใหม่ๆ ดูเหมือนว่ามันทำงานแล้ว

523
01:00:21,559 --> 01:00:30,716
ดูเหมือนด่านสุดท้ายผ่านแล้ว loop เสร็จสมบูรณ์ หน้าแรกแบบไลฟ์ตอนนี้เรนเดอร์

524
01:00:30,716 --> 01:00:37,026
flip cards สไตล์ Senja ด้วยข้อมูล testimonials จริง

525
01:00:37,026 --> 01:00:43,460
บลาๆ บลาๆ ฯลฯ ฯลฯ มันยังไม่ได้ commit แต่เราดูได้ที่

526
01:00:43,460 --> 01:00:51,379
localhost:3000 [P83] โอเค มาดูกันตรงนี้ โอเค ดูเหมือนมันไม่ทำงาน

527
01:00:51,379 --> 01:00:59,051
ขอโทษที ดูเหมือนมันไม่ได้ implement จริง เรามีเวอร์ชันเดิมอยู่

528
01:00:59,051 --> 01:01:06,722
ซึ่งอาจเป็นปัญหา cache หรือ อาจเป็นสิ่งที่ AI ไม่ได้สังเกตเห็น

529
01:01:06,722 --> 01:01:14,641
บนเบราว์เซอร์ที่เราใช้ แต่ ขอให้ Claude Code ประเมินปัญหานี้ก่อน

530
01:01:14,641 --> 01:01:20,828
[P84] ผมจะเปิดในโหมด incognito เพื่อดูว่าเป็นปัญหา

531
01:01:20,828 --> 01:01:27,509
cache หรือเปล่า โอเค มันแปลก เพราะ ผมไม่เห็นมันอีกแล้ว

532
01:01:27,509 --> 01:01:33,696
ยังไงก็ตาม ดูเหมือนมีอะไรเกี่ยวข้องกับ cache เพราะ

533
01:01:33,696 --> 01:01:39,511
ตรงนี้ เมื่ออยู่ใน incognito มันกำลังทำงานจริงๆ

534
01:01:39,511 --> 01:01:45,451
ใช่ ดูเหมือนมันกำลังทำการแทนที่ตรงนี้ คุณเห็นไหม

535
01:01:45,451 --> 01:01:52,751
และ นั่นคือเหตุผลที่ผมอยากโชว์เดโมแบบสด [P85] คุณเห็นไหมว่า

536
01:01:52,751 --> 01:01:58,814
มันไม่จำเป็นต้องทำงานสำเร็จในครั้งแรก หมายความว่า

537
01:01:58,814 --> 01:02:06,485
การ implement การตั้งค่า loops ที่สมบูรณ์ ต้องใช้การลองหลายรอบ

538
01:02:06,485 --> 01:02:13,662
และ ตรงนี้ ผลลัพธ์จากการพูดคุยนี้คือ โอเค บางทีผมต้องขอให้

539
01:02:13,662 --> 01:02:19,477
senior dev คำนึงถึงคำแนะนำที่ให้ไว้มากขึ้น หรือ

540
01:02:19,477 --> 01:02:26,901
อย่างน้อย ตรวจสอบให้แน่ใจว่า เราไม่พึ่งพาแค่พรีวิวของฟีเจอร์

541
01:02:26,901 --> 01:02:33,336
แต่ตรวจสอบให้แน่ใจว่า เราทำ QA ฟีเจอร์ตามสเปกตั้งต้น

542
01:02:33,336 --> 01:02:39,770
และ นี่อาจเป็นความผิดพลาดของผมเอง [P86] ผมน่าจะขอให้

543
01:02:39,770 --> 01:02:47,317
senior dev ให้ผมตรวจสอบสเปกก่อน เพื่อให้แน่ใจว่าเราเห็นตรงกัน

544
01:02:47,317 --> 01:02:54,370
ในโค้ดเดียวกัน เอาล่ะ มาดูตรงนี้กัน หวังว่ามันจะทำงานแล้ว

545
01:02:54,370 --> 01:03:01,423
เอาล่ะ ผมไม่เห็นมันอีกแล้ว โอเค ผมไม่แน่ใจว่าเกิดอะไรขึ้น

546
01:03:01,423 --> 01:03:07,239
เพราะ พรีวิว flip cards ไม่มีอยู่อีกแล้ว เอาล่ะ

547
01:03:07,239 --> 01:03:14,415
ขอ push มันตรงนี้ เราไม่เห็นมันอีกแล้ว ใช่ มันค่อนข้างแปลก

548
01:03:14,415 --> 01:03:20,973
พูดตรงๆ [P87] สมมติฐานของผมคือ มีบางอย่างที่ใช้ไม่ได้

549
01:03:20,973 --> 01:03:26,789
กับวิดเจ็ต Senja เพราะ ผมเคยใช้วิดเจ็ตจาก Senja

550
01:03:26,789 --> 01:03:33,223
และ มันอาจพังไป หรือ กับตัวตั้งค่า แต่ให้มันซ่อมก่อน

551
01:03:33,223 --> 01:03:39,286
โอเค มาดูกันว่ามันสรุปอะไรออกมา และ ไปกันเลย โอเค

552
01:03:39,286 --> 01:03:45,596
ในที่สุด เราก็มี ticker ตรงนี้ และ ตอนนี้เรามันแล้ว

553
01:03:45,596 --> 01:03:51,783
และ เราสามารถ push มันขึ้น production ได้ โอเค ใช่

554
01:03:51,783 --> 01:03:59,083
โชคร้ายหน่อย ที่ไม่สามารถ push และ ทำให้สำเร็จได้ในครั้งแรก

555
01:03:59,083 --> 01:04:05,393
[P88] แต่ อีกครั้ง สิ่งที่ผมจะทำคือ ปรับปรุง junior

556
01:04:05,393 --> 01:04:11,456
dev และ senior dev เพื่อให้ error ในแง่ QA พวกนี้

557
01:04:11,456 --> 01:04:19,375
ไม่เกิดขึ้นอีก โอเค และ คุณเห็นไหมว่า ทีมของคุณพัฒนาขึ้นได้ยังไง

558
01:04:19,375 --> 01:04:26,057
โดยการหาว่าอะไรที่ขาดหายไป และ ทำให้แน่ใจว่า ครั้งหน้า

559
01:04:26,057 --> 01:04:33,728
มันจะไม่เกิดขึ้นอีก และ นี่คือวิธีเดียวกับที่คุณพัฒนาทีมของคุณ

560
01:04:33,728 --> 01:04:41,895
เพื่อที่ในระยะยาว ทุกคนพัฒนาขึ้นเรื่อยๆ และ ผลลัพธ์ก็ดีขึ้นเรื่อยๆ

561
01:04:41,895 --> 01:04:47,834
[P89] ใช่ นั่นคือทั้งหมดสำหรับผม ในเว็บบินาร์นี้

562
01:04:47,834 --> 01:04:57,114
มันยาวกว่าที่คาดไว้เล็กน้อย ขอโทษด้วย และ ขอโทษสำหรับปัญหาทางเทคนิคอีกครั้ง

563
01:04:57,114 --> 01:05:02,930
แต่ ขอบคุณมาก สำหรับการมีส่วนร่วมและคำถามของคุณ

564
01:05:02,930 --> 01:05:08,992
ใช่ ได้โปรดบอกผมด้วย ถ้าคุณคิดว่า feedback แบบนี้

565
01:05:08,992 --> 01:05:17,035
มันน่าสนใจมาก เช่น feedback ของคุณ Mariam เพื่อเป็นการเตือนความจำ

566
01:05:17,035 --> 01:05:23,098
broadcast เวอร์ชันนี้ จะถูกแปลงเป็นบทความฉบับเต็ม

567
01:05:23,098 --> 01:05:31,141
ที่คุณจะได้รับตามปกติในอินบ็อกซ์ของคุณ ภายในพรุ่งนี้ตอนบ่ายสองโมง

568
01:05:31,141 --> 01:05:37,327
[P90] และ แน่นอน ถ้าคุณคิดว่า และ ถ้าผมมี feedback

569
01:05:37,327 --> 01:05:44,257
แบบคุณ Mariam ผมจะจัดเดโมแบบนี้ ทุกสองสัปดาห์ด้วยเช่นกัน

570
01:05:44,257 --> 01:05:50,443
มันน่าสนใจมาก ที่ได้พูดคุยกับทุกคน และ ได้เจอชุมชน

571
01:05:50,443 --> 01:05:56,259
ดังนั้น ขอบคุณอีกครั้ง และ ขอให้ทุกคนมีวันที่ดี

572
01:05:56,259 --> 01:06:02,693
หรือ ค่ำคืนที่ดี ไม่ว่าคุณจะอยู่ที่ไหน และ ขอบคุณมาก

573
01:06:02,693 --> 01:06:03,559
บาย บาย