SECTION_TITLE.PROMOTION
100 สิทธิ์แรกหมดแล้ว! ขยายเพิ่มให้อีก เพียง 50 สิทธิ์สุดท้ายเท่านั้น
ส่วนลดเปิดตัว เหลือเพียง 990 บาทเท่านั้น (จากปกติ 1,990 บาท)
ราคานี้ถึง 16 ส.ค. เท่านั้น โอกาสสุดท้าย หมดแล้วหมดเลย
SECTION_TITLE.OVERVIEW
คุณเคยเจอปัญหาแบบนี้มั้ย?
- โค้ดเปลี่ยนนิดเดียว แต่ต้องเข้า test cycle นานเป็นสัปดาห์
- อยาก refactor ระบบ แต่ไม่กล้า เพราะกลัว test พัง
- เขียนเทสต์ทีไร ต้อง mock เยอะจนเสียเวลา
ปัญหาเหล่านี้ไม่ใช่แค่เรื่องของการเขียนเทสต์แต่คือ “ระบบที่ไม่ได้ถูกออกแบบมาให้เทสต์ได้ง่ายตั้งแต่แรก”
พบกับคอร์สแรกในไทย! ที่จะสอนให้คุณ “ออกแบบระบบให้เทสต์ได้จริง”
ถ้าคุณเป็น Developer ที่เขียนเทสต์ตามที่ทีมบอก แต่ยังไม่เข้าใจว่าโค้ดแบบไหนถึงจะเทสต์ง่ายหรือเป็นคนที่มีหน้าที่ออกแบบระบบ แล้วอยากให้ทีมเขียนเทสต์ได้ง่ายขึ้นโดยไม่ต้องปวดหัว
คอร์สนี้จะพาคุณเข้าใจ Mindset และเบื้องหลังว่าทำไมโค้ดบางแบบถึงเทสต์ง่าย และจะออกแบบให้เป็นแบบนั้นได้อย่างไร
ทุกวันนี้การเขียน Automated Test ทั้ง Unit Test และ Integration Test กลายเป็นเรื่องปกติที่นักพัฒนาซอฟต์แวร์ทุกคนต้องทำ เพื่อให้ระบบมีคุณภาพ และพร้อมสำหรับการเปลี่ยนแปลง แต่ในความเป็นจริงแล้ว หลายคนมักจะเขียน Test ตามตัวอย่าง หรือทำตามคำสั่งโดยไม่เคยเข้าใจ "หลักคิด" เบื้องหลังว่าทำไมโค้ดบางแบบถึงเทสได้ง่ายกว่า
ความเข้าใจผิดเกี่ยวกับการเขียน Test สำหรับ Developer
การเขียน Test ของ Developer นั้นแตกต่างจากการทดสอบของ QA เพราะมันไม่ใช่แค่การตรวจสอบฟีเจอร์ว่าทำงานถูกต้อง แต่เป็นการ เขียนโค้ดที่สามารถทดสอบได้โดยไม่ต้องพึ่งพาระบบภายนอก และไม่เปราะบางเมื่อมีการเปลี่ยนแปลง
บ่อยครั้งที่เราพบว่า:
- เขียน Test ตามที่เห็นในตัวอย่าง
- Mock ตามที่เพื่อนร่วมทีมสั่ง
- ใช้ Pattern ตามที่ใครบางคนบอกว่า "อันนี้เทสง่ายกว่า"
แต่กลับไม่เคยเข้าใจจริง ๆ ว่า "ทำไม" โค้ดแบบนี้ถึงเทสได้ง่ายกว่าโค้ดอีกแบบ นี่คือสิ่งที่หลายคนพลาดไป โดยเฉพาะคนที่เรียนรู้จากการลงมือทำเพียงอย่างเดียว
Testable Architecture: หัวใจของการสร้างระบบที่เทสได้ง่าย
คำตอบเริ่มต้นที่แนวคิดที่เรียกว่า Testable Architecture หลักการออกแบบระบบให้เอื้อต่อการทดสอบได้ง่าย รวดเร็ว และเชื่อถือได้ ตั้งแต่แรกเริ่ม ไม่ใช่แค่การเลือกใช้ Testing Framework หรือการเขียน Test หลังจากที่โค้ดเสร็จแล้ว
หลายคนอาจเคยได้ยินแนวคิดอย่าง Clean Architecture, MVC, CQRS, การแยก Layer, Dependency Injection หรือการใช้ Mock จำนวนมาก แต่มักขาดความเข้าใจภาพรวมว่าอะไรคือรากฐานที่แท้จริงของการทำให้ระบบ Testable
Testable Architecture คือการวางโครงสร้างระบบให้รองรับการทดสอบตั้งแต่เนิ่นๆ โดยเฉพาะการ แยกส่วน Business Logic ออกจากองค์ประกอบภายนอก เช่น Database, UI, หรือ External API ซึ่งช่วยให้เราสามารถสลับระหว่าง Implementation จริงกับ Mock หรือ Stub ได้อย่างยืดหยุ่นในเวลาทดสอบ
การที่ระบบมีโครงสร้างแบบนี้ทำให้เรา เขียน Unit Test ได้ง่ายขึ้น เพราะ Logic สามารถถูกทดสอบแยกออกมาได้โดยไม่ต้องรันผ่าน Database หรือเรียกระบบภายนอก ทำให้ Test เร็วขึ้น เสถียรขึ้น และไม่ต้องพึ่งพาการ Setup ที่ยุ่งยาก ซึ่งแตกต่างจากระบบที่โค้ดทุกอย่างผูกติดกันไปหมด การทดสอบเล็กๆ ก็กลายเป็นเรื่องใหญ่และเปราะบาง นำไปสู่การที่ทีมเขียน Test น้อยลง หรือเลิกเขียน Test ไปในที่สุด
ดังนั้น การออกแบบระบบให้ Testable จึงไม่ได้เป็นเพียงเรื่องของการ Testing เท่านั้น แต่มันสะท้อนถึง คุณภาพของโครงสร้างซอฟต์แวร์ ที่จัดสรรแบ่งส่วนได้ดี ดูแลง่าย และเปิดทางให้เราทำงานกับมันได้อย่างมั่นใจในระยะยาว
สิ่งที่คุณจะได้เรียนรู้ในคอร์ส "Design Your Own Testable Architecture"
คอร์สออนไลน์แรกในไทยที่จะพาคุณเข้าใจแนวคิดและ Mindset ในการออกแบบระบบให้ Test ได้จริง ไม่ใช่แค่เขียน Test ให้ผ่าน ในคอร์สนี้ คุณจะได้:
- เข้าใจความแตกต่าง ของการเขียน Test จากมุมมองของ QA vs Developer
- เข้าใจแนวคิดของ Testable Architecture และหลักการเบื้องหลังที่ทำให้ระบบทดสอบได้ง่าย
- รู้วิธีแบ่ง Unit/Sub-unit เพื่อวาง Test อย่างมีโครงสร้าง
- ใช้ Test Pyramid อย่างถูกต้อง ไม่เขียน Test เกินความจำเป็น
- ลงมือออกแบบและแก้ระบบจากโจทย์จริง เพื่อฝึกคิดแบบคนออกแบบซอฟต์แวร์
- เข้าใจหลักการของ Architecture ที่ไม่ขึ้นกับ Pattern — ไม่ว่าจะใช้ MVC, Clean หรืออะไรก็สามารถปรับใช้ได้
- [Bonus] ทำความเข้าใจแนวคิด Inversion of Control (IoC) เพื่อให้ระบบ Testable ได้ง่ายขึ้น
คอร์สนี้เหมาะกับใคร?
คอร์สนี้เหมาะสำหรับผู้ที่กำลังต้องการศึกษาการออกแบบ Testable Software Architecture ที่ดี เพื่อออกแบบ Software อย่างเป็นระบบ โดยเฉพาะอย่างยิ่ง หากคุณเป็น:
- Developer ที่เรียนรู้การเขียน Test ด้วยตัวเอง แต่ยังรู้สึกสับสนหรือไม่เห็นภาพรวมว่าทำไมต้อง Test แบบนั้นแบบนี้
- Developer ที่มีประสบการณ์การทำงานมาสักระยะ (Junior - Mid-Senior) และเริ่มเขียน Test ตามคำแนะนำของเพื่อนร่วมทีมหรือหัวหน้า แต่อยากเข้าใจหลักการเบื้องหลังอย่างลึกซึ้ง
- Software Architect หรือ Senior Developer ที่มีบทบาทในการออกแบบโครงสร้างโค้ดและต้องการสร้างระบบที่ทีมสามารถเขียน Test ได้อย่างมีประสิทธิภาพและง่ายดาย
- QA ที่ต้องการทำความเข้าใจหลักการและมุมมองการทดสอบของ Developer เพื่อการทำงานร่วมกันที่ราบรื่นยิ่งขึ้น
SECTION_TITLE.INSTRUCTOR

SECTION_TITLE.COURSE_OUTLINE
Designing a Testable System (The Poker Hand Case Study)
Design our Own Testable Architecture (Poker Hand)
1:11
[Design Units] 1st Draft
11:17
[Code Review] Reader & Printer
10:20
[Design Sub-Units] Comparer
10:09
[Code Review] Comparer
14:43
[Design] Hand to Rank
3:39
[Code Review] Hand to Rank #1
21:14
[Code Review] Hand to Rank #2
5:25
Testing Strategies and Implementation
Integration Test
7:26
Test Pyramid
15:41
Debunk Unit & Integration Test Misconceptions
13:50
[Code Review] Rest of the App
7:29
Building the Real-World Poker App
[Real-World Application & Architecture] Poker API
3:13
[Real-World Application & Architecture] Controller
5:14
Test Double & Dependency Injection
14:25
[Code Review] Controller
17:02
[Real-World Application & Architecture] - Poker Model
6:20
Data Layer Testing
11:24
[Code Review] Data and Complete Model Layer
19:29
[Code Review] View Layer and Integration Test
11:47
Guideline to Design Units
12:01
Summarized Testable Poker API
7:03
[Bonus] Demystify Inversion of Control (IoC) Container
9:04
SECTION_TITLE.FAQS
Q:
ซื้อคอร์สออนไลน์ในนามนิติบุคคลผ่านหน้าเว็บไซต์ได้หรือไม่
A:
สามารถทำได้ โดยในหน้าคำสั่งซื้อ กดเครื่องหมายถูกในช่อง "ต้องการออกใบกำกับภาษี/ใบเสร็จรับเงิน" จากนั้นเลือก "นิติบุคคล/บริษัท" และคำสั่งซื้อจะมีการหักภาษี ณ ที่จ่าย 3% โดยอัตโนมัติ ในกรณีบริษัทของท่านไม่ใช่ 3% กรุณาส่งรายละเอียดที่ต้องการสั่งซื้อมาที่ hello@skooldio.com
Q:
วิธีขอใบกำกับภาษีในนามนิติบุคคลและใบกำกับภาษีสำหรับบุคคลทั่วไป
A:
กดเครื่องหมายถูกในช่อง "ต้องการออกใบกำกับภาษี/ใบเสร็จรับเงิน" ในหน้าชำระเงินและเลือกประเภทบุคคลทั่วไปหรือนิติบุคคล และกรอกรายละเอียด
Q:
คอร์สออนไลน์สามารถกลับมาเรียนซ้ำได้หรือไม่
A:
สำหรับคอร์สที่ซื้อในนามบุคคลทั่วไป คอร์สมีอายุตลอดชีพ สำหรับคอร์สที่ซื้อในนามนิติบุคคล สามารถกลับมาเรียนซ้ำได้ภายใน 1 ปี
Q:
สามารถแก้ไขใบกำกับภาษีจากในนามนิติบุคคลเป็นใบกำกับภาษีบุคคลทั่วไป และ ใบกำกับภาษีบุคคลทั่วไปเป็นใบกำกับภาษีในนามนิติบุคคลได้หรือไม่
A:
หลังจากได้รับใบกำกับภาษีแล้ว หากต้องการแก้ไขข้อมูล สามารถทำได้ภายใน 7 วัน นับจากวันที่ได้รับใบกำกับภาษีแบบเต็มรูปทางอีเมล โดยสามารถแก้ไขข้อมูลได้เฉพาะ ชื่อ-นามสกุล เลขประจำตัวผู้เสียภาษีและที่อยู่เท่านั้น จะไม่สามารถแก้ไขข้อมูลคำสั่งซื้อได้