WEB-Программист
Przełącz nawigację

Język

  • Українська
  • Русский
  • Polski
  • Українська
  • Русский
  • Polski
Skontaktuj się z nami

Szukaj

  • Books
  • Bez kategorii
  • wordpress [PL]
  • Czcionki
  • Laravel [PL]
  • Articles
  • wordpress [PL]
  • © 2015-2026 Andrii Beznosko

  • Hosting CityHost

DDD Ultra-Light

  • Opis
  • Opis/Pobieranie

Laravel 4.2

Niektórzy ludzie mówią, że DDD jest trudne, kosztowne i powinno być stosowane z ostrożnością. Niektóre zespoły praktykują „DDD Life” — używają wzorców projektowania aplikacji opisanych przez Erica Evansa w dużej niebieskiej książce, ale ignorują idee, które uważa się za naprawdę ważne.

Prawdę mówiąc, nigdy nie pracowałem nad projektem z użyciem „prawdziwego DDD” (na razie!). Mimo to DDD mnie zainspirowało i wierzę, że sprawiło, iż stałem się bardziej profesjonalnym programistą. Stosuję małe fragmenty i elementy DDD, z których większości nie da się nazwać „prawdziwym DDD”, ale dokładnie pamiętam, skąd bierze się ta inspiracja.

Uważam, że prawdziwa wartość pracy Evansa polega na tym, że praktycznie każdy może wykorzystać niektóre z idei, które zaproponował. Nie wymagają żadnych specjalnych narzędzi, pieniędzy, uzgodnień ani reorganizacji. To proste pomysły, które możesz zacząć wdrażać już od poniedziałku (albo jutro). Te idee nazywam „DDD Ultra-Lite”. Niektóre z nich nie są nowe, ale wierzę, że Evans dobrze wykonał swoją pracę, opisując DDD zrozumiałymi słowami i metaforami, aby uniknąć momentów nieporozumień.

Oto te idee (w losowej kolejności):

1. Słuchaj tego, co mówi biznes

Nie żartuję. Ta rada jest prawdopodobnie tak stara jak samo programowanie, ale Evans opisuje tę ideę w dość interesujący sposób.

Mówi, że jeśli biznes nie rozumie twojego modelu albo uważa, że jest on błędny, to znaczy, że musisz nad nim jeszcze popracować. Czasami ludzie z biznesu nie krytykują twojego pomysłu wprost, ale to ich niepokoi i wprowadza w błąd — wydaje się, że coś jest nie tak.

Czasami bywa też odwrotnie. W końcu znajdujesz dobry model, a podczas rozmowy z biznesem patrzą na ciebie jak na najgłupszą osobę na świecie. „Tak, masz rację, to oczywiste, ale czemu zajęło ci tyle czasu zrozumienie tych koncepcji?”. To znaczy, że wreszcie jesteś na właściwej drodze.

2. Projektuj dokładnie tyle, ile trzeba — ani więcej, ani mniej

Nadmiar i niedobór projektowania to problemy. Znalezienie równowagi między głębokim projektowaniem a samym „realizowaniem funkcji w celu osiągnięcia celu” to niebanalne zadanie. Evans daje nam kilka rad, które uważam za bardzo przydatne:

  • Używaj najprostszej modelu, który rozwiązuje bieżący problem. Nie próbuj projektować rzeczywistości — nie dasz rady.
  • Pamiętaj o czystości kodu. Twój kod i architektura muszą łatwo poddawać się zmianom w przyszłości. Jeśli projekt odniesie sukces, będziesz zmieniać architekturę wiele razy. Nie da się zaprojektować ideału za pierwszym razem (i prawdopodobnie nikt nie potrafi).
  • Jeśli kod zaczyna „uciekać” spod twojej kontroli i widzisz, że wprowadzanie zmian staje się coraz trudniejsze, to znak, że problem leży w aktualnym modelu. Czas na refaktoryzację tej części programu.
  • Refaktoryzuj małe fragmenty systemu w razie potrzeby, ponownie projektując najprostszy model, który rozwiązuje nowy problem.
  • Dyskutuj. Przy kawie z programistami i architektami. Omawiaj z nimi swój problem, rób burze mózgów, wyśpij się i wracaj jeszcze raz.
  • Nie dyskutuj więcej, niż trzeba. Evans zakłada wiele iteracji, krótkie dyskusje (1–1,5 godziny), uczenie się i rozmowy.

3. Zadawaj trudne pytania

Czasami pracuję nad nową funkcjonalnością i modyfikuję istniejącą, a architektura zaczyna robić się brzydka. Była całkiem niezła przed tymi zmianami, ale nagle stała się zbyt skomplikowana albo po prostu zaczęła źle wyglądać. To znak, że architekturę trzeba zmienić — nic nadzwyczajnego. Mimo to książka Evansa dała mi kilka pytań, które trzeba zadać w takich sytuacjach: Czy pominąłem coś w koncepcji dziedziny? Czy ta zmiana dodaje lub wykorzystuje koncepcję, która nie pasuje do aktualnego modelu?

Innymi słowy, zamiast dodawać kolejne if-y albo dodatkowe klasy, być może warto przemyśleć architekturę i znaleźć coś bardziej odpowiedniego albo zasadniczo innego.

4. Nie wynajduj koła.

Evans zaleca szukać zewnętrznej inspiracji kilka razy w książce. Można przeglądać katalogi wzorców, aby znaleźć coś, co da się stamtąd wykorzystać (być może z modyfikacjami). Rekomenduje też zapoznanie się z tym, jak podobne problemy rozwiązuje się w innych kontekstach (obszarach).

Co ciekawe, wiele razy zdarzało mi się pomijać to podejście. Wiele osób szuka rozwiązań w internecie — w różnych blogach, ogląda prezentacje. I prawie nigdy nie słyszę, żeby ktoś powiedział: „Przeczytałem o tym w książce XYZ”. Zwykle sesje „projektowania”, w których uczestniczyłem, były zwykłym burzeniem mózgów. A potem, po miesiącach, mogłem natrafić na przypadkową prezentację, która pokazywała inne podejście do rozwiązania naszego problemu — znacznie bardziej preferowane.

Wiele osób na konferencjach próbuje znaleźć rozwiązania w innych dziedzinach wiedzy. Szukają rozwiązań dla ogólnych problemów i próbują je dopasować do swoich specyficznych potrzeb. Ale mimo to w „życiu codziennym” bardzo często nasz horyzont nie jest zbyt szeroki i nie możemy sobie pozwolić na duże badania.

Ulepszenie, które zrobiłem osobiście w obszarze „badania problemu” — to korzystanie z bardziej uporządkowanych źródeł i przeglądanie klasycznych materiałów. Blogi i prezentacje są bardzo cenne, ale nie zrozum mnie źle: książki są lepiej uporządkowane i zawierają bardziej sprawdzone w czasie informacje. Nikt jednak nie kwestionuje „świetnych” artykułów znalezionych w zwykłym, przypadkowym wyszukiwaniu w Google. Jeśli są napisane przez ekspertów, to powinno to pasować w większości przypadków. Ale nawet eksperci nie zawsze wyjaśniają swoje rozwiązania i szczegółowo opisują problem.

Jeśli przypomnę sobie coś, co może być przydatne, wracam do źródła tych informacji, żeby odświeżyć pamięć. Staram się znaleźć powiązane artykuły, książki lub prezentacje. Jeśli nie mam pojęcia, od czego zacząć, mam kilka pomysłów, które dla mnie są użyteczne: powrót do teorii, przeglądanie katalogów (wzorców lub projektowania), skupienie się na kontekście i opisie problemu, szukanie dobrych praktyk od profesjonalistów IT w konkretnej dziedzinie.

Podsumowanie

Wszystko to jest dość oczywiste, ale radzę ci spróbować stosować to wszystko tak, „jak to rozumiesz”. Zaskoczy cię, jak wiele to zmienia.

Comments
Łącznie komentarzy: 0
Dodaj komentarz Anuluj odpowiedź

Twój adres e-mail nie zostanie opublikowany.

Kategoria: Главная » Laravel » DDD Ultra-Light
Status: Для продвинутых программистов
Original article link (if specified or if this article is not authored by us) Download
Submitted by kwi 17, 2026 00:27 Andriy

Articles published on WEB-Программист are provided with source links. The site administration is not responsible for your use of these materials.

Laravel
Previous Next

Zobacz też:

Tworzenie pakietów dla Laravel

Prosper Otemuyiwa niedawno opublikował artykuł o tym, jak tworzyć pakiety dla Laravel 5 na swoim blogu. Chociaż jego sposób jest w pełni poprawny i może ci odpowiadać, ja wolę nieco inny sposób tworzenia pakietów. Na początku tworzę nowe repozytorium na...

DDD Ultra-Light

Niektórzy ludzie mówią, że DDD jest trudne, kosztowne i powinno być stosowane z ostrożnością. Niektóre zespoły praktykują „DDD Life” — używają wzorców projektowania aplikacji opisanych przez Erica Evansa w dużej niebieskiej książce, ale ignorują idee, które uważa się za naprawdę...

Praca z polami nullable w Eloquent w Laravel

Wstęp Jeśli masz w Laravel kilka modeli z jednym polem nullable, tworzenie mutatora dla tego pola jest procesem dość trywialnym: public function setNicknameAttribute($nickname) { $this->attributes['nickname'] = trim($nickname) == '' ? null : trim($nickname); }   Tutaj sprawdzamy dane wejściowe, w...

Rozszerzamy klasy Laravel metodą `orAbort` za pomocą traitu

Zainspirowany artykułem Edd Man's o opcjonalnych kontrolnych przepływach, stworzyłem mały pakiet do Laravel, który realizuje opcjonalne zatrzymanie aplikacji. Udostępnia on trait SpatieOrAbortOrAbort, który może być używany z dowolną klasą. Do wszystkich metod klasy dodawana jest funkcjonalność orAbort. Gdy oryginalna metoda...

Skontaktuj się z nami

- Motywy i wtyczki premium WP Star za darmo -

We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
Cookie settingsACCEPT
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
SAVE & ACCEPT