@Ilythiiri: Niestety. On od początku jest. Jestem programistą C# i głównie w takich obszarach się poruszam. Czasami wrzucam JavaScript czy ogólne wzorce projektowe programistyczne np. z Javy, bo tam też jest dosyć aktywne środowisko (jeśli nie bardziej), ale to dalej pozostaje tag zorientowany na C# i .NET.
  • Odpowiedz
@Maav: @markaron: Zapominacie o podstawowej rzeczy: repozytorium nie ma nas oddzielić od ORMa. Nie ma nas oddzielić od bazy. Ono ma nas oddzielić od persystencji.

Kto powiedział, że dane muszą być zapisywane w bazie?

Budujesz warstwę modelu. Potrzebujesz gdzieś przechowywać obiekty. Nie interesuje Cię na na razie gdzie, bo to szczegół techniczny, a
  • Odpowiedz
@MacDada:

To, że rozwijacie system od 8-u lat i nie ma on Repository nie oznacza, że Wasz kod musi nie działać. Nie mówimy o tym „czy działa” tylko wchodzimy na poziom wyżej, oceniamy jakość kodu (a do tego „działanie” jest podstawą, a potem pojawiają się kolejne czynniki oceny: w tym potencjał zmiany, SOLID, itp.).


Doskonale rozumiem dbałość o jakość kodu (sam jestem tego wielkim orędownikiem) i wartość dodaną jaką Repository
  • Odpowiedz
@Maav: btw MS daje darmową półroczną subskrypcję na Pluralsighta "while supplies last", może będziesz zainteresowany (w tym programie dla developerów eee Dev Essential)
  • Odpowiedz
Od pewnego czasu w swoich projektach do dependency injection używam mega uproszczonej wersji ServiceLocator. Wygląda to mniej więcej tak (c#)

internal abstract class IServices

{

public virtual Collaborator Collaborator { get; protected set; };

...
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@sasik520: Nie znam Twoich wymagań, ale dajmy prosty przykład:
Serwis A używa Serwisu B.
Jak to rozwiązujesz? Strzelam, że masz tam po prostu

class
  • Odpowiedz
@sasik520:
Obczaj sobie to. Autorzy przechodzą przez często spotykane zagadnienia i wyjaśniają dlaczego tak jest źle i jak temu zaradzić. Ma to już parę lat, ale myślę, że za mocno się nie zestarzało :)
  • Odpowiedz
Mam pobraną z bazy danych encję (w stylu Data Transfer Object czy też Value Object). Różne kombinacje kilku pól mogą oznaczać pewne konkretne stany tej encji (np. ustawiona data w polu cancelled oznacza, że encja ma status cancelled, chyba, że ma również ustawioną datę w polu accepted - wówczas ma status finished - i tym podobne zależności).
Jak się nazywa wzorzec obiektu, który bierze taką encję i zwraca konkretny status?
#
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@edgar_k: w tym przypadku - "status" jest po prostu jednowyrazową informacją dla użytkownika.
Ale powiedzmy, że chodzi o obiekt "faktura". W bazie są pola "netto" i "vat", ale dla użytkownika ważne jest też (nieistniejące, wyliczane na bieżąco) pole "total".
  • Odpowiedz
Mam do rozwiązania problem: piszę prosty interpreter komend pozwalający na pewną, niewielką dowolność w ich składni. Jednak nie ich składnia jest problemem, a zestaw dostępnych komend w danym momencie. Zależnie od kontekstu w którym się znajduje użytkownik, ma on dostępne dodatkowe komendy. Kontekst zmienia się często, więc zestaw komend jest dosyć dynamicznie budowany.
Znacie jakieś typowe rozwiązanie takiego problemu? Myślicie, że wzorzec Command lub Chain of Responsibility dałby radę o ile zestaw
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Grizwold: No to niestety nic nie polecę poza Googlem – jestem PEWIEN, że są biblioteki ułatwiające pisanie takich rzeczy (skoro są dla #nieprogramowanie #php to tym bardziej będą dla Javy).

Co do wzorców, akurat Command+CommandHandler możesz „zautomatyzować” z CommandBus – czyli robisz szynę ogólną i podpinasz pod nie Handlery – a każdy Handler rozpoznaje czy wspiera Commanda i jeśli tak, to go obsługuje.

W ten sposób
  • Odpowiedz