WCF - framework używany przy komunikacji, budowaniu rozproszonych systemów, czyli w zasadzie serwisów. ABC - Address, Binding, Contract SOAP - można wysyłać dane dowolnym protokołem, nie tylko http, wiadomości są zapisane pod postacią XMLi. REST - bazuje na adresach URL na które wysyłamy zapytania które zazwyczaj są Jsonem (mogą być też xml, plain text albo binary data). Wysyłamy maetowy protokołu HTTP Get - pobieranie danych Post - dodanie nowego wpisu - np utworzenie nowego wpisu w systemie. Put - Update wpisu Delete - kasowanie Fabryka - Słuzy do tworzenia obiektów ze sobą powiązanych np interfejsem Builder - ułatwia tworzenie złożonych obiektów lazy initialization - opżnia tworzenie obiektu do momentu w którym jest on potrzebny Singleton/Multition - Umożliwiają tworzenie określonej liczby obiektów Dekorator - sposób wykorzystujący dziedziczenie do dodawania nowych funkcji do obiektu Fasada - sposób na ukrycie/ułatwoienie kożystania z bardzo złożonego kodu poprzez przygotowanie uproszczonej wersji api Adapter/wrapper - umożliwia Używanie klas które mają niekompatybilne interfejsy poprzes stworzenie jednego wspólnego (android.UseUSB() i Iphone.UseLightning() jako phoneAdapter.UseWiredConnection()) Testy Jednostkowe - testy mające na celu przetestowanie poszczególnych funkcji systemu, pisane przez programistów refleksja - RTTI - pozwala przeglądać obiekty podczas runtime bez znajomości budowy podczas budowy kodu SOLID Single responsibility - klasa powinna mieć tylko jeden cel / zadanie. Open–closed - obiekty powinny być otwarte na rozszeżenie ale zamknięte na modyfikacje Liskov substitution - obiekty powinny być zamienialne na inne nadrzędnego typu bez ich znajomości Interface segregation - Wiele interfejsów jest lepszych niz jeden genralny Dependency inversion - Wysoko poziomowe moduły nie powinny mieć twardych zależności do niskopoziomowych modułów. Zarówno jedne jak i 2 powinny używać abstrakcji Event Aggregator - daje mozliwość subskrybowania i publikowania eventów Bindings wpf = OneWay TwoWay OneWayToSource OneTime Dependancy injection - wstrzykiwanie zależności polega na podaniu obiektowi nadrzędnemu obiektów których wymaga do pracy, Dependency inversion z tego kożysta Attached property & dependancy property - rozszeżenie DependencyObject. Attached property - Prxzyłączają się propertki z wyższych w struktórze wpfa (grid.row) dependancy property - rejestrowanie własnych proeprtek w kontrolkach. Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early. Klasa aby wejśc do dictionary musi zapewnic hash; ANTS profiler - badanie wydajności kodu