Warstwa Abstrakcji - stanowi izolację pomiędzy kodem programisty a zewnętrznymi modułami, pozwala odseparować system od jego zależności przez co czyni go podatnym na zmiany i aktualizacje. Przywiązując system do innej usługi czynimy go słabym.

Save repository from save

2015-10-20

Repozytorium, reprezentacja kolekcji pozwalająca na uzyskanie dostępu do obiektów domenowych.
Czy jednak repozytorium powinno również zajmować się aktualizowaniem stanu obiektów i zapisywaniem tego stanu?

interface Repository 
{
    public function add(Object $object);

    public function remove(Object $object);

    public function getBy(Criteria $criteria);

    public function hasAnyMatching(Criteria $criteria);

    public function update(Object $object);
}

public function update(Object $object); tego w ogóle nie powinno tu być!

Jestę Builderę

2015-10-08

Jestę builderem bo implementuję fluent interface? A może jestem builderem bo buduję? Często te dwa wzorce są ze sobą mylone. Wyjaśnijmy różnicę.

Fluent Interface - metody w klasie zwracają jako rezultat instancję tej klasy przez co można robić coś takiego:

$object->method1()->method2()->method3();

Builder - używany do konstruowania skomplikowanych obiektów mogących przyjąć sporo parametrów, zarówno wymaganych lub opcjonalnych. Od fabryki różni się tym, że z każdym wywołaniem jakiejś metody na builderze tworzona lub rozszerzana jest część budowanego obiektu.

Dlaczego te dwa wzorce są mylone?

Rozszerzanie funkcjonalności bez wprowadzania chaosu

2015-10-05

Przychodzi pan lub pani z działu marketingu do programisty i mówi... Tak mógłby zacząć się niejeden dobry kawał rodem z największych korporacji IT. Nie ma w tym jednak nic śmiesznego, tak samo jak nie ma w 100% ukończonych aplikacji. Biznes zmienia założenia, jednak czy to oznacza że biznes jest zły? Wprost przeciwnie, dobry biznes musi ewoluować w celu dopasowania do zmieniających się potrzeb rynku. Dobry kod powinien natomiast być na te zmiany przygotowany.

Poprzedni wpis opisywał w jaki sposób z problematycznego i ciężkiego w utrzymaniu kodu przejść do czegoś co da się zrozumieć bez kilkugodzinnej analizy. Jak jednak nie zepsuć tego co udało się nam wypracować? Najpierw kilka założeń. Celem procesu rejestracji, który został opisany w poprzednim wpisie, jest utworzenie konta użytkownika. Podczas tej operacji należy potwierdzić, że właściciel konta jest również właścicielem adresu email użytego w czasie rejestracji. W tym celu należy wysłać do niego unikalny, automatycznie wygenerowany link aktywacyjny.

Akceptuję

Ten serwis używa plików cookies. Więcej o plikach cookies.