Gdzie kończy się CRUD, a zaczyna kompleksowy system informatyczny?

Odpowiedz Nowy wątek
2019-07-23 21:13
2

tak jak w tytule

Gdzie kończy się KRÓD jako synonim small scale, not complex system design, a zaczyna kompleksowy system informatyczny? :)

edytowany 1x, ostatnio: WeiXiao, 2019-07-23 21:14

Pozostało 580 znaków

2019-07-24 09:12
1

Kiedyś, w jednym systemie zarzuciłem, że za dużo tego DTO, CTO, ETO, DBO UC, stworzyli i IMO nie będzie się tak dało pisać.
Wtedy główny architekt wyciągnął z kapelusza generator CRUDów, nad którym już od jakiegoś czasu pracował - plugin do Eclipsa :-) tadaaam. Na szczęście to nie był mój projekt. A firma wkrótce też już nie była moją firmą.
Najgorsze, że to jest opublikowane na githubie - wstyd przed Ryśkiem. Nie, nie podam linka.


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.
edytowany 3x, ostatnio: jarekr000000, 2019-07-24 09:13

Pozostało 580 znaków

2019-07-24 09:29
6

Jak chcesz bezpiecznie płacić 5% podatku i składasz wniosek o interpreacje IP Boxa, to wtedy wszystko nad czym pracujesz staje się kompleksowe i innowacyjne

Pozostało 580 znaków

2019-07-24 10:41
1

Pytanie, co nazywacie generatorem CRUDów - czy narzędzie, które generuje tony kodu źródłowego zawierającego te wszystkie DTO, encje, mapowania ormowe w XMLu i jeszcze kod mapujący z DTO na encje i z powrotem, czy coś mądrzejszego, co robi to wszystko w locie, bez kodu.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."
edytowany 1x, ostatnio: somekind, 2019-07-24 10:41

Pozostało 580 znaków

2019-07-24 13:12
0

A jak się robi kompleksowy system bez CRUD'a.???? O co wam w ogóle chodzi.?


Pozostało 580 znaków

2019-07-24 13:48
2

Może ktoś w ogóle wyjaśnić co złego jest w CRUDZie, który pod maską, np. przed zapisem używa jakiegoś machine learningu czy coś to rozpoznania czegoś lub jakiś bardziej zaawansowanych rzeczy? Bo widzę jest jakieś dziwne rozróżnienie CRUD == nuda|zlo|wtornosc. Jak coś się nazywa crudem, to od razu jest gorsze od czegoś co nazywa się "liderem rynku" na zewnątrz, który "zmienia świat", a od wewnątrz to ordynarny spagetti crud, z 10^4 lat długu technicznego, tudzież zwykły wordpress z jakims pluginem? :P

Pozostało 580 znaków

2019-07-24 14:00
1

Ale przecież nie chodzi o to że aplikacja która ma warstwę persystencji to od razu zły crud. CRUD to aplikacje które są frontendem na bazę danych. Mógłbyś taką aplikacje zastąpić jakimś Oracle Apex w 15 minut ;] CRUD kończy się tam gdzie aplikacja zaczyna mieć jakaś logikę.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
edytowany 1x, ostatnio: Shalom, 2019-07-24 14:00
A, no to jak taka jest obowiązująca definicja cruda to fakt, bo ja spotykam różne, zależnie kogo spytać :-> - TurkucPodjadek 2019-07-24 14:10

Pozostało 580 znaków

2019-07-24 14:15
3

Co zlego w CRUD.

  1. Jeśli front prezentuje CRUD to zwykle oznacza, że użytkownik musi przeklikać się przez ileś ekranów, żeby odczytać jakąś wartość lub dodać jaką informację
    • dawno tego nie widziałem, klienci już sobie takich UI nie daja raczej wciskać.
  2. Jeśli backend jest CRUDem (najczęściej) to front musi ogarnać całą logikę aplikacji. Co gorsza, każdy kolejny front (czyli i web i mobile). Jest to mało wydajne (bo zwykle oznacza robienie kilkudziesięciu lub kilkuset requestów HTTP na jedną stronę) i błędogęnne. JS jest średni do pisania logiki.
  3. W backendzie CRUD to zło - bo D w zasadzie nie wolno używać i tego się każdy programista uczy. Po jakimś czasię człowiek uczy sie, że U też nie wolno używać.
    I zostaje nam samo CR. Ale czy dla dóch literek i kijowego skrótu (słabo wymawialny) warto w ogóle się kłócić?

Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.
edytowany 2x, ostatnio: jarekr000000, 2019-07-28 05:14
Pokaż pozostałe 5 komentarzy
@jarekr000000: Czemu U odpada? Za wolne? Średnio sprawdza się w rozproszonych bazach? Czy raczej ogólna niechęć do mutowania nawet na podłożu baz? - nohtyp 2019-07-26 21:47
No i D raczej ze względu na RODO potrzebne jest. Chyba, że profil użytkownika hashujesz jak w przypadku Datomica: http://vvvvalvalval.github.io[...]ic-system-gdpr-compliant.html - nohtyp 2019-07-26 21:50
Kodujesz, a nie hashujesz. I D jest niekompatybilne z RODO. No chyba, że nie robisz backupów. - jarekr000000 2019-07-26 22:42
U gubi historię. I jest przykre w systemach rozproszonych. - jarekr000000 2019-07-26 22:44
Wychodzi na to, że żadna skomplikowana aplikacja nie może być crudem. U mnie jest serwer, który komunikuję się za pomocą wcf z aplikacją kliencką (program ma długą historie), ale w późniejszych latach dorobiono web api, dzięki temu zaimplementowanej logiki nie trzeba powielać. - Visual Code 2019-07-28 20:26

Pozostało 580 znaków

2019-07-26 17:23
0

crud kończy się tam, gdzie zaczyna się logika

CIekawe czy twierdzenie odwrotne też jest prawdziwe, czyli "gdzie kończy się logika, tam zaczyna się CRUD" :P - Kamil Żabiński 2019-07-26 17:36
CRUD, smród i ubóstwo. - PerlMonk 2019-07-26 21:37

Pozostało 580 znaków

2019-08-01 15:10
0

CRUD nie zawiera skomplikowanej logiki. To proste operacje. Jeżeli z otrzymanymi danymi musimy coś już zrobić. Przemielić, przeliczyć. To wówczas mamy kontakt z logiką biznesową. Trudno z góry wskazać co jest czym. Trzeba dogłębniej zrozumieć jak działa system. Brak wiedzy na temat zachodzących procesów skutkuje albo nadimplementacją w przypadku CRUDa lub CRUDzeniem tam, gdzie powinno zastosować się bardziej wyszukane wzorce. Z mojej perspektywy ciekawym podejściem jest odkrywanie co jest czym w trakcie Event Stormingu wówczas można zobaczyć jak głęboko sięga jakiś wątek i dopiero wtedy podjąć decyzję. A w zasadzie w ten sposób oddalić decyzję, aż zrozumiemy co tak naprawdę mamy do zrobienia.

Pozostało 580 znaków

2019-08-03 22:34
2

Z punktu widzenia enkapsulacji CRUD ma jedną bardzo ważną cechę, która może posłużyć tutaj za wyróżnik - model danych wycieka poza granice aplikacji. Te same struktury danych są zapisywane w bazie i są wystawione po API. Efektem tego jest to, że nie ma stopnia swobody - nie można zmienić modelu danych, ponieważ zerwany zostanie kontrakt.

W przypadku bardziej złożonych systemów powinno się pozostawić swobodę, aby model danych mógł ewoluować i być sterowany potrzebami biznesowymi (Domain-Driven). Wtedy możemy mówić o logice aplikacji, testowaniu jednostkowym i BDD i tak dalej. Wg. mnie to właśnie rozróżnia aplikację biznesową od CRUD-a.

Mała uwaga na koniec - CRUD-y czasami są dobrym wyborem architektonicznym. Takie aplikacje również się bardzo łatwo testuje - wystarczy parę testów integracyjnych, nie ma potrzeby pisać jednostkowych. CRUD-y również bardzo ładnie odkrywa się wspomnianym wcześniej event storomingiem.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0