Drugi post z serii Daj się poznać 2017 będzie postem technicznym. Opisuje w nim z jakich technologii i narzędzi będę korzystał przy tworzeniu projektu który opisywałem ostatnio.
Język
Projekt pisał będę w C#. Dlaczego akurat ta technologia? Po pierwsze jest to język obiektowy, którego uczę się najdłużej. Po drugie chciałbym go poznać naprawdę dobrze. Nie jestem przekonany co do Javy. Pewnie to dlatego, że od początku przygody z programowaniem obracam się wokół .NETowego światka. Przygodę z Javą, którą miałem i bardzo dobrze wspominam, było pisanie aplikacji na Androida. Żeby nie było, że jestem wojownikiem .NETa 😉
Narzędzia(framework)
Jak pisałem we wpisie dotyczącym opisu projektu, aplikacja będzie powstawać na urządzenia mobilne. Nie zdecydowałem się na natywne aplikacje, gdyż chcę sprawdzić jak wygląda pisanie aplikacji w Xamarinie i jak sprawdza się „przenośność” kodu między platformami.
IDE
Do tworzenia swojego projektu będę używał Visual Studio 2017, czyli najnowszej odsłony tego kombajnu. To IDE było naturalnym wyborem, przy pisaniu w C#. Przy okazji prowadzenia projektu, który piszę dla siebie mogę przetestować i poznać najnowszą jego odsłonę. Premiera oficjalnego, stabilnego wydania Visual Studio 2017 będzie miała miejsce 7 marca 2017, czyli tydzień po starcie konkursu. W dniu publikacji tego tekstu dostępna jest jednak wersja RC(Release Candidate). Jest ona na tyle stabilna, że niektórzy przenieśli na nią swoje projekty produkcyjne. Więc i ja postanowiłem spróbować. Oczywiście 7 marca przesiądę się na stabilną wersję Visual Studio 2017.
//EDIT: Niestety musiałem zainstalować Visual Studio 2015, gdyż w najnowszej jego odsłonie nie można(jeszcze) tworzyć takiego projektu, który by mi odpowiadał. Więc założenie projektu niestety będę musiał realizować na starszej wersji Visual Studio. Wszystko to opiszę w następnym poście.
Testy
Do testów jednostkowych wykorzystywał będę xUnit. Dlaczego akurat to narzędzie? Z testami jednostkowymi nie miałem wcześniej styczności. Tym samym nie mam co do bibliotek i narzędzi służących do testowania preferencji. Przez wielu xUnit uważany jest za najlepsze narzędzie do testów w .NET. Postanowiłem więc spróbować pisać testy właśnie za pomocą tej biblioteki.
Na początku mam zamiar napisać testy i logikę do tych testów, a dopiero później stworzyć na jej podstawie aplikacje. Jak wyjdzie to w praktyce, zobaczymy. Może się okazać, że na początku funkcjonalności będzie na tyle mało, że nie będzie sensu pisać do niej testów jednostkowych.
Ułożenie folderów w projekcie
Chciałem w tym artykule poruszyć jeszcze jedną kwestię. Od początku mojej nauki chciałem od razu uczyć się korzystając z dobrych praktyk, aby nie wyrobić w sobie złych nawyków. Stąd też gdy usłyszałem o czymś takim jak dobre praktyki ułożenia kodu w projekcie od razu się tym zainteresowałem. Znalazłem taki oto przyjemny dokument: https://gist.github.com/davidfowl/ed7564297c61fe9ab814 Opisuje on jak powinien wyglądać rozkład projektu w .NET. Pokrywa się to z tym o czym mówił Maciek Aniserowicz w swojej serii praktyczne programowanie na YouTube. Uznaję to za dobrą rekomendację i właśnie na podstawie tego dokumentu będę tworzył drzewo plików projektu. Oczywiście nie wsadzę od razu wszystkich folderów, bo może się przydadzą.
Zawsze aktualny stan można zobaczyć na stronie projektu na Githubie. Dodatkowo do każdego wpisu o projekcie będę tworzył tag z numerem posta technicznego i nazwą. Dzięki temu będzie można w łatwy sposób odtworzyć stan projektu który miałem podczas pisania danego posta.
Nie mam wielu przyzwyczajeń, czy praktyk. Jeśli masz więc jakieś rady dla mnie, lub uważasz, że znasz lepsze alternatywy dla któregoś z powyższych narzędzi lub bibliotek, napisz mi o tym w komentarzu lub skontatkuj się ze mną bezpośrednio. Będę za to bardzo wdzięczny.