Posty

Wyświetlam posty z etykietą przemyślenia

Jeden prosty krok do SOLIDnego kodu - Klasy final w PHP

Słowo kluczowe `final` Zastosowanie final w klasie, uniemożliwia zastosowanie dziedziczenia względem niej. Także może się wydawać że blokujemy rozszerzalność takiej klasy i zamykamy się na korzyści płynące z mechanizmu polimorfizmu. Ale czy na pewno? Moim zdaniem `final class` to wspaniałe narzędzie wspierające SOLIDa , chociaż wymaga bardzo dużo samo zaparcia i warto mieć na uwadze że SOLID to tylko zestaw reguł, które można, ale nie trzeba wykorzystywać. Zobaczmy więc co zyskujemy dzięki stosowaniu słowa `final`. Liskov Subtition Principle Zależnie od tego jak spojrzymy na tę regułę zyskujemy w obydwu przypadkach. W "oryginalnej" regule Liskov, zastosowanie `final` zablokuje możliwości dziedziczenia takiej klasy, a więc całkowicie wyeliminuje potencjalny problem niepoprawnego dziedziczenia klas bazowych , które gdzieś w środku mógłby wpłynąć na poprawność działania aplikacji. Wystarczy przypomnieć sobie przykład z kołem i elipsą. Natomiast Martin rozszerza tę regułę o konc...

Jak szybko uczyć się od innych programistów

Zastanawiam się od pewnego czasu w jaki sposób mógłbym poćwiczyć pair programming . Też zastanawiasz się w jak inni programiści na co dzień? Każdy z nas na co dzień ma inny zestaw problemów do rozwiązania, pracuje w aplikacjach o innej skali, innych priorytetach. Na prelekcjach słychać zazwyczaj jak to wszystko fajnie poszło jak został wdrożony po raz kolejny CQRS. Ale jak taki programista rozwiązuje problemy na co dzień? Na co inni zwracają uwagę, na co są wyczuleni itd. Zastanawiałem się jak w szybki sposób podzielić się taką wiedzą w jakiś praktyczny sposób no i... Wpadłem na coś co można by nazwać "hotseat pair programming" Załóżmy że mamy 5 par. Przedstawiamy wszystkim ten sam problem do rozwiązania. Po pół godziny jedna z osób w parze przechodzi do innej. Za kolejne pół godziny robi to druga osoba z pary, która poprzednio została w danej parze. Dzięki temu zawsze jest ktoś kto zna dłużej ten kod, więc nie ma problemu że z każdym trzeba by go poznać od początk...