12/08/2018, 13:55

Refactoring good practices

Xin chào các bạn! Chắc hẳn chúng ta trong quá trình làm dự án cũng không ít lần thực hiện việc refactor code. Việc này đôi khi là để cho code trông dễ đọc và "pro" hơn, nhưng đôi khi là rất cần thiết để tránh phát sinh lỗi không đáng có. Hôm nay mình xin giới thiệu với các bạn một bài viết trên ...

Xin chào các bạn! Chắc hẳn chúng ta trong quá trình làm dự án cũng không ít lần thực hiện việc refactor code. Việc này đôi khi là để cho code trông dễ đọc và "pro" hơn, nhưng đôi khi là rất cần thiết để tránh phát sinh lỗi không đáng có. Hôm nay mình xin giới thiệu với các bạn một bài viết trên trang https://blog.inf.ed.ac.uk/sapm/2014/03/14/refactoring-good-practices/, hy vọng sẽ có ích cho các bạn trong quá trình làm việc.

I. Refactor là gì? Refactor là một cách tái cấu trúc lại. Về mặt kỹ thuật, nó là việc viết lại phương thức, thuật toán gọn gàng và dễ hiểu hơn mà vẫn cho kết quả tương đương. Điều quan trọng nhất là, kết quả trước và sau khi refactor phải hoàn toàn giống nhau.

Ý tưởng của refactoring là để cải thiện thiết kế của một ứng dụng đang chạy, do đó thiết kế lại toàn bộ là cách tốt nhất, tuy nhiên chúng ta không nên làm như vậy thường xuyên vì nó tiềm ẩn khá nhiều rủi ro. Việc thay đổi lại toàn bộ code đang chạy đúng trong có vẻ tốt nhưng chúng ta không dám chắc nó hoạt động chính xác. Để tránh mắc phải điều này, chúng ta nên dùng unit test, test lại các tính năng trên các môi trường độc lập nhau.

II. Tại sao phải refactor?

Trước hết, chúng ta nên đặt câu hỏi tại sao phải refactor?

Lý do chủ yếu là:

  • Việc cải thiện code làm cho nó dễ hiểu, dễ đọc hơn. Thực tế thì thời gian bạn dành để đọc code lơn hơn thời gian viết code rất nhiều. Bởi vì chúng ta viết 1 lần và thường phải đọc lại khá nhiều lần.
  • Đảm bảo rằng code viết ra không bị trùng lặp, như vậy khi có thay đổi, chúng ta chỉ phải sửa ở một hàm thay vì ở nhiều hàm khác nhau, điều đó giúp giảm thời gian bảo trì và hạn chế lỗi xảy ra.
  • Đơn giản vì chúng ta muốn có một sản phẩm có chất lượng cao             </div>
            
            <div class=
0