挑戰導入

案例研究:用 Python 建構軟體

Mark Pedigo, PhD

Principal Data Scientist

什麼是個案研究?

  • 將現有技能應用到真實問題
  • 先修課程
    • Python 的軟體工程原則
    • Python 的物件導向進階

兩人在會議中討論個案研究

案例研究:用 Python 建構軟體

個案情境

新屋房貸評估

  • PyBank Financial 的貸款專員
  • 建立程式來
    • 判定可負擔房價
    • 計算月付金額
  • 免責聲明:僅供示範

loan_officer.jpg

案例研究:用 Python 建構軟體

行動計畫

  • 用軟體自動化計算
  • 以類別為本,套用軟體工程原則
  • 階段
    • 基本計算機
      • +, -, *, /, **
    • 財務計算機
      • 計算利息、利率
    • 房貸計算機
      • 計算貸款額、還款

三台計算機,尺寸逐步變大

案例研究:用 Python 建構軟體

繼承

在類別間重複使用程式碼

  • 子類別(FinancialCalculator)繼承父類別(BasicCalculator)的所有功能
  • 子類別可新增額外功能
class BasicCalculator:
    def multiply(self, x, y):
        result = x * y
        return result
  ...
# Child of BasicCalculator
class FinancialCalculator(BasicCalculator):
    def months_from_years(self, years):
        # Inherits the .multiply() method
        return self.multiply(years, 12)
    ...
案例研究:用 Python 建構軟體

軟體工程原則複習

  • 模組化、乾淨、可讀、有效率的程式碼
    • 繼承、方法
  • 善用可重複使用的函式庫、框架、既有解法
    • 修改既有程式碼
    • 精簡開發流程
  • 清楚的文件、註解、使用指南
    • 文件化
  • 測試
    • doctest 與單元測試

電腦被軟體工程圖示環繞的插圖

案例研究:用 Python 建構軟體

路線圖

顯示專案不同部分的路線圖。

案例研究:用 Python 建構軟體

開始動手!

案例研究:用 Python 建構軟體

Preparing Video For Download...