2014-09-10 12 views
5

Rất nhiều lần tôi thấy người chia tay một dự án thành 2 dự án riêng biệt, như trong ảnh chụp màn hình này:Điểm phân chia dự án thành 2 dự án riêng biệt là gì?

enter image description here

điểm chia thỏi và IngotAPI thay vì đặt chúng cả trong cùng một dự án là gì bởi vì họ được biên dịch cùng nhau?

+1

có thể bạn có thể phân phối chúng một cách riêng biệt, nếu một số dự án khác chỉ cần một trong số chúng ví dụ – Leo

+0

[Tăng mô đun] (http://en.wikipedia.org/wiki/Modular_programming). Không biết gì về dự án cụ thể này, các mô-đun lõi và API thường có chức năng riêng biệt. Có lẽ câu hỏi này có thể phù hợp hơn với [Programmers.SE] (http://programmers.stackexchange.com/)? – blgt

+1

Đây KHÔNG phải là một câu hỏi dựa trên ý kiến. – Andres

Trả lời

1

Một số trường hợp.

Cần hoặc muốn có API được tách riêng từ (một trong) việc triển khai. Với Java SPI (Giao diện nhà cung cấp dịch vụ), bạn chỉ cung cấp giao diện, chống lại chương trình ứng dụng khách nào.Sau đó, SPI java cung cấp một tra cứu để sử dụng một trong những triển khai có thể. Được sử dụng cho trình phân tích cú pháp XML. Tương tự cho JDBC. Việc tách một API có nghĩa là một khách hàng không cần được biên dịch lại nếu API vẫn không thay đổi, nhưng việc triển khai đã được thay đổi.

Nói chung, có một số dự án cho phép xem xét mọi dự án là mô-đun, một đơn vị nhập danh sách các mô-đun khác được chỉ định và tạo cấu trúc phân lớp. Điều này có thể cung cấp cho một hệ thống phần mềm chất lượng cao hơn nhiều, không phải nhập khẩu qua lại. Java thế hệ tiếp theo sẽ nhận được các mô-đun.

0

Mã đầu tiên để có thể sử dụng lại được. Bằng cách đóng gói trong các chức năng khác nhau của dự án khác nhau, việc tìm ra chức năng mà bạn muốn chuyển sang dự án khác dễ dàng hơn (trong trường hợp đó bạn có thể xuất toàn bộ IngotAPI sang một dự án mới). Thứ hai để thử nghiệm. Sẽ dễ dàng hơn trong việc kiểm soát kết quả kiểm tra khi mỗi dự án có riêng thử nghiệm đơn vị riêng biệt và hơn kiểm tra kiểm tra sự tích hợp giữa hai dự án.

Ví dụ: nếu IngotAPI được phát triển tốt, nó không nên có bất kỳ sự phụ thuộc nào đối với dự án Ingot. Điều đó có nghĩa là nếu bạn thực hiện bất kỳ thay đổi nào đối với dự án Ingot, bạn không cần phải thử nghiệm IngotAPI độc lập, vì nó sẽ không bị ảnh hưởng (sự gắn kết cao), bạn sẽ chỉ cần thử Ingot và vị trí phôi sử dụng IngotAPI.

0

IngotAPI có vẻ là một thứ dễ dàng tham khảo từ các dự án khác. Có thể nó sẽ được sử dụng trong tương lai ở một nơi khác.

Cuối cùng, điều đó cũng không quan trọng vì bạn cũng có thể sao chép các lớp học của mình từ các dự án khác vào một dự án gần đây.

0

Lý do chính là khi bạn triển khai API bạn muốn phân phối cho khách hàng tiềm năng. Bằng cách chia thành hai (hoặc nhiều hơn) các dự án, bạn chỉ có thể phân phối các giao diện và các đối tượng nghiệp vụ, và duy trì việc thực hiện cho chính mình.

Bằng cách đó, bạn không phải phân phối lại trên bất kỳ thay đổi triển khai nào.

1

Một lý do để làm điều này là việc triển khai có thể được hoán đổi cho nhau.

Hãy tưởng tượng một tình huống mà bạn có hai khách hàng sử dụng ứng dụng của bạn. Cả hai đều có yêu cầu khác nhau về cách thực hiện một điều (ví dụ: thuật toán khác nhau) nhưng một loại kết quả giống nhau. Trong trường hợp này, mã máy khách chỉ hoạt động trực tiếp với API và không phụ thuộc vào bất kỳ triển khai nào. Trong quá trình xây dựng, bạn có thể chỉ định việc triển khai nào nên được sử dụng.

Với giải pháp này:

  • nếu bất kỳ khách hàng mới đến, bạn sẽ dễ dàng tạo ra một thực hiện cho yêu cầu mới mà không thay đổi API hoặc một mã khách hàng. Nó làm cho mã cũ của bạn có thể tái sử dụng được.
  • bạn không phải xây dựng lại API hoặc ứng dụng khách nếu các thay đổi đã được thực hiện chỉ trong quá trình triển khai. Nó giúp các nhà phát triển tiết kiệm thời gian trong quá trình làm việc.
  • trong khi thử nghiệm, bạn có thể cung cấp triển khai với mô hình cho một số phần của logic nghiệp vụ
Các vấn đề liên quan