2009-07-27 29 views
13

Tôi đang chạy một dojo mã tái cấu trúc cho một số đồng nghiệp đã hỏi cách tái cấu trúc và các mẫu đi cùng nhau, và tôi cần một cơ sở mã mẫu. Bất cứ ai biết một điểm khởi đầu tốt mà không phải là khủng khiếp họ không thể làm cho người đứng đầu hoặc đuôi của mã, nhưng có thể viết lại theo cách của họ để một cái gì đó hữu ích?Ví dụ tốt khi dạy tái cấu trúc?

Trả lời

16

Tôi thực sự đề xuất tái cấu trúc một số mã của bạn và đồng nghiệp của bạn.

Luôn có những nơi mà một codebase hiện có có thể được tái cấu trúc, và sự quen thuộc với mã hiện tại sẽ giúp làm cho nó cảm thấy giống như một thứ hữu ích và ít giống như một bài tập. Tìm nội dung nào đó trong mã của công ty bạn để sử dụng làm ví dụ, nếu có thể.

+1

Sau câu trả lời Thorarin của: Mã trùng lắp là mục tiêu thường rõ ràng nhất cho refactoring nên Tôi muốn đề nghị tìm kiếm nó ngay từ đầu. –

3

Chương đầu tiên trong Martin Fowler "Tái cấu trúc" là điểm khởi đầu tốt để tái cấu trúc. Tôi hiểu hầu hết các khái niệm khi một trong những giáo viên của tôi ở trường sử dụng ví dụ này.

+0

Cảm ơn. Tôi đã tìm thấy mã mẫu tại http://david.koontz.name/home/Projects/Entries/2008/4/13_Photo_of_the_Day.html qua http://refactoring.com vì đề xuất của bạn. Tôi sẽ kiểm tra. – Ball

1

Mức độ hiểu biết chung của đồng nghiệp của bạn là gì?

Nội dung cơ bản như sao chép mã phải dễ dàng quấn quanh đầu. Hai phần của (gần) mã giống hệt nhau có thể được tái cấu trúc thành một phương thức có thể tái sử dụng, lớp học, bất cứ điều gì. Sử dụng một ví dụ (trong quá khứ) từ codebase của bạn sẽ tốt.

0

Tôi khuyên bạn nên phát triển một dự án ví dụ đơn giản cho một yêu cầu cụ thể.

Sau đó, bạn thêm một yêu cầu khác và thực hiện thay đổi đối với các lớp hiện có. Bạn tiếp tục làm điều này và chỉ cho họ cách bạn cảm thấy khó khăn khi thực hiện từng thay đổi khi mã không được thiết kế đúng cách. Điều này sẽ làm cho họ nhận ra dễ dàng bởi vì, đây là những gì ppl sẽ được làm trong ngày của họ để làm việc ngày. Làm cho họ nhận ra rằng, nếu các mẫu và nguyên tắc không được theo sau từ đầu, làm thế nào họ sẽ kết thúc trong mớ hỗn độn ở cuối.

Khi họ nhận ra điều đó, bạn bắt đầu từ đầu hoặc cấu trúc lại mã sai sẵn có. Bây giờ, thêm yêu cầu và làm cho chúng dễ dàng thay đổi mã được tái cấu trúc để bạn chỉ cần kiểm tra một vài lớp. Một thay đổi sẽ không ảnh hưởng đến người khác và như vậy.

Bạn có thể sử dụng lớp máy tính, bàn phím và máy in làm ví dụ. Thêm các yêu cầu như, bạn sẽ muốn máy tính đọc từ chuột, sau đó một yêu cầu khác có thể giống như máy tính của bạn muốn lưu nó vào đĩa cứng hơn là in. Cuối cùng mã được tái cấu trúc của bạn nên như thế nào, lớp máy tính của bạn phải phụ thuộc vào lớp thiết bị đầu vào trừu tượng và lớp thiết bị đầu ra. Và lớp bàn phím của bạn nên kế thừa từ lớp Inputdevice.

0
  • Tái cấu trúc là yêu cầu không hoạt động khi mã thực hiện chức năng chính xác nhưng khó gỡ lỗi, đòi hỏi nhiều nỗ lực hơn để duy trì và một số tắc nghẽn hiệu suất. Tái cấu trúc là thay đổi để dễ bảo trì, dễ đọc và nâng cao hiệu quả.

Vì vậy, chúng tôi cần tập trung vào các tiêu chí để làm cho mã dễ đọc hơn, dễ bảo trì hơn.

  • Rõ ràng là có phương pháp/chức năng rất lớn có thể khó hiểu.
  • Lớp phụ thuộc vào hàng trăm lớp khác làm cho điều tồi tệ nhất trong khi gỡ lỗi.
  • Mã phải có thể đọc được giống như đọc một số quy trình làm việc.

Bạn cũng có thể sử dụng các công cụ như sonar mà có thể giúp bạn xác định các tiêu chí quan trọng như "Cyclomatic phức tạp"

http://www.sonarsource.org/managing-cyclomatic-complexity-to-increase-maintainability/

Bạn yêu cầu họ viết mã họ tự và kiểm tra như thế nào công cụ làm refactoring . Ngoài ra, bạn có thể viết mã trong nhật thực và có tùy chọn có sẵn để tái cấu trúc cho bạn ... enter image description here

9

Dưới đây là một số mã, cả hai bản gốc và phiên bản refactored, vì vậy bạn có thể chuẩn bị kata của bạn hoặc đơn giản là so sánh kết quả khi refactoring được thực hiện:

  1. Sách của tôi có cả hai ví dụ ngắn hơn và dài hơn , thực sự là một cuốn sách dài ví dụ. Mã miễn phí để tải xuống.
    VB Code Examples
    C# Code Examples

  2. Một nice example từ Refactoring Workbook

  3. Hãy xem RefactorMyCode

  4. Có rất nhiều ví dụ trên internet của các trò chơi đơn giản như Tic-Tac-Toe hoặc Snake có rất nhiều mùi nhưng đủ đơn giản để bắt đầu với việc tái cấu trúc.

Các vấn đề liên quan