Przemysław Walkowski Parę linijek kodu, proste pytanie co ten kod robi lub gdzie jest błąd. Nazywam to zagadkami. Czasem nawet 5 lat doświadczenie nie wystarczy aby odpowiedzieć prawidłowo na tego typu pytania. Poniżej lista paru zagadek, które zebrałem w jednym miejscu. Osobiście zawsze gdy idę na rozmowę o pracę mam ze sobą swoją zagadkę, w razie gdybym nie odpowiedział na którąś zadaną mi przez rekrutera. Robię to po to aby pokazać, że zagad...
Sztuka programowania 3590 dni, 16 godzin, 33 minuty temu 1418 źrodło rozwiń
Krótki wpis o tym, żeby uważać w SQL na użycie EXISTS i że pusty wynik to nie to samo co brak wyników.
Sztuka programowania 3592 dni, 3 godziny, 38 minut temu 412 źrodło rozwiń
Moim towarzyszem w odcinku dziewiątym jest Krzysztof Szabelski. Jako doświadczony programista i lider pomaga różnym zespołom w firmie ogarniać trudne tematy. Występuje na konferencjach i grupach pasjonackich. Techniczne treści tworzy na blogu firmowym Future Processing. Więcej o Krzyśku możecie poczytać na stronie http://krzysztofszabelski.com. A na Twitterze występuje jako @kszabelski. Temat naszej rozmowy to Pair Programming – czyli programowanie w parach ;). Odcinek ten jest tym samym najbardziej spó...
Sztuka programowania 3592 dni, 3 godziny, 38 minut temu 151 źrodło rozwiń
C#.NET, c#, CLR, GC, luźne powiązania, pamiec, sterta, stos, WeakReferencePrzemysław Walkowski Wiedza na temat zarządzania pamięcią w C# jest ważna ale nie jest niezbędna. Garbage Collection wykonuje mnóstwo czynności za Nas. Jednak czasem wiedza o pamięci może być pomocna i taka wiedza przydaje się na rozmowy kwalifikacyjne i na egzaminy (70-483). Poniżej zebranie najważniejszych informacji o GC, które należy znać. Osobiście mam zdanie, że sposób zarządzania pamięcią w C# i Javie spowodował, że w wi...
Sztuka programowania 3594 dni, 5 godzin, 20 minut temu 522 źrodło rozwiń
Definicja testów jednostkowych nie jest jednoznaczna i moim zdaniem zmieniała się przez lata. Jednostkę (“unit”) można w różny sposób interpretować. Wiele programistów uważa, że należy testować wyłącznie poszczególne klasy. Dobrą stroną takiego podejścia jest fakt, że jak test zakończy się niepowodzeniem, wtedy od razu wiadomo gdzie szukać przyczyny. Przy dobrym zestawie testów, debugger przestaje być potrzebny. Osobiście preferuje zupełnie inne podejście. W aplikacjach biznesowych, moim zdaniem aż t...
Sztuka programowania 3599 dni, 4 godziny, 47 minut temu 263 źrodło rozwiń
Naturalnym krokiem po omówieniu testów parametryzowanych jest przejście do testów kombinatorycznych i sekwencyjnych. Do dyspozycji mamy dwa atrybuty NUnita — [Combinatorial] oraz [Sequential]. Sprawa jest bardzo prosta, więc zrozumienie działania tych dwóch funkcjonalności nie przysporzy żadnych problemów.
Sztuka programowania 3599 dni, 4 godziny, 47 minut temu 170 źrodło rozwiń
Rynek IT wyglądał zupełnie inaczej gdy w 2008 roku podjąłem moją pierwszą, poważną pracę w branży. Nie wiele wtedy się mówiło o czymś takim jak frontend, czy backend, a i tytuły stanowisk nazywały się inaczej - tak jakoś bardziej polsko. W ogłoszeniach najczęściej szukano programistów C++ i JAVY, a także webmasterów PHP. Tych z pierwszej grupy szuka się nadal, aczkolwiek teraz mamy ładniejsze nazwy stanowisk. Spore zmiany zaszły za to w świecie webmasterów....
Sztuka programowania 3609 dni, 2 godziny, 15 minut temu 522 źrodło rozwiń
Borys najlepiej dryblował, Cybor kręcił najlepsze rogale, było kilku kajtków, którzy robili 200 kapek. Alternatywna recenzja książki Amy Hoy. Czyli rzecz o dostarczaniu.
Sztuka programowania 3609 dni, 2 godziny, 15 minut temu 250 źrodło rozwiń
Zapewne widzieliście już prezentację Erika Meijera z Reaktor Dev Day 2014. Prelegent postanowił rozprawić się z całą tą ściemą, jaką jest Agile, a jako jej alternatywę zaprezentował podejście „One Hacker Way” – nieskomplikowane, bo sprowadzającą się prostu do … pisania kodu. Ilu z Was łyknęło tę nowinkę niczym młody pelikan swoją pierwszą sardynkę (rym niezamierzony)? Jeśli to kupiliście, to muszę Was zmartwić – zostaliście zhakowani.
Sztuka programowania 3614 dni, 27 minut temu 388 źrodło rozwiń
Agile Principles, Patterns, and Practices in C# by Uncle Bob is the best book about modern Software Development I have ever read. First section (chapters 1-6) is an Overview of Agile, Extreme Programming (XP), and TDD. Very good introduction to modern software development. Chapter 6. shows all these techniques by example, by creating “The Bowling Game” application...
Sztuka programowania 3614 dni, 27 minut temu 247 źrodło rozwiń
Będąc programistą, bardzo często mam styczność z kodem innych. Jest to naturalne, bo nawet jeśli nie pracuję w danym momencie zespołowo, to i tak mogę wykorzystywać rozwiązania stworzone przez moich współpracowników, bądź też po prostu takie, które znalazłem w sieci. W wielu przypadkach są to dobre i przemyślane rozwiązania, ale czasem zdarzają się takie, które najchętniej od razu bym zrefaktoryzował.
Sztuka programowania 3614 dni, 23 godziny, 7 minut temu 657 źrodło rozwiń
ASP. NET.NET, asp, datagrid, web formsprzemek Niedawno miałem zadanie napisania szybko aplikacji w ASP .NET Web Forms, w której miała być zaimplementowana funkcjonalność edycji wielu wierszy na raz w kontrolce DataGrid. Niestety standardowe podejście do tematu powoduje, że natrafiamy na problem. Problem polega na tym, że standardowo można edytować tylko jeden wiersz w kontrolce DataGrid. Poniżej przykład standardowego kodu, który umożliwia wyświetlenie danych oraz ich edycje: Poniżej to c...
Sztuka programowania 3614 dni, 23 godziny, 7 minut temu 131 źrodło rozwiń
„Linq to Object” jest bardzo dobrze wyposażonym mechanizmem. Posiada wiele metod, które generalnie pokrywają 70% potrzeb podczas projektowania aplikacji. Jednak czasami potrzebujemy tych 30%, których nie ma. Poniżej pokazuje jak napisać własną metodę rozszerzeń (extension method) do Linq To Object na przykładzie autorskiej metody SplitIntoParts. Aby napisać dobrą metodę rozszerzeń należy spełnić kilka warunków...
Sztuka programowania 3624 dni, 16 godzin, 8 minut temu 183 źrodło rozwiń
“Learn at least one new language every year” – The Pragmatic Programmer book. Late 2014 I have decided to learn F#. This is my first attempt at String Calculator Kata in F#.
Sztuka programowania 3624 dni, 16 godzin, 8 minut temu 155 źrodło rozwiń
Przy okazji codziennej prasówki natknąłem się na ten artykuł na temat wydajności pętli for w JavaScript'cie dla różnych przeglądarek. W skrócie chodzi o to czy powinniśmy pisać pętlą for tak...
Sztuka programowania 3626 dni, 23 godziny, 2 minuty temu 437 źrodło rozwiń
One can ask why we need to think of CR practices at all. Review of code written by another team member can be done without any preparation or introduction. It is true, but there are some aspects that we need to think of. In my opinion, we especially need to support the following values:Quality – Code Review should be done in the same way, no matter if you are hurrying, bored or it’s your 3rd hour of doing CR,Motivation – team has to see value in Code Review, and this value shouldn’t be lost because of ne...
Sztuka programowania 3626 dni, 23 godziny, 2 minuty temu 188 źrodło rozwiń
C#.NET, c#, CurrentCulture, globalization, InvariantCulture, stringprzemek Wiele razy stykam się z sytuacją, że gdy ReSharper podpowiada programistom, że należy użyć w metodzie ToString parametru CultureInfo, każdy wstawia tam najbezpieczniejsza wersję czyli InvariantCulture. A może czasem warto wstawić coś innego? Poniżej opisuje, czym jest CultureInfo i jak go używać. CultureInfo Klasa CultureInfo jest używana między innymi wtedy gdy chcemy rozwiązać problem używania odpowiednich separatorów...
Sztuka programowania 3633 dni, 17 godzin, 32 minuty temu 302 źrodło rozwiń
Nadszedł czas na kolejną porcję przykładów z wykorzystaniem ThreadSafe collection. W tym poscie po krótce opisze do czego i w jaki sposób używać kolekcji ConcurrentStack
Sztuka programowania 3634 dni, 6 godzin, 22 minuty temu 213 źrodło rozwiń
Od razu po Nowym Roku wracamy z mocnym uderzeniem: na warsztacie tym razem znalazło się programowanie funkcyjne! Mój gość to Michał Łusiak – programista, prelegent, blogger. Możecie go znaleźć również na Twitterze: @mlusiak. W temacie programowania funkcyjnego rozprawiamy o tym po co odchodzić od “standardowego” obiektowego podejścia, jakimi językami warto się zainteresować a nawet: jak zacząć z F# nie mając możliwości jego komercyjnego zastos...
Sztuka programowania 3634 dni, 6 godzin, 22 minuty temu 242 źrodło rozwiń
W C# możemy tworzyć własne konwersji obiektów. Przy użyciu słów kluczowych Explicit i Implicit możemy przeprowadzić konwersję typów referencyjnych na wartościowe i odwrotnie. Na początek podstawy. Konwersje Implicit nie wymagają żadnych dodatkowych słów kluczowych, ponieważ kompilator dopuszcza tylko takie konwersje, które są bezpieczne (czyli na przykład takich, w których nie ma utraty precyzji). Przykład poniżej: int i = 1234; double d = i;...
Sztuka programowania 3634 dni, 6 godzin, 22 minuty temu 196 źrodło rozwiń