Rich Domain Model vs. Anaemic Domain Model
Architektura 3571 dni, 7 godzin, 59 minut temu 203 źrodło rozwiń
Czwarty odcinek to badanie nowych gruntów: wyjście poza .NET! Moim gościem jest Sławomir Sobótka: założyciel firmy Bottega IT Solutions, trener, blogger, architekt. Wywodzi się ze środowiska Javy i można go spotkać na bardzo wielu konferencjach i grupach związanych z tą właśnie technologią. Rozprawiamy o Domain Driven Design, a Sławek jest jednym z najbardziej rozpoznawalnych polskich ekspertów w tym obszarze. Podczas rozmowy opowiada nam jakie korzyś...
Main menuMain pageAboutContact Share article via: You've read lot of articles about advanced C# constructions, new features, frameworks, etc. and at the end you are opening your solution and you start looking... and thinking... what is wrong the hell? Why my project is so f* boring? I'd like to change something. I want to have the cool application, which I want to be proud of and compare this solution with the ones I've read about. If this situations happened before this article is for you...
Sztuka programowania 3745 dni, 10 godzin, 22 minuty temu 156 źrodło rozwiń
As .NET developer I’m about to face the problem of using it in a quite complex system. I took some up front effort to prepare some concept of handling nested DB operations and transactions management. I’m not an Entity Framework specialist (nor enthusiast) but the potential of this technology (the result of factors like MS marketing or community activity) shouldn’t be overlooked. Though I have faced a problem of EF which won’t appear in HelloWorld scenarios but will get very hard to ove...
Architektura 4351 dni, 21 godzin, 57 minut temu 81 źrodło rozwiń
Domain Driven Design (DDD) zostało zdefiniowane przez Erica Evansa w jego książce Domain-Driven Design: Tackling Complexity in the Heart of Software wydanej w 2003 roku. DDD nie jest metodyką tworzenia kodu, a definiowaniem komunikacji (połączeń) pomiędzy obiektami.
Sztuka programowania 4396 dni, 4 godziny, 43 minuty temu 315 źrodło rozwiń
Prezentacja jest już dostępna na Vimeo. Miejscami kod przykładów może być mało czytelny ale przyjrzeć im się można z bliska na Prezi. //========================================= Przy okazji chciałbym podziękować wszystkim, którzy wyrazili swe opinie w ankiecie konferencyjnej. Jest to dla mnie najcenniejsze źródło informacji. Z 22 opinii tekstowych, 20 z nich odbieram jako bardzo ciepłe i przyjazne. Wasze słowa są na prawdę motywacją do tego aby następnym razem poświęcić jeszcze więcej czasu (po ob...
Architektura 4889 dni, 7 godzin, 28 minut temu 113 źrodło rozwiń
Podczas 58. spotkania Krakowskiej Grupy Developerów .NET miałem przyjemność poprowadzić prezentację pt. “Domain Driven Design, czyli programowanie przez modelowanie”. Ponieważ zakładam, że nie wszyscy jesteście z Krakowa i uczestniczyliście w spotkaniu, pozwolę sobie opisać o czym mówiłem. Prezentację możecie obejrzeć lub ściągnąć (format pptx) stąd (via SlideShare), a przykłady w kodzie stąd.Rozwiązywanie problemów Na...
Architektura 5281 dni, 5 godzin, 32 minuty temu 222 źrodło rozwiń
Jak już wspominałem kilka postów temu, ponowna lektura części Strategic Design z książki Erica Evansa pomogła mi usystematyzować swoją aktualną wiedzę na temat DDD. Dziś chciałbym się z Wami podzielić dalszą częścią mojego odkrycia. Warstwa możliwości (capabilities) świetnie nadaje się do tworzenia encji warstwy operations. O co chodzi? Jakiś czas temu Udi Dahan pisał o tym, że nie powinniśmy tworzyć korzeni agregatów. Jego post wykorzystuje przykład sklepu internetowego. Za...
Architektura 5372 dni, 4 godziny, 38 minut temu 98 źrodło rozwiń
Niedawno natknąłem się na StackOverflow interesujące pytanie dotyczące Domain-Driven Design. Chciałbym się z Wami podzielić moimi przemyśleniami. Pytanie dotyczyło zaprojektowania logiki biznesowej dla domeny składającej się z trzech obiektów: Książki (Book), Rozdziału (Chapter) oraz Strony (Page): Problem polega na tym, który element, z przedstawionych trzech, powinien być korzeniem agregatu?
Architektura 5383 dni, 9 godzin, 59 minut temu 98 źrodło rozwiń
Autor: Bardzo szybko przywykłem do idei "domain events" Udiego i nie spodziewałem się napotkania w kodzie DDDSample innego rozwiązania. Jakież było więc moje zdziwienie, gdy zdarzenia (z natury) domenowe odnalazłem nie na poziomie modelu domeny, ale na poziomie warstwy aplikacyjnej. Postanowiłem przejrzeć się bliżej temu tematowi (zamiast na ślepo kopiować Javowe rozwiązanie).
Architektura 5544 dni, 10 godzin, 59 minut temu 83 źrodło rozwiń
Autor: Z ogromną przyjemnością śpieszę donieść, iż projekt DDDSample.Net - .NET-owy klon projektu DDDSample - właśnie doczekał się pierwszej wersji. Wraz z projektem powstał także stosowny blog, na którym publikowane będą informacje dotyczące postępu prac oraz posty komentujące decyzje projektowe, które zostały podjęte przez autorów Java-owego oryginału.
Modifiability: Or is there Design in Agility? Dziesiejszy poranek spędziłem oglądając kolejny film z InfoQ: "Modifiability: Or is there Design in Agility?". Film ten jest nagraniem panelu dyskusyjnego z udziałem architektów ThoughtWorks pod przewodnictwem Martina Fowlera, przeprowadzonego na konferencji QCon w listopadzie 2007 roku. Oto fragmentaryczne notatki z prezentacji: OOD/OOP/DDDDavid Farley, rozpoczynająć dyskusję na ten temat, dzieli się swoją definicją OOP/OOD: obiektowe techniki programowania...
Architektura 5585 dni, 4 godziny, 38 minut temu 16 źrodło rozwiń
Dzisiejszy post jest sponsorowany przez hipotetyczną hurtownię, której właściciele chcą zbudować system zarządzania towarami w oparciu o metodykę DDD. Skrócony opis domeny biznesowej przedstawia się następująco. Hurtownia ma na stanie wiele produktów. Każdy produkt ma określoną ilość, która znajduje się w magazynie. Ilość ta jest określona w jednostce miary danego produktu. Produkty mogą być zamawiane (pewna ilość produktu jest tymczasowo przypisywana d...
Architektura 5605 dni, 5 godzin, 44 minuty temu 87 źrodło rozwiń
Jak w większości systemów budowanych w oparciu o DDD, tak i w naszym natrafiliśmy w końcu na problem poprawności obiektów modelu domeny. Na samym początku ograniczyłem się do przekazania programistom informacji, że dobry obiekt modelu powinien być zawsze poprawny. Pomyślałem, że jest to dobre pierwsze przybliżenie. Szczegółami zajmiemy się później. Szczegóły te miały, według moich przewidywań, dotyczyć walidacji zależnej od kontekstu, która sprawia, że Jeffrey Palermo nie wierzy w zasadę "always valid"....
Architektura 5650 dni, 1 godzinę, 20 minut temu 63 źrodło rozwiń
Na wstępie chciałbym zaznaczyć, że w żadnym razie nie jestem ekspertem od DDD. Ja się wciąż i dopiero uczę i moje posty z serii "Mentoring DDD" są wyrazami tegoż procesu (samo)kształcenia. Dlaczego więc "mentoring"? Ano dlatego, że wspieram Domain Driven Design w mojej firmie poprzez konsultacje, pomoc duchową i cielesną. Staram się przewidywać problemyi zdobywać wiedzę na temat sposobów ich rozwiązania zanim się pojawią. Nie posiadam jednak (jeszcze) tej wiedzy w postaci przetworzonej w trwałe połączeni...
Architektura 5652 dni, 11 godzin, 50 minut temu 80 źrodło rozwiń
Dziś pragnę się z Wami podzielić moim odkryciem. Być może dla niektórych z Was nie będzie to nowość, a jeśli nawet to nic specjalnego. U mnie jednak spowodowało sporo radości (profesjonalnej) i uczucie podziwu dla autorów NHibernate.
Architektura 5656 dni, 22 godziny, 25 minut temu 62 źrodło rozwiń
Postanowiłem rozpocząć serię krótkich notek dotyczących Domain Drvien Design. Prosto z "pola bitwy", ponieważ mam to szczęście być architektem w projekcie, w którym wykorzystujemy DDD jako sposób projektowania poszczególnych modułów. Uparłem się na to DDD, to teraz mam.
Architektura 5662 dni, 20 godzin, 33 minuty temu 59 źrodło rozwiń