Maj dobiega końca, a wraz z nim kończy się Daj Się Poznać. Ten konkurs wniósł bardzo dużo do mojego życia, przede wszystkim zacząłem regularnie prowadzić bloga. Była to też okazja do poznania wielu osób z polskiej informatycznej blogosfery oraz innych uczestników konkursu. No i ja sam dałem się poznać.
Daj się poznać 2016 3106 dni, 20 godzin, 48 minut temu 109 źrodło rozwiń
Czasem warto przeglądać kod innych, podobnych projektów. W moim przypadku przyglądam się LibreOffice, MonoDevelop i RoslynPad.
Daj się poznać 2016 3104 dni, 1 godzinę, 27 minut temu 136 źrodło rozwiń
Już od jakiegoś czasu miałem oko na spróbowanie F#. Połączenie szybkiego programowania funkcyjnego wraz z potężną biblioteką .NET brzmi bardzo fajnie i takie jest w rzeczywistości. Zobaczyłem, że NUnit ma w swoich przykładach projekt w F#, więc postanowiłem przepisać moje obecne testy na F#. Nie przewidziałem jednak trudności wynikających z nieznajomości tego języka…
Daj się poznać 2016 3112 dni, 9 godzin, 46 minut temu 57 źrodło rozwiń
Dotychczas nie pisałem testów (jakoś kod testowałem ręcznie) i odkrywam jak bardzo są pożyteczne. Po pierwsze i najważniejsze, umożliwiają wykrycie błędów w implementacji klas zanim zaczniemy ich używać. Tworząc nowy projekt testów w Visual Studio dostajemy MSTest, który nie działa pod Linuxem. W związku z tym sięgnąłem po NUnit.
Daj się poznać 2016 3115 dni, 9 godzin, 19 minut temu 164 źrodło rozwiń
Jest wiele sposobów na znajdowanie błędów w aplikacji: dowody matematyczne, testy jednostkowe, ręczne testowanie i debugowanie. Niestety debugowanie może być bardzo czasochłonne jeśli nie wiemy, w którym miejscu znajduje się problem. Tworzenie logów może nam pomóc zlokalizować ten problem.
Daj się poznać 2016 3119 dni, 7 godzin temu 171 źrodło rozwiń
Piszemy kod, commitujemy, pushujemy. I jesteśmy potem zajęci, zapominamy o kodzie. W tym czasie ktoś stwierdza, że ściągnie sobie nasze repo. Więc klonuje, pobiera paczki, odpala build i … nie działa. Powyższe spowodowane jest tym, że programista nie zawsze pamięta by skompilować, uruchomić, przetestować kod po wprowadzeniu zmian. Powinien pamiętać, ale zdarza się, trudno. To jest jeden ze scenariuszy gdzie CI, czyli Continuous Integration, może pomóc...
Daj się poznać 2016 3119 dni, 7 godzin temu 234 źrodło rozwiń
Jakiś czas temu pisałem o DI i IoC oraz o tym, że będę używał kontenera do automatycznego ładowania wielu modułów podczas startu aplikacji. Początkowo zrobiłem metodę ContainerWrapper.AutoRegister(), która iterowała po wszystkich bibliotekach związanych z SharpOfficem i rejestrowała odpowiednie klasy. Ale było to dość zagmatwane, więc postanowiłem trochę to uprzątnąć...
Daj się poznać 2016 3130 dni, 6 godzin, 14 minut temu 85 źrodło rozwiń
Dlaczego podejście drugie? Ponieważ już raz pisałem o generowaniu Menu, ale trochę w inny sposób i w innym środowisku. Wtedy po prostu tworzyłem obiekty Xwt.MenuItem. Teraz zmieniłem podejście. Interfejs IMenuElement określa minimalny wspólny interfejs obiektów menu w dowolnym frameworku jakiego będę używał. I na podstawie definicji menu złożenej z obiektów IMenuElement będę generował odpowiednią strukturę obiektów.
Daj się poznać 2016 3131 dni, 3 godziny, 28 minut temu 81 źrodło rozwiń
O tym jak wygląda metoda Main() w aplikacji WPF oraz jak można dodać swoją własną, aby program się uruchamiał.
Daj się poznać 2016 3133 dni, 9 godzin, 56 minut temu 115 źrodło rozwiń
Czasami pisząc kod stwierdzamy, że chcemy w jakiś sposób opisać nasze typy w taki sposób, aby można było się do tego odnieść w kodzie. Z pomocą przychodzą nam dwie funkcjonalności .NETu: Reflection i atrybuty. Czym są atrybuty? ...
Daj się poznać 2016 3170 dni, 18 godzin, 18 minut temu 192 źrodło rozwiń
Ponieważ bardzo ciężko pisać kod „na sucho”, postanowiłem rozpocząć tworzenie pierwszej aplikacji. W trakcie jej pisania wyjdą na jaw prawie wszystkie elementy mojego projektu, które muszą być zdefiniowane i po części zaimplementowane. Dodatkowo będę mógł odpalić mój Runtime bez wyjątków mówiących, że czegoś mi brakuje.
Daj się poznać 2016 3178 dni, 22 godziny, 46 minut temu 82 źrodło rozwiń
Zacząłem się wczytywać czym jest IoC. Okazuje się, że jest to bardzo szerokie pojęcie, a DI to tylko jedna jego interpretacja. W zeszłym tygodniu pisałem o tym czym jest Dependency Injection. Teraz natomiast opowiem pokrótce czym jest IoC i jak będę go używał w moim projekcie.
Daj się poznać 2016 3180 dni, 1 godzinę, 39 minut temu 111 źrodło rozwiń
Zanim omówimy czym jest IoC i jak będę go używał, zacznijmy od tego czym jest Dependency Injection. Głównie chodzi o to, żeby rozdzielić implementacje poszczególnych klas. (...)
Daj się poznać 2016 3186 dni, 57 minut temu 165 źrodło rozwiń
Nie zdawałem sobie sprawy jak bardzo łatwiej pisać kod w oparciu o interfejsy. Zamiast tworzyć od razu klasy i martwić się ich implementacją, możemy odłożyć to zadanie na przyszłość. Dzięki temu można stworzyć hierarchię zależności między typami, nie martwiąc się zbytnio wnętrzem interfejsu.
Daj się poznać 2016 3189 dni, 19 godzin, 48 minut temu 91 źrodło rozwiń
Każda większa aplikacja potrzebuje zapisywać sobie jakieś ustawienia. Aby to ułatwić wymyśliłem interfejs IConfiguration. Stwierdziłem, że niezależnie od implementacji tego interfejsu, będzie potrzebowali dwóch metod...
Daj się poznać 2016 3192 dni, 21 godzin, 51 minut temu 76 źrodło rozwiń