2009-03-26 30 views
6

Tôi có một cơ sở mã lớn và có rất nhiều mã lặp lại hoặc gần như lặp lại trên toàn bộ địa điểm, nó không phải là mã có thể nhận được, nhưng theo dõi "trùng lặp" rất khó, vì vậy tôi đã tự hỏi nếu có các công cụ để tìm mã DRYable tiềm năng, giống như một công cụ tìm khác hoặc trình sửa lỗi khoảng cách Hamming, không cần kiến ​​thức về ngôn ngữ cụ thể hoặc bất kỳ thứ gì như thế.Có bất kỳ công cụ DRYer mã nào không?

Vì vậy, bất kỳ manh mối nào cũng giống như một công cụ như thế này?

+0

Bạn đang tìm kiếm ngôn ngữ nào? – Brian

+0

Giới thiệu 5 ngôn ngữ :) –

Trả lời

1

Duplo (nguồn mở) hoạt động trong C, C++, Java, C# và VB.Net. Tôi đã thử nó một lần, và nó tìm thấy đủ mã trùng lặp để giữ cho tôi làm việc trong một thời gian dài.

Tôi đã nghe nói về Simian (thương mại) nhưng chưa thử.

+0

Duplo trông tuyệt vời, đó là nhiều hơn hoặc ít hơn những gì tôi đang tìm kiếm –

2

Nếu bạn đang làm việc trong ruby, thì bạn có thể thử this.

+0

Đó là một số công cụ tiện lợi, tôi đã xem xét một số thứ như họ nhưng không bao giờ có được nó –

1

Tôi sử dụng Simian in VS. Nó khá tốt, không tuyệt lắm.

1

Clone Dr từ Semantic Designs là một sản phẩm thương mại tìm mã trùng lặp trong một số lượng lớn các ngôn ngữ lập trình khác nhau. http://www.semdesigns.com/Products/Clone/index.html

Các công ty lớn có thể mua được sản phẩm này. Cá nhân ... không quá nhiều. Tôi ước có một số dự án nguồn mở ở đó như thế này. Có thể là một dự án thú vị để làm việc. Nếu chúng tôi chỉ biết một cộng đồng lập trình có thời gian trên tay của họ ...

+0

Một số thời gian? Tôi là tác giả và tôi đã làm việc trên CloneDR trong 10 năm. –

1

Thiết kế ngữ nghĩa 'CloneDR tìm các bản sao trùng lặp chính xác và gần giống dựa trên cấu trúc langauge, vì vậy nó không bị lừa bởi các thay đổi khoảng trắng hoặc ngắt dòng, chèn/thay đổi nhận xét hoặc thậm chí là tên biến được sửa đổi.

Nó thúc đẩy sản xuất phân tích cú pháp phía trước kết thúc làm việc với C, C++, C#, Java, COBOL, PHP, Python, Fortran, Ada, ...

Có một số báo cáo phân tích ví dụ Clone tại web trang web cho các ngôn ngữ khác nhau.

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