Extract Method
Vấn đề
Bạn có một đoạn mã có thể được nhóm lại với nhau.
Giải pháp
Di chuyển đoạn mã này vào một phương thức mới (hoặc hàm) riêng biệt và thay thế mã cũ bằng một lời gọi đến phương thức đó.
printOwing(): void {
printBanner();
// In chi tiết.
console.log("name: " + name);
console.log("amount: " + getOutstanding());
}
Refactor
printOwing(): void {
printBanner();
printDetails(getOutstanding());
}
printDetails(outstanding: number): void {
console.log("name: " + name);
console.log("amount: " + outstanding);
}
Tại sao phải tái cấu trúc
Càng nhiều dòng mã trong một phương thức, càng khó để xác định phương thức đó làm gì. Đây là lý do chính cho việc tái cấu trúc này.
Ngoài việc loại bỏ các cạnh thô trong mã của bạn, việc trích xuất phương thức cũng là một bước trong nhiều phương pháp tái cấu trúc khác.
Lợi ích
- Mã dễ đọc hơn! Hãy chắc chắn đặt tên cho phương thức mới một cách mô tả mục đích của nó:
createOrder(),renderCustomerInfo(), v.v. - Giảm sự trùng lặp mã. Thường thì mã được tìm thấy trong một phương thức có thể được tái sử dụng ở các nơi khác trong chương trình của bạn. Vì vậy, bạn có thể thay thế các đoạn mã trùng lặp bằng các lời gọi đến phương thức mới của bạn.
- Cô lập các phần mã độc lập, nghĩa là ít có khả năng xảy ra lỗi hơn (như nếu biến sai bị thay đổi).
Cách Tái Cấu Trúc
- Tạo một phương thức mới và đặt tên sao cho mục đích của nó tự giải thích được.
- Sao chép đoạn mã liên quan vào phương thức mới của bạn. Xóa đoạn mã đó khỏi vị trí cũ và thay vào đó là một lời gọi đến phương thức mới.
- Tìm tất cả các biến được sử dụng trong đoạn mã này. Nếu chúng được khai báo bên trong đoạn mã và không được sử dụng bên ngoài, hãy để chúng không thay đổi—chúng sẽ trở thành các biến cục bộ cho phương thức mới.
- Nếu các biến được khai báo trước đoạn mã mà bạn đang trích xuất, bạn sẽ cần truyền các biến này vào các tham số của phương thức mới để sử dụng các giá trị trước đó của chúng. Đôi khi, dễ dàng hơn khi loại bỏ các biến này bằng cách sử dụng Replace Temp with Query (Thay thế Biến Tạm bằng Truy Vấn).
- Nếu bạn thấy một biến cục bộ thay đổi trong đoạn mã trích xuất của bạn, điều này có thể có nghĩa là giá trị thay đổi này sẽ cần thiết sau đó trong phương thức chính của bạn. Kiểm tra kỹ! Và nếu đúng là như vậy, hãy trả về giá trị của biến này cho phương thức chính để giữ cho mọi thứ hoạt động.
Nhận xét
Đăng nhận xét