Strona głównaUżytkownik

https://krzysztofmorcinek.wordpress.com/ | użytkownik

https://krzysztofmorcinek.wordpress.com/
https://krzysztofmorcinek.wordpress.com/
823,19
2028 dni, 15 godzin, 14 minut temu
29 sierpnia, 2016
dotnetomaniak.pl

Dzisiaj chciałbym podzielić się zestawem reguł, który w różnych projektach stosuję od lat. Pod to stworzyłem repozytorium https://github.com/kmorcinek/dotnet-tools-settings Korzystam ze StyleCopa od ładnych kilku lat. Jest to niezbędne narzędzie gdy stosuje się Code Review. Po prostu szkoda czasu i ludzkiej cierpliwości, żeby ręcznie wytykać komuś coś, co może wychwycić narzędzie.

[StyleCop] od jakiego zestawu reguł wystartować – Show me the code

Narzędzia 2039 dni, 14 godzin, 21 minut temu https://krzysztofmorcinek.w... 100 źrodło rozwiń

The CQRS/CQS pattern works great, I immediately found a lot of benefits. It helps me to enforce separation of concerns, single responsibility and consistency in my codebase, as well as eliminate all that AOP magic with restoring full control over the code execution. Unfortunately, there is also a boring side of implementing CQRS - THE TYPING.

Dziel się z innymi:
[EN]CQRS snippets · Cezary Piątek Blog

Narzędzia 2237 dni, 13 godzin, 42 minuty temu cezarypiatek 142 źrodło rozwiń

Have you ever been in a situation when you discovered an exception in the logs that forced you to spend the next couple of minutes - or even hours - figuring out what exactly went wrong? The message was very cryptic and the only useful information that guided you to the crime scene was a stack trace. And after arriving there, you still had no idea what had really happened and what was the culprit. The most frustrating part is that in many cases the reason is very trivial and could be diagnosed immediatel...

Dziel się z innymi:
The art of designing exceptions · Cezary Piątek Blog

Sztuka programowania 2212 dni, 10 godzin, 51 minut temu cezarypiatek 139 źrodło rozwiń

Jest bug! 😦 Hacki się mszczą, ale teraz musimy dostarczyć paczkę Kolejny tydzień, kolejny ten sam bug Bądź EXPLICIT

Tagi: bug, dry, hack, wiedza
Dziel się z innymi:
Gdzie chowasz swoje hacki? – Show me the code

My laptop stores everything on 250 GB SSD hard drive (actually Windows sees it as 223 GB), so from time to time I’m running out of free space. When there is a need I’m starting clearing-up by emptying c:\Users\username\AppData\Local\Temp\ and c:\Users\username\Downloads\ directories (the second one against all appearances is often full of unnecessary files). When this is not enough I use ...

Dziel się z innymi:
[EN] Space eaten up by Resharper · CEZARY PIĄTEK

Narzędzia 2367 dni, 6 godzin, 34 minuty temu cezarypiatek 122 źrodło rozwiń

Niech ten konkurs wpędzi Was w "ostrą jazdę bez trzymanki". Kto będzie pierwszy? Na kogo spadnie szacunek .Net'owej społeczności? Do zwycięzcy wyślę ładnie zapakowane 0.7 Jack’a Daniels’a i dziesięć setek Wiśniówki Lubelskiej. Tematem konkursu jest zoptymalizowanie procesu zamiany ciągu bajtów na obiekty. Wersja uznana jest za najszybszą jeśli od poprzedniej najszybszej wersji będzie szybsza o 5% w każdym z 10 powtórzeń testu. Nagroda zwycięscy zostaje przyznana wówczas gdy po pull request z najsz...

TEO KONKURS | Teo Vincent

Sztuka programowania 2390 dni, 14 godzin, 32 minuty temu TeoVincent 145 źrodło rozwiń

Pomysł na ten wpis jest taki, że na początek, napiszę testy jednostkowe, które będą palić się na czerwono, w których zdefiniuje problem. Testy zapalę na zielono poprzez implementację wzorca Adapter. Adapter przekształca interfejs klas na inny, oczekiwany przez klienta. Adapter umożliwia współdziałanie klasom, które z uwagi na niezgodne interfejsy standardowo nie mogą ...

Źródło: teovincent.com
Dziel się z innymi:
Adapter Obiektów | Teo Vincent

Sztuka programowania 2404 dni, 12 godzin, 14 minut temu TeoVincent 174 źrodło rozwiń

Całkiem normalną sytuacją jest, gdy każdy sam sobie instaluje server bazy danych. Wtedy u każdego ta nazwa może być różna. Ktoś zainstalował wersję SQL Express, ktoś inny ma już kilka wersji SQL (2008, 2012, 2014, 2016, …) różnie nazwanych, u kogoś innego w poprzednim projekcie instancja musiała się konkretnie nazywać.

Co gdy każdy programista ma inne lokalne ustawienia aplikacji? – Show me the code

Opiszę pomysł, który zobaczyłem w projekcie i bardzo mi się spodobał. Nie będę opisywał możliwych modyfikacji, które sobie wyobrażam. Rozumiem też, że będąc w innym projekcie (Context is King!) musiałbym go dostosować. Gdy piszemy kod to zazwyczaj jesteśmy w „Debug”, i w takim trybie nie chcemy dostawać Errorów do StyleCopa. Powodów może być wiele: kod experymentalny, kod przeklejony z internetu, z poprzedniego projektu, itp. Albo po prostu każdy ma inną wrażliwość na to jak formatować kod. I lokalnie n...

Tagi: StyleCop
Dziel się z innymi:
[StyleCop] Jakie severity (Warning czy Error) dla problemów zgłaszanych przez StyleCop? | Show me the code

In order to keep your git environment in a good shape you need to clean up branches from time to time. It is especially difficult in case of build servers which complete pull requests on behalf of developers (like VSTS). It’s easy when you have just a few branches to review, but if you forget to do some cleaning for longer while then it’s getting painful. For sure you do not want to remove effects of your work by accident during cleanup.

Dziel się z innymi:
[EN] Cleaning up git branches | chrisseroka

Narzędzia 2513 dni, 14 godzin, 14 minut temu https://chrisseroka.wordpre... 106 źrodło rozwiń

Zawsze przychodzi ten moment gdy trzeba rozwiązać buga na produkcji i jedyne co mamy to logi aplikacji. Okazuje się oczywiście, że nie ma wszystkich informacji w tych logach. Nie ma nawet całkiem podstawowych informacji...

Dziel się z innymi:
Zalogowanie ustawień podczas startu applikacji | Show me the code

Moje motto na temat Unit Testów i wielu innych rzeczy: Less Unit Testing Dogma More Unit Testing Karma Nie ma co pisać wstępów, trzeba przeczytać krótkiego i zwięzłego PDFa The Way of Testivus

Testivus – kompletne starożytne nauki na temat testowania | Show me the code

Some people used to say that a good programmer doesn’t need to debug his own code. However, sometimes we have a problem with third party libraries usage, for example: there is insufficient documentation or the module contains some bugs. Visual Studio has excellent debugging toolset but this is totally useless without symbols and sources (and this is often the case with third party libraries). Thanks to Reshaper decompiler this shouldn’t be a problem anymore. Before we start debugging we should make so...

Dziel się z innymi:
The fastest way do debug .net code without sources. · CEZARY PIĄTEK

Narzędzia 2516 dni, 13 godzin, 26 minut temu cezarypiatek 165 źrodło rozwiń

It’s a good practice to make all things done at the first approach. But in the real world it’s ot always possible - for example we need to ask customer for clarification and it will take some time, or worst - we don’t have enough time right now to implement things in the right way. In order to adress this issue, a TODO was invented to mark all those places in code requiring additional work. But the main disadvantage of TODO is that we mark code with it, commit it and forget about it. Sometimes somebody a...

How to manage TODO in your codebase. · CEZARY PIĄTEK

Narzędzia 2522 dni, 14 godzin, 1 minutę temu cezarypiatek 167 źrodło rozwiń

Czy oglądając video z konferencji nie nudzicie się czasem? Może za wolno? Zdecydowanie tak. Kiedykolwiek to pokazuję to każdy się zgadza, że można przyspieszyć. Np. w youtube w prawym dolnym rogu klikamy Settings->Speed i dostaniemy wybór jak po prawej.

Przyspieszone słuchanie podcastów i konferencji | Show me the code

Inne 2523 dni, 14 godzin, 39 minut temu https://krzysztofmorcinek.w... 139 źrodło rozwiń

Powiedzmy, że mamy projekt, w którym wcześniej nie znano Resharpera. Otwierając taki kod „wszystko świeci” na różne kolory sugerując, że mamy w kodzie wiele problemów. Moje doświadczenie programistyczne mówi mi, że warto wysprzątać te miejsca, ponieważ na wstępnie z automatu poprawi się nam wiele bugów i znacznie zwiększy czytelność. I tutaj staje się przed problemem ...

Okazjonalne (regularne) czyszczenie kodu Resharperem | Show me the code

Narzędzia 2529 dni, 13 godzin, 38 minut temu https://krzysztofmorcinek.w... 218 źrodło rozwiń

Angielski tytuł brzmiałby „It’s not what you read, it’s what you ignore” bo jest on tytułem znakomitego wystąpienia Scotta Hanselmana: Od siebie mogę dodać kilka rzeczy, które robię: Email prywatny w pracy jest w nieużywanej przeglądarce, więc prawdopodobieństwo jego przypadkowego przeglądania jest bardzo niskie. Wyłączenie powiadomień mailowych na komórce (zarówno głosowych jak i wizua...

Jak nie dać się zwariować napływowi informacji | Show me the code

Inne 2528 dni, 13 godzin, 10 minut temu https://krzysztofmorcinek.w... 149 źrodło rozwiń

Chciałbym dziś napisać o jednej z metod poszerzania wiedzy. Od zawsze nazywało się to dla mnie The Morning Brew. Jak sam autor pisze: The Morning Brew is a daily .NET software development link blog published by Chris Alcock a software developer from the north west of England. Chris ma w tym doświadczenie, to już #2468 odcinek, pierwszy był 10 lat temu!

Tagi: .Net, blog, C#, wiedza
Dziel się z innymi:
Codzienna prasówka – The Morning Brew | Show me the code

Inne 2535 dni, 13 godzin, 30 minut temu https://krzysztofmorcinek.w... 203 źrodło rozwiń

Chcemy rzucić wyjątkiem, gdy mamy przypadek nieobsłużony poprzez case’y. Na przykład gdy pojawiła się nowa wartość enuma Shape. throw EnumGuard.CreateMissingEnumException(nameof(shape), shape);

Tagi: .Net, C#, Enum, Exception
Dziel się z innymi:
Prostsze rzucanie wyjątków, gdy nie mamy obsłużonego Enuma | Show me the code

Najbardziej popularnym Value Object jest Money. W tym przykładzie instancje możemy tworzyć tylko poprzez metode Create() (taka fabryka). Konstruktor jest prywatny. Pewnie dla tego przykładu lepiej mieć po prostu publiczny konstruktor z dwoma parametrami, ale mam wiele przykładów innych bardziej skomplikowanych Value Objects, gdzie podejście z prywatnym konstruktorem i kilkoma fabrykami walidującymi różne przypadki ma sens.

Immutable Value Object przesyłany/serializowany (np po SignalR) | Show me the code
1 2