Hàm và Ranh Giới Trách Nhiệm

Tác giả: Todesign Cập nhật chương mới

🟢 TẦNG 8 – HÀM & RANH GIỚI TRÁCH NHIỆM


1️⃣ Hàm là gì?

Hàm = một hành động nhỏ, làm đúng 1 việc, xong là trả kết quả.

Ví dụ đời sống:

  • “Kiểm tra còn tiền không”
  • “Tính tổng tiền”
  • “Gửi tin nhắn”

👉 Mỗi cái là 1 hàm riêng.


2️⃣ Vì sao cần hàm sau module?

  • Module = một khu vực làm việc lớn
  • Hàm = từng thao tác nhỏ trong khu vực đó

Không có hàm → module thành 1 cục bùn.

Có hàm → mỗi việc đứng đúng chỗ.


3️⃣ 5 luật sắt của HÀM (chỉ cần nhớ 5 dòng)

  1. Một hàm chỉ làm MỘT việc
  2. Hàm không tự quyết định số phận hệ thống
  3. Hàm không tự ý đổi trạng thái mà không nói ra
  4. Hàm không dùng lung tung đồ bên ngoài
  5. Hàm xong việc là xong, không giữ trạng thái lâu dài

Chỉ cần vi phạm 1 trong 5 cái trên → sớm muộn code loạn.


4️⃣ Tách cực rõ 2 loại hàm (điểm mấu chốt)

🔧 Loại 1: Hàm LÀM VIỆC

👉 Chỉ làm kỹ thuật

Ví dụ:

  • kiểm tra đúng / sai
  • tính toán
  • xử lý dữ liệu

KHÔNG quyết định tiếp hay dừng


🧠 Loại 2: Hàm QUYẾT ĐỊNH

👉 Chỉ quyết định luồng

Ví dụ:

  • nếu sai → dừng
  • nếu đúng → gọi tiếp hàm khác

KHÔNG xử lý chi tiết


5️⃣ Ví dụ chốt não (đọc là hết mơ hồ)

❌ Tư duy sai (1 hàm làm tất)

“Xử lý đăng ký”:

  • kiểm tra email
  • kiểm tra mật khẩu
  • tạo user
  • lưu
  • gửi mail
  • quyết định thành công / thất bại

👉 1 hàm = 5 việc = LOẠN


✅ Tư duy đúng (đúng chuẩn tầng 8)

Hàm làm việc:

  • kiểmTraEmail()
  • kiểmTraMatKhau()
  • tạoUser()
  • lưuUser()
  • gửiMail()

Hàm quyết định:

  • xửLýĐăngKý()

Luồng tư duy:

Nếu email sai → dừng
Nếu mật khẩu yếu → dừng
Nếu ổn → tạo user → lưu → gửi mail

👉 Rõ vai trò – không lẫn não với tay chân.


6️⃣ Dấu hiệu nhận biết đang viết HÀM SAI

Nếu thấy trong đầu mình có mấy câu này → sai tư duy:

  • “Hàm này tiện làm luôn cái kia”
  • “Thôi cho nó tự đổi trạng thái luôn”
  • “Cho hàm này quyết định luôn cho nhanh”
  • “Hàm này đọc luôn biến global cho đỡ truyền”

👉 Những câu này = mầm bug + mầm loạn hệ thống.


7️⃣ Khung ghi nhớ 1 dòng

Hàm = làm việc nhỏ, không làm não hệ thống, không giữ quyền lực.


8️⃣ Bài tập 30 giây

Tình huống: “Đi mua đồ ăn”

Tách ra:

  • Hàm làm việc:
  • kiểm tra còn tiền không
  • chọn món
  • trả tiền
  • nhận đồ
  • Hàm quyết định:
  • nếu không đủ tiền → về
  • nếu đủ tiền → mua


Ví dụ đời sống cho TẦNG 8 – Thợ xây & Chủ thầu


Chủ thầu = Hàm quyết định (Controller)


  • Quyết định: có làm công trình không
  • Quyết định: làm theo phương án nào
  • Quyết định: bước nào làm trước, bước nào làm sau
  • Quyết định: khi nào dừng


Đội thợ = Hàm làm việc (Worker)


  • Chỉ làm kỹ thuật: trộn bê tông, xây tường, đổ móng
  • Không quyết định kế hoạch
  • Không tự đổi phương án
  • Không tự dừng công trình


Nguyên tắc cốt lõi:

Đội thợ không được quyết định số phận công trình. Đội thợ chỉ thực hiện kỹ thuật. Quyền quyết định luồng phải nằm ở chủ thầu.



Bình luận (0)

Chưa có bình luận nào.

Hãy là người đầu tiên chia sẻ suy nghĩ của bạn!

Gửi bình luận thành công! Chờ duyệt nhé