niedziela, 1 grudnia 2024

 Plan jest taki

Postanowiłem stworzyć projekt związany z webapi, na początek będą się tu znajdować luźne przemyślenia, na temat tego zdania. Ogólny zarys projektu i możliwe rozwiązania jakie zastosuje. Projekt ten będzie czystko szkoleniowy, chciałem spróbować nowego podejścia do tworzenia aplikacji, postanowiłem, że będę to dokumentował tutaj.

Dawno nie robiłem projektu prywatnego, dawno nie pisałem nic na blogu, tym czy poprzednim, miałem sporą przerwę. Teraz pojawiła się chęć odświeżenia dokumentowania pracy na blogu.

Projekt ma roboczą nazwę VehicleApi.

Aktualnie w pracy zajmujemy się aplikacją do obsługi wózków widłowych. Temat ten jest już mi dobrze znany, bo mija rok od momentu w którym dołączyłem do tego projektu. Został on przeze mnie mocno zrefaktoryzowany (zmieniony), zadecydowało o tym błędne zrozumienie domeny problemu.

Aplikacja, aktualnie działa na produkcji od kilku miesięcy, ale nie ma jeszcze pełnej funkcjonalności. Jest ciągle rozwijana. W tym projekcie pokusiłem się o zastosowanie architektury warstwowej idącej w kierunku DDD, z podziałem na warstwę

  •  aplikacji
  • domeny
  • infrastruktury
Temat wózków okazał się bardzie złożony niż na początku się wydawało. A same podejście do architektury nie weszło od razu w powyższy podział. Jak wspomniałem ten projekt powstał dużo wcześniej, a to co ja zaproponowałem to była głęboka zmiana istniejącego rozwiązania.
Tak więc w miarę przyrostu wiedzy, serwisy które oznaczały dany problem rozwarstwiały się tworząc architekturę trójwarstwową.

Dlaczego wspominam o tym projekcie? Gdyż będzie on moim punktem wyjścia, dla rozważań na temat architektury, jest to projekt, który działa i rozwiązuje rzeczywisty problem. VehicleApi będzie projektem który będzie nawiązywał do tamtego ale skupiał się nad przetestowaniem innych podejść, do problemów.

Opis projektu

Po tym przydługim wstępie, skupię się na głównym temacie tego posta.


Pierwszy krok za mną, projekt wrzucony na githuba ;-)

Założenia:
  • frontem będzie webapi,
  • każda warstwa będzie osobnym projektem,
  • podstawą wyjścia będzie warstwa aplikacji,
  • będzie warstwa domenowa z bardziej złożoną logiką,
  • warstwa infrastruktury dostępu do danych,
Z zastosowanych technologii:
  • .net 6,
  • MediatR,
  • FluentValidation,
  • EF core code first
Z czasem listy będą się powiększać, ale na początek to wystarczy. Projekt ma też za zadanie przećwiczenie technologii i przetestowanie innego podejścia.

Co do samej domeny, czyli jakieś głębszej logiki pojawi się ale później jak się uporam z postawieniem tego projektu. 
Co do testów też się pojawią będzie to Nunit i Xunit.

Do dzieła..... 

  Plan jest taki Postanowiłem stworzyć projekt związany z webapi, na początek będą się tu znajdować luźne przemyślenia, na temat tego zdania...