Programiści z dokumentacją mają taki problem, że nie lubimy jej czytać i nie lubimy jej pisać. Niestety często wiąże się to z ciekawymi WTFami gdy kod zachowuje się nie tak jakbyśmy tego od niego oczekiwali.
Sztuka programowania 2514 dni, 9 godzin, 5 minut temu 142 źrodło rozwiń
Wspólna nauka wzorców projektowych, na pierwszą linię idzie Obserwator. Zachęcam do komentowania i dzielenia się spostrzeżeniami.
Sztuka programowania 2523 dni, 6 godzin, 44 minuty temu 292 źrodło rozwiń
Witaj, dzisiaj krótki ale myślę, że dość istotny temat jakim jest refaktoryzacja kodu (nieco więcej informacji, a także praktyczny przykład refaktoryzacji znajdziesz -> tutaj Kiedy refktoryzować? Wydaje Ci się, że Twój kod jest czytelny? Wiesz co gdzie jest? Super. Ale czy aby na pewno? Spróbuj znaleźć okre...
Sztuka programowania 2523 dni, 6 godzin, 44 minuty temu 196 źrodło rozwiń
C# Attributes are very popular for ‘decorating’ assembly with some additional data, usually influencing on the application’s behavior or the way data are managed. You probably already used at least some of them – Obsolete, Serializable, Required, Display, MaxLength, RegularExpression, WebMethod are only a few of hundreds available in .Net world. What is more, you can write your own custom attribute and use it like a build-in one. I will write more about this in the next post. Right now, let’s focus o...
Sztuka programowania 2527 dni, 7 godzin temu 168 źrodło rozwiń
A while ago I wrote about creating Actor System and top-level actors. Sadly it was stored in a static field. And keyword static is … let’s say it’s not one of my favourites. Today I’ll show you how I’m doing the exact same thing but in Dependency Injection container.
Sztuka programowania 2527 dni, 7 godzin temu 84 źrodło rozwiń
Implementacja singletona w C# może być trudniejsza niż się wydaje...
Sztuka programowania 2528 dni, 6 godzin, 48 minut temu 293 źrodło rozwiń
Testowanie kodu, który nie wykorzystuje zewnętrznych zależności jest stosunkowo proste. W większości przypadków testowany moduł współpracuje jednak z innymi elementami systemu. Stawia to przed testami dwa wyzwania – po pierwsze powinny poprawnie działać, a po drugie sprawdzać poprawność tej współpracy. Nie jest to zadanie proste, a zewnętrzne zależności są jednym z głównych czynników utrudniających testowanie. Aby radzić sobie z zależnościami posługujemy się mockami, czyli dublerami zastępującymi zal...
Sztuka programowania 2531 dni, 6 godzin, 43 minuty temu 139 źrodło rozwiń
Since I started using SpecFlow acceptance tests, I think that they are simply great. If I had to select whether to write only unit tests or only acceptance tests, I would select the latter. Nonetheless, there is one important problem with SpecFlow...
Sztuka programowania 2536 dni, 8 godzin, 12 minut temu 130 źrodło rozwiń
Kilka już lat temu pomyślałem sobie o tym, że dobrze byłoby się dokształcać w czasie wolnym. Oprócz doświadczenia w kodzie chciałem poznać dobre praktyki, zasady które pozwolą mi być lepszym programistą. Szukałem wtedy jakie książki powinien przeczytać każdy programista. Były tam pozycje takie jak Clean Code, Clean Coder, czy Head First Design Patterns. Różne źródła podawały różne pozycje. Oprócz jednej… Pragmatyczny programista Od czeladnika do mistrza. Ta książka była wszędzie.
Sztuka programowania 2536 dni, 8 godzin, 12 minut temu 198 źrodło rozwiń
Cześć. Dużo się ostatnio naoglądałem i naczytałem o DDD i architekturze port-adapter i tak zacząłem rozmyślać jak to osiągnąć, choćby w kontekście tooli, które piszę do swojego silnika. Z tego co zauważyłem, to w projektach z którymi przyszło mi pracować, większość klas jest publiczna. Jest to zrozumiałe, chcemy mieć testy lub nie mamy testów, ale wszyscy piszą public, więc co to za problem. No niestety problem jest, wynika on z tego, że udostę...
Sztuka programowania 2537 dni, 7 godzin, 33 minuty temu 181 źrodło rozwiń
This is a presentation how to introduce CQRS pattern to an existing application, step by step, without breaking changes and holding up the development.
Sztuka programowania 2542 dni, 7 godzin, 32 minuty temu 257 źrodło rozwiń
W ostatnim wpisie przybliżyłem zestaw dobrych praktyk w pisaniu unit testów. Dzisiaj będę kontynuować ten temat z trochę innej perspektywy i opowiem o antywzorcach. Dzięki charakterystycznym nazwom, piętnującym konkretne złe praktyki, antywzorce zostają w pamięci i mamy je przed oczami pisząc podejrzany kod. Podejście do testów Pierwsza grupa wzorców nie wiąże się z pisaniem konkretnych testów, tylko raczej z nastawieniem, jakie nam towarzyszy podczas pisania i wynikającymi z tego zachowaniami.Obywatel...
Sztuka programowania 2546 dni, 7 godzin, 56 minut temu 293 źrodło rozwiń
Posted on by krystiankolad W dzisiejszym poście przedstawię czym są klasy abstrakcyjne oraz interfejsy. Post ten jest swego rodzaju pilotażowym postem w moim nowym cyklu “Od zera do .Net Juniora”. Będę w nim opisywał oraz pokazywał zagadnienia, z którymi powinna być zaznajomiona osoba starająca się o swoją pierwszą pracę jako Junior .Net Developer. Mam nadzieję że cykl się przyjmie, jeśli chcecie poczytać o jakiś zagadnieniach piszcie, z chęcią o nich napiszę, jeśli je znam, lub się ich nauczę, a potem ...
Sztuka programowania 2547 dni, 6 godzin, 56 minut temu 114 źrodło rozwiń
Często unit testy nie są przez programistów traktowane jak prawdziwy kod. Są dla nich jedynie narzędziem do osiągnięcia określonego celu – sprawdzenia poprawności implementacji. Przez to testy stają się trudne w utrzymaniu albo wykonują się zbyt długo. Przez co uniemożliwiają pracę zgodnie z TDD i nie mają wartości dokumentacyjnej. Istnieją jednak proste zasady tłumaczące, jak powinny wyglądać dobrze napisane testy. Pisząc kod powinniśmy trzymać się zasad SOLID, czyli kod powinien być solidny, a dodat...
Sztuka programowania 2548 dni, 6 godzin, 30 minut temu 161 źrodło rozwiń
Testy jednostkowe – temat rzeka. W każdej technologii, z którą miałem do czynienia, jednym z ważniejszych tematów były testy jednostkowe. Powstała już cała masa artykułów opisujących dobre praktyki czy różnego typu metodyki takie jak TDD lub BDD. Wspominając swoje początki, gdy odpalając kod nie wiedziałem czy się odpali i dlaczego nie, zrozumiałem, jak słaby nacisk w procesie edukacji kładzie się na testowanie oprogramowania. Pragnąc nieść kaganek oświaty chciałbym dołożyć swoją cegiełkę i przedstawić w...
Sztuka programowania 2550 dni, 8 godzin, 54 minuty temu 159 źrodło rozwiń
Posted on by krystiankolad Przyszedł czas na post nieco bardziej zahaczający o .Net Core. Spojrzymy dziś na przetwarzanie asynchroniczne w C#. Pozwoli nam to na wykonywanie pewnych procesów w tle, bez konieczności blokowania wątku naszej aplikacji. Przetwarzanie takie przydaje się między innymi w pracy nad plikami – na przykład odczytem i zapisem plików, które wykonywane są w osobnym wątku, dzięki czemu użytkownik korzystający z naszej aplikacji może wykonywać w niej inne czynności. Używane są one równi...
Sztuka programowania 2551 dni, 8 godzin, 35 minut temu 326 źrodło rozwiń
Każdy z programistów, który choć raz miał do czynienia z wielowątkowością, chociaż raz musiał użyć konstrukcjo lock(). Dlaczego nie wolno tego używać razem z async/await? I co użyć zamiast tego? O tym w dzisiejszym wpisie.
Sztuka programowania 2552 dni, 8 godzin, 50 minut temu 313 źrodło rozwiń
W poprzednich częściach cyklu skupiałem się na korzyściach płynących z TDD. Jeżeli ta metoda wejdzie nam w krew, te korzyści zachęcą nas, abyśmy pisali w ten sposób zawsze i wszędzie. Motywują nas do tego również eksperci mówiący, że każda linia kodu powinna być przetestowana. Okazuje się jednak, że nie zawsze testowanie wszystkiego na siłę jest dobrym rozwiązaniem. W tym artykule opiszę sytuacje, kiedy nie opłaca się używać TDD. Programując czasem natrafiamy na problemy, co do których nie mamy z góry...
Sztuka programowania 2552 dni, 8 godzin, 50 minut temu 190 źrodło rozwiń
Próbując wprowadzić TDD w projekcie najczęściej spotkamy się z oporem. Argumenty przeciwko tej technice ze strony developerów i osób decyzyjnych, które nie miały z nią do czynienia często się powtarzają. Postanowiłem więc w tym wpisie zebrać te argumenty i je omówić. Krytyka TDD ze strony osób mających doświadczenie w temacie zwykle przybiera inną formę i jest to temat na osobny wpis. Brak czasu to podstawowy argument przeciwko pisaniu testów. Jest bardzo często używany przez managerów oraz przez niek...
Sztuka programowania 2556 dni, 8 godzin, 42 minuty temu 239 źrodło rozwiń
O mnie Posted on niedz. 20 sierpień 2017 in .NET Cześć. Dawno mnie nie było, ale ostatnio w większym stopniu skupiłem się na 2DXngine, więc czasu na pisanie postów automatycznie jest mniej. Ze względu na to, że obecnie implementuję narzędzia potrzebne do pracy z silnikiem (repo jest TU) chciałem nieco napisać o mechanizmach, które tam tworzę. Po pierwsze całość będzie napisana w .Net Core ze względu na to, że jest to framework multiplatformowy, a ja jeszcze Core nie próbowałem, a uważam, że ...
Sztuka programowania 2559 dni, 8 godzin, 32 minuty temu 91 źrodło rozwiń