.NET Web API projektben hány fő réteget használtok?
1.) Repository + Service + Controller?
2.) Repository + Controller?
3.) Csak Controller magában?
A Repóban van ugye az adatbázissal kapcsolatos dolgok, a service-ben lenne az üzleti logika, és a controllerben meg a végpontok kezelése.
Vagy ti melyik megoldást használjátok gyakrabban éles projekten?
#1 voltam.
Eredetileg erre nincs szabványosított dolog, tehát ahány cég/projekt/ember annyiféle implementáció és elrendezés van.
A klasszikus dolog valóban ezt követi, hogy Controller -> Service -> Repository. De, ha API-t üzemeltetsz, akkor is következő. Bár, érdemes arra felkészülni, hogy mi van akkor, ha egy folyamatot máshova is ki kell ajánlani, pl. egy WebSocket-re? Tehát a Controller-t nem hívhatod egy WebSocket üzenet hatására más rétegekből, így a Controller implementációját kell ledelegálni egy Service-be vagy adsz neki új nevet, pl.: Manager vagy Orchestrator, amit már engedélyezett elérnie a WebSocket-nek és a Controller-nek is.
De olvass utána Software Architect témakör után.
Javasolt könyv (GET-el letudod tölteni, nem vírusos már ellenőriztem, vagy letöltés után told be [link] oldalra, ha nem bízol benne)
Nagyban függ attól pontosan milyen és mekkora a projekt.
Utálom azokat a projekteket amikben 3-5 osztály kell egy kibaxott string, vagy int visszaadásához, mert úgy a menő.
Amikor raknak bele jogosultság ellenőrzést és tudod mi van benne?
return true;
Gusztustalan amikor a hülyék okoskodnak és olyan projekteket okádnak ki magukból, mert ez a trendi. Szóval jobb ismerni a lehetőségeket és az adott feladatra a legoptimálisabb megoldást választani és nem telexarni hülyeségekkel a kódot.
A kedvencem amikor jön a duma, hogy "később könnyebb lesz módosítani a kódot".
Mondom úgy, hogy láttam már 15 éves kódban is olyan hülyeségeket...15 éve ott rohad benne a return true pl jogosultság ellenőrzésnél, meg TODO commentek hegye.
A legszebb amikor olyanok írnak bele ekkora baromságokat akik, vagy 20 éve a szakmában vannak, RENDELKEZNEK naprakész tudással és mégis az ilyen bullshiteket nyomják.
Youtube tutorialoknál is imádom amikor az első videóban felépíti a szerkezetet az adott frameworkhöz és amikor lehúzom az utolró repoját, akkor ugyanaz a return true van benne pl jogosultság ellenőrzésnél, vagy valami beégetett alap érték amihez még TODO is van írva.
Az sem ördögtől való gondolat, ha valaki kezdő, vagy tapasztalatlan a témában, hogy egy nagy osztályba ír mindent amit lehet és később refaktorálja! (nem amolyan "jó lesz az úgy" módon hagyja!!!)
Én is sokszor csinálok olyat, hogy kitalálok valamit elkezdem írni és rájövök, hogy bizonyos részek más helyeken is jól használhatóak. Vagy amikor megváltoznak az igények, akkor ne kelljen duplikálni, tudjam refaktorálni a megfelelő helyre.
A kedvenc kódjaim azok amikben nagyon szép letisztult az egész és komment sem kell. Maga a függvény név annyira beszédes, hogy tudom mit csinál. A változó neve is egyértelműen mutatja mi a feladata, esetleg 1-1 komment, ha olyan a működés. A másik amit sokan vagy lexarnak, vagy túltolnak, az az interface. Nagyon faxa interfaceket láttam már és szerintem az egyik leghasznosabb nyelvi dolog, de gusztustalan amikor már egy intre is GetValue-s interfaces túltolás van.
Sajnos most nem fog eszembe jutni melyik repo volt az ahol nagyon szépen volt szervezve a kód ilyen téren. Valamelyik hálózati kommunikációnál, vagy serializálónál találkoztam vele.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!