Code Refactoring
1. code Refactoring là gì?
Refactoring là tái cấu trúc, tổ chức lại mã nguồn mà không làm thay đổi hành vi của nó.
2. Tại sao bạn nên refactoring?
- Nó giúp cải thiện cấu trúc thiết kế phần mềm của bạn.
- Giúp mã nguồn của bạn dễ hiểu hơn.
- Nó giúp bạn có thể tìm thấy nguyên nhân dẽ dàng hơn khi phần mềm của bạn dính lỗi.
- Ngoài ra nó giúp bạn viết phần mềm nhanh hơn.
3. Mã nguồn như thế nào là mã nguồn chưa tốt, cần refactoring ?
- Có rất nhiều cách nhận biết mã nguồn của bạn chưa tốt (bẩn hay "bóc mùi"), sau đây là một số cách nhận biết cơ bản :
- Duplicated Code : code của bạn có sự trùng lặp, khi có một đoạn mã với chức năng giống hệt được viết tại 2 nơi khác nhau.
- Long Method : phương thức của bạn quá dài - tính theo số dòng code.
- Large Class : Khi class của bạn chứa các phương thức và thuộc tính của như một class khác. Lấy một ví dụ : bạn có một class làm việc với DB nhưng class đó lại chứa những phương thức cũng như thuộc tính của class hiển thị View cho người dùng.
- Long Parameter List : Khi phương thức của bạn có quá nhiều tham số.
- Primitive Obsession : Khi bạn dùng các kiểu nguyên thủy để đại diện cho thực thể. Ví dụ bạn có một danh sách người chơi, bạn dùng các 1 mảng các con số như 1, 2, 3 để đại diện cho các người chơi, như vậy bạn đã mắc lỗi này.
- Switch Statements : Bạn nên cần thần khi làm việc với các câu lệnh switch. Bơi nó là nơi rất dẽ xuất hiện code "bẩn".
- Có rất nhiều cách nhận biết mã nguồn của bạn chưa tốt (bẩn hay "bóc mùi"), sau đây là một số cách nhận biết cơ bản :
- Duplicated Code : code của bạn có sự trùng lặp, khi có một đoạn mã với chức năng giống hệt được viết tại 2 nơi khác nhau.
- Long Method : phương thức của bạn quá dài - tính theo số dòng code.
- Large Class : Khi class của bạn chứa các phương thức và thuộc tính của như một class khác. Lấy một ví dụ : bạn có một class làm việc với DB nhưng class đó lại chứa những phương thức cũng như thuộc tính của class hiển thị View cho người dùng.
- Long Parameter List : Khi phương thức của bạn có quá nhiều tham số.
- Primitive Obsession : Khi bạn dùng các kiểu nguyên thủy để đại diện cho thực thể. Ví dụ bạn có một danh sách người chơi, bạn dùng các 1 mảng các con số như 1, 2, 3 để đại diện cho các người chơi, như vậy bạn đã mắc lỗi này.
- Switch Statements : Bạn nên cần thần khi làm việc với các câu lệnh switch. Bơi nó là nơi rất dẽ xuất hiện code "bẩn".
4. Tính năng của Code Refactory .
- Làm cho mã nguồn dễ đọc hơn. Sửa đổi định danh, từ ngữ, cách đặt tên cho các thành phần trong mã nguồn. Còn được gọi là chuẩn hóa từ ngữ (coding convention).
- Làm cho mã nguồn dễ hiểu hơn. Sắp xếp lại trật tự các dòng lệnh, các vòng lặp, các điều kiện, ràng buộc nhằm làm cho logic của mã nguồn tốt hơn, số lượng dòng lệnh (line of code) được cực tiểu hóa.
- Tăng tính dùng lại: mã nguồn tốt, rõ ràng sẽ có lợi khi được sử dụng lại cho các module khác của cùng ứng dụng hoặc được dùng như một bộ thư viện sử dụng cho nhiều ứng dụng, module khác nhau.
- Tăng tính tiến hóa: Một mã nguồn tốt có lợi ích và chu kỳ sống cụ thể do công nghệ thông tin ngày càng phát triển. Mã nguồn tốt có thể có thời gian sử dụng lâu hơn và khả năng tự phát triển, nâng cấp, kế thừa khi ứng dụng có nhu cầu phát triển thêm mà không phải bị vứt bỏ để viết lại từ đầu.
- Làm cho mã nguồn dễ đọc hơn. Sửa đổi định danh, từ ngữ, cách đặt tên cho các thành phần trong mã nguồn. Còn được gọi là chuẩn hóa từ ngữ (coding convention).
- Làm cho mã nguồn dễ hiểu hơn. Sắp xếp lại trật tự các dòng lệnh, các vòng lặp, các điều kiện, ràng buộc nhằm làm cho logic của mã nguồn tốt hơn, số lượng dòng lệnh (line of code) được cực tiểu hóa.
- Tăng tính dùng lại: mã nguồn tốt, rõ ràng sẽ có lợi khi được sử dụng lại cho các module khác của cùng ứng dụng hoặc được dùng như một bộ thư viện sử dụng cho nhiều ứng dụng, module khác nhau.
- Tăng tính tiến hóa: Một mã nguồn tốt có lợi ích và chu kỳ sống cụ thể do công nghệ thông tin ngày càng phát triển. Mã nguồn tốt có thể có thời gian sử dụng lâu hơn và khả năng tự phát triển, nâng cấp, kế thừa khi ứng dụng có nhu cầu phát triển thêm mà không phải bị vứt bỏ để viết lại từ đầu.
5. Lời kết
- Code refactor chủ yếu là những thay đổi nhỏ trong code, tuy nhiên, giá trị nó mang về lại rất lớn. Các phương pháp refactor không chỉ giúp ta tìm lỗi sai đễ hơn mà còn giúp phần mềm chạy nhanh hơn và để ta nhận ra khi nào nên dùng kỹ thuật nào là tối ưu nhất .
Nhận xét
Đăng nhận xét