Tái cấu trúc cho mọi người
Số trang: 46
Loại file: pdf
Dung lượng: 313.96 KB
Lượt xem: 7
Lượt tải: 0
Xem trước 5 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Làm thế nào và tại sao lại sử dụng các tính năng tái cấu trúc được tự động hóa của Eclipse David Gallardo, Tư vấn phần mềm Tóm tắt: Eclipse cung cấp tập các phép tái cấu trúc (refactoring) tự động mạnh mẽ, so với những thứ khác, cho phép bạn đổi tên các phần tử Java™, di chuyển các lớp và các gói, tạo các giao diện từ các lớp cụ thể, chuyển các lớp lồng nhau vào các lớp mức cao nhất và lấy ra một phương thức mới từ các đoạn mã trong một phương...
Nội dung trích xuất từ tài liệu:
Tái cấu trúc cho mọi người Tái cấu trúc cho mọi ngườiLàm thế nào và tại sao lại sử dụng các tính năng tái cấu trúc được tự động hóacủa EclipseDavid Gallardo, Tư vấn phần mềmTóm tắt: Eclipse cung cấp tập các phép tái cấu trúc (refactoring) tự động mạnhmẽ, so với những thứ khác, cho phép bạn đổi tên các phần tử Java™, di chuyểncác lớp và các gói, tạo các giao diện từ các lớp cụ thể, chuyển các lớp lồng nhauvào các lớp mức cao nhất và lấy ra một phương thức mới từ các đoạn mã trongmột phương thức cũ. Việc trở nên quen thuộc với các công cụ tái cấu trúc củaEclipse là một cách hay để cải thiện năng suất của bạn. Tổng quan về tính năng táicấu trúc của Eclipse này, kèm với các ví dụ, giải thích cách thức và lí do sử dụngtừng tính năng.Lí do cần tái cấu trúc?Tái cấu trúc (Refactoring) là thay đổi cấu trúc của một chương trình mà không làmthay đổi chức năng của nó. Tái cấu trúc là một kỹ thuật mạnh, nhưng nó cần đượcthực hiện cẩn thận. Mối nguy hiểm chính là các lỗi vô ý có thể được đưa vào, đặcbiệt là khi tái cấu trúc được thực hiện bằng tay. Mối nguy hiểm này dẫn đến mộtsự chỉ trích thường xuyên về tái cấu trúc: tại sao lại sửa chữa mã nếu nó không bịhỏng?Có một vài lý do để bạn có thể muốn tái cấu trúc mã. Đầu tiên là bắt nguồn củacâu chuyện cổ tích: cơ sở mã rất cổ của sản phẩm đáng kính được kế thừa hoặcnếu không thì xuất hiện bí ẩn. Nhóm phát triển ban đầu đã biến mất. Một phiênbản mới, với các tính năng mới, phải được tạo ra, nhưng mã không còn hiểu đượcnữa. Nhóm phát triển mới, làm việc cả đêm lẫn ngày, giải mã nó, vẽ bản đồ nó vàsau nhiều kế hoạch và thiết kế, phá hỏng mã hoàn toàn. Cuối cùng, cẩn thận, họđặt nó tất cả trở lại với nhau theo tầm nhìn mới. Đây là tái cấu trúc trên quy môkhác thường và một ít vẫn còn hoạt động để nói về chuyện này.Một kịch bản thực tế hơn là một yêu cầu mới được đưa vào cho dự án đòi hỏi thayđổi thiết kế. Thật là vụn vặt cho dù yêu cầu này đã được đưa vào do sơ xuất trongkế hoạch ban đầu hoặc do cách tiếp cận lặp lại (chẳng hạn nh ư phát triển nhanhnhẹn hoặc phát triển dựa vào thử nghiệm) đang được sử dụng để thận trọng đưavào các yêu cầu trong suốt quá trình phát triển. Đây là tái cấu trúc trên một quymô nhỏ hơn nhiều và nó thường yêu cầu thay đổi hệ thống phân cấp lớp, có lẽ dođưa vào các giao diện hoặc lớp trừu tượng, chia tách các lớp, sắp xếp lại các lớp vàv.v.Một lý do cuối cùng để tái cấu trúc, khi các công cụ tái cấu trúc tự động có sẵn,chỉ đơn giản là một phím tắt để tạo mã ở vị trí đầu tiên -- một cái gì đó giống nhưcách sử dụng một chương trình kiểm tra lỗi chính tả (spellchecker) để phân loạimột từ khi bạn không chắc cách đánh vần nó. Việc sử dụng tái cấu trúc nh àm chánnày -- chẳng hạn để tạo ra các phương thức getter và setter -- có thể là một bộ tiếtkiệm thời gian hiệu quả một khi bạn đã quen thuộc với các công cụ này.Các công cụ tái cấu trúc của Eclipse không được dự kiến để sử dụng cho phép táicấu trúc tại một quy mô khác thường -- một vài công cụ có -- nhưng chúng là vôgiá để làm thay đổi mã trong quá trình diễn biến của một ngày làm việc của lậptrình viên trung bình, cho dù điều đó liên quan đến các kỹ thuật phát triển nhanhnhẹn hay không. Cuối cùng, bất kỳ hoạt động phức tạp nào có thể được tự độnghóa đều là nhàm chán, cần tránh. Việc biết các công cụ tái cấu trúc Eclipse có sẵnnhững gì và cách sử dụng đã dự kiến của chúng, sẽ cải thiện rất nhiều năng suấtcủa bạn.Có hai cách quan trọng để bạn có thể làm giảm nguy cơ làm hỏng mã. Một cách làphải có một bộ đầy đủ các bài thử nghiệm bộ phận cho mã đó: mã phải vượt quacác bài thử nghiệm cả trước và sau khi tái cấu trúc. Cách thứ hai là sử dụng mộtcông cụ tự động hoá, chẳng hạn như các tính năng tái cấu trúc của Eclipse, để thựchiện phép tái cấu trúc này.Cách kết hợp thử nghiệm kỹ lưỡng và tái cấu trúc tự động đặc biệt mạnh mẽ và đãchuyển nghệ thuật bí ẩn này thành một công cụ thường ngày, có ích. Khả năngthay đổi cấu trúc mã của bạn mà không cần thay đổi chức năng của nó, theo cáchnhanh chóng và an toàn, thêm chức năng hoặc cải thiện việc bảo trì của nó có thểảnh hưởng đáng kể đến cách bạn thiết kế và phát triển mã, cho dù bạn kết hợp nóvào một phương thức nhanh nhẹn chính thức hay không.Các kiểu tái cấu trúc trong EclipseCác công cụ tái cấu trúc của Eclipse có thể được nhóm lại thành ba thể loại rõ ràng(và đây là thứ tự mà chúng xuất hiện trong trình đơn Refactoring): 1. Thay đổi tên và tổ chức vật lý của mã, bao gồm đổi tên các trường, các biến, các lớp và các giao diện và di chuyển các gói và các lớp. 2. Thay đổi tổ chức logic của mã ở mức lớp, gồm việc chuyển các lớp ẩn danh thành các lớp lồng nhau, chuyển các lớp lồng nhau thành các lớp mức cao nhất, tạo ra các giao diện từ các lớp cụ thể và di chuyển các phương thức hoặc các trường từ một lớp đến lớp con hoặc siêu lớp. 3. Thay đổi mã trong một lớp, gồm chuyển các biến chuyển địa phương thành cá ...
Nội dung trích xuất từ tài liệu:
Tái cấu trúc cho mọi người Tái cấu trúc cho mọi ngườiLàm thế nào và tại sao lại sử dụng các tính năng tái cấu trúc được tự động hóacủa EclipseDavid Gallardo, Tư vấn phần mềmTóm tắt: Eclipse cung cấp tập các phép tái cấu trúc (refactoring) tự động mạnhmẽ, so với những thứ khác, cho phép bạn đổi tên các phần tử Java™, di chuyểncác lớp và các gói, tạo các giao diện từ các lớp cụ thể, chuyển các lớp lồng nhauvào các lớp mức cao nhất và lấy ra một phương thức mới từ các đoạn mã trongmột phương thức cũ. Việc trở nên quen thuộc với các công cụ tái cấu trúc củaEclipse là một cách hay để cải thiện năng suất của bạn. Tổng quan về tính năng táicấu trúc của Eclipse này, kèm với các ví dụ, giải thích cách thức và lí do sử dụngtừng tính năng.Lí do cần tái cấu trúc?Tái cấu trúc (Refactoring) là thay đổi cấu trúc của một chương trình mà không làmthay đổi chức năng của nó. Tái cấu trúc là một kỹ thuật mạnh, nhưng nó cần đượcthực hiện cẩn thận. Mối nguy hiểm chính là các lỗi vô ý có thể được đưa vào, đặcbiệt là khi tái cấu trúc được thực hiện bằng tay. Mối nguy hiểm này dẫn đến mộtsự chỉ trích thường xuyên về tái cấu trúc: tại sao lại sửa chữa mã nếu nó không bịhỏng?Có một vài lý do để bạn có thể muốn tái cấu trúc mã. Đầu tiên là bắt nguồn củacâu chuyện cổ tích: cơ sở mã rất cổ của sản phẩm đáng kính được kế thừa hoặcnếu không thì xuất hiện bí ẩn. Nhóm phát triển ban đầu đã biến mất. Một phiênbản mới, với các tính năng mới, phải được tạo ra, nhưng mã không còn hiểu đượcnữa. Nhóm phát triển mới, làm việc cả đêm lẫn ngày, giải mã nó, vẽ bản đồ nó vàsau nhiều kế hoạch và thiết kế, phá hỏng mã hoàn toàn. Cuối cùng, cẩn thận, họđặt nó tất cả trở lại với nhau theo tầm nhìn mới. Đây là tái cấu trúc trên quy môkhác thường và một ít vẫn còn hoạt động để nói về chuyện này.Một kịch bản thực tế hơn là một yêu cầu mới được đưa vào cho dự án đòi hỏi thayđổi thiết kế. Thật là vụn vặt cho dù yêu cầu này đã được đưa vào do sơ xuất trongkế hoạch ban đầu hoặc do cách tiếp cận lặp lại (chẳng hạn nh ư phát triển nhanhnhẹn hoặc phát triển dựa vào thử nghiệm) đang được sử dụng để thận trọng đưavào các yêu cầu trong suốt quá trình phát triển. Đây là tái cấu trúc trên một quymô nhỏ hơn nhiều và nó thường yêu cầu thay đổi hệ thống phân cấp lớp, có lẽ dođưa vào các giao diện hoặc lớp trừu tượng, chia tách các lớp, sắp xếp lại các lớp vàv.v.Một lý do cuối cùng để tái cấu trúc, khi các công cụ tái cấu trúc tự động có sẵn,chỉ đơn giản là một phím tắt để tạo mã ở vị trí đầu tiên -- một cái gì đó giống nhưcách sử dụng một chương trình kiểm tra lỗi chính tả (spellchecker) để phân loạimột từ khi bạn không chắc cách đánh vần nó. Việc sử dụng tái cấu trúc nh àm chánnày -- chẳng hạn để tạo ra các phương thức getter và setter -- có thể là một bộ tiếtkiệm thời gian hiệu quả một khi bạn đã quen thuộc với các công cụ này.Các công cụ tái cấu trúc của Eclipse không được dự kiến để sử dụng cho phép táicấu trúc tại một quy mô khác thường -- một vài công cụ có -- nhưng chúng là vôgiá để làm thay đổi mã trong quá trình diễn biến của một ngày làm việc của lậptrình viên trung bình, cho dù điều đó liên quan đến các kỹ thuật phát triển nhanhnhẹn hay không. Cuối cùng, bất kỳ hoạt động phức tạp nào có thể được tự độnghóa đều là nhàm chán, cần tránh. Việc biết các công cụ tái cấu trúc Eclipse có sẵnnhững gì và cách sử dụng đã dự kiến của chúng, sẽ cải thiện rất nhiều năng suấtcủa bạn.Có hai cách quan trọng để bạn có thể làm giảm nguy cơ làm hỏng mã. Một cách làphải có một bộ đầy đủ các bài thử nghiệm bộ phận cho mã đó: mã phải vượt quacác bài thử nghiệm cả trước và sau khi tái cấu trúc. Cách thứ hai là sử dụng mộtcông cụ tự động hoá, chẳng hạn như các tính năng tái cấu trúc của Eclipse, để thựchiện phép tái cấu trúc này.Cách kết hợp thử nghiệm kỹ lưỡng và tái cấu trúc tự động đặc biệt mạnh mẽ và đãchuyển nghệ thuật bí ẩn này thành một công cụ thường ngày, có ích. Khả năngthay đổi cấu trúc mã của bạn mà không cần thay đổi chức năng của nó, theo cáchnhanh chóng và an toàn, thêm chức năng hoặc cải thiện việc bảo trì của nó có thểảnh hưởng đáng kể đến cách bạn thiết kế và phát triển mã, cho dù bạn kết hợp nóvào một phương thức nhanh nhẹn chính thức hay không.Các kiểu tái cấu trúc trong EclipseCác công cụ tái cấu trúc của Eclipse có thể được nhóm lại thành ba thể loại rõ ràng(và đây là thứ tự mà chúng xuất hiện trong trình đơn Refactoring): 1. Thay đổi tên và tổ chức vật lý của mã, bao gồm đổi tên các trường, các biến, các lớp và các giao diện và di chuyển các gói và các lớp. 2. Thay đổi tổ chức logic của mã ở mức lớp, gồm việc chuyển các lớp ẩn danh thành các lớp lồng nhau, chuyển các lớp lồng nhau thành các lớp mức cao nhất, tạo ra các giao diện từ các lớp cụ thể và di chuyển các phương thức hoặc các trường từ một lớp đến lớp con hoặc siêu lớp. 3. Thay đổi mã trong một lớp, gồm chuyển các biến chuyển địa phương thành cá ...
Tìm kiếm theo từ khóa liên quan:
lập trình java công nghệ java phát triển với java lập mô hình dịch vụ web java ngôn ngữ lập trìnhTài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 281 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 275 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 273 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 235 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 229 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 219 1 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 217 0 0 -
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 192 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 175 0 0 -
Giáo trình Lập trình C căn bản: Phần 1
64 trang 170 0 0