kopstt init()

gitinit

Let’s begin.

Drugi tydzień dobiega końca, a ja dopiero zainicjowałem gita. Słabo … co nie? No nic mam nadzieję, że teraz pójdzie znacznie lepiej. Ostatnio trochę ciężko było znaleźć trochę czasu, żeby przysiąść do projektu. Niestety :/ praca, dom, treningi i dodatkowa fucha :p Ale nie ma co narzekać trzeba się przeorganizować i działać.

Co do tej pory zrobiłem spytacie? Poczytałem co nieco o narzędziach jakie chcę wykorzystać w projekcie. Zebrałem do ? biblioteki z jakich będę na pewno korzystał – mogą się zmieniać w trakcie realizacji, ale zobaczymy.

Założenia … czasem należy zmieniać

Z racji, że chcę aby aplikacja była dostępna jako desktop, www (i mam nadzieję w przyszłości urządzenia mobilne) potrzebuję zewnętrzną bazę danych, do której będę miał dostęp. Początkowo myślałem, żeby wystawić na zewnątrz bazę danych z VPS’a. Hmmm … ale po co? Skoro jest tyle innych narzędzi. W końcu startuję w konkursie też po to aby czegoś się nauczyć.

Stąd druga myśl Azure. Tu jednak za dużo bym musiał się głowić a czasu w zasadzie nie ma aż tak dużo.

Moje przemyślenia sprowadzają się do pytania: REST czy Websocket’y? ? Szczerze nie korzystałem do tej pory ani z jednego, ani z drugiego więc to będzie wyzwanie. Poczytałem co nieco, sprawdziłem wydajność jednego, jak i drugiego rozwiązania i chyba postawię na REST. Co Wy na to? Dobry wybór?

Reasumując zamiast mało produktywnego podejścia i zabawy z udostępnianiem bazy danych na zewnątrz postanowiłem skorzystać z dostępnych bardziej wydajnych i przyszłościowych technologii.

Biblioteczka

library

Czymże by była aplikacja bez zewnętrznych bibliotek? Po co samemu wymyślać na nowo coś co już zostało wymyślone. Na początek 4 biblioteki, z których będę korzystał:

  • Autofac – kontener obiektów (będę korzystał pierwszy raz, ale po to jest DSP17, żeby też czegoś się nauczyć).
  • NLog – bo czymże byłaby aplikacja bez logów. Zakładając, że będę przeprowadzał testy jednostkowe (a takie założenie przecież mam) w zasadzie może byłyby zbędne. Ale a nóż widelec.
  • MahApps.Metro – wygląd metro Windowsa 10. Niektórzy kochają inni nienawidzą. Mi osobiście się podoba, jest prosty i przejżysty. Mógłbym tworzyć własne style, a czy jest taka potrzeba? Nie wydaje mi się, bynajmniej nie na chwilę obecną. Dzięki tej bibliotece aplikacja doskonale wpasuje się w środowisko Windowsa 10
  • StyleCop – bardzo fajne narzędzie do odpowiedniego (albo i nie bo nie wszystkie jego reguły mi się podobają, aczkolwiek można je sobie dostosować) formatowania kodu, a ściślej ujmując podpowiadania co należałoby zmienić.

Testy – bez bibliotek ani rusz. Do testów wybrałem następujące biblioteki:

  • FakeItEasy,
  • xUnit,
  • Shouldly.

Cóż na chwilę obecna mogę o nich powiedzieć? Wiem, że są i się przydają :p Jak już wcześniej pisałem nie byłem do testów przekonany, jednak od jakiegoś czasu coraz bardziej się przekonuję, że byłem w błędzie.

Na chwilę obecną to tyle. Z całą pewnością bibliotek przybędzie.

Git

No i git 😀 projekt zainicjowany (kopstt init()). Aktualnie drzewo gałęzi wygląda jak na obrazku

git_branch

Gałąź develop jak sama nazwa wskazuje jest gałęzią roboczą, na której głównie będę pracował. Gałąź master służyć będzie jako wersja produkcyjna. Czy przydałoby się test? Hmm .. być może ale z racji, że nie  pracuję tym razem w zespole myślę, że 2 gałęzie w zupełności powinny mi starczyć.

Struktura projektu

Na chwilę obecną dodałem 3 projekty. Jeden główny, drugi to biblioteka projektu a trzeci testy. Dodałem biblioteki, o któych wspomniałem w jednym z poprzednich akapitów i póki co to tyle. Wszystkie zmiany można śledzić na GitHubie

project_structure

I co dalej?

Kolejnym punktem jest opracowanie wstępnego layout’u. Aplikacja ma być przyjazna dla użytkownika tak więc mam nadzieję na konstruktywne uwagi i sugestie z waszej strony. Oprócz layout’u (chyba nawet ważniejszą kwestią) jest postawienie i skonfigurowanie serwera (ale najpierw trochę nauki :p) oraz zaprojektowanie struktury bazy danych. Trochę tego jest, ale motywacja jest tym większa. Na początku miało być prosto szybko bez serwera, no ale: kto nie ryzykuje ten nie ma 🙂

Zatem do dzieła! Sporo roboty zostało a czasu coraz mniej.

bad_ass