Seemann Mark
Sortowanie
Źródło opisu
Książki, czasopisma i zbiory specjalne
(2)
Forma i typ
Książki
(2)
Publikacje fachowe
(2)
Dostępność
dostępne
(1)
tylko na miejscu
(1)
Placówka
Wypożyczalnia
(1)
Biblioteka WEAiI
(1)
Autor
Berłowski Paweł
(189)
Kotowski Włodzimierz
(179)
Praca zbiorowa
(157)
Skoczylas Zbigniew
(152)
Stiasny Grzegorz
(143)
Seemann Mark
(-)
Sadlik Ryszard
(142)
Blum Maciej
(140)
Michalski Dariusz
(134)
Lewandowski Maciej
(131)
Majewski Jerzy S
(131)
Etzold Hans-Rüdiger
(120)
Leśniewski Mariusz
(116)
Gewert Marian
(108)
Maruchin Wojciech
(107)
Guryn Halina
(105)
Traczyk Wojciech
(101)
Chalastra Michał
(99)
Kardyś Marta
(97)
Marx Karl (1818-1883)
(94)
Nazwisko Imię
(94)
Berkieta Mateusz
(93)
Tomczak Małgorzata
(93)
Polkowski Sławomir
(92)
Engels Friedrich (1820-1895)
(91)
Jakubiec Izabela
(90)
Kotapski Roman
(90)
Rybicki Piotr
(90)
Krysicki Włodzimierz (1905-2001)
(88)
Teleguj Kazimierz
(88)
Kapołka Maciej
(86)
Mikołajewska Emilia
(84)
Zaborowska Joanna
(81)
Piątek Grzegorz
(79)
Rudnicki Bogdan
(79)
Starosolski Włodzimierz (1933- )
(79)
Górczyński Robert
(78)
Meryk Radosław
(78)
Polit Ryszard
(77)
Mroczek Wojciech
(76)
Kulawik Marta
(74)
Mycielski Krzysztof
(74)
Myszkorowski Jakub
(73)
Konopka Eduard
(71)
Jabłoński Marek
(70)
Bielecki Jan (1942-2001)
(69)
Knosala Ryszard (1949- )
(68)
Rajca Piotr (1970- )
(68)
Rymarz Małgorzata
(68)
Walczak Krzysztof
(68)
Walkiewicz Łukasz
(68)
Wiecheć Marek
(68)
Jabłoński Adam
(67)
Laszczak Mirosław
(66)
Piwko Łukasz
(66)
Wodziczko Piotr
(65)
Dziedzic Zbigniew
(64)
Sidor-Rządkowska Małgorzata
(64)
Żakowski Wojciech (1929-1993)
(64)
Pasko Marian
(62)
Włodarski Lech (1916-1997)
(62)
Czakon Wojciech
(61)
Leyko Jerzy (1918-1995)
(61)
Jankowski Mariusz
(60)
Kostecka Alicja
(60)
Lenin Włodzimierz (1870-1924)
(60)
Paszkowska Małgorzata
(60)
Wróblewski Piotr
(60)
Karpińska Marta
(59)
Próchnicki Wojciech
(59)
Rogala Elżbieta
(59)
Bielecki Maciej
(57)
Jelonek Jakub
(57)
Malkowski Tomasz
(57)
Pilch Piotr
(57)
Rauziński Robert (1933- )
(57)
Gawrońska Joanna
(56)
Ajdukiewicz Andrzej (1939- )
(55)
Cieślak Piotr
(55)
Draniewicz Bartosz
(55)
Godek Piotr
(55)
Osiński Zbigniew (1926-2001)
(55)
Jasiński Filip
(54)
Kuliński Włodzisław
(54)
Suchodolski Bogdan (1903-1992)
(54)
Forowicz Krystyna
(53)
Klupiński Kamil
(53)
Szkutnik Leon Leszek
(52)
Zdanikowski Paweł
(52)
Wantuch-Matla Dorota
(51)
Barowicz Marek
(50)
Trammer Hubert
(50)
Walczak Tomasz
(50)
Watrak Andrzej
(50)
Zgółkowa Halina (1947- )
(50)
Barańska Katarzyna
(49)
Czajkowska-Matosiuk Katarzyna
(49)
Jurlewicz Teresa
(49)
Pikoń Andrzej
(49)
Szargut Jan (1923- )
(49)
Chojnacki Ireneusz
(48)
Rok wydania
2020 - 2024
(2)
Okres powstania dzieła
2001-
(2)
Kraj wydania
Polska
(2)
Język
polski
(2)
Odbiorca
Programiści
(2)
Temat
Heurystyka (informatyka)
(1)
Programowanie (informatyka)
(1)
Programowanie obiektowe
(1)
Programy komputerowe
(1)
Wstrzykiwanie zależności
(1)
Gatunek
Podręcznik
(2)
Dziedzina i ujęcie
Informatyka i technologie informacyjne
(2)
2 wyniki Filtruj
Książka
W koszyku
W książce także ISBN oryginału.
Bibliografia, netografia na stronach 549-551. Indeks.
Dla średniozaawansowanych programistów języków obiektowych.
Część 1 UmiejsCowienie wstrzykiwania zależnośCi na mapie 1 Podstawy Wstrzykiwania zależności: co, jak i dlaczego 1.1. Pisanie utrzymywalnego kodu Powszechne mity na temat DI Rozumienie celu DI 1.2. Prosty przykład: Hello DI! Kod Hello DI! Korzyści (płynące) z DI 1.3. Co wstrzykiwać, a czego nie wstrzykiwać STABILNE ZALEŻNOŚCI NIESTABILNE ZALEŻNOŚCI 1.4. Zakres DI KOMPOZYCJA OBIEKTOWA CYKL ŻYCIA OBIEKTU PRZECHWY-TYWANIE DI w trzech wymiarach 1.5. Konkluzje 2 Pisanie ściśle powiązanego kodu 2.1. Budowanie ściśle powiązanej aplikacji Poznajmy Mary Rowan Tworzenie warstwy danych Tworzenie warstwy domeny Tworzenie warstwy interfejsu użytkownika 2.2. Ocena aplikacji ściśle powiązanej Ocena grafu zależności Ocena tworzenia strukturalności 2.3. Analiza braku strukturalności Analiza wykresu zależności Analiza interfejsu dostępu do danych Inne kwestie 2.4. Konkluzja 3 Pisanie luźno powiązanego kodu 3.1. Ponowne budowanie aplikacji e-commerce Budowanie bardziej utrzymywanego UI Budowanie niezależnego modelu domeny Budowanie nowej warstwy dostępu do danych Implemen-tacja Adaptera IUserContext specyficznego dla ASP.NET Core Tworzenie aplikacji w PODSTAWIE KOMPOZYCJI 3.2. Analiza luźno powiązanej implementacji Zrozumienie interakcji między komponentami Analizowanie nowego grafu zależności Część 2 katalog 4 Wzorce DI 4.1. PODSTAWA KOMPOZYCJI Jak działa PODSTAWA KOMPOZYCJI Użycie KONTENERA DI w PODSTAWIE KOMPOZYCJI Przykład: Implementowanie PODSTAWY KOMPOZYCJI przy użyciu CZYSTEGO DI Pozorna eksplozja zależności 4.2. WSTRZYKIWANIE KONSTRUKTOREM Jak działa WSTRZYKIWANIE KONSTRUKTOREM Kiedy używać WSTRZYKIWANIA KONSTRUKTOREM Znany sposób użycia WSTRZYKIWANIA KONSTRUKTOREM Przykład: Dodawanie przeliczania walut do wyróżnionych produktów 4.3. WSTRZYKIWANIE METODĄ Jak działa WSTRZYKIWANIE METODĄ Kiedy używać WSTRZYKIWANIA METODĄ Znany sposób użycia WSTRZYKIWANIA METODĄ Przykład: Dodawanie przewalutowania do ENCJI Product 4.4. WSTRZYKIWANIE WŁAŚCIWOŚCIĄ Jak działa WSTRZYKIWANIE WŁAŚCIWOŚCIĄ Kiedy używać WSTRZYKIWANIA WŁAŚCIWOŚCIĄ Znane zastosowania WSTRZYKIWANIA WŁAŚCIWOŚCIĄ Przykład: WSTRZYKIWANIE WŁAŚCIWOŚCIĄ jako model rozszerzalności biblioteki do ponownego użycia 4.5. Wybieranie wzorca (do pracy) 5 Antywzorce DI 5.1. ANTYWZORZEC CONTROL FREAK Przykład: CONTROL FREAK przez nowo powstające ZALEŻNOŚCI Przy-kład: CONTROL FREAK przez fabryki Przykład: CONTROL FREAK przez przeciążone konstruktory Analiza CONTROL FREAK 5.2. LOKALIZATOR USŁUG Przykład: ProductService przy użyciu LOKALIZATORA USŁUG Analiza LOKALIZATORA USŁUG 5.3. KONTEKST OTOCZENIA Przykład: Dostęp do czasu przez KONTEKST OTOCZENIA Przykład: Logowanie przez KONTEKST OTOCZENIA Analiza KONTEKSTU OTOCZENIA 5.4. Antywzorzec OGRANICZONEJ KONSTRUKCJI Przykład: Późne wiązanie ProductRepository Analiza OGRANICZONEJ KONSTRUKCJI 6 Zapachy kodu 6.1. Radzenie sobie z zapachem kodu Przesadnego Wstrzykiwania Konstruktorem Rozpoznawanie Przesadnego Wstrzykiwania Konstruktorem Refaktorowanie z Przesadnego Wstrzykiwania Konstruktorem do Usług fasadowych Refaktorowanie z Przesadnego Wstrzykiwania Konstruktorem do zdarzeń domeny 6.2. Nadużywanie Fabryk abstrakcyjnych Nadużywanie Fabryk abstrakcyjnych do pokonania problemów cyklu życia Nadużywanie Fabryk abstrakcyjnych do wybierania ZALEŻNOŚCI na podstawie danych czasu wykonania 6.3. Naprawianie cyklicznych ZALEŻNOŚCI Przykład: Cykliczne ZALEŻNOŚCI spowodowane naruszeniem SRP Analiza cyklu ZALEŻNOŚCI Mary 215 Refaktoring naruszeń SRP, aby rozwiązać cykl ZALEŻNOŚCI Powszechne strategie przerywania cyklów ZALEŻNOŚCI Ostateczność: przerwanie cyklu za pomocą WSTRZYKIWANIA WŁAŚCIWOŚCIĄ Część 3 Czyste Di 7 Kompozycja aplikacji 7.1. Komponowanie aplikacji konsolowej Przykład: Uaktualnienie kursu walut przy użyciu programu UpdateCurrency Budowanie PODSTAWY KOMPOZYCJI programu UpdateCurrency Komponowanie grafów obiektów w CreateCurrencyParser Głębsze spojrzenie na warstwy UpdateCurrency 7.2. Komponowanie aplikacji UWP Kompozycja UWP Przykład: Podłączanie aplikacji typu gruby klient do zarządzania Produktami Implementowanie PODSTAWY KOMPOZYCJI w aplikacji UWP 7.3. Komponowanie aplikacji ASP.NET Core MVC Tworzenie własnego aktywatora kontrolera Konstruowanie własnej warstwy middleware przy użyciu CZYSTEGO DI 8 Cykl życia obiektu 8.1. Zarządzanie CYKLEM ŻYCIA ZALEŻNOŚCI Wprowadzenie ZARZĄDZANIA CYKLEM ŻYCIA Zarządzanie cyklem życia przy użyciu CZYSTEGO DI 8.2. Pracowanie z usuwalnymi ZALEŻNOŚCIAMI Konsumowanie usuwalnych ZALEŻNOŚCI Zarządzanie usuwalnymi ZALEŻNOŚCIAMI 8.3. Katalog STYLÓW ŻYCIA STYL ŻYCIA SINGLETON PRZEJŚCIOWY STYL ŻYCIA ZAKRESOWY STYL ŻYCIA 8.4. Złe wybory STYLU ŻYCIA POJMANE ZALEŻNOŚCI Wybór STYLU ŻYCIA wyciekający do klas konsumujących przez CIEKNĄCE ABSTRAKCJE Powodowanie błędów współbieżności przez łączenie instancji z cyklem życia jednego wątku 9 Przechwytywanie 9.1. Przedstawienie PRZECHWYTYWANIA Wzorzec projektowy dekorator Przykład: Implementowanie audytowania przy użyciu Dekoratora 9.2. Implementowanie ZAGADNIEŃ PRZEKROJOWYCH Przechwytywanie za pomocą wzorca Bezpiecznik Raportowanie wyjątków przy użyciu wzorca Dekorator Zapobieganie nieautoryzowanemu dostępowi do wrażliwej funkcjonalności przy użyciu Dekoratora 10 Rozmyślne Programowanie Aspektowe 10.1.Wprowadzenie do AOP 10.2.Zasady SOLID ZASADA POJEDYNCZEJ ODPOWIEDZIALNOŚCI (SRP) ZASADA OTWARTE/ZAMKNIĘTE (OCP ZASADA PODSTAWIENIA LISKOV (LSP) ZASADA SEGREGACJI INTERFEJSÓW (ISP) ZASADA OD-WRÓCENIA ZALEŻNOŚCI (DIP) Zasady SOLID aPRZECHWYTYWANIE 10.3.SOLID jako sterownik dla AOP Przykład: Implementowanie funkcjonalności związanych z produktem przy użyciu IProductService Analiza IProductService z perspektywy SOLID Ulepszanie projektu przez zastosowanie zasad SOLID Dodanie większej liczby ZAGADNIEŃ PRZEKROJOWYCH 11 Programowanie Aspektowe oparte na narzędziach 11.1.Dynamiczne PRZECHWYTYWANIE Przykład: PRZECHWYTYWANIE za pomocą Castle Dynamic Proxy Analiza dynamicznego PRZECHWYTYWANIA 11.2.Tkanie w czasie kompilacji Przykład: Zastosowanie aspektu transakcji przy użyciu tkania w czasie kompilacji Analiza tkania w czasie kompilacji Część 4 kontenery Di 12 Wprowadzenie do Kontenera DI 12.1.Wprowadzenie do KONTENERÓW Odkrywanie API kontenerów rozwiązującego ZALEŻNOŚCI AUTOMATYCZNE PODŁĄCZANIE Przykład: Implementowanie uproszczonego KONTENERA DI, który wspiera AUTOMATYCZNE PODŁĄCZANIE 12.2.Konfigurowanie KONTENERÓW DI Konfigurowanie kontenerów za pomocą plików konfiguracyjnych Kontenery konfiguracyjne przy użyciu KONFIGURACJI JAKO KODU Konfigurowanie kontenerów przez konwencję przy użyciu AUTOREJESTRACJI Mieszanie i dopasowywanie podejść konfiguracji 12.3.Kiedy używać KONTENERA DI Używanie bibliotek trzecich oznacza koszty i ryzyko CZYSTE DI daje krótszy cykl feedbacku Werdykt: kiedy używać KONTENERA DI 13 Kontener DI Autofac 13.1.Wprowadzenie do Autofac Rozwiązywanie obiektów Konfigurowanie ContainerBuilder 13.2.Zarządzanie cyklem życia Konfigurowanie zakresów instancji Zwalnianie komponentów 13.3.Rejestrowanie trudnych API Konfigurowanie prymitywnych ZALEŻNOŚCI Rejestrowanie obiektów za pomocą bloków kodu 13.4.Praca z licznymi komponentami Wybieranie wśród wielu kandydatów Podłączenie sekwencji Podłączanie Dekoratorów 14. Kontener DI Simple Injector Pisanie Kompozytów 14.1. Wprowadzenie do Simple Injector Tworzenie obiektów Konfigurowanie kontenera 14.2. Zarządzanie cyklem życia Konfigurowanie STYLÓW ŻYCIA Zwalnianie komponentów Zakresy otoczenia Diagnozowanie kontenera pod kątem częstych problemów cyklu życia 14.3. Rejestrowanie trudnych API Konfigurowanie prymitywnych ZALEŻNOŚCI Wyciąganie prymitywnych ZALEŻNOŚCI do Obiektów Parametrów Rejestrowanie obiektów za pomocą bloków kodu 14.4. Praca z licznymi komponentami Wybieranie spośród licznych kandydatów Podłączanie sekwencji Podłączanie Dekoratorów Podłączanie Kompozytów Sekwencje są strumieniami 15 Kontener DI Microsoft.Extensions.DependencyInjection 15.1.Wprowadzenie do Microsoft.Extensions.DependencyInjection Rozwiązywanie obiektów Konfigurowanie ServcieCollection 15.2.Zarządzanie cyklem życia Konfigurowanie STYLÓW ŻYCIA Zwalnianie komponentów 15.3.Rejestrowanie trudnych API Konfigurowanie prymitywnych ZALEŻNOŚCI Wyciąganie prymitywnych ZALEŻNOŚCI do Obiektów Parametru Rejestrowanie obiektów za pomocą bloków kodu 15.4.Praca z licznymi komponentami Wybieranie wśród licznych kandydatów Podłączanie sekwencji Podłączanie Dekoratorów Podłączanie Kompozytów
Sygnatura czytelni BWEAiI: XII Ł 198
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 150531 N (1 egz.)
Książka
W koszyku
Na stronie 4. okładki także nazwa wydawcy oryginału: Pearson.
Bibliografia, netografia na stronach 390-400.
Dla doświadczonych programistów.
CZĘŚĆ I. Przyspieszenie Rozdział 1 Sztuka czy nauka? 1.1. Budowanie domu 1.1.1. Problem związany z projektami 1.1.2. Problem etapów 1.1.3. Zależności 1.2. Pielęgnacja ogrodu 1.2.1. Dzięki czemu ogród rośnie? 1.3. W kierunku inżynierii 1.3.1. Oprogramowanie jako rzemiosło 1.3.2. Heurystyki 1.3.3. Wcześniejsze poglądy na inżynierię oprogramowania 1.3.4. Ku inżynierii oprogramowania Rozdział 2. Listy kontrolne 2.1. Pomaganie pamięci 2.2. Lista kontrolna dla nowego kodu źródłowego 2.2.1. Użyj Gita 2.2.2. Zautomatyzuj proces budowania 2.2.3. Włącz wszystkie komunikaty o błędzie 2.3. Włączanie narzędzi kontrolnych dla istniejącego kodu 2.3.1. Stopniowe ulepszenia 2.3.2. Zhakuj swoją organizację Rozdział 3. Radzenie sobie ze złożonością 3.1. Cel 3.1.1. Zrównoważony rozwój 3.1.2. Wartość 3.2. Dlaczego programowanie jest trudne 3.2.1. Metafora mózgu 3.2.2. Więcej kodu się czyta, niż pisze 3.2.3. Czytelność 3.2.4. Praca intelektualna 3.3. W stronę inżynierii oprogramowania 3.3.1. Relacja z informatyką 3.3.2. Ludzki kod Rozdział 4. Pionowy wycinek 4.1. Zacznij od działającego oprogramowania 4.1.1. Od otrzymania danych po ich utrwalenie 4.1.2. Minimalny wycinek pionowy 4.2. Chodzący szkielet 4.2.1. Test charakteryzacyjny 4.2.2. Zasada Arrange-Act-Assert 4.2.3. Moderowanie analizy statycznej 4.3. Podejście outside-in 4.3.1. Przyjmowanie danych w formacie JSON 4.3.2. Przesyłanie rezerwacji 4.3.3. Test jednostkowy 4.3.4. DTO i model domeny 4.3.5. Fałszywy obiekt 4.3.6. Interfejs repozytorium 4.3.7. Tworzenie w repozytorium 4.3.8. Konfiguracja zależności 4.4. Kończenie wycinka 4.4.1. Schemat 4.4.2. Repozytorium SQL 4.4.3. Konfiguracja uwzględniająca bazę danych 4.4.4. Wykonanie testu dymnego 4.4.5. Test graniczny z fałszywą bazą danych Rozdział 5. Enkapsulacja 5.1. Zapisywanie danych 5.1.1. Zasada Transformation Priority Premise 5.1.2. Test parametryzowany 5.1.3. Kopiowanie obiektu DTO do modelu domeny 5.2. Walidacja 5.2.1. Błędne daty 5.2.2. Procedura czerwone, zielone, refaktoryzacja 5.2.3. Liczby naturalne 5.2.4. Prawo Postela 5.3. Ochrona niezmienników 5.3.1. Zawsze poprawny Rozdział 6. Triangulacja 6.1. Pamięć krótkoterminowa kontra długoterminowa 6.1.1. Zastany kod i pamięć 6.2. Wydajność 6.2.1. Zbyt wiele rezerwacji 6.2.2. Adwokat diabła 6.2.3. Istniejące rezerwacje 6.2.4. Adwokat diabła kontra czerwone, zielone, refaktoryzacja 6.2.5. Kiedy jest wystarczająco wiele testów? Rozdział 7. Dekompozycja 7.1. Psucie się kodu 7.1.1. Wartości progowe 7.1.2. Złożoność cyklomatyczna 7.1.3. Reguła 80/24 7.2. Kod, który mieści się w mózgu 7.2.1. Kwiat sześciokątów 7.2.2. Spójność 7.2.3. Zazdrość o kod 7.2.4. Między wierszami 7.2.5. Parsuj, nie waliduj 7.2.6. Architektura fraktalna 7.2.7. Liczba zmiennych Rozdział 8. Projektowanie API 8.1. Zasady projektowania API 8.1.1. Afordancja 8.1.2. Poka-Yoke 8.1.3. Pisz dla czytelników 8.1.4. Przedkładaj dobrze napisany kod nad komentarze 8.1.5. Zastąpienie nazw znakami x 8.1.6. Rozdzielenie poleceń i zapytań 8.1.7. Hierarchia komunikacji 8.2. Przykładowy projekt API 8.2.1. Maître D' 8.2.2. Interakcja z opakowanym obiektem 8.2.3. Szczegóły implementacyjne Rozdział 9. Praca zespołowa 9.1. Git 9.1.1. Komunikaty rewizji 9.1.2. Ciągła integracja 9.1.3. Małe rewizje 9.2. Zbiorowa własność kodu 9.2.1. Programowanie w parach 9.2.2. Mob Programming 9.2.3. Opóźnienia w inspekcji kodu 9.2.4. Odrzucenie zmian 9.2.5. Recenzje kodu 9.2.6. Żądania aktualizacji CZĘŚĆ II. Zrównoważony rozwój Rozdział 10. Rozbudowywanie kodu 10.1. Flagi funkcji 10.1.1. Flaga kalendarza 10.2. Wzorzec dusiciela 10.2.1. Dusiciel na poziomie metody 10.2.2. Dusiciel na poziomie klasy 10.3. Wersjonowanie 10.3.1. Wcześniejsze ostrzeżenie Rozdział 11. Edycja testów jednostkowych 11.1. Refaktoryzacja testów jednostkowych 11.1.1. Zmiana sieci bezpieczeństwa 11.1.2. Dodawanie nowego kodu testowego 11.1.3. Osobna refaktoryzacja testów i kodu produkcyjnego 11.2. Testy kończące się niepowodzeniem Rozdział 12. Rozwiązywanie problemów 12.1. Zrozumienie 12.1.1. Metoda naukowa 12.1.2. Upraszczanie 12.1.3. Gumowa kaczuszka 12.2. Defekty 12.2.1. Odtwórz błędy za pomocą testów 12.2.2. Wolne testy 12.2.3. Defekty niedeterministyczne 12.3. Bisekcja 12.3.1. Bisekcja za pomocą Gita Rozdział 13. Separacja pojęć 13.1. Kompozycja 13.1.1. Kompozycja zagnieżdżona 13.1.2. Kompozycja sekwencyjna 13.1.3. Przezroczystość referencyjna 13.2. Kwestie przekrojowe 13.2.1. Zapisywanie zdarzeń w dziennikach 13.2.2. Dekorator 13.2.3. Co rejestrować w dziennikach Rozdział 14. Rytm 14.1. Osobisty rytm 14.1.1. Dzielenie czasu na bloki 14.1.2. Rób przerwy 14.1.3. Wykorzystuj czas celowo 14.1.4. Pisanie bezwzrokowe 14.2. Rytm zespołowy 14.2.1. Regularne aktualizowanie zależności 14.2.2. Zaplanuj inne rzeczy 14.2.3. Prawo Conwaya Rozdział 15. Typowi podejrzani 15.1. Wydajność 15.1.1. Spuścizna z przeszłości 15.1.2. Czytelność 15.2. Bezpieczeństwo 15.2.1. Metoda STRIDE 15.2.2. Spoofing 15.2.3. Tampering 15.2.4. Repudiation 15.2.5. Information Disclosure 15.2.6. Denial of service 15.2.7. Elevation of privilege 15.3. Inne techniki 15.3.1. Testowanie oparte na właściwościach 15.3.2. Behawioralna analiza kodu Rozdział 16. Wycieczka 16.1. Nawigacja 16.1.1. Ogólne spojrzenie 16.1.2. Organizacja pliku 16.1.3. Znajdowanie szczegółów 16.2. Architektura 16.2.1. Monolit 16.2.2. Cykle 16.3. Użycie 16.3.1. Uczenie się na podstawie testów 16.3.2. Słuchaj swoich testów
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 152763 N (1 egz.)
Pozycja została dodana do koszyka. Jeśli nie wiesz, do czego służy koszyk, kliknij tutaj, aby poznać szczegóły.
Nie pokazuj tego więcej

Deklaracja dostępności