Cách refactoring code
NỘI DUNG BÀI VIẾT
Refactoring Code là gì?
Refactoring là thay đổi ở cấu trúc bên trong mà không làm thay đổi hành vi với bên ngoài của hệ thống.
Refactoring là viết lại source code một cách khoa học hơn mà vẫn giữ được tính đúng đắn và giá trị về chức năng của source code đó.
Refactoring có thể thực hiện ở nhiều mức độ: Hệ thống -> Chức năng -> File/Class -> Method/Functions. Tùy theo những mức độ này thì “cấu trúc bên trong” “hành vi bên ngoài” “hệ thống” sẽ được hiểu khác nhau.Ví dụ khi refactoring 1 class thì cấu trúc bên trong là properties, method của class đó hành vi bên ngoài là các nhiệm vụ mà class đó thực hiện.Như vậy refactoring khi đó là viết lại properties, method sao cho không làm thay đổi các nhiệm vụ của class đó.
Những lợi ích của việc tái cấu trúc mã nguồn
Như đã đề cập bên trên, việc tái cấu trúc mã nguồn không thay đổi hành vi bên ngoài của phần mềm. Chức năng của sản phẩm vẫn giữ nguyên và người dùng sẽ không thấy bất kỳ sự khác biệt nào.
Vậy tại sao code refactoring lại quan trọng? Có một số lý do giải thích tại sao việc tái cấu trúc mã nguồn lại quan trọng trong phát triển phần mềm:
- Làm đơn giản hóa việc hỗ trợ và cập nhật code. Clean code dễ cập nhật và cải thiện hơn nhiều so với mã lộn xộn. Các lập trình viên có thể nhanh chóng viết ra chức năng mới, đồng thời cũng tiết kiệm ngân sách hỗ trợ vì việc bảo trì sẽ cần ít thời gian hơn.
- Tiết kiệm thời gian và tiền bạc trong tương lai. Tái cấu trúc mã nguồn làm giảm khả năng xảy ra lỗi trong tương lai và đơn giản hóa việc triển khai chức năng phần mềm mới. Thay vì gỡ rối hoặc sửa lỗi, các nhà phát triển có thể nhanh chóng triển khai chức năng cần thiết ngay.
- Giảm độ phức tạp để dễ hiểu hơn của code. Nếu có một nhân viên mới hoặc toàn bộ nhóm phát triển thay đổi hoàn toàn, những mới tham gia sẽ dễ dàng hiểu mã hơn và thực hiện các thay đổi cần thiết nhanh hơn.
- Tăng khả năng bảo trì và khả năng mở rộng. Đôi khi, các lập trình viên chỉ đơn giản là tránh thực hiện các thay đổi đối với một số mã bẩn vì họ không hiểu rõ ràng những sửa đổi này sẽ dẫn đến hậu quả gì. Điều này cũng đúng với khả năng mở rộng. Loại bỏ trở ngại này là một lợi ích của việc tái cấu trúc mã.
Như vậy cả doanh nghiệp và các lập trình viên đều nhận được hai lợi ích chính: giảm thời gian và tiền bạc và có thể hiểu dễ dàng hơn về cách phần mềm hoạt động.
Khi nào thì thực hiện refactoring
Bất cứ khi nào bạn muốn đoạn code của mình “tốt hơn” thì đều có thể thực hiện refactoring. Tuy nhiên một số giai đoạn dưới đây được cho là thích hợp hơn để làm refactoring.
Khi thêm chức năng mới vào source cũ
đây là thời điểm bạn phải đọc lại source cũ để hiểu và thêm vào 1 phần mới, có thể phần mới này sẽ ảnh hưởng cả đến những phần source cũ thì đây là thời điểm thích hợp để refactoring.
Khi tiến hành review code
Khi những người có kinh nghiệm hơn review cho những người ít kinh nghiệm thì họ sẽ chỉ ra cách viết code khoa học hơn cho người ít kinh nghiệm .Từ đó người ít kinh nghiệm học hỏi và tự refactoring code của mình để nâng cao trình độ.
Khi cần handover lại
Có những mã code phức tạp và rối đến mức ngay cả người viết ra nó cũng cần thời gian để hiểu logic.Việc handover lại nguyên những source code như vậy gây khó khăn cho người mới do đó để người mới dễ dàng tiếp cận hợn thì đây cũng là một thời điểm thích hợp để refactoring code.
Tổng kết
Thât ra, refactoring code là công việc rất đơn giản, đến mức người ta dễ dàng bỏ qua code refactoring để nghĩ tới architect refactoring hay structure refactoring. Nhưng theo tôi, khi thực hiện refactoring code tốt, những design pattern sẽ dần được hình thành và từ đó kiến trúc mới cũng sẽ được hình thành. Rất ít khi chúng ta cần tới architect refactoring; và tôi cũng không tham vọng giới thiệu những điều này sớm.
Xem thêm:
Leave a Reply