ข้ามไปยังเนื้อหาหลัก

PHPUnit & Clean Code: สร้าง Backend คุณภาพด้วยการทดสอบและโค้ดที่สะอาด

เรียนรู้การเขียน Unit Test อย่างมืออาชีพด้วย PHPUnit ตั้งแต่พื้นฐานจนถึงเทคนิคขั้นสูง เช่น Mocking และ Data Providers เพื่อสร้างโค้ดที่เชื่อถือได้ นอกจากนี้ยังศึกษาหลักการ Clean Code เพื่อให้โค้ดของคุณอ่านง่าย บำรุงรักษาง่าย และมีประสิทธิภาพสูงขึ้น

เริ่มต้น 50 บทความย่อย

สารบัญบทเรียน (Roadmap)

ทำตามขั้นตอนจากบนลงล่าง
3

Assertion คืออะไร: รู้จัก Assertions พื้นฐาน

บทความนี้อธิบายถึงความหมายและความสำคัญของ "Assertion" ใน Unit Testing ซึ่งเป็นคำสั่งที่ใช้ตรวจสอบว่าเงื่อนไขที่คาดหวังเป็นจริงหรือไม่ และเป็นตัวบ่งชี้ว่า Test C...

6

Mocking คืออะไร: การจำลอง Dependencies ใน Unit Testing

บทความนี้อธิบายถึงความจำเป็นของการใช้ Mocking ใน Unit Testing เพื่อจำลอง Dependencies ภายนอก เช่น ฐานข้อมูลหรือ API, ซึ่งช่วยให้การทดสอบเป็นอิสระและควบคุมได้มาก...

7

การใช้ Data Providers: ทดสอบด้วยชุดข้อมูลที่หลากหลาย

บทความนี้แนะนำ Data Providers ซึ่งเป็นเครื่องมือใน PHPUnit ที่ช่วยให้เราสามารถทดสอบฟังก์ชันด้วยชุดข้อมูลที่หลากหลาย โดยการกำหนดชุดข้อมูลใน Data Provider Method...

8

Code Coverage: วัดคุณภาพการทดสอบด้วย Code Coverage

ในบทที่แล้ว เราได้เรียนรู้เรื่อง Data Providers สำหรับการทดสอบ ในบทนี้ เราจะมาทำความรู้จักกับ Code Coverage ซึ่งเป็นเมตริกที่ใช้วัดว่า test case ของเราครอบคลุมโ...

9

Refactoring เบื้องต้น: ทำความสะอาด Code ง่ายๆ

บทความนี้แนะนำเกี่ยวกับการ Refactoring ซึ่งเป็นกระบวนการปรับปรุงโครงสร้างโค้ดโดยไม่เปลี่ยนผลลัพธ์ เพื่อให้โค้ดอ่านง่าย, แก้ไขง่าย และลดความซับซ้อน โดยนำเสนอเทคน...

10

Clean Code: หลักการตั้งชื่อที่ดี

บทความนี้เน้นย้ำถึงความสำคัญของการตั้งชื่อที่ดีในการเขียน Clean Code โดยอธิบายว่าชื่อที่ดีควรสื่อความหมาย, หลีกเลี่ยงคำย่อ, สอดคล้องกับ Domain, มีรูปแบบที่สอดคล...

12

Clean Code: Comments ที่ดีและไม่ดี

บทความนี้กล่าวถึงการใช้ Comments ใน Clean Code โดยเน้นว่า Comments ที่ดีควรอธิบายเจตนา, เหตุผล, หรือแจ้งเตือนสิ่งที่ควรระวัง ในขณะที่ Comments ที่ซ้ำซ้อน, ล้าสม...

14

เริ่มต้นกับ Jenkins: ติดตั้งและตั้งค่า Jenkins

บทความนี้กล่าวถึงการเริ่มต้นใช้งาน Jenkins ซึ่งเป็นเครื่องมือ CI/CD ยอดนิยม โดยอธิบายถึงความสามารถหลักของ Jenkins ในการทำ automation และเหตุผลที่ควรใช้ จากนั้นแ...

22

Caching ด้วย Redis: Cache Data ใน PHP

บทความนี้แนะนำวิธีการใช้ Redis เพื่อ caching ข้อมูลใน PHP application โดยครอบคลุมตั้งแต่การเชื่อมต่อกับ Redis server, การ Set และ Get ข้อมูลด้วย TTL, รวมถึงตัวอ...

23

การวัด Performance: ใช้ Xdebug Profiler

บทความนี้แนะนำ Xdebug Profiler ซึ่งเป็นเครื่องมือสำคัญสำหรับการวัดประสิทธิภาพของโค้ด PHP เพื่อระบุจุดที่ทำให้แอปพลิเคชันทำงานช้า (bottleneck) และปรับปรุงแก้ไขให...

25

Refactoring: Introduce Parameter Object

บทความนี้แนะนำเทคนิค Refactoring ที่เรียกว่า "Introduce Parameter Object" เพื่อแก้ปัญหาฟังก์ชันที่มี Parameter จำนวนมาก ซึ่งทำให้โค้ดอ่านและบำรุงรักษายาก อีกทั้...

26

Refactoring: Decompose Conditional

บทความนี้อธิบายเทคนิค Refactoring ที่ชื่อว่า "Decompose Conditional" ซึ่งเป็นการแยก Conditional Statement ที่ซับซ้อนออกเป็น Function ย่อยๆ เพื่อให้โค้ดอ่านง่ายข...

28

การ Deploy เบื้องต้น: Deploy ไปยัง Shared Hosting

บทความนี้อธิบายขั้นตอนการ Deploy โปรเจกต์ PHP ไปยัง Shared Hosting ซึ่งเป็นทางเลือกที่นิยมสำหรับผู้เริ่มต้นเนื่องจากราคาถูกและใช้งานง่าย โดยครอบคลุมตั้งแต่การเต...

29

การ Deploy ด้วย FTP: ใช้ FTP Client

บทความนี้อธิบายถึงวิธีการ Deploy โปรเจกต์ PHP ไปยัง Shared Hosting โดยใช้ FTP Client เช่น FileZilla ซึ่งครอบคลุมตั้งแต่การตั้งค่าโปรแกรม, การอัพโหลดไฟล์, การจัด...

30

การใช้ SSH: Command Line Access

จากบทความที่แล้ว เรา Deploy โปรเจกต์ PHP ด้วย FTP Client ซึ่งมีข้อจำกัดด้านความเร็วและความปลอดภัย ในบทนี้ เราจึงเรียนรู้วิธีการใช้ SSH (Secure Shell) เพื่อเข้าถ...

32

การใช้ Composer: ติดตั้ง Dependencies

บทความนี้อธิบายถึง Composer ซึ่งเป็นเครื่องมือจัดการ Dependencies สำหรับ PHP ที่ช่วยให้การติดตั้ง, อัปเดต, และจัดการ Library ภายนอกเป็นเรื่องง่าย โดยจะเน้นที่วิ...

33

การใช้ Version Control: Git เบื้องต้น

บทความนี้เป็นการแนะนำ Git เบื้องต้น ซึ่งเป็นระบบ Version Control ที่ช่วยในการติดตามการเปลี่ยนแปลงของ Source Code, ทำงานร่วมกับผู้อื่น, และย้อนกลับไปยังเวอร์ชันก...

34

การใช้ Branching: สร้าง Branch และ Merge

บทความนี้อธิบายถึงการใช้ Branching ใน Git ซึ่งเป็นเครื่องมือสำคัญสำหรับการพัฒนา Feature ใหม่, แก้ไข Bug หรือทดลองไอเดีย โดยไม่กระทบกับ Code หลักของโปรเจกต์ (mai...

35

การแก้ไข Bug: Debugging เบื้องต้น

บทความนี้กล่าวถึงความสำคัญของการ Debugging ในการพัฒนาโปรแกรม PHP เพื่อค้นหาและแก้ไขข้อผิดพลาด (Bug) อย่างมีประสิทธิภาพ โดยนำเสนอเครื่องมือพื้นฐาน 3 อย่าง ได้แก่...

36

การใช้ Logging: บันทึก Events ใน Application

บทความนี้กล่าวถึงความสำคัญของการ Logging ใน Application PHP เพื่อบันทึกเหตุการณ์ต่างๆ และช่วยในการวิเคราะห์ปัญหาเมื่อ Application ถูกใช้งานจริง โดยแนะนำให้ใช้ L...

37

การจัดการ Exceptions: Try-Catch Blocks

บทความนี้กล่าวถึงความสำคัญของการจัดการ Exceptions ใน PHP เพื่อรับมือกับข้อผิดพลาดที่อาจเกิดขึ้นใน Application โดยแนะนำการใช้ Try-Catch Blocks เพื่อดักจับและจัดก...

38

การใช้ Dependency Injection: ลด Coupling

บทความนี้แนะนำ Dependency Injection (DI) ซึ่งเป็นเทคนิคการออกแบบซอฟต์แวร์ที่ช่วยลด Coupling ระหว่างคลาส ทำให้โค้ดมีความยืดหยุ่นและทดสอบได้ง่ายขึ้น โดย DI ทำงานโ...

39

การใช้ Interfaces: เขียน Code ที่ยืดหยุ่น

บทความนี้อธิบายถึง Interfaces ใน PHP ว่าเป็นพิมพ์เขียวที่กำหนดสัญญาของเมธอดที่คลาสต้อง Implement เพื่อให้โค้ดมีความยืดหยุ่น ลดการพึ่งพากัน และรองรับ Polymorphis...

40

การใช้ Design Patterns: Singleton Pattern

บทความนี้แนะนำ Singleton Pattern ซึ่งเป็น Design Pattern ที่ใช้ควบคุมการสร้าง Object ให้มีเพียง Instance เดียวและสามารถเข้าถึงได้จากทุกส่วนของโปรแกรม โดยมีทั้งข...

41

การใช้ Design Patterns: Factory Pattern

บทความนี้แนะนำ Factory Pattern ซึ่งเป็น Design Pattern ที่ช่วยในการสร้าง Object โดยไม่ต้องระบุ Class ที่จะสร้างโดยตรง ทำให้โค้ดมีความยืดหยุ่นและง่ายต่อการเปลี่ย...

42

การใช้ Queues: Background Processing

บทความนี้กล่าวถึงการใช้ Queues เพื่อประมวลผลงานที่ใช้เวลานานใน Background ของเว็บแอปพลิเคชัน เพื่อหลีกเลี่ยงการทำให้ User Experience แย่ลง โดยแนะนำให้ใช้ Messag...

43

การใช้ Caching Strategies: Cache Invalidation

บทความนี้กล่าวถึงความสำคัญของ Cache Invalidation ใน Caching Strategies เพื่อให้มั่นใจว่าข้อมูลใน Cache เป็นปัจจุบันและถูกต้อง โดยอธิบายกลยุทธ์ต่างๆ เช่น TTL, Ca...

44

การใช้ Load Balancing: กระจาย Traffic

บทความนี้อธิบายถึง Load Balancing ซึ่งเป็นเทคนิคการกระจาย Traffic ไปยัง Server หลายเครื่องเพื่อเพิ่มประสิทธิภาพ, ความพร้อมใช้งาน, และความทนทานของระบบ โดย Load B...

45

การใช้ CDN: Content Delivery Network

บทความนี้แนะนำ CDN (Content Delivery Network) ซึ่งเป็นเครือข่ายเซิร์ฟเวอร์ที่กระจายอยู่ทั่วโลก ทำหน้าที่เก็บสำเนา Content ของเว็บไซต์ เพื่อให้ผู้ใช้งานสามารถเข้...

46

Security Best Practices: Input Validation

บทความนี้เน้นย้ำถึงความสำคัญของการตรวจสอบข้อมูลนำเข้า (Input Validation) ในการพัฒนาเว็บแอปพลิเคชัน เพื่อป้องกันช่องโหว่ด้านความปลอดภัยต่างๆ เช่น SQL Injection แ...

47

Security Best Practices: Preventing SQL Injection

บทความนี้เน้นถึงอันตรายของ SQL Injection ซึ่งเกิดจากการแทรกโค้ด SQL อันตรายลงในคำสั่ง SQL ของแอปพลิเคชัน โดยเฉพาะอย่างยิ่งเมื่อใช้ข้อมูลนำเข้าจากผู้ใช้โดยไม่ได้...

48

Security Best Practices: Preventing XSS

บทความนี้อธิบายถึง Cross-Site Scripting (XSS) ซึ่งเป็นช่องโหว่ที่อนุญาตให้ผู้โจมตีแทรกสคริปต์อันตรายเข้าไปในเว็บไซต์ เพื่อขโมยข้อมูลหรือเปลี่ยนเส้นทางการเข้าชม...