.Net: Wątki w C# cz.2

W pierwszej części pisałem o podstawach wątków. Były tam poruszane takie tematy jak tworzenie wątków, ich blokowanie, a także współdzielenie stanu. Dzisiaj postaram się pogłębić ten temat i zwrócić uwagę na bezpieczeństwo wątków. Stan współdzielony vs. stan lokalny W ostatnim przykładzie części pierwszej pisałem o stanie współdzielonym wątków. Wrzuciłem tam taki przykład:

Jak w […]

.Net: Wątki w C# cz.1

Jak przystało na część pierwszą – będą podstawy. A skoro będą podstawy o wątkach to warto zadać pytanie: Co to takiego wątek? Otóż jest to ścieżka wykonywania programu. Program może być jednowątkowy, czyli mieć jedną ścieżkę wykonywania, lub wielowątkowy – mieć kilka, niezależnych od siebie lub wręcz przeciwnie, ścieżek wykonywania. W przypadku programów wielowątkowych, zasoby takie jak […]

.Net: Różnice między IEnumerable i IQueryable

W przepastnych czeluściach linijek kodu, które mam przyjemność (lub obowiązek ;)) oglądać w pracy bardzo często widzę interfejs IEnumerable. Przedstawiać go zresztą dotNetowcom nie trzeba bo przecież jest znany i lubiany – jeżeli ktoś nigdy nie korzystał z pętli foreach ten, piszę to z dużą dozą pewności aczkolwiek margines błędu zawsze istnieje, nigdy nie korzystał […]

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 […]