Prosta implementacja DDD

18
lip/12
2

Jest to kontynuacja poprzedniego wpisu dot. Domain-Driven Design. Chciałbym opisać prostą i eksperymentalną implementację DDD, którą stworzyłem w swoim czasie wolnym. Nie jest to kompletny system do zarządzania logiką biznesową, jest to jednak mały zaczątek, który może być podstawą bądź inspiracją dla innych rozwiązań.

Otagowane jako: , ,

Chałupniczy DDD, czyli jak wydzielić logikę biznesową

17
lip/12
4

Są pewne teorie, które zdobywają sporą popularność w świecie programowania, a nie są tak naprawdę niczym nowym. Przykładowo wzorce projektowe to przecież zunifikowany zbiór rozwiązań pewnych problemów. Podobnie jest z DDD, czyli Domain-Driven Design, który zbiera wszystko to co już wszyscy wiemy lub powinniśmy wiedzieć nota bene poprawnego projektowania aplikacji i raczy nas tą wiedzą z zaskakującą świeżością. Z drugiej strony, może te zasady wydają się tak oczywiste po ich poznaniu, że do głowy wpada pomysł iż DDD wydaje się po prostu odtwórcze? Podejście DDD to oczywiście sporo teorii, słownictwa i zasad, ale w gruncie rzeczy sprawa jest relatywnie prosta. Zaraz ją wspólnie ugryziemy.

Otagowane jako: , ,

(V)iew, przygłupi kolega każdego MC

15
kwi/10
28

Gdzieś tam w świecie przed firewallem, w wybranej aplikacji stworzonej przez wybranego programistę istnieje znany wszystkim kontroler. Ten sam kontroler, który właśnie przed chwilą otrzymał od dyspozytora pałeczkę przy przetwarzaniu żądania. Pobudzony i gotowy do działania ma na wyciągnięcie ręki półkę z modelami. Jest pewnego rodzaju pośrednikiem, tytułowany często strażnikiem cnoty widoku. Z modelów wyciąga tylko to co dla widoku najodpowiedniejsze. Gdy kontroler jest na służbie, wspomniany współpracownik niezdolny do samodzielnego myślenia może czuć się naprawdę bezpiecznie. Kontroler mógłby być więc niezwykle dumnym i bardzo szczęśliwym komponentem, chodzić z podniesioną głową wśród wzorca MVC. Niestety jest jeden mały szkopuł. W kontrolerze widać już oznaki wypalenia zawodowego. Nie ma co wieszać psów na biednym komponencie, że leniwy, że niedostosowany do wymagań wolnego rynku. To szefostwo zrzuca na niego coraz więcej obowiązków i zatrudnia oprócz niego jako widok, głąba. W swojej pracy codziennej nasz kontroler jest zasypywany przez programistę stosem zmieniających się kilka razy dziennie zamówień na coraz różniejsze porcje danych dla niegrzeszącego bystrością widoku. Tutaj z 5 newsów zrobiło się 7, tam trzeba pobrać dodatkowo pole z tabeli, a jeszcze gdzieś indziej użytkownik będzie chciał poznać aktualną datę. To tylko szczyt góry lodowej. A mogłem zostać marynarzem, powiedziałby kontroler.

Otagowane jako: ,

Wolałbym nazwę HyperPHP albo cokolwiek

16
lut/10
9

Po buńczucznym i hip hip hurra wpisie o modelu implementacji serwisów internetowych, przyszedł czas na projekt Facebooka związany z PHP, czyli HipHop. Międzynarodowa społeczność żyje podekscytowana tym projektem już od ponad tygodnia, więc nie mogłem go sobie ot tak pominąć. Od nagłówków z nazwą HipHop, nazwą głupią nadmienię, RSS puchnął mi w zastraszającym tempie, a ja z tej listy wybiorę jeden post i szczególnie mu się przyjrzę. Chciałbym zająć się kwestiami poruszonymi w poście Terrego Chaya i rzucić okiem na tematy luźno związane z projektem.

Otagowane jako: , , , ,

Client-side o muerte

16
sty/10
26

Dzisiaj chciałbym zaryzykować parę kontrowersyjnych stwierdzeń n.t. budowania aplikacji internetowych. Pamiętacie mój poprzedni wpis o pluginizowaniu aplikacji PHP? Po jego napisaniu uznałem, że stworzę malutki framework korzystający z dobrodziejstw idei stojących za HMVC. Tak dla przykładu i dla własnej chorej rozrywki. Mam aktualnie dużo pracy, a co za tym idzie mój umysł pracuje na wystarczająco wysokich obrotach, by poradzić sobie w ekspresowym tempie i wolnym czasie rozwiązać problemy dotyczące architektur oprogramowania. Na tyle szybkim tempie, by nie zamęczyć się dodatkowo swym hobby i wypuścić kilka ciekawych wpisów. Przez ostatnie tygodnie powstawały szkice, klasy i interfejsy napisane w ulubionym PHP. Powstawały dopóki nie przystanąłem na chwilę i nie spojrzałem na ostatnie lata ewolucji aplikacji internetowych, dystansując się do swojego doświadczenia. I wiecie co? Patrzyłem na web-developing, który musi zostać zduszony w postaci w której utkwił. Musimy zrobić krok do przodu. Client-side albo śmierć.

Pluginizowanie aplikacji PHP

28
gru/09
8

Są 3 główne cechy programisty: ambicja, niecierpliwość i lenistwo. Chcemy podejmować się wspaniałych wyzwań, tworzyć aplikacje szybko i się przy tym nie napracować. Nie brzmi to zbyt dobrze szczerze powiedziawszy. Gdybym miał narażać życie innych będąc chirurgiem, po wypowiedzeniu tych słów już płonął bym na stosie. Na szczęście w inżynierii oprogramowania mamy takie cuda jak pluginy. I nikt przy tym nie umiera.

Każdy z nas jest odtwórczym wynalazcą

30
sie/09
6

Około roku 2002 (i to wciąż mi nie minęło) byłem zafascynowany tworzeniem na własne potrzeby tzw. engineów, czyli tłumacząc na dzisiejsze frameworków. Eksperymentowałem na nich ze wzorcem MVC, bawiąc się budowaniem sprawnych narzędzi do szybkiego budowania aplikacji.  Jednym z owych „potworków”, wyników moich eksperymentów był niezwykle modularny framework: pozbawiony routera z autonomicznymi kontrolerami, które były wywoływane z własnymi parametrami przekazanymi w adresie. Jakież było moje zdziwienie, gdy dziś odkryłem, że Kohana wprowadza takie rozwiązanie od wersji 3.0 i ten wynalazek ma swoją fachową nazwę. Wzorzec projektowy o którym mowa to HMVC i został opisany pierwszy raz w lipcu 2000 roku na łamach „JavaWorld Magazine”.

Każdy z nas jest niestety odtwórczym wynalazcą.

Bym zapomniał. Ten „engine” nazywał się „Sequence”.

Szybkie komponenty w PHP

30
sie/09
8

Szybkie prototypowanie

Ostatnio kolegom zaprezentowałem szybki sposób na stworzenie sprawnego prototypu komponentu w PHP. Ostatecznym wnioskiem, który zaraz wysuniemy jest przypomnienie faktu pracy z dynamicznym językiem programowania, który udostępniając nam hermetyzację i inne paradygmaty języka obiektowego pozwala nam uniknąć licznych „dżawawizmów” (czyt. rozwiązań Javy).

Refaktoryzacja kodu i wzorce projektowe

9
cze/09
0

image

Chętnych do zapoznania się jak wzorce projektowe mogą pomóc przy refaktoryzacji kodu zachęcam do przeczytania mojego artykułu na PHP.pl.

(…) Wszystkie te elementy mają zastosowanie nie tylko w aplikacjach biznesowych, ale także w pracy przy otwartym oprogramowaniu i współpracy w zespołach programistów; w projektach, które mają być rozwijane znacznie dłużej. (…)

Mam nadzieję, że okaże się przydatny. Jestem pewny, że jeszcze kiedyś wrócę do tego tematu i skupię się szczególnie na wzorcu DI.

Otagowane jako: , ,
Optimization WordPress Plugins & Solutions by W3 EDGE