Dogevents – podsumowanie pierwszych prac

Dziś małe podsumowanie tego co dotychczas wykonałem w projekcie. Myślę, że raz na dwa tygodnie jeden post będzie właśnie taki.

git log – pierwsze dwa tygodnie

Założyłem, że w pierwszym okresie rozpoczęcia prac głównie skupie się na planowaniu kolejnych milestone, rozpoznawaniu narzędzi, bibliotek, które zamierzam wykorzystać. Dlatego też nie wyprodukowałem jako tako dużo kodu. Póki co większa jego część siedzi mi w głowie 😉

Tak się wciągnąłem w ten projekt i całe #dajsiepoznac, że każdą wolną chwilę poświęcam na przemyślenie czegoś, przeczytanie artykułu na medium.com czy też przeglądanie projektów na github. Zauważyłem, że minusem tego wszystkiego jest slack i kanały związane z konkursem – zabierają za dużo czasu. Więc postanowiłem ograniczyć przebywanie tam i skupić się na pracy nad projektem 🙂 Apropo aby nasz móżdżek był w stanie sam wrzucać pomysły, idee musi być czysty. Tutaj polecam obejrzeć prezentację Macieja Aniserowicz

Konfiguracja projektu,  zmiany zmiany i migracja

Aktualnie mam przygotowaną strukturę projektu z podziałem na warstwy. Pojawiło się trochę kodu związanego z infrastrukturą. Zacząłem od backend’u – to jest moja mocniejsza strona.  W międzyczasie podczas przygotowywania skryptu, który wykonywał by deploy na lokalny IIS natknąłem się na dwa błędy komendy `dotnet publish`. Pierwszy związany był z pomijaniem widoków z areas o których pisałem w poprzednim poście, drugi dotyczył pomijania plików gdy zostały użyte ścieżki relatywne w parametrach. Praca nad rozwiązaniem tego problemu pokryła się z publikacją Visual Studio 2017 dodatkowo zniechęciłem się do Visual Studio Code (co poszło nie tak postaram się opisać w innym poście) więc postanowiłem wykonać migrację całego projektu do VS’a.
Przeszło bezproblemowo! Komenda `dotnet migrate` wykonuję za nas całą robotę.

Infrastruktura MongoDB

 Jest to mój pierwszy projektu z użyciem tej bazy i na aktualnym etapie skupiam się głównie jak przygotować odpowiednią infrastrukturę pod nią. Wzorzec Repository to do każdego źródła można zastosować ale poszukałem na github innych projektów żeby zobaczyć jak został tam rozwiązany ten problem. Pierwszy to projekt Warden zeszłorocznego zwycięzcy konkursu #dajsiepoznac a drugi to netdeveloperspoland.pl. Jak widać obydwa z naszego podwórka. Osobiście bardziej przypadło mi do gustu rozwiązanie użyte w Warden. Jest to coś w rodzaju fluent api, które zostało zrealizowane poprzez extension methods na interfejsach driver’a mongo.

Za co już lubię asp.net core

Co mi osobiście najbardziej przypadło do gustu w dotychczasowej pracy z asp.net core to sposób konfiguracji middleware i dostępny od ręki mechanizm DI. Próg wejścia w użycie DI jest tak niski, że nie powinno już być żadnych wymówek do jego użycia. Co więcej cały framework załatwia nam dostęp do skonfigurowanych serwisów w każdej z warst – od middleware, poprzez model, kontroler, widok, filtry. Krótka notka o tym na blogu Scott’a Alen’a

Plan na kolejny tydzień

1. Dodać nowy powód do aplikacji „Dlaczego nie weźmiesz udziału” 😉
2. Zamodelować obiekty domenowe. To będzie wymagało wgryzienia się w Facebook API
3. Utworzyć infrastrukturę pod integrację z Facebook