PHP, MySQL, Symfony, Doctrine, Javascript, jQuery, Vue.js, Express.js, Socket.io, HTML5, CSS, SASS, RWD, Git, Webpack, Gulp, Vagrant etc., WordPress, Magento, Prestashop, Linux
W większości tworzonych systemów trzeba gdzieś i w jakiś sposób zapisywać dane. ORM (Object-Relational Mapping), czyli mapowanie obiektowo-relacyjne jest sposobem odwzorowania systemu na bazę danych. ORM jest warstwą pomiędzy bazą danych, a aplikacją. Zajmuje się tworzeniem, aktualizowaniem, odczytywaniem oraz usuwaniem danych. Jak widać na tej ilustracji wzorce DataMapper oraz ActiveRecord należą do warstwy Data access, […]
Jakieś dwie godziny temu pisałem na tw/fb, że eksperymentowałem z Ubuntu Budgie, jednak po 10 minutach kombinowania jak dodać ikonę do panelu, poddałem się i stwierdziłem, że instaluję sprawdzonego Minta, którego używam od kilku lat. Oczywiście nie odbyło się to bezproblemowo. Instalacja System zwykle instaluję w taki sposób, że tworzę trzy partycje: swap – zwykle […]
Jakieś dwie godziny temu pisałem na tw/fb, że eksperymentowałem z Ubuntu Budgie, jednak po 10 minutach kombinowania jak dodać ikonę do panelu, poddałem się i stwierdziłem, że instaluję sprawdzonego Minta, którego używam od kilku lat. Oczywiście nie odbyło się to bezproblemowo. Instalacja System zwykle instaluję w taki sposób, że tworzę trzy partycje: swap – zwykle […]
Jedną z cech programowania obiektowego jest dziedziczenie. Jednak jak każdy element w programowaniu powinno ono być dobrze przemyślane. Istnieją problemy, które nadają się do rozwiązania przez dziedziczenie, jak i mamy problemy, które przez dziedziczenie nie powinny być rozwiązywane. Pisałem o tym więcej w artykule – Kompozycja ponad dziedziczenie. W wielu projektach istnieją rozbudowane hierarchie dziedziczenia, […]
Jedną z cech programowania obiektowego jest dziedziczenie. Jednak jak każdy element w programowaniu powinno ono być dobrze przemyślane. Istnieją problemy, które nadają się do rozwiązania przez dziedziczenie, jak i mamy problemy, które przez dziedziczenie nie powinny być rozwiązywane. Pisałem o tym więcej w artykule – Kompozycja ponad dziedziczenie. W wielu projektach istnieją rozbudowane hierarchie dziedziczenia, […]
Symfony 4 zostało wydane zgodnie z zapowiedziami 30 listopada. Z racji, że miałem okazję na szybko wdrożyć bardzo mały projekcik przy użyciu sf4, postaram się przedstawić zmiany, które rzuciły mi się w oczy. Podstawowa wersja W poprzedniej wersji symfony przy instalacji domyślnie mieliśmy wiele paczek, z których nie korzystaliśmy. Zaczynając projekt trzeba było je usuwać. […]
Symfony 4 zostało wydane zgodnie z zapowiedziami 30 listopada. Z racji, że miałem okazję na szybko wdrożyć bardzo mały projekcik przy użyciu sf4, postaram się przedstawić zmiany, które rzuciły mi się w oczy. Podstawowa wersja W poprzedniej wersji symfony przy instalacji domyślnie mieliśmy wiele paczek, z których nie korzystaliśmy. Zaczynając projekt trzeba było je usuwać. […]
During designing application, we are making new classes. Classes have dependencies. In programming we distinguish two patterns for managing class’s dependencies: Dependency injection Service locator Dependency injection In the following code, class Service perfectly shows us its dependencies. We know that we have to inject Logger to the constructor to create an instance of this […] Article Service locator vs Dependency injection is from SarvenDev.
Projektując aplikację w obiektowym języku programowania tworzymy klasy. Klasy mają własne zależności. Wyróżniamy dwa wzorce odpowiadające za zarządzanie zależnościami klasy: Dependency injection Service locator Dependency injection W poniższym przykładzie klasa Service doskonale pokazuje swoje zależności. Wiemy, że aby utworzyć instancję tej klasy musimy wstrzyknąć Logger do konstruktora.
Projektując aplikację w obiektowym języku programowania tworzymy klasy. Klasy mają własne zależności. Wyróżniamy dwa wzorce odpowiadające za zarządzanie zależnościami klasy: Dependency injection Service locator Dependency injection W poniższym przykładzie klasa Service doskonale pokazuje swoje zależności. Wiemy, że aby utworzyć instancję tej klasy musimy wstrzyknąć Logger do konstruktora. <?php use Psr\Log\LoggerInterface; class Service { private $logger; public […]
Jedną z możliwości programowania obiektowego jest dziedziczenie. Daje nam ono możliwość powtórnego wykorzystania kodu poprzez tworzenie podklas. Warto mieć na uwadze, że nie jest ono złotym środkiem, a jednak bywa ono często nadużywane. Definicje Dziedziczenie – mechanizm programowania obiektowego, służący do współdzielenia metod oraz składowych pomiędzy klasami. Klasa podrzędna dziedziczy po klasie bazowej, co oznacza, […]
Jedną z możliwości programowania obiektowego jest dziedziczenie. Daje nam ono możliwość powtórnego wykorzystania kodu poprzez tworzenie podklas. Warto mieć na uwadze, że nie jest ono złotym środkiem, a jednak bywa ono często nadużywane. Definicje Dziedziczenie – mechanizm programowania obiektowego, służący do współdzielenia metod oraz składowych pomiędzy klasami. Klasa podrzędna dziedziczy po klasie bazowej, co oznacza, […]
Opierając się na szczegółowej implementacji klasy podczas wstrzykiwania zależności tworzymy sprzężenie pomiędzy klasą a zależnością. Kod staje się sztywny, a ewentualna podmiana zależności stanowi problem. W celu stworzenia elastycznego rozwiązania powinniśmy przestrzegać zasady Dependency inversion principle, która prezentuje się następująco: Moduły wysokopoziomowe nie powinny zależeć od modułów niskopoziomowych. Jedne i drugie powinny zależeć od abstrakcji. […]
Opierając się na szczegółowej implementacji klasy podczas wstrzykiwania zależności tworzymy sprzężenie pomiędzy klasą a zależnością. Kod staje się sztywny, a ewentualna podmiana zależności stanowi problem. W celu stworzenia elastycznego rozwiązania powinniśmy przestrzegać zasady Dependency inversion principle, która prezentuje się następująco: Moduły wysokopoziomowe nie powinny zależeć od modułów niskopoziomowych. Jedne i drugie powinny zależeć od abstrakcji. […]
W klasie implementującej interfejs znaleźć muszą się implementacje wszystkich metod zawartych w tym interfejsie. W przypadku gdy w danej klasie nie potrzebujemy wszystkich metod, pojawia się problem. Przestrzeganie kolejnej z zasad programowania obiektowego SOLID pozwoli nam uniknąć takich kłopotów. Zasada Interface segregation principle mówi nam, że klasa nigdy nie powinna być zmuszana do implementacji metod, których […]
PHP, MySQL, Symfony, Doctrine, Javascript, jQuery, Vue.js, Express.js, Socket.io, HTML5, CSS, SASS, RWD, Git, Webpack, Gulp, Vagrant etc., WordPress, Magento, Prestashop, Linux
SarvenDev a właściwie Kamil Ruchała jest z Nowego Sącza. Swoją przygodę zaczął jako freelancer pisząc wtyczki do WordPress, Magento czy Prestashop.
Obecnie pracuje jako Backend Developer, ale mimo to nie zamyka się na technologie frontendowe - lubi pisać kod między innymi w Vue.js.