Potrzebuję przekształcić projekt z dwoma modelami danych w dwa oddzielne projekty. Oba projekty używają tych samych wyjątków. Czy powinienem utworzyć trzeci projekt tylko dla tych wyjątków? Klonowanie brzmi jak bez wyjścia.Gdzie należy umieścić wyjątki, które są używane przez wiele projektów?
Odpowiedz
Tak, należy go utworzyć w oddzielnym projekcie i używać go jako zależności od innych. Często zdarza się, że projekt/jar ma wyjątki używane w modułach, z którymi pracujesz. To świetny sposób, aby utrzymać porządek w porządku IMHO.
Nie zgadzam się, mając tylko wyjątki wspólne między dwoma projektami brzmi mi śmierdząco. Uważam, że są one takie same w ich nazwach klasowych i nic więcej! –
Uważam, że PO oznacza 2 moduły w tym samym projekcie, a nie 2 niezależne projekty. Jeśli tak jest, to rozwiązanie, podobnie jak to pytanie, nie ma sensu. Nawet nazwy pakietów byłyby dziwne. –
IMHO, jak @harsha wspomniano w istniejącym komentarzu, najłatwiejszym rozwiązaniem byłoby umieszczenie udostępnionego kodu w bibliotece lub pliku .jar i pliku .jar w bibliotece projektu.
Teraz masz cenne API, które można łatwo konserwować dla każdej wersji ze swoimi wersjami.
Osobny projekt, który jest współdzieloną zależnością dwóch pozostałych, jest prawdopodobnie najlepszy. Powielanie obiektów utrudniłoby pracę, gdyby oba modele danych były używane razem, co musiałbyś rozwiązać za pośrednictwem np. różne nazwy paczek, które mogłyby wywołać problemy z utrzymaniem. Wspólny projekt może być dobrym repozytorium dla udostępnionego kodu w przyszłości, poza wyjątkami.
Czy są tylko wyjątki? Brzmi dziwnie.
Czy istnieje jakaś zależność między tymi projektami? Czy ktoś jest klientem innego?
Wierzę, że będą również pewne wspólne interfejsy, niektóre z nich będą zgłaszać te wyjątki w podpisach ich metod. Niektóre z nich są realizowane w jednym z twoich projektów i są wywoływane w innym projekcie.
Jeśli czegoś takiego nie ma, wydaje się, że zwykłe wyjątki są wspólne dla ich nazw! Nie są to w rzeczywistości te same klasy, mają po prostu tę samą nazwę, a ponieważ wiele zdefiniowanych przez użytkownika wyjątków ma konstruktorów, którzy nazywają konstruktory super
, wydają się być tacy sami.
Jeśli to twój przypadek, nie zawracałbym sobie głowy wyodrębnianiem zajęć, a ja zachowałbym duplikaty, ponieważ nic nie zyskało dzięki refaktoryzacji.
Są to dwa modele dla dwóch (w rzeczywistości więcej) różnych systemów używanych do importowania danych do systemu docelowego. Jest więcej wspólnych rzeczy, które już wprowadziłem do projektu użytkowego. Ale nie sądzę, że powinny tam być wyjątki, ponieważ jeden system może nie potrzebować narzędzi, ale wyjątków. – lilalinux
- 1. Gdzie należy umieścić kwerend w ASP.NET MVC
- 2. określają, które pakiety są używane.
- 3. Gdzie są używane konstruktory wirtualne?
- 4. Gdzie należy umieścić pustą klasę podstawową?
- 5. Gdzie należy umieścić gradle.properties w Jenkins
- 6. Gdzie należy umieścić niestandardowe pliki .d.ts?
- 7. Scala macros, gdzie są one używane?
- 8. Które silniki są używane w większych przeglądarkach?
- 9. Jakie są najczęściej używane wyjątki środowiska wykonawczego w java?
- 10. Gdzie należy umieścić biblioteki javascript w aplikacji Grails?
- 11. Gdzie dokładnie należy umieścić w pliku .gitignore Android Studio Projektu
- 12. Gdzie w kodzie należy zachować dane, które się nie zmieniają?
- 13. Gdzie należy umieścić obiekty Command Grails w strukturze projektu?
- 14. Gdzie w pliku HTML należy umieścić Jquery i Bootstrap?
- 15. Gdzie umieścić wielokrotnego użytku metody dostępu przez kontrolerów w szynach
- 16. CakePHP - gdzie umieścić logikę usługi
- 17. Jak znaleźć kroki Ogórek, które nie są używane
- 18. Gdzie należy ustawić "app: layout_behavior"?
- 19. Jakie są domyślne repozytoria używane przez SBT?
- 20. Gdzie należy utworzyć virtualenvs?
- 21. Gdzie umieścić skrypty PowerShell?
- 22. Wiele projektów ASP.NET MVC, które tworzą pojedynczą aplikację ASP.NET MVC
- 23. Elixir phoenix gdzie należy umieścić globalnych kontrolerów pomocników
- 24. Gdzie należy użyć Rx?
- 25. Wiele projektów w ścieżce
- 26. Gdzie w ścieżce projektu maven powinienem umieścić pliki konfiguracyjne, które nie są uważane za zasoby
- 27. Jak sprawnie obsługiwać wyjątki w Spring Security, które nie są obsługiwane przez ControllerAdvice?
- 28. Podczas wdrażania iniekcji zależności należy wstrzykiwać wyjątki?
- 29. Dowiedz się, które zmienne środowiskowe używane przez komendę
- 30. Gdzie umieścić próbę złapać
Zostawiłbym je w osobnym słoju i po skończeniu kompilacji połączę słoik z dwoma projektami. –