ASP.NET Core : Konfiguracja MVC

Jak wiadomo .NET Core stawia na szybkość i lekkość co udaje mu się osiągnąć dzięki swojej modułowej budowie. Mimo znacznych zmian w architekturze, API pozostało w dużej mierze takie samo lub nieznacznie zmodyfikowane. Dzięki temu znając wcześniej i chcąc wykorzystać np. WPF, czy ASP.NET MVC w najnowszej wersji, nie jesteśmy skazani na naukę wszystkiego od […]

Wzorce złożone: MVP

Ostatnim wzorcem złożonym, w rodzinie Model-View, jest MVP, czyli Model-View-Presenter. Efektywnie wykorzystany może być choćby w znanym i lubianym(;)) WindowsForms – generalnie sprawdza się tam, gdzie w podobny sposób(jak w WinForms) jest budowany interfejs użytkownika. Spójrzmy na warstwy w MVP. Dzięki temu łatwiej zrozumiemy różnicę między nim, a MVC, oraz MVVM do którego jest bardzo podobny: […]

TDD Dla początkujących. Cz. 3: Zasada FIRST i kilka słów o testowaniu

W dzisiejszym “odcinku”, chciałbym skupić się może nie tyle na samym TDD ale na testach jednostkowych. Co prawda ta seria wpisów, jak pisałem na początku, nie będzie się w jako takie testy się zbytnio zagłębiała, to jednak są pewne nierozłączne elementy o których należy powiedzieć w kontekście TDD. Te elementy to dobre praktyki pisania testów,o których […]

TDD dla początkujących. Cz. 2: Prosty przykład

Jako pierwszy przykład zastosowania TDD, postanowiłem zaimplementować aplikację zwracającą wartość ciągu Fibonacciego, gdzie daną wejściową jest pozycja szukanej w ciągu. Pomysł nie jest mój- został zaczerpnięty z książki, autorstwa Kent’a Beck’a, pod tytułem “TDD Sztuka tworzenia dobrego kodu”, wydawnictwa Helion. Mimo, że zadanie przed którym stoimy jest trywialne, to jednak wydaje mi się bardzo wartościowe […]

Test Driven Development dla początkujących – cz.1

Postaram się przedstawić w kilku wpisach (w tej chwili szacuję, że to będą 3 lub 4 posty)  podstawowe idee stojące za TDD.  Nie zamierzam pisać tutaj kursu (btw: polecam wpisy na blogu Dariusza Woźniaka), ani kompleksowego opracowania – chodzi mi raczej o przystępne wprowadzenie do koncepcji, w taki sposób aby każdy mógł zacząć pisać najpierw testy […]

Testy jednostkowe: Podstawy Moq – cz.1

Realny, czyli powstający nie jako ilustracja do przykładu, kod jest często uwikłany w bardzo wiele zależności. Jest to normalne i nie ma w tym nic dziwnego. W momencie gdy piszemy testy jednostkowe (co ma miejsce albo przed pisaniem kodu (TDD), albo po) stajemy w obliczu dylematu: jak poradzić sobie z daną zależnością. Po co sobie w […]

Struktury danych: Stos i Kolejka

Stos: Kolejną, podstawową strukturą danych, która znajduje częste zastosowanie, jest stos (ang. stack). Jest to liniowa struktura danych, którą można zaimplementować, bazując tak na tablicy jak i na liście. Mimo tego,  że “z zewnątrz” tablica i lista to struktury w miarę do siebie podobne, stos znacznie się od nich różni. Czym? Krótka charakterystyka: Nazwa ‘stos’ nie […]

Zależności w projektach: podstawy

Gdy kiełkuje pomysł o projekcie, wymagania leżą tuż obok, a w Visualu wybiera się New->Project, to fajnie byłoby mieć w głowie koncepcję dotyczącą budowy aplikacji. Jednym z problemów do rozwiązania jest właściwe zarządzanie projektem. Ogólnie znana prawda, mówi, że gdy piszemy program a on, daj Boże, działa, to znaczy że jest napisany “właściwie” (przynajmniej na […]

Struktury danych : Listy

Lista jest strukturą “zewnętrznie” podobną do tablicy. Zarówno tablice jak i listy, pozwalają na dodawanie i usuwanie oraz dostęp do poszczególnego elementu i oczywiście przechodzenie przez całą kolekcję. Przede wszystkim to co zwraca uwagę i sprawia, że tablica i lista mogą być używane zamiennie to liniowy porządek ułożenia elementów.  Liniowy to znaczy, że dany element […]

Podstawy analizy algorytmów: Big-O notation

Nie każdy musi być kosmonautą, niemniej warto wiedzieć że Ziemia krąży wokół Słońca a nie na odwrót. Nie każdy programista musi być asem algorytmiki mimo wszystko dobrze jest mieć chociaż podstawową wiedzę na ten temat. Zwłaszcza, że znajomość, lub chociaż umiejętność porównania algorytmów,  pozwala na pisanie wydajniejszych programów (albo chociaż poczucie pisania wydajniejszych programów 🙂 […]