Brudnopis programisty czyli zapiski o programowaniu

Nie Mockuj tak! Czyli o (nad)używaniu Mocków w testach...

Na wstępie: fajnie by było, abyś wiedział mniej więcej co to jest Mock, Stub i Fake - nie będę tego jakoś szczególnie objaśniał bo idea tego wpisu jest inna niż wstęp do “zaślepek”. Tutaj możesz poczytać o różnych zaślepkach na przykładzie PHPUnit. Spis treści, a jak! Wstępniak Kiedy Mock? Przykład zaślepiania metody typu Quer... Read more

PhpStorm? composer? plugin?

Napisałem prosty plugin do PhpStorma (w wersji od 8.0.2 wzwyż, więc nie obijajcie się z aktualizacją). Jest on zatytuowany PHP Composer AutoCompletion, jak sama nazwa wskazuje, dodaje on podpowiadanie składni do pliku composer.json. Działa podpowiadanie struktury pliku oraz nazw paczek wraz z wersjami (tylko z packagist.org). Issue na bugtraker... Read more

Jeden TestCase dla wielu testowanych klas

Na początku nakreślę problem. Mamy klasę Product oraz interfejs ProductRepository. interface ProductRepository { function save(Product $product); function delete(Product $product); function findOne($id); function findAll(); //... } ProductRepository może mieć kilka implementacji, np.: DoctrineProductRepository - zapisy... Read more

Biblioteka programisty

Programista nie małpa, czytać musi. Wrzucam listę książek z niezwykle prestiżowym, moim certyfikatem jakości. Nie zamieszczałem tytułów, których nie przeczytałem, a wiem że są świetne i są na mojej liście do przeczytania. Kolejność nie ma większego znaczenia. Jeśli chcesz dodać coś od siebie, to są komentarze pod tym wpisem. Programowanie i pro... Read more

Typ Option, czyli jak uniknąć Fatal error: Call to member function getTitle() on a non-object...

Poprzedni mój wpis objaśniał podstawy programowania funkcyjnego, tym razem zajmę się wzorcem projektowym, który wywodzi się z języków funkcyjnych i jest szeroko stosowany w Haskellu, Scali, czy F#. Mowa tutaj o type Option. Inne nazwy tego patternu to Optional (java8), czy Maybe (Haskell) - podaję jabyście chcieli coś na ten temat wygooglować. ... Read more