[Video Summary] Ch. 1.16 A First Refactoring with Functions in SwiftUI (2025)
Mô tả nhanh
Video này hướng dẫn cách sử dụng hàm để viết code tốt hơn trong ứng dụng SwiftUI, bao gồm việc tạo hàm playSound
có thể tái sử dụng và hàm nonRepetingRandom
để tạo số ngẫu nhiên không lặp. Video cũng giới thiệu khái niệm refactoring (tái cấu trúc code).
Video
Mô tả chi tiết
Video này hướng dẫn cách sử dụng hàm để viết code tốt hơn trong ứng dụng SwiftUI, bao gồm việc tạo hàm playSound
có thể tái sử dụng và hàm nonRepetingRandom
để tạo số ngẫu nhiên không lặp. Video cũng giới thiệu khái niệm refactoring (tái cấu trúc code).
Các bước thực hiện chính:
- Tạo hàm
playSound
:-
Chuyển code chơi âm thanh hiện tại vào trong một hàm mới có tên
playSound
. -
Hàm này nhận một tham số
soundName
kiểu String để xác định tên file âm thanh cần chơi. -
Gọi hàm
playSound
trongbuttonAction
với tên file âm thanh tương ứng. -
Hàm
playSound
có thể được sao chép và sử dụng trong các ứng dụng khác sau khi import thư viện AVFoundation và khởi tạoaudioPlayer
-
Code mẫu:
func playSound(soundName: String) { guard let url = Bundle.main.url(forResource: soundName, withExtension: "mp3") else { print("Unable to find \(soundName) in assets catalog") return } do { audioPlayer = try AVAudioPlayer(contentsOf: url) audioPlayer?.play() } catch { print("Error Playing Sound \(error)") } }
-
- Khái niệm Refactoring (Tái cấu trúc code):
- Refactoring là quá trình viết lại code để cải thiện hiệu quả, khả năng đọc và bảo trì mà không thay đổi kết quả đầu ra.
- Nguyên tắc "Don't Repeat Yourself" (DRY - không lặp lại chính mình) là một nguyên tắc quan trọng trong refactoring.
- Tạo hàm
nonRepeatingRandom
:- Phân tích ba khối code tạo số ngẫu nhiên không lặp cho tin nhắn, hình ảnh và âm thanh.
- Tạo một hàm
nonRepeatingRandom
có hai tham số đầu vào:lastNumber
: Số ngẫu nhiên đã sử dụng lần cuối (Int).upperBounds
: Giới hạn trên của phạm vi số ngẫu nhiên (Int).
- Hàm này trả về một số ngẫu nhiên mới không trùng với
lastNumber
và nằm trong khoảng từ 0 đếnupperBounds
. - Sử dụng hàm
nonRepeatingRandom
để thay thế cho các khối code hiện tại trongbuttonAction
. - Ví dụ code:
func nonRepeatingRandom(lastNumber: Int, upperBounds: Int) -> Int { var newNumber = 0 repeat { newNumber = Int.random(in: 0..<upperBounds) } while newNumber == lastNumber return newNumber }
- Cập nhật buttonAction:
- Thay thế ba đoạn code tạo số ngẫu nhiên không lặp bằng cách gọi hàm
nonRepeatingRandom
, ví dụ:lastMessageNumber = nonRepeatingRandom(lastNumber: lastMessageNumber, upperBounds: messages.count - 1) messageString = messages[lastMessageNumber]
lastImageNumber = nonRepeatingRandom(lastNumber: lastImageNumber, upperBounds: numberOfImages - 1) imageNameString = "\(imageNames[lastImageNumber])"
lastSoundNumber = nonRepeatingRandom(lastNumber: lastSoundNumber, upperBounds: numberOfSounds - 1) playSound(soundName: soundNames[lastSoundNumber])
- Thay thế ba đoạn code tạo số ngẫu nhiên không lặp bằng cách gọi hàm
Chúc bạn có một buổi học thật hiệu quả!