Tag: Clean Code

Przykład na zamykanie rozproszonej funkcjonalności do właściwego typu – screencast

Kontynuujemy nagrywanie i montowanie screencastów. Dzisiaj odcinek nr 4. Nabieramy tempa i regularności 🙂 Rozwinęliśmy przykład z ostatniego odcinka (Jak tworzyć dedykowane wrappery do prostych typów) i w praktyce przenieśliśmy funkcjonalność ze statycznych Utilsów do właściwego typu EthereumAddress. Przykładem jest address w Ethereum (zmienione… Continue Reading „Przykład na zamykanie rozproszonej funkcjonalności do właściwego typu – screencast”

Jak tworzyć dedykowane wrappery do prostych typów – screencast

Wrzucamy już 3 odcinek naszej serii. Mamy plany i pomysły na kolejne. Jeżeli Tobie nasuwa się jakiś pomysł, który chciałbyś abyśmy poruszyli – podziel się nim w komentarzu. Inspiracją był kod który musiałem napisać w pracy. Ten problem nie dotyczy tylko mnie. Najpierw powstał… Continue Reading „Jak tworzyć dedykowane wrappery do prostych typów – screencast”

SRP – Zasada Pojedynczej Odpowiedzialności w praktyce – screencast

Kolejne spotkanie z Adrianem. Na dzisiaj przyniósł kod, który napisał kiedyś na zadaniu rekrutacyjnym. Jedna przykładowa klasa nie stosuje się do Single Responsibility Principle (obiecany ostatnio temat). Przechodzimy przez kilka refactoringów i dyskusję kiedy warto wydzielać osobne serwisy i co w praktyce znaczy SRP… Continue Reading „SRP – Zasada Pojedynczej Odpowiedzialności w praktyce – screencast”

Okazjonalne (regularne) czyszczenie kodu Resharperem

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… Continue Reading „Okazjonalne (regularne) czyszczenie kodu Resharperem”

Code Review a spacje i inne pierdoły

Chodzi o taką sprawę: Te ciemno zielone to kilka dodatkowych spacji, które się pojawiło (a nie było ich wcześniej). Inne to: dodatkowo zbędna, podwójna linia, brak pustej linii, brak spacji w parametrach lub zbyt duża ich liczba, itp, itd. Przypadkowo podczas pracy nad kodem gdzieś… Continue Reading „Code Review a spacje i inne pierdoły”

Uciekaj szybko z metody i usuwaj „else”

Chciałem w sumie tylko podlinkować: What really grind my gears #1 – IIIIIIIIIIIIIIIIF! by Oskar Dudycz. TL;DR, taki kod: public TwojTyp IIIIIIIIIIIIIIIIIFunkcja(JeszczeInnyTyp obj) { TwojTyp wynik; if (obj != null) { if (obj.Nazwa == "Jakastam") { wynik = new TwojTyp(3); } else { int… Continue Reading „Uciekaj szybko z metody i usuwaj „else””

Reguła DRY – tip #1

DRY – Don’t Repeat Yourself. Łamanie tej reguły ma tyle twarzy, że postanowiłem każdy mały przykład wrzucać. Gorszy kod: Lepszy kod: Wiem że nie powinno się sklejać ścieżki w ten sposób tylko użyć Path.Combine(). Przykład z kodu. Po komentarzu @marfusios2 zdałem sobie sprawę, że… Continue Reading „Reguła DRY – tip #1”

Przykład fajnej Extension Method

Kod, który mnie natchnął: Natchnął bo zmieniłem na: To było słabe… gdybym sprawdzał po kimś takie coś, to bym może zauważył, ale sam to zrobiłem i nie zauważyłem: modyfikowanie kolekcji po której się iteruje, leci wyjątek. Code Review – wiele oczu patrzy – naprawdę… Continue Reading „Przykład fajnej Extension Method”

Jak wygląda poprawna implementacja enuma

Tak IMHO powinien wyglądać dobrze napisany enum: Nie enumerujemy od zera „0” jest domyślną wartością dla enuma (bo pod spodem musi być typ całkowity). Dlatego chcemy aby nasze znaczące wartości zaczynały się od jedynki. Wtedy prościej wyśledzić w której ścieżce wykonania jest błąd, spowodowany… Continue Reading „Jak wygląda poprawna implementacja enuma”

Logowanie lepsze niż TODO oraz HACK

Gdy robię jakiegoś haka to wolę to opisać. Kiedyś wspomniałem o korzystaniu z TODO w Przesunięcie dobrych intencji na później. Wymyśliłem dziś coś podobnego, traktujcie to jako „pomysł”, bo jeszcze nie wiem czy się sprawdza na dłuższą metę. Zalogowanie pozostawionego problemu Dzisiaj chciałem napisać,… Continue Reading „Logowanie lepsze niż TODO oraz HACK”