หลักการวิศวกรรมซอฟต์แวร์

กรณีศึกษา: การสร้างซอฟต์แวร์ด้วย Python

Mark Pedigo

Principal Data Scientist

แผนผัง

แผนผังแสดงส่วนที่ดำเนินการเสร็จแล้วและส่วนที่กำลังจะเริ่มต้น

กรณีศึกษา: การสร้างซอฟต์แวร์ด้วย Python

Modularity

Modularity: หลักการวิศวกรรมซอฟต์แวร์สำคัญ

  • โมดูลที่แยกจากกันอย่างชัดเจน
  • ฟังก์ชันการทำงานเฉพาะเจาะจง
  • อินเทอร์เฟซที่กำหนดไว้ชัดเจน
  • พัฒนา ทดสอบ และดูแลรักษาแยกกัน
กรณีศึกษา: การสร้างซอฟต์แวร์ด้วย Python

หลักการ DRY

"Don't Repeat Yourself": หลักการวิศวกรรมซอฟต์แวร์สำคัญ

  • ลดการเขียนโค้ดซ้ำ
  • คอมโพเนนต์และคลาสที่นำกลับมาใช้ได้
  • เขียนครั้งเดียว ใช้ได้ทั่ว
  • โค้ดสะอาด ดูแลง่าย และเกิดข้อผิดพลาดน้อย
กรณีศึกษา: การสร้างซอฟต์แวร์ด้วย Python

Packaging

Packaging: หลักการวิศวกรรมซอฟต์แวร์สำคัญ

  • โครงสร้างโฟลเดอร์ที่เป็นระเบียบ
  • จัดการและจัดโครงสร้างโค้ดได้อย่างมีประสิทธิภาพ
  • ไฟล์ __init__.py สำหรับการเริ่มต้นโมดูล
กรณีศึกษา: การสร้างซอฟต์แวร์ด้วย Python

การสร้างแพ็กเกจ

  • โครงสร้างขั้นต่ำ: โฟลเดอร์แพ็กเกจ + ไฟล์ Python
  • แพ็กเกจ: โฟลเดอร์ + ไฟล์ __init__.py
  • ชื่อไดเรกทอรีสั้น ตัวพิมพ์เล็ก คั่นด้วยขีดล่าง
  • __init__.py: ระบุให้โฟลเดอร์เป็นแพ็กเกจ
กรณีศึกษา: การสร้างซอฟต์แวร์ด้วย Python

Absolute และ Relative Imports

  • สมมติว่ามีโครงสร้างโปรเจกต์ดังนี้
project \
   |--- package
   |    |--- module1.py
   |    |--- module2.py
   |--- main.py
  • Absolute Import: ระบุเส้นทางเต็มจาก root
    • from package import module1
    • from package.module1 import function
  • Relative Import: เส้นทางสัมพัทธ์จากตำแหน่งปัจจุบัน (. = ปัจจุบัน, .. = พาเรนต์)
    • from . import module1
    • from .module1 import function
  • Absolute: ชัดเจน แต่ย้ายโปรเจกต์ได้ยากกว่า
  • Relative: ยืดหยุ่น ขึ้นอยู่กับบริบท
กรณีศึกษา: การสร้างซอฟต์แวร์ด้วย Python

มาฝึกกันเถอะ!

กรณีศึกษา: การสร้างซอฟต์แวร์ด้วย Python

Preparing Video For Download...