2011-01-22 2 views
8

Thông thường, khi thực hiện một số công việc trên một dự án hiện có, tôi sẽ chỉ đi với bất kỳ phong cách nào đã được thiết lập trong cơ sở mã. Nhưng nhóm của chúng tôi phải duy trì nhiều dự án quy mô vừa và nhỏ, tất cả đều khác nhau một chút về kiểu mã hóa. Nó sẽ hiệu quả hơn và ít gây nhầm lẫn hơn nếu chúng ta có thể dọn dẹp những khác biệt này.Có công cụ nào ở đó để cấu trúc lại kiểu mã hóa của cơ sở mã java không?

Vì vậy, tôi đang tìm một công cụ cho phép tôi cấu trúc lại kiểu hiện có. Rất nhiều tính năng đã được cung cấp bởi các công cụ định dạng mã chuẩn, như thay đổi kiểu thụt đầu dòng. Những gì tôi thiếu là một công cụ cho phép tôi tách các tiền tố của trường và tên tham số. Trong một số dự án, tất cả các thành viên đều có tiền tố "m", tất cả các tham số đều có tiền tố là "p" và các thành viên tĩnh được đặt trước bằng "s".

Công cụ này sẽ có thể xử lý các trường hợp như:

void setValue(String pValue) { 
    mValue = pValue; 
} 

nào nên trở thành:

void setValue(String value) { 
    this.value = value; 
} 

Công cụ này sẽ tạo ra một cảnh báo trong một trường hợp như thế này:

void setValue(String pValue) { 
    int value = 42 
} 

Tôi biết mọi IDE chính đều cung cấp tính năng tái cấu trúc: đổi tên. Những gì tôi đang tìm kiếm mặc dù là một công cụ xử lý một cơ sở mã toàn bộ mà không cần tôi phải đi qua từng tham số/lĩnh vực riêng lẻ.

Sửa

Rất nhiều câu trả lời đề cập đến các công cụ để định dạng lại mã nguồn hoặc kiểm tra các cơ sở mã chống lại một bộ quy tắc phong cách. Tôi biết rằng những công cụ đó tồn tại. Những gì tôi đang tìm kiếm cụ thể là một công cụ nâng cao cho phép tôi loại bỏ các tiền tố tên biến cụ thể phạm vi.

+0

Tôi không biết các công cụ cấu trúc lại có thể làm điều đó, tuy nhiên, tôi biết rằng [Checkstyle] (http://checkstyle.sourceforge.net/) có thể phát hiện và cảnh báo về các ký hiệu Hungary. – BalusC

+0

Có thể bạn không muốn xem [astyle] (http://astyle.sourceforge.net/)? – Uroc327

Trả lời

-2

FindBugs là công cụ rất tốt để phân tích tĩnh mã. Nó thực sự khám phá các lỗi tiềm năng và dễ dàng tích hợp trong IDE và các công cụ xây dựng.

+3

OP đã yêu cầu cụ thể cho một công cụ tái cấu trúc. FindBugs (và CheckStyle) thì không. – BalusC

+1

Tôi đồng ý với BalusC – Krishna

0

Tôi không biết dự án hiện tại có thể làm điều này cho bạn.

Bạn đã từng tự viết thư chưa? Ví dụ, khung công tác Eclipse cung cấp các công cụ định dạng mã rắn. Bạn đã điều tra mở rộng một trong số họ để làm những gì bạn đề nghị? Phát hiện các biến có tên với mẫu bạn đề cập phải khá đơn giản.

Tôi nhận ra đây không phải là giải pháp lý tưởng. NHƯNG, nếu bạn có một cơ sở mã đủ lớn, nó có thể có hiệu quả chi phí hơn so với thực hiện tất cả các chỉnh sửa bằng tay.

0

Âm thanh giống như một số nội dung như Jalopycó thể trợ giúp.

Jalopy cho phép bạn xác định kiểu định dạng mã, sau đó nó có thể đọc tệp, gói hoặc toàn bộ dự án và định dạng lại nó. Tôi không nhớ nếu nó có thể tái cấu trúc phức tạp hơn như thay đổi kiểu của biến cục bộ để không sử dụng ký hiệu Hungary (mVar crap), nhưng nó có thể thay đổi giữa bất kỳ khoảng cách, đặt ngoặc, đặt hàng và định dạng nào bạn muốn.

Tôi đã sử dụng Jalopy trong quá khứ và hoạt động tốt. Tôi thậm chí đã sử dụng nó trên các đội, nơi mọi người có phong cách mã hóa cá nhân khác nhau và sau đó cam kết tất cả chúng tôi đã đồng ý về một định dạng nhất định được tự động xử lý bởi Jalopy.(Khi bạn kiểm tra xem bạn định dạng nó theo cách của bạn, khi nó được kiểm tra trở lại trong nó được định dạng nhóm đồng ý theo cách, vv)

Một vấn đề mặc dù, có vẻ như nó đã không được duy trì trong một năm hoặc là. Nhưng, có một số commercial version too gần đây hơn - dường như những nỗ lực đã đi theo hướng đó. Tuy nhiên bản phát hành cũ hơn có thể vẫn ổn.

Và có các dịch vụ thương mại tương tự khác như Jindent.

+0

Có vẻ như dự án này có nhiều dấu hiệu không thích hơn ngón tay cái. :) – limc

+0

Với tỷ lệ tăng/giảm của ngón tay cái, tôi muốn lấy một hạt muối. Hầu hết các ngón tay cái xuống người hoặc dường như không thực sự sử dụng nó, hoặc đang phàn nàn nó không tích hợp với các phiên bản mới hơn nó Netbeans. Nó có thể chạy độc lập, không phải được tích hợp với một IDE (mặc dù đó là tốt đẹp để có). Tôi đã không sử dụng nó bản thân mình trong một hoặc hai năm, nhưng nó được sử dụng để được khá tốt. Ngoài ra, có những biến thể thương mại nếu bạn thực sự cần nó (mặc dù tôi không nhìn thấy một phiên bản dùng thử trên trang Triemax, mà có vẻ ngu ngốc, ít nhất nên có thể thử những gì mới và thấy sự khác biệt). –

1

Bạn đã thử công cụ Clean Up của Eclipse chưa? Cấp, nó sẽ không xử lý một số ví dụ của bạn được hiển thị ở đây, nhưng nó làm một công việc khá phong nha theo ý kiến ​​của tôi.

+0

Công cụ dọn dẹp nhật thực không thể loại bỏ các tiền tố biến đổi. Tôi biết rằng công cụ này rất hữu ích trong nhiều trường hợp, nhưng nó không hỗ trợ trường hợp sử dụng mà tôi đã yêu cầu cụ thể. –

2

Tôi đang tìm kiếm công cụ tương tự hoặc thậm chí cao cấp hơn. Tôi đã cố gắng triển khai các chỉ số thiết kế, rất phụ thuộc vào ngữ cảnh. Tôi tìm thấy một số công cụ, đó là thương mại và khá tốn kém như Ndepend và reflectk. Tôi cũng tìm thấy một số công cụ mã nguồn mở, mà là stalle như Hammurapi. Ngoài ra còn có các công cụ như Checkstyle, Findbugs và PMD, có thể được sử dụng cho các trường hợp sử dụng rất đơn giản. Công cụ tốt nhất tôi tìm thấy là MoDisco. Dựa trên Eclipse EMF, cho phép tạo ra mô hình mã của bạn và hơn là thực hiện một số truy vấn hoặc chuyển đổi (sử dụng các công cụ M2M). Vấn đề duy nhất tôi có là nó khá chậm đối với các dự án tiêu chuẩn ~ 20k LOC. Hãy thử nó, có thể cho trường hợp sử dụng của bạn nó sẽ đủ.

0

Eclipse IDE là lựa chọn tốt nhất cho vấn đề của bạn ..