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-23 21:33
1

A jak system, który zapisuje nasze pesele to crud to nie jest kompleksowy?
Myślę, że crud może być kompleksowy - sam w sumie pisałem taką aplikację, typowego cruda i nie mogę powiedzieć, że nie było to w pewnym sensie złożone.

Pozostało 580 znaków

2019-07-23 21:37
1

Nie ma i nie będzie precyzyjnej definicji.

Ale jeśli chcesz to moment, w którym czujesz potrzebę pisania testów.


Spring? Ja tam wole mieć kontrole nad kodem ᕙ(ꔢ)ᕗ
Haste - mała biblioteka do testów z czasem.

Pozostało 580 znaków

2019-07-23 21:43
2
WeiXiao napisał(a):

tak jak w tytule

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

Zapewne w momencie zapłaty / negocjacji o stawkę xD

jak coś się nazwie "kompleksowym systemem informatycznym" to mądrzej brzmi i jak coś, za co można zakosić grubą kasę.
A CRUD to idź pan, student zrobi coś takiego za kilka stówek.

BTW to mój 4001 post :)


((0b10*0b11*(0b10**0b101-0b10)**0b10+0b110)**0b10+(100-1)**0b10+0x10-1).toString(0b10**0b101+0b100);
edytowany 1x, ostatnio: LukeJL, 2019-07-23 21:44
Pokaż pozostałe 5 komentarzy
Wygląda, że jak wpiszesz user:LukeJL w wyszukiwarkę forumową, to domyślnie sortuje posty w kolejności dodania. Ale może to też być przypadkowe. - Silv 2019-07-24 02:22
PS. Jeśli rzeczywiście tak sortuje domyślnie, to byłby ten post. - Silv 2019-07-24 02:23
z tą wyszukiwarką to nigdy nie wiadomo... - LukeJL 2019-07-24 02:28
@MasterOf -> new ticket -> dopisać do dokumentacji, jak działa wyszukiwarka. - Silv 2019-07-24 02:29

Pozostało 580 znaków

2019-07-23 21:56
3
danek napisał(a):

Nie ma i nie będzie precyzyjnej definicji.

Ale jeśli chcesz to moment, w którym czujesz potrzebę pisania testów.

O.o Ja nawet w prostym crudzie nie wyobrażam sobie pominięcia testów.

Pokaż pozostałe 5 komentarzy
@Potat0x: ale ja odczuwam potrzebę pisania testów wszędzie, nawet gdy wysyłam arraya staticów typu jakieś statusy, to też czuję potrzebę to przetestować, bo co jesli ktoś przypadkiem usunie z routingu ten endpoint? Nagle system padnie. - mr_jaro 2019-07-23 22:07
tylko to już coś więcej niż testy cruda, testujesz cały 'ekosystem', a nie samą aplikacje - danek 2019-07-23 22:08
jak dla mnie to cały czas aplikacja. - mr_jaro 2019-07-23 22:08
znowu, kwestia definicji słowa :D - danek 2019-07-23 22:09
Nie no, jak coś wystawia jakieś endpointy, to jednak smoki przydałoby się mieć, nawet jeśli aplikacja realizuje tylko CRUD. - somekind 2019-07-24 01:34

Pozostało 580 znaków

2019-07-23 22:01
2

Ja bym wyszedł od strony funkcjonalności oraz architektury. Wg mnie taki typowy CRUD jest jakby nakładką na bazę danych. Jeśli apka się sprowadza do odczytu i zapisu danych (np. program do prowadzenia magazynu albo baza danych klientów) to mowimy o czymś prostym. Nawet, jeśli ma kilka dodatkowych opcji, takich jak możliwość wydruku albo praca na wielu stanowiskach, to nadal jest krudżem.

Z kolei coś podobnego, ale mające poza magazynem jeszcze możliwość fakturowania, księgowość, moduł kadrowy itp, już raczej będzie systemem złożonym. Celowo napisałem o "module kadrowym", bo to też ma znaczenie przy ocenie złożoności systemu. Może użytkownik końcowy tego nie widzi, ale w zależności od zastosowanej architektury, funkcjonalność może być wkpmpilowana na sztywno, albo możemy mieć budowę modułową, jakieś API, resty, DI itp. Jeśli twój system ma coś takiego, to wiedz, że nie jest CRUDem ;)


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say

Pozostało 580 znaków

2019-07-23 22:15
4

Jak dla mnie im więcej z poniższych jest spełnione

  • coś jest mocno powtarzalne
  • klepię kod właściwie rutynowo
  • określenie tego "przelotką do bazy"/"skórą na bazę" niemalże wyczerpuje temat
  • pisząc to mogę przestawić mózg na niskie obroty i wciąż ma puste cykle
  • praktycznie wszystkie potencjalne problemy i trudności rozwiązuje "magia pod spodem" której nie tykasz
  • walidacja jest nieskomplikowana np. sprowadza się do jakichś prostych sprawdzeń duplikatów, zakresów itp.
  • filtry są nieskomplikowane

tym większe prawdopodobieństwo, że mam do czynienia z CRUDem lub czymś CRUDo-podobnym :(

Co zatem nie jest CRUDem?

  • rzeczy przy których jest dużo niewiadomych, trzeba wymyślić jak ugryźć problem, można (a nawet trzeba) poeksperymentować
  • robienie "magii pod spodem", przy której to Ty musisz zadbać o te różne "trudności i problemy"
  • robienie rzeczy dla których nie masz gotowej "magii pod spodem", więc musisz zadbać sam o "trudności i problemy"
  • narzędzia, najlepiej żeniące ze sobą inne narzędzia itd. gdzie zawsze nawinie się jakiś dziwny problem do rozkminienia
  • ewentualnie jakieś bardziej złożone przypadki filtrowania/walidacji, przy których można trochę pomyśleć, zastanowić się nad przypadkami szczególnymi

Prosząc o pomoc w wiadomości prywatnej odbierasz sobie szansę na otrzymanie pomocy od kogoś bardziej kompetentnego :)
filtry są nieskomplikowane masz na myśli search? - WeiXiao 2019-07-23 22:17
Jakie to są skomplikowane przypadki? chodzi Ci o dynamiczne predykaty np. masz 20 opcji do wyboru? - WeiXiao 2019-07-23 22:24
Skomplikowane tzn. nieoczywiste. np. szukanie książki po autorze czy tytule to w miarę oczywista sprawa. Ale np trafne zasugerowanie mu kolejnych książek, które mogłyby go interesować już chyba niekoniecznie - superdurszlak 2019-07-23 22:32

Pozostało 580 znaków

2019-07-23 23:06
3

Pytanie jest bez sensu.

Natomiast CRUDem w znaczeniu popularnym nazywam antywzorzec inżynierii oprogramowamoa osiągany gdy chłopaki z backendu posłuchają opowieści klienta, zamodelują zarąbiście domenę
nasrają encji, relacji, DTO, CTO, ETO, DBO, serwisów, kontrolerów i buldożerów i wystawią do tego API. Nie sprawdzając jak powinien działać front-end i czego potrzebuje. Bo przeciez frontem gardzimy...

Można to zrobić z dowolnie skomplikowanym systemem.


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.
edytowany 4x, ostatnio: jarekr000000, 2019-07-23 23:30
nie wiem co ma crud do nieogarniętego teamu :P - WeiXiao 2019-07-23 23:08
Nieogarnięty team - czyli typowi seniorzy pod wodzą doświadczonego architekta -10 lat w Javie lub C# prawie zawsze zrobi CRUDa - nieważne co jest potrzebne. - jarekr000000 2019-07-23 23:33
Bo w programowaniu chodzi o to żeby tworzyć Encje Hibernate'owe, mapować je na encje biznesowe, a potem te ostatnie mapować na DTO. Oczywiście cały czas powtarzając, że OOP jest najlepsze, bo daje hermetyzacje i abstrakcje. A FP - nie. - Kamil Żabiński 2019-07-24 08:58

Pozostało 580 znaków

2019-07-24 01:42
1
WeiXiao napisał(a):

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

Zostałem zawołany, ale w ogóle nie rozumiem pytania.

  1. CRUD może mieć wielką skalę (liczba ekranów/formularzy wprowadzania danych) i być bardzo skomplikowany (kwestia dodania dodatkowej warstwy, albo dziesięciu).
  2. Kompleksowy system informatyczny, to mi się z ZUS kojarzy, ale pewnie nie o to chodziło (jeśli jednak o to, to odpowiedź brzmi: Prokom). Skomplikowany system informatyczny zaś to jakiś MRP, ERP czy inny CRM - i w nich też może być masa CRUDa.

CRUD to są moim zdaniem trywialne zadania związane wyłącznie z przechowywaniem danych w bazie, w dowolnej aplikacji może być ich więcej albo mniej. Im więcej, tym nudniej, chociaż z drugiej strony szybciej, bo wiele rzeczy można obsłużyć generycznie (no chyba, że się ma architektów i 15 warstw, ale wtedy nic nie jest proste ani szybkie).


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2019-07-24 07:46
2

Naprawdę poważne systemy zaczynają się kiedy programiście robi się ciepło jeśli słyszy, że ktoś wykrył błąd.

A to raczej nie jest definicja złego systemu bez testów? - Kamil Żabiński 2019-07-24 08:55
Gorzej, kiedy ktoś wykryje błąd nawet w testowanym scenariuszu. - PerlMonk 2019-07-24 09:10

Pozostało 580 znaków

2019-07-24 08:53
1

Słyszałem o systemie, który miał się składać z 20-30 różnych crudów. Niestety do pracy nad nim nie zatrudniono studentów, którzy będą się cieszyć że piszą coś od początku. Zatrudniono seniorów i architektów. Teraz klient ma generator crudów. Czy taki system zyskuje już prawo do bycia nazywanym skomplikowanym systemem?


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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

Robot: CCBot