2010-02-23 22 views
5

Hệ thống của chúng tôi sẽ trải qua quá trình nâng cấp nền tảng bao gồm việc thay thế Java 1.4 bằng Java 6.Từ Java 1.4 đến Java 6: bất kỳ công cụ tự động nào để cập nhật mã cũ?

Lý tưởng nhất, chúng tôi muốn sử dụng công cụ tự động để đưa vào mã và bất kỳ khi nào có thể, chúng tôi sẽ xem xét các thay đổi. Có công cụ nào bạn muốn giới thiệu cho việc này không?

Trả lời

5

IntelliJ IDEA cung cấp cho bạn công cụ đặc biệt để mở rộng các bộ sưu tập cũ.

+0

Vâng, cảm ơn. Tôi đoán đó sẽ là gần nhất với những gì tôi đang tìm kiếm. –

6

một công cụ tự động để giới thiệu Generics và enumerations vào mã bất cứ nơi nào có thể

Đây là loại công cụ được gọi là một "lập trình viên". Khi nó có sẵn ở dạng hoàn toàn tự động, bạn sẽ bị mất việc (và có thể dành nhiều ngày của bạn như một sự mất tập trung thú vị cho các mặt nạ robot mới của bạn).

Nghiêm túc, đây là cách, cách ngoài những gì có thể được thực hiện tự động, đặc biệt là giới thiệu các bảng liệt kê. Tham số kiểu Generic cho các bộ sưu tập có lẽ có thể được lấy từ ngữ cảnh, nhưng chỉ cho các trường hợp đơn giản.

+0

Ước gì tôi có thể upvote hai lần. Mã được tạo tự động trong trường hợp này là AWFUL. –

+0

Rất khó để không đồng ý về enums. Nhưng một phần về generics và bình luận về mã được tạo tự động làm cho tôi nghĩ rằng các bạn chỉ sử dụng Eclipse. – Roman

+1

Tôi sử dụng Eclipse, nhưng tôi cũng sử dụng IntelliJ và thẳng thắn, loại di chuyển này không nên được tạo tự động. Đó là một dịp tốt để tái cấu trúc và thiết kế lại một ứng dụng, đó không chỉ là các tính năng ngôn ngữ, mà còn là những thay đổi về mô hình. –

1

Michael chính xác ở chỗ việc này không thể thực hiện tự động. Với điều này, bạn có thể xem xét một phương pháp theo từng giai đoạn, theo đó bạn bắt đầu bằng cách mở rộng các API/giao diện của bạn (ví dụ: giữa các hệ thống con) bằng cách truyền các bộ sưu tập tại điểm này đến đúng loại. Bạn cũng có thể thêm xác nhận để xác minh rằng các phôi này hợp lệ, sau đó bạn có thể xóa sau khi thử nghiệm. Rõ ràng việc truyền không lý tưởng nhưng điều đó có nghĩa là bạn có thể cập nhật API sớm (giả sử đây là một hệ thống dựa trên API) và sau đó "sửa" nội bộ sau này.

1

tôi không thuyết phục nó nhất thiết phải là một ý tưởng tốt để "generifying" một codebase cũ:

  • Nó sẽ không cải thiện hiệu suất, bởi vì cùng lớp phôi xảy ra (đằng sau hậu trường) khi bạn sử dụng generics như khi bạn sử dụng các kiểu thô với các loại phôi rõ ràng.

  • Rất khó sửa lỗi. Các lỗi đáng kể gây ra bởi việc đưa vào loại sai có thể đã được tìm thấy và sửa chữa rồi.

Vì vậy, điều duy nhất nó sẽ làm là làm cho mã dễ đọc hơn một chút. Và mặt khác, bạn có nỗ lực thực hiện các thay đổi và thử nghiệm, và rủi ro mà bạn có thể đưa ra các lỗi mới.

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