Strona głównaUżytkownik

Paweł Łukasik | użytkownik

Paweł Łukasik
Paweł Łukasik
32 895,6
1645 dni, 20 godzin, 39 minut temu
27 stycznia, 2009
dotnetomaniak.pl

KLOC (ang. Kilo Lines Of Code) to bardzo stara miara złożoności programów na podstawie liczby linii kodu. Z pewnością ma wiele wad, bo jak porównywać kod w C/C++ z kodem w Java czy C#. Czy jako linie kody powinno liczyć się komentarze lub importy przestrzeni nazw, co z kodem generowanym automatycznie itd. Wszystko to prawda, ale osobiście uważam, że ta miara jednak coś mówi. Ostatnio natknąłem się na bardzo ciekawe dane dotyczące liczby błędów/KLOC.

Tagi: błędy, kloc, metryki
Dziel się z innymi:
Michał Komorowski: Liczba błędów/KLOC

Sztuka programowania 4042 dni, 16 godzin, 59 minut temu Paweł Łukasik 139 źrodło rozwiń

W .NET istnieje metoda do wykonywania pętli równolegle. Pisałem ogólne o niej kilka miesięcy temu. Temat jest jednak dużo bardziej skomplikowany i z pewnością należy zrozumieć różne podejścia do problemu. Przed zrównolegleniem pętli, należy zastanowić się czy na prawdę przyniesie to pozytywne efekty. Złe rozpoznanie przypadku spowoduje znaczącą degradację wydajności. Zastanówmy się na co należy zwracać uwagę:Czy poszczególne elementy tablicy można przetwarzać w sposób bezpieczny (thread-safe). Jeśli nie...

Dziel się z innymi:
Piotr Zieliński » Pętla wykonywana równolegle–statyczne przydzielanie wątków

Sztuka programowania 4044 dni, 15 godzin, 44 minuty temu Paweł Łukasik 168 źrodło rozwiń

W .NET można anulować wątki za pomocą tokena. Oczywiście nie należy używać metody Abort czy Cancel, ale o tym już wiele razy pisałem – w skrócie nie wiadomo kiedy taki wątek zostanie przerwany. Użycie tokena jest proste tzn. (przykład MSDN):class Program { staticvoid Main() { var tokenSource2 =new CancellationTokenSource(); CancellationToken ct = tokenSource2.Token; var task = Task.Factory.StartNew(() => { // Were we already canceled? ct.T...

Dziel się z innymi:
Piotr Zieliński » Anulowanie wątków a synchronizacja

Sztuka programowania 4047 dni, 5 godzin, 13 minut temu Paweł Łukasik 140 źrodło rozwiń

Czasem zwykłe metody debugowania nie wystarczają, czasem watch-e i sprawdzanie krok po kroku jest nie wystarczające. Czasem chciało by się sprawdzić wartość obiektu, do którego nie mamy referencji. No właśnie, wszystkie normalne narzędzia debuggowania jakie udostęnia Visual Studio pozwalają na oglądanie wszystkiego co mamy w zasięgu referencji albo gdzieś po callstack-u możemy się do “tego” dorwać. Co jednak jeśli i to za mało? Na pomoc Make Object ID. Zatrzymując program w momencie gdy ma...

Źródło: www.benedykt.net
Dziel się z innymi:
Debuggowanie – Make Object ID | arek online | Arkadiusz Benedykt

Narzędzia 4047 dni, 5 godzin, 13 minut temu Paweł Łukasik 91 źrodło rozwiń

Nie wszystko co kwacze to kaczka Czasem rzeczy są podobne ale jest to przypadkowe podobieństwo. To są w rzeczywistości różne rzeczy Przykład z życia, akurat bardzo niskopoziomowy. Potrzebowałem posklejać takie jakby “ścieżki”, separatorem był underscore (najlepsze polskie tłumaczenie to podłoga) “”. Przykładowo contentcolors_red. Rzuciło mi się, że mamy już napisany kod metody System.IO.Path.Combine(). Mo...

Dziel się z innymi:
Nie przesadzić z DRY | Show me the code

Sztuka programowania 4049 dni, 16 godzin, 4 minuty temu Paweł Łukasik 293 źrodło rozwiń

.NET 2.0 to stara rzecz, ale wciąż z różnych powodów używana, na przykład dlatego, że klient nie chce zainstalować nowej wersji platformy na maszynach wszystkich użytkowników systemu. A co, jeśli pomimo tego wymarzy się nam użycie na przykład LINQ to Objects? Metody takie jak Select, Take itd. łatwo zaimplementować samemu, ale bez extensions methods ich użycie nie będzie takie przyjemne. Zastanówmy się, co z tym robić. Metody rozszerzające obsługiwane są począwszy od .NET w wersji...

Michał Komorowski: Metody rozszerzające w .NET 2.0

Inne 4049 dni, 16 godzin, 4 minuty temu Paweł Łukasik 170 źrodło rozwiń

Ostatnio widzę dużo wpisów na temat debugowania aplikacji. Nie trafiłem jednak na opis dwóch rzeczy, które bardzo tą czynność ułatwiają, mianowicie, zmiana kolejności wykonywania kodu oraz GetHashCode()Zmiana kolejności wykonywania kodu Czy zdarzyło Ci się podczas debugowania przejechać o tą jedną linijkę za daleko? Nic prostszego, chwyć żółtą strzałkę i przesuń kilka linijek do tyłu i wykonaj kod jeszcze raz. To jest tak proste, że aż niebywałe, że niektórzy o tym nie wiedzą. Teraz już w...

Źródło: www.benedykt.net
Dziel się z innymi:
Debugowanie w Visual Studio | arek online | Arkadiusz Benedykt

Inne 4049 dni, 16 godzin, 4 minuty temu Paweł Łukasik 187 źrodło rozwiń

Kiedyś pisałem już o false sharing. Jeśli problem nie jest znany, najpierw zachęcam do przeczytania tego wpisu, ponieważ nie będę tutaj pisał o teoretycznych zagadnieniach: http://www.pzielinski.com/?p=1489 Oprócz wyjaśnienia podstaw, podałem przykład struktury danych składających się z dwóch Int32. Pokazałem również jakie pułapki czekają nas przy pracy z tablicami. To zadziwiające, że kolejność w jakiej przeglądamy tablicę ma tak ogromne znaczenie w wydajności (kod może być nawet kilkakrotnie wolniejs...

Dziel się z innymi:
Piotr Zieliński » Alokacja pamięci a false sharing

Sztuka programowania 4050 dni, 4 godziny, 3 minuty temu Paweł Łukasik 122 źrodło rozwiń

Zapewne każdy profesjonalny programista zna zasadę DRY, której nazwa jest zarazem skrótem jej treści Don’t Repeat Yourself czyli zalecenia Nie Powtarzaj Się. Najczęściej stosuje się ją, by przeciwdziałać powielaniu kodu wykonującemu tę samą czynność (czy to przez jego niepotrzebne, ponowne napisanie czy też przez zwykłe przeklejanie). To co ciekawego w tej regule, to fakt, że w swej treści skierowana jest ona do ...

Me z .NET tete-a-tete » Refaktoryzator wprawny zmienia kodu smak … w wytrawny.

Sztuka programowania 4063 dni, 21 godzin, 56 minut temu PaSkol 210 źrodło rozwiń

NSubstitute to (dla tych co nie znają jeszcze) taki Moq na sterydach. Sytuacja wygląda tak, mamy klasę, która potrzebuje jakiś zależności, mniej więcej tak: public class SomeClass { public SomeClass(INeedSomeStuff stuff) { // ....... } } public interface INeedSomeStuff { string DoSomeStuff(string param); void DoSomeOtherStuff(); } Możemy użyć moq i napisać: var moq = new Mock

Źródło: www.benedykt.net
Dziel się z innymi:
NSubstitute czyli lepsza wersja Moq | arek online | Arkadiusz Benedykt

Narzędzia 4063 dni, 21 godzin, 56 minut temu arek 262 źrodło rozwiń

Nie mam zamiaru nikogo indoktrynować. Nie mam zamiaru dyskutować o wyższości tego nad tym i owego nad tamtym. Zamierzam natomiast przedstawić parę zalet regionów oraz powód, dla którego podobają się właśnie mi. A skoro już zdradziłem, że wpis jest subiektywny i tendencyjny, to zacznę właśnie od tego powodu. Z urodzenia jestem ...

Tagi: czysty kod
Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Jedni ich nie lubią wcale, ja regiony sobie chwalę.

Sztuka programowania 4063 dni, 21 godzin, 56 minut temu PaSkol 200 źrodło rozwiń

Nie wiem jak wy ale ja kocham debugować kod. Odkrywanie, gdzie programista (w wielu wypadkach ja sam!) popełnił (świadomie/nieświadomie) błąd wprawia mnie w stan euforii pewnie jak morfina uzależnionego :). Visual Studio (dla mnie) jest dość bliskie idealnego narzędzia do tego celu, ale do szczęścia brakowało mu kilku rzeczy. Jedną z nich był podgląd zwracanej wartości z funkcji. W poprzedniej wersji mogliśmy tę wartość uzyskać, ale trzeba było się troszkę "namęczyć". VS 2013 to the rescue Najnow...

Tagi: debugging
Dziel się z innymi:
.NET blog: VS 2013 Debugging - Zwracana wartość

Inne 4058 dni, 22 godziny, 46 minut temu trismegista 202 źrodło rozwiń

Co jakiś czas odkrywam w Gicie perełkę, która czyni moją codzienną pracę jeszcze przyjemniejszą. Niedawno takim ficzerem okazał się tryb “fixup” komendy “commit“. Do czegóż to służy? Jest to po prostu szybszy sposób na poprawienie commita z przeszłości. Załóżmy, że do klasy User dodałem właśnie property age, tyle że przez pomyłkę nazwałem je z małej litery i… nie zauważyłem. Pracuję, pracuję i dopiero po dwóch kolejnych ...

Dziel się z innymi:
git commit –fixup | Maciej Aniserowicz o programowaniu

Narzędzia 4071 dni, 1 godzinę, 4 minuty temu Paweł Łukasik 177 źrodło rozwiń

Dość długo siedzę w IT. Zawsze od strony kodu i konkretu. Długo byłem programistą i wydaje mi się, że chociaż częściowo już rozumiem, co jest ważne. Co jest ważne, żeby stać się dobrym programistą. Jeśli chcesz poczytać to powiem w krótkich żołnierskich słowach co sprawiło, że nauczyłem się efektywnie tworzyć oprogramowanie. Oto sekret ;)

Źródło: ideas2action.pl
Dziel się z innymi:
Chcesz być dobrym programistą? Przeczytaj to. | Ecommerce - B2B - I2A

Inne 4071 dni, 1 godzinę, 4 minuty temu Paweł Łukasik 770 źrodło rozwiń

Błędnym założeniem jest to że developerzy odchodzą tylko dlatego że za mało im się płaci. W Stanach programiści utrzymują się na stanowiskach firmie średnio  przez 18 miesięcy. W Polsce z moich obserwacji rotacja jest nieco dłuższa trwa między  24, a 36 miesięcy.  Sen z powiek rekruterom spędza  aktualna sytuacja na rynku.  Aktualnie wygląda to w ten sposób. Człowiek przychodzi do pracy do małej, średniej firmy z...

Dziel się z innymi:
Dlaczego programiści odchodzą? : Łukasz Konior | e-commerce, marketing, business and life

Inne 4071 dni, 1 godzinę, 4 minuty temu Paweł Łukasik 556 źrodło rozwiń

Enumerable.Empty Jeśli funkcja zwraca IEnumerable, nie zwracaj pustej dopiero co stworzonej listy. Enumerable.Empty() jest właśnie tym czego oczekuje wywołujący kod. return new MyClass[0]; // Better return Enumerable.Empty

Małe ulepszenia codu w C# | Show me the code

Po krótkiej przerwie, wracam do blogowania. Ostatnio, pokazałem jak C# traktuje przeładowywanie metod. Nie zawsze jest to proste i czasami naprawdę może spowodować błędy w interpretacji. Jeszcze raz chcę powtórzyć, że celem wpisów NIE jest zachęcenie czytelników do pisania skomplikowanych przeładowań. Wręcz odwrotnie – wiedząc jak trudno odgadnąć wynik należy po prostu unikać przedstawionych konstrukcji.

Piotr Zieliński » Kilka ciekawostek z przeładowywania metod, część II

Post zawiera opis jak zacząć używanie mongoDB oraz implementacje wzorca repozytorium, który znacznie przyspieszy pracę z danymi.

Źródło: us3r.pl
Dziel się z innymi:
Pierwsze zabawy z MongoDb

Bazy danych i XML 4079 dni, 18 godzin, 10 minut temu us3r 325 źrodło rozwiń

Dane w postaci tekstowej mogą posiadać różnorodne formaty. Poszczególne wartości mogą być w nich odseparowane od siebie w dowolny sposób: albo za pomocą dedykowanego znaku, albo poprzez przyjęcie, że każda wartość zajmuje z góry ustalony obszar, a jeśli nie wypełnia jego całości, to jest on uzupełniany spacjami. Same wartości mogą mieć różną postać, wystarczy chociażby pomyśleć o dacie...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Masz tekstowe dane w pliku? Pomyśl o tym sterowniku.

Bazy danych i XML 4086 dni, 1 godzinę, 50 minut temu PaSkol 280 źrodło rozwiń

Jeżeli po przeczytaniu tytułu tego wpisu masz mieszane uczucia, bo niby co wspólnego może mieć psychologia z programowaniem, to zanim postanowisz zrezygnować z dalszej lektury, przypomnij sobie o wzorcach projektowych, a dokładnie skąd się one wzięły. Tak, początkowo to nie był pomysł programisty, ale architekta. Okazał się on jednak nie przystawać do tej dziedziny, za to zgrabnie dał się zaadaptować do naszego podwórka. W przypadku psychologii analogia nie jest może aż tak bezpośrednia, niemniej ...

Tagi: inspiracje
Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Jakie mogą mieć korzyści z psychologii programiści?

Sztuka programowania 4086 dni, 1 godzinę, 50 minut temu PaSkol 297 źrodło rozwiń

1 2... 29 30 31 32 33 34... 70 71

Najaktywniejsi w tym miesiącu