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

2

tak jak w tytule

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

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.

1

Nie ma i nie będzie precyzyjnej definicji.

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

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 :)

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.

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 ;)

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
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.

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).

2

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

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