Refactor Code Là Gì

lời mở đầu

Một khi dự án đã hoàn thành, bỗng dưng bên client thuê một “cao nhân” không biết từ đâu viết lại code cho cả dự án. Lạ thay, tên này không hiểu nghiệp vụ dự án, cũng không làm bao giờ. với khuôn khổ của dự án, nhưng vẫn viết lại mã của dự án. Mình mới học code refactoring, vậy code refactoring là gì, làm như thế nào và có lợi ích gì? Bài viết này sẽ giúp bạn giải đáp thắc mắc trên.

Đang xem: Code refactor là gì

Mã tái cấu trúc là gì?

Trên trang HaNoi Scrum có định nghĩa ngắn gọn như sau.

Tái cấu trúc là thay đổi cấu trúc bên trong mà không thay đổi hành vi bên ngoài của hệ thống.

Tái cấu trúc có thể được thực hiện ở nhiều cấp độ: Hệ thống -> Hàm -> Tệp/Lớp -> Phương thức/Chức năng. Tùy thuộc vào các cấp độ này, “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 tái cấu trúc một lớp, cấu trúc bên trong là các thuộc tính, phương thức của lớp đó tác động bên ngoài. bên ngoài là các nhiệm vụ mà lớp thực hiện. Vì vậy refactoring khi nó là viết lại các thuộc tính, phương thức sao cho chúng không làm thay đổi nhiệm vụ của lớp đó. Cho tôi,

Tái cấu trúc là viết lại mã nguồn một cách khoa học hơn mà vẫn giữ được tính đúng đắn và giá trị chức năng của mã nguồn đó. Tại sao tái cấu trúc mã?

Refactoring không làm cho hệ thống chạy nhanh hơn, bảo mật hơn nhưng sẽ làm cho mã nguồn dễ truy cập, dễ đọc, dễ hiểu, từ đó giúp ích rất nhiều cho việc bảo trì và mở rộng hệ thống.

Khi nào thực hiện tái cấu trúc

Bất cứ khi nào bạn muốn mã của mình “tốt hơn”, bạn có thể thực hiện tái cấu trúc. Tuy nhiên, một số giai đoạn dưới đây được coi là phù hợp hơn để thực hiện tái cấu trúc.

Xem thêm bài viết hay:  Wibu là gì? – IIHS

Khi thêm chức năng mới vào nguồn cũ

Đây là lúc bạn phải đọc lại source cũ để hiểu và thêm phần mới vào, có thể phần mới này sẽ ảnh hưởng đến các phần source cũ, đây là thời điểm thích hợp để refactoring.

Khi tiến hành đánh giá mã

Khi những người có kinh nghiệm hơn review cho những người ít kinh nghiệm hơn, họ sẽ chỉ cách viết code khoa học hơn cho những người ít kinh nghiệm hơn. Từ đó, những người ít kinh nghiệm học hỏi và cấu trúc lại mã của riêng họ để cải thiện trình độ của họ. .

Khi cần bàn giao lại

Có những mật mã phức tạp và khó hiểu đến mức ngay cả người viết ra nó cũng cần thời gian để hiểu logic. Việc bàn giao cùng một mã nguồn gây khó khăn cho người mới vì vậy người mới sẽ dễ dàng tiếp cận nó hơn. Đây cũng là thời điểm tốt để tái cấu trúc mã.

Mã nguồn cần tái cấu trúc như thế nào và khi nào thì hoàn thành?

Để biết mã nguồn có cần tái cấu trúc hay không, có một số tiêu chí gọi là “Mùi mã xấu”. Bạn có thể tham khảo tại đây. Từ các mùi sẽ có các kỹ thuật refactoring code phù hợp, tùy vào việc áp dụng các kỹ thuật này mà code sẽ được tối ưu ở mức độ nào. Có rất nhiều kỹ thuật. để tái cấu trúc, nhưng áp dụng tất cả chúng sẽ tốn rất nhiều công sức, nên thông thường người ta chỉ áp dụng một số kỹ thuật chung.

Xem thêm: Ứng dụng tức thì của Google là gì và nó hoạt động như thế nào, Ứng dụng tức thì là gì

Một số kỹ thuật về Mùi và tái cấu trúc

Do có nhiều kỹ thuật refactoring khác nhau và khá dài nên trong bài viết này mình chỉ trình bày những phần liên quan đến Bloaters (thu gọn, thu gọn).

Xem thêm bài viết hay:  Nghĩa Của Từ Grammar Là Gì ? Grammar Nghĩa Là Gì Trong Tiếng Anh

Mùi: Phương pháp, chức năng quá dài

Nguyên nhân: Viết code cập nhật liên tục vào 1 Hàm, phương thức khiến lượng code trong các phương thức ngày càng lớn. Mục đích phương pháp có thể không còn như lúc ban đầu nên việc đọc lại ngày càng khó khăn và tốn thời gian. Phương thức trích xuất: Phương thức này tách một phần lớn các phương thức thành các phương thức nhỏ hơn thực hiện các tác vụ riêng biệt.

vô hiệu printPet()

sau khi tái cấu trúc

void printPet() void printDetails(int chân)

Preserve Whole Object: thay vì lấy giá trị từ đối tượng vào param rồi chuyển param sang phương thức khác gây dư thừa param và khó quản lý giá trị param khi có thay đổi thì sử dụng trực tiếp đối tượng đó trong các phương pháp cần thiết.

int start = valueRange().getStart(); int end = valueRange().getEnd(); boolean withinPlan = plan.withinRange(bắt đầu, kết thúc);

sau khi tái cấu trúc

boolean withinPlan = plan.withinRange(valueRange());

Thay thế Temp bằng Query: Đoạn mã sử dụng các phép tính thành một tham số tạm thời và sau đó sử dụng tham số đó để xử lý tiếp.

nhân đôi Tính toán () khác }

Sau khi tái cấu trúc

nhân đôi Tính toán() khác } nhân đôi BasePrice()

Mùi: quá nhiều tham số trong phương thức, hàm

có quá nhiều tham số trong phương thức sẽ gây nhầm lẫn, khó nhớ, khó hiểu. Có thể áp dụng một trong các cách dưới đây để xử lý tình huống này. Thay param bằng giá trị của lệnh gọi phương thức:

int basePrice = số lượng * giá mặt hàng; double seasonDiscount = store.GetSeasonalDiscount(); phí gấp đôi = store.GetFees(); double finalPrice = GiscountedPrice(giá gốc, chiết khấu theo mùa, phí);

Sau khi tái cấu trúc

int basePrice = số lượng * giá mặt hàng; double finalPrice = GiscountedPrice(basePrice, store);

truyền Whole Object: thay vì đặt các giá trị riêng lẻ, có thể nhóm các giá trị đó vào một đối tượng nếu nó có liên quan với nhau.

Xem thêm bài viết hay:  Nghĩa vụ quân sự là gì? Ai phải đi nghĩa vụ quân sự?

trọng lượng int = máy tính (số Ofpet, chân, đầu, cơ thể);

sau khi tái cấu trúc

…thú cưng lớp…. trọng lượng int = máy tính (sốOfpet,thú cưng);

Mùi: Lớp quá lớn

Lớp có quá nhiều thuộc tính, phương thức trở nên khó hiểu, khó thay đổi. Tách: xem xét liệu một phần của lớp lớn có thể được chia thành các lớp nhỏ hơn hay không, sau đó tách mã này thành một lớp con.

nhà lớp học

sau khi tái cấu trúc

Lớp Vi tính Nhà lớp

Chia sẻ lớp cha hoặc thực hiện giao diện: Nhiều lớp có các phần chung nên được thu gọn.

Xem thêm: Nhang sạch Bình An G Nhang sạch Bình An, Nhang sạch Bình An

Lớp người đi xe đạp getRider() } Lớp người đi ô tô getDriver() int getEnergy() }

Chúng ta có thể sử dụng interface hoặc tạo lớp cha như sau:

giao diện moveThings } class xe đạp thực hiện class moveThings Car thực hiện moveThings Kết luận

Đối với các dự án dù lớn hay nhỏ, việc tái cấu trúc mã là cần thiết. Tái cấu trúc mã đảm bảo khả năng đọc, hiểu, mở rộng và bảo trì cho hệ thống. Mọi người đều muốn đọc một mã sạch, nhưng không ai muốn di chuyển. trên dây xích chó phải không =)). Tái cấu trúc mã cũng cần thiết để được kiểm tra lại để đảm bảo tính chính xác của hệ thống.

Bạn thấy bài viết Refactor Code Là Gì có khắc phục đươc vấn đề bạn tìm hiểu ko?, nếu ko hãy comment góp ý thêm về Refactor Code Là Gì bên dưới để Trường Cao đẳng Nghề Khách sạn Du lịch Quốc tế IMPERIAL có thể thay đổi & cải thiện nội dung tốt hơn cho các bạn nhé! Cám ơn bạn đã ghé thăm Website: imperialhotelschool.edu.vn của Trường Cao đẳng Nghề Khách sạn Du lịch Quốc tế IMPERIAL

Nhớ để nguồn: Refactor Code Là Gì của website imperialhotelschool.edu.vn

Chuyên mục: Là gì?

Viết một bình luận