Wpis z mikrobloga

@Nofenak Wszystko zależy na jakim etapie jesteś xD
Jeśli przy zatwierdzeniu, to spoko, no ale jeśli napotkałeś ścianę i twierdzisz, że mógłbyś to rozwiązać, ale musiałbyś zmienić bazę to.... ( )
@Nofenak: Porty i adaptery to teoria, w praktyce warstwa persystencji zwykle i tak wycieka do domeny i tak. No chyba, że utrzymujesz osobne modele - domenowy i persystencji. Jeżeli masz jeden model mapowany przez ORM-a na tabele w bazie danych w dodatku #!$%@? adnotacji, kluczy obcych to kaplica. Nie mówiąc o tym, że w takiej Cassandrze to nie masz żadnych kluczy obcych, w tabela zwykle reprezentuje konkretne zapytanie, nie ma joinów,
@Nofenak: w jednym z poprzednich projektów robiliśmy poc Dynamo vs RDS w ramach dwóch różnych implementacji tego samegu portu. Imho architektura hexagonalna (czyli porty i adaptery właśnie) oddaje najbardziej przy testowaniu, gdzie jeśli masz jeszcze dobrze zmodularyzowaną aplikację możesz testować całe moduły nie przejmując się w ogóle IO
@Nofenak: To jest bezpośredni argument, który można równie bezpośrednio odbić (jak będę potrzebował drugi silnik bazy to zrobię ci te porty). Co innego testy jednostkowe i kompozycje/dekoratory (logi/cache...) - jeśli się nie wie po co to można bez tego - ostatecznie liczy się kontekst i wiedza. Prosty CRUD, z którego możesz wyodrębnić (i przetestować) walidację będzie efektywnie tym samym co adapter, który i tak testujesz integracyjnie. Masz też aplikacje, gdzie głównym
Kiedyś przechodziłem z Oracle na postgres, ale to było mocne legacy i masa logiki w bazie wiec to był dramat.
Teraz pracuje w innej firmie projekt jest zrobiony wzorcowo po szkoleniu dna, architektura hexagonalna i tutaj jestem pewien że przepięcie silnika byłoby bezproblemowe. więc to zależy jak było pisane od początku. Niektórych projektów nie zmigrujesz a inne będzie bezproblemowo.
Niektórzy tym argumentują za architekturą portów i adapterów, ale czy to nie są czasem tylko teoretyczne przypadki?


@Nofenak: głównie są to teoretyczne przypadki, bo większość nie pisze testów. Do zmiany silnika bazodanowego nie musisz mieć dobrego kodu. Wystarczą dobre testy uderzające do prawdziwej bazy, które pokrywają wszystkie przypadki. Dobra architektura jedynie sprawia, że refaktor jest bardziej czytelny co samo w sobie jest dobre

W dzisiejszych czasach jest też dużo prościej. Jak