Programiści
Sortowanie
Źródło opisu
Książki, czasopisma i zbiory specjalne
(184)
Forma i typ
Książki
(183)
Publikacje fachowe
(180)
Publikacje dydaktyczne
(44)
Poradniki i przewodniki
(7)
Publikacje naukowe
(3)
Dostępność
tylko na miejscu
(166)
dostępne
(33)
wypożyczone
(3)
nieokreślona
(2)
Placówka
Wypożyczalnia
(35)
Biblioteka WB
(1)
Biblioteka Międzywydziałowa
(4)
Biblioteka WEAiI
(164)
Autor
Górczyński Robert
(17)
Rajca Piotr (1970- )
(13)
Watrak Andrzej
(12)
Bąbol Krzysztof
(10)
Piwko Łukasz
(10)
Walczak Tomasz
(9)
Meryk Radosław
(7)
Zatorska Joanna
(7)
Jońca Rafał
(6)
Lachowski Lech
(6)
Martin Robert C
(6)
Moch Wojciech
(6)
Szczepaniak Mikołaj
(5)
Walczak Tomasz (tłumacz)
(5)
Gutowski Maksymilian
(4)
Horstmann Cay S. (1959- )
(4)
Hubisz Jakub
(4)
Janusz Jacek
(3)
Sawka Krzysztof
(3)
Szeremiota Przemysław
(3)
Albahari Ben
(2)
Albahari Joseph
(2)
Beda Joe (1975- )
(2)
Blandy Jim
(2)
Bochenek Adam
(2)
Brikman Yevgeniy
(2)
Burns Brendan (1976- )
(2)
Chaniewska Maria
(2)
Chounlamany-Turalska Natalia
(2)
Farley David (1959- )
(2)
Freeman Adam (1972- )
(2)
Gee Trisha
(2)
Hightower Kelsey (1981- )
(2)
Kubiak Mirosław J
(2)
Lott Steven F. (1956- )
(2)
Lutz Mark
(2)
Matuk Konrad
(2)
McKinney Wes
(2)
Melé Antonio
(2)
Mizerska Anna
(2)
Nowocień Artur
(2)
Orendorff Jason
(2)
Pilch Piotr
(2)
Price Mark J
(2)
Pętlicki Marek
(2)
Schildt Herbert (1951- )
(2)
Seemann Mark
(2)
Trojan Anna
(2)
Ziadé Tarek
(2)
Alexandrescu Andrei
(1)
Ameisen Emmanuel
(1)
Amuthan G
(1)
Andriesse Dennis
(1)
Ater Tal
(1)
Atienza Rowel
(1)
Badhwar Saurabh
(1)
Bakkum Peter
(1)
Ball Corey J
(1)
Banker Kyle (1980- )
(1)
Baranowski Krzysztof (programista)
(1)
Barroso Luiz André
(1)
Barth Antje
(1)
Bass Len
(1)
Bates Bert
(1)
Berg Hansen Kim
(1)
Bird Andrew
(1)
Bloch Joshua
(1)
Bobak Andrzej
(1)
Borys Szymon
(1)
Bosagh Zadeh Reza
(1)
Brooks Frederick P
(1)
Brown Ethan (1975- )
(1)
Bruchet Michel
(1)
Buczyński Sebastian (informatyka)
(1)
Buelta Jaime
(1)
Băncilă Marius
(1)
Callaway John
(1)
Candel Jose Manuel Ortega
(1)
Caya Andrew
(1)
Celko Joe
(1)
Chacon Scott
(1)
Chandra K S Bharath
(1)
Chebbi Lamis
(1)
Chell Dominic
(1)
Chiarelli Andrea
(1)
Chiaretta Simone
(1)
Choi David
(1)
Chollet François
(1)
Ciborowska Agnieszka (informatyk)
(1)
Cichocki Marcin
(1)
Cieślak Piotr
(1)
Cleary Stephen
(1)
Clements Paul (1955- )
(1)
Coldwind Gynvael
(1)
Cole Matt R
(1)
Colley Shaun
(1)
Collins-Sussman Ben
(1)
Costa-Gascón Valentina
(1)
Cutajar James
(1)
Daubois Alexandre
(1)
Rok wydania
2020 - 2024
(122)
2010 - 2019
(62)
Okres powstania dzieła
2001-
(178)
2001
(2)
1901-2000
(1)
1945-1989
(1)
Kraj wydania
Polska
(184)
Język
polski
(184)
Odbiorca
Szkoły wyższe
(1864)
Menedżerowie
(246)
Programiści
(184)
Przedsiębiorcy
(105)
Fizjoterapeuci
(100)
Inżynierowie
(84)
Inżynierowie budownictwa
(78)
Informatycy
(74)
Lekarze
(57)
Technikum
(49)
Nauczyciele
(43)
Szkoły zawodowe
(43)
Prawnicy
(39)
Urzędnicy
(37)
Szkoły średnie
(34)
Trenerzy i instruktorzy sportowi
(31)
Pracownicy naukowi
(29)
Księgowi
(28)
Specjaliści ds. marketingu
(25)
Architekci
(23)
Ekonomiści
(23)
Pracodawcy
(20)
Biegli rewidenci
(19)
Logistycy
(19)
Analitycy ekonomiczni
(18)
Psycholodzy
(18)
Rzeczoznawcy budowlani
(18)
Specjaliści ds. kadr
(17)
Elektrycy
(16)
Inwestorzy indywidualni
(15)
Ortopedzi
(15)
Lekarze rodzinni
(14)
Adwokaci
(13)
Budowlani
(13)
Doradcy personalni
(13)
Radcy prawni
(13)
Rodzice
(13)
Pielęgniarki i pielęgniarze
(12)
Sportowcy
(12)
Studenci
(12)
Analitycy danych
(11)
Nauczyciele akademiccy
(11)
Rehabilitanci
(11)
Inspektorzy bhp
(10)
Szkoły ponadgimnazjalne
(10)
Handlowcy
(9)
Nauczyciele wychowania fizycznego
(9)
Pedagodzy
(9)
Poziom nauczania Szkoły wyższe
(9)
Pracownicy samorządowi
(9)
Psychoterapeuci
(9)
Dietetycy
(8)
Dyrektorzy HR
(8)
Inspektorzy budowlani
(8)
Pracownicy banków
(8)
Szkoły branżowe I stopnia
(8)
Sędziowie
(8)
Terapeuci zajęciowi
(8)
Zarządcy nieruchomości
(8)
Aplikanci
(7)
Coachowie
(7)
Dzieci
(7)
Elektronicy
(7)
Farmaceuci
(7)
Inżynierowie środowiska
(7)
Policjanci
(7)
Szkoły policealne
(7)
18+
(6)
Administratorzy systemów
(6)
B1 (poziom biegłości językowej)
(6)
Dorośli
(6)
Logopedzi
(6)
Menedżerowie produkcji
(6)
Monterzy urządzeń energii odnawialnej
(6)
Neurolodzy
(6)
Politycy
(6)
Specjaliści ds. controllingu
(6)
Strażacy
(6)
Testerzy oprogramowania komputerowego
(6)
Doradcy finansowi
(5)
Dziennikarze
(5)
Elektrycy budowlani
(5)
Energetycy
(5)
Kardiolodzy
(5)
Kierownicy budów
(5)
Kierownicy projektów
(5)
Masażyści
(5)
Młodzież
(5)
Pracownicy socjalni
(5)
Spedytorzy
(5)
Szkoły podstawowe
(5)
A2 (poziom biegłości językowej)
(4)
Cudzoziemcy
(4)
Dietetycy i żywieniowcy
(4)
Doradcy zawodowi
(4)
Ekolodzy
(4)
Graficy
(4)
Główni księgowi
(4)
Inżynierowie elektrycy
(4)
Kierowcy zawodowi
(4)
Temat
Programowanie (informatyka)
(82)
Python (język programowania)
(22)
Programy komputerowe
(19)
C++ (język programowania)
(15)
Java (język programowania)
(14)
Aplikacja internetowa
(12)
C# (język programowania)
(12)
Języki programowania
(9)
Uczenie maszynowe
(9)
Przetwarzanie w chmurze
(8)
Sztuczna inteligencja
(8)
Programowanie obiektowe
(7)
Baza danych
(6)
Deep learning
(6)
JavaScript (język programowania)
(6)
Programowanie zwinne
(6)
SQL (język zapytań)
(6)
Algorytmy
(5)
Automatyzacja
(5)
Bezpieczeństwo teleinformatyczne
(5)
Aplikacje internetowe
(4)
Architektura oprogramowania
(4)
C (język programowania)
(4)
Git (program komputerowy)
(4)
GitHub (serwis internetowy)
(4)
JavaScript
(4)
Kod źródłowy
(4)
Kontrola wersji (informatyka)
(4)
Optymalizacja
(4)
Programowanie
(4)
Projektowanie
(4)
Przetwarzanie danych
(4)
Sieci neuronowe
(4)
Systemy informatyczne
(4)
Zarządzanie projektami
(4)
.NET
(3)
ASP.NET
(3)
Analiza danych
(3)
AngularJS (język programowania)
(3)
Automatyka
(3)
Biblioteka (informatyka)
(3)
Cyberbezpieczeństwo
(3)
Czwarta rewolucja przemysłowa
(3)
DDD
(3)
Django (framework)
(3)
Framework (platforma programistyczna)
(3)
Haking
(3)
Internet rzeczy
(3)
Kubernetes (oprogramowanie)
(3)
PHP (język programowania)
(3)
Programiści
(3)
Programowanie współbieżne
(3)
React.js
(3)
TypeScript
(3)
Wzorzec projektowy (informatyka)
(3)
Excel
(2)
Informatyzacja
(2)
Interfejsy użytkowników (systemy informatyczne)
(2)
Kontener (struktura danych)
(2)
MySQL (program komputerowy)
(2)
Oprogramowanie open source
(2)
Platforma internetowa
(2)
Programowanie funkcyjne (informatyka)
(2)
Projektowanie stron WWW
(2)
Rust (język programowania)
(2)
Sprzęt komputerowy
(2)
Sterowniki programowalne
(2)
Strony WWW
(2)
Struktury danych
(2)
Sztuczna sieć neuronowa
(2)
TDD
(2)
TypeScript (język programowania)
(2)
Visual Studio
(2)
Zwinne zarządzanie
(2)
API (interfejs)
(1)
Administracja systemem
(1)
Amazon (platforma internetowa)
(1)
Analiza binarna (informatyka)
(1)
Android (system operacyjny)
(1)
Angular (framework)
(1)
Aplikacje mobilne
(1)
Arkusz kalkulacyjny
(1)
Bazy danych
(1)
Bezpieczeństwo systemów
(1)
Chatbot
(1)
Cyberprzestępczość
(1)
Data science
(1)
DevOps
(1)
Docker (oprogramowanie)
(1)
F# (język programowania)
(1)
Flutter (framework)
(1)
Grafika komputerowa
(1)
Gry komputerowe
(1)
HTML (język znaczników)
(1)
Hakerzy
(1)
Heurystyka (informatyka)
(1)
Informatyka
(1)
Infrastruktura informatyczna
(1)
Interfejs użytkownika
(1)
Internet
(1)
Temat: czas
2001-
(1)
Gatunek
Podręcznik
(144)
Poradnik
(27)
Opracowanie
(4)
Kompendia i repetytoria
(3)
Ćwiczenia i zadania
(3)
Monografia
(1)
Poradniki
(1)
Dziedzina i ujęcie
Informatyka i technologie informacyjne
(180)
Inżynieria i technika
(6)
Zarządzanie i marketing
(6)
Edukacja i pedagogika
(3)
Matematyka
(3)
Praca, kariera, pieniądze
(1)
184 wyniki Filtruj
Książka
W koszyku
Część I Kontrola wersji z Gitem Rozdziali. Systemy kontroli wersji Czym jest kontrola wersji? Dlaczego potrzebujesz takiego systemu? Jaki mamy wybór? Lokalne systemy kontroli wersji Scentralizowane systemy kontroli wersji Rozproszone systemy kontroli wersji Czym jest Git? Co Git potrafi? Jak działa Git? Jak przebiega praca w Gicie? Rozdział 2. Instalacja i konfiguracja Instalacja Windows Mac Linux Konfiguracja Gita Rozdział 3. Początki Repozytoria Katalog roboczy Przechowalnia Commity Z Gitem na głęboką wodę Rozdział 4. Z Gitem na głęboką wodę Ignorowanie plików Przeglądanie logów i historii zmian Przeglądanie poprzednich wersji Przeglądanie aktualnych zmian Rozdział 5. Commity Trzy stany Gita Poruszanie się po wersjach Cofanie commita Modyfikowanie commita Poprawianie commita Rozdział 6. Git — najlepsze sposoby postępowania Opisy commitów Zatwierdzanie — najlepsze praktyki Co należy robić? Czego nie należy robić? Jak działa Git — powtórka Rozdział 7. Zdalny Git Dlaczego repozytoria zdalne? Jak to działa? Pójdźmy na łatwiznę Część II Zarządzanie projektami z GitHubem Rozdział 8. GitHub — podstawy GitHub — przegląd GitHub a open source Użytek osobisty GitHub dla przedsiębiorstw Rozdział 9. GitHub — szybki start Zarządzanie projektem Jak działają repozytoria zdalne? Łączenie repozytoriów Wypychanie do repozytoriów zdalnych Rozdział 10. Podstawy zarządzania projektami — zgłoszenia Czym są zgłoszenia Wydanie zgłoszenia Interakcja ze zgłoszeniem Etykiety Przydziały Łączenie zgłoszeń z commitami Praca nad commitem Odwołania do zgłoszeń Zamykanie zgłoszenia przy użyciu słów kluczowych Rozdział 11. Zarządzanie projektami na poważnie — gałęzie Obieg pracy na GitHubie Gałęzie Tworzenie gałęzi Przełączanie się na inną gałąź Usuwanie gałęzi Scalanie gałęzi Wypychanie gałęzi do zdalnego repozytorium Rozdział 12. Sprawniejsze zarządzanie projektami — puli requesty Dlaczego należy używać puli requestów? Puli requesty — przegląd Ściąganie Co robi puli reąuest? Tworzenie puli requesta Przeglądy kodu Przeprowadź przegląd kodu Zostaw komentarz Aktualizowanie puli reąuesta Część III Praca zespołowa w Gicie Rozdział13. Konflikty Jak działa scalanie? Ściąganie Scalanie fast-forward Konflikty scalania Ściąganie commitów z origin Rozwiązywanie konfliktów scalania Rozdział 14. Więcej o konfliktach Wypychanie po rozstrzygnięciu konfliktu Przeglądanie zmian przed scaleniem Sprawdź lokalizację gałęzi Przejrzyj różnice na gałęziach Zrozumieć scalanie Ograniczanie konfliktów Dobry obieg pracy Przerwanie scalania Wizualne narzędzia Gita Rozdział 15. Narzędzia GUI Gita Domyślne narzędzia Commitowanie: Git GUI Przeglądanie: gitk Narzędzia IDE Visual Studio Code Atom Specjalistyczne narzędzia GitHub Desktop GitKraken Rozdział 16. Zaawansowane polecenia Gita Cofanie zmian Składowanie Resetowanie Część IV Dodatkowe zasoby Rozdział 17. Więcej o GitHubie Wiki Strony GitHuba Wydania Tablice projektowe Rozdział 18. Praca z Gitem — częste problemy Repozytorium Zaczynanie od nowa Zmiana repozytorium origin Katalog roboczy Git diff jest pusty Cofanie zmian w pliku Commity Błąd w commicie Cofanie commitów Gałęzie Odłączony HEAD Praca na niewłaściwej gałęzi Pobieranie zmian z gałęzi rodzica Rozbieżność gałęzi Rozdział 19. Git i GitHub — obieg pracy Jak korzystać z tego obiegu pracy? Obieg pracy z GitHubem Każdy projekt zaczyna się od projektu na GitHubie Każde działanie zaczyna się od zgłoszenia Nie wolno wypychać zmian bezpośrednio na gałąź główną Każde scalenie z gałęzią główną wymaga PR-a Dokumentuj kod w wiki Obieg pracy z Gitem Orientuj się, gdzie się znajdujesz Ściągaj zmiany z repozytorium zdalnego Dbaj o opisy commitów Nie zmieniaj historii
Sygnatura czytelni BWEAiI: XII F 98
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. 152391 (1 egz.)
Książka
W koszyku
W książce także ISBN oryginału.
Indeks.
1.Rozpoczynanie podróży Tematy Funkcje języka Java Projekt i architektura oprogramowania Zasady SOLID Testowanie 2.Analizator wyciągów bankowych Wymagania wobec projektu analizatora wyciągów bankowych Zasada KISS Zmienne finał Łatwość utrzymania i antywzorce Boska klasa Powielanie kodu Zasada pojedynczej odpowiedzialności Spójność Spójność na poziomie klas Spójność na poziomie metod Zależność Testowanie Testowanie automatyczne Korzystanie z JUnit Pokrycie kodu Wnioski Utrwalenie wiedzy Podsumowanie wyzwania 3.Rozszerzanie analizatora wyciągów bankowych Wymagania wobec rozszerzonego analizatora wyciągów bankowych Zasada otwarte-zamknięte Tworzenie wystąpienia interfejsu funkcjonalnego Wyrażenia lambda Pułapki interfejsów Boski interfejs Zbyt szczegółowy interfejs API jawne kontra niejawne Klasy domenowe czy wartości pierwotne? Wiele eksporterów Wprowadzenie obiektu domenowego Definiowanie i implementowanie odpowiedniego interfejsu Obsługa wyjątków Dlaczego warto używać wyjątków? Wzorce i antywzorce stosowania wyjątków Wytyczne dotyczące stosowania wyjątków Alternatywy dla wyjątków Stosowanie narzędzia kompilacji Dlaczego warto używać narzędzi kompilacji? Korzystanie z Maven Korzystanie z Gradle 4.System zarządzania dokumentami Wymagania wobec systemu zarządzania dokumentami Rozwijanie projektu Importery Klasa Document Atrybuty i hierarchia dokumentów Implementowanie i rejestrowanie importerów Zasada podstawienia Liskov (LSP) Alternatywne podejścia Zastosowanie klasy Importer Opcje związane z zasięgiem i hermetyzacją Rozszerzanie i ponowne używanie kodu Higiena testów Nazewnictwo testów Zachowanie, a nie implementacja Nie powtarzaj się Dobra diagnostyka Testowanie błędów Stałe 5.Silnik reguł biznesowych Wymagania wobec silnika reguł biznesowych Programowanie sterowane testami Dlaczego warto używać techniki TDD? Cykl TDD Stosowanie atrap Dodawanie warunków Modelowanie stanu Wnioskowanie typu zmiennej lokalnej Wyrażenia switch Zasada segregacji interfejsów Projektowanie Fluent API Czym jest Fluent API? Modelowanie domeny Wzorzec Budowniczy 6.Twootr Wymagania wobec systemu Twootr Przegląd projektu Komunikacja typu puli Komunikacja typu push Od zdarzeń do projektu Komunikacja Graficzny interfejs użytkownika Utrwalanie Architektura sześciokątna Od czego zacząć Hasła i bezpieczeństwo Obserwatorzy i twooty Modelowanie błędów Twootowanie Tworzenie atrap Weryfikowanie przy użyciu atrap obiektów Biblioteki do stosowania atrap obiektów SenderEndPoint Pozycje Metody eąuals i hashcode Kontrakt między eąuals a hashCode 7.Rozszerzanie Twootra Utrwalanie i wzorzec Repozytorium Projektowanie repozytoriów Obiekty kwerend Programowanie funkcyjne Wyrażenia lambda Odwołania do metod Execute Around Strumienie Optional Interfejs użytkownika Odwrócenie zależności i wstrzykiwanie zależności Pakiety i systemy kompilacji Ograniczenia i uproszczenia
Sygnatura czytelni BWEAiI: XII N 142
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. 149407 N (1 egz.)
Książka
W koszyku
DDD : kompendium wiedzy / Vaughn Vernon ; tłumaczenie Maksymilian Gutowski. - Gliwice : Wydawnictwo Helion, copyright 2018. - 128 stron : ilustracje ; 24 cm.
Tytuł oryginału: Domain-Driven Design Distilled.
Bibliografia na stronie [125]. Indeks.
Dla programistów, ekspertów dziedzinowych, menedżerów, analityków biznesowych, architektów informacji i testerów.
Rozdział 1. Czym jest DDD? (15) Czy będzie bolało? (16) Dobre, złe i skuteczne projektowanie (17) Projektowanie strategiczne (20) Projektowanie taktyczne (20) Uczenie się i pogłębianie wiedzy (21) Zaczynamy! (22) Rozdział 2. Projektowanie strategiczne - Konteksty Ograniczone i Język Wszechobecny (23) Eksperci Dziedziny i czynniki biznesowe (28) Analiza przypadku (30) Znaczenie projektowania strategicznego (33) Kwestionowanie i integracja (36) Tworzenie Języka Wszechobecnego (41) Wykorzystanie scenariuszy w praktyce (43) Jak to wygląda na dłuższą metę? (45) Architektura (45) Rozdział 3. Projektowanie strategiczne - Poddziedziny (49) Czym jest Poddziedzina? (50) Rodzaje Poddziedzin (50) Radzenie sobie ze złożonością (51) Rozdział 4. Projektowanie strategiczne z wykorzystaniem mapowania kontekstów (55) Formy Mapowania Kontekstu (57) Partnerstwo (57) Wspólne Jądro (58) Rozwój w trybie Klient-Dostawca (58) Konformista (59) Warstwa Zapobiegająca Uszkodzeniu (59) Usługa Otwartego Hosta (60) Język Opublikowany (60) Oddzielne Drogi (61) Wielka Kula Błota (61) Skuteczne wykorzystanie Mapowania Kontekstu (63) RPC i SOAP (63) REST-owy HTTP (65) Wymiana wiadomości (67) Przykład Mapowania Kontekstu (70) Rozdział 5. Projektowanie taktyczne - Agregaty (75) Zastosowanie Agregatów (76) Reguły projektowania Agregatów (79) Reguła nr 1: ochrona niezmienników biznesowych zawartych w granicach agregatów (80) Reguła nr 2: projektuj małe Agregaty (81) Reguła nr 3: odwoływanie się do innych Agregatów wyłącznie za pomocą identyfikatora tożsamości (82) Reguła nr 4: używanie spójności ostatecznej do aktualizowania innych Agregatów (83) Modelowanie Agregatów (85) Dobieraj abstrakcje starannie (90) Dobieranie Agregatów o właściwej wielkości (91) Testowalne jednostki (92) Rozdział 6. Projektowanie taktyczne - Zdarzenia Dziedziny (95) Projektowanie, wdrażanie i używanie Zdarzeń Dziedziny (96) Event Sourcing (102) Podsumowanie (104) Rozdział 7. Narzędzia do zarządzania i przyspieszania prac (105) Event Storming (106) Inne narzędzia (114) Zarządzanie DDD w projekcie zwinnym (114) Po kolei (115) Wykorzystaj analizę SWOT (116) Fluktuacje i koszt modelowania (117) Identyfikacja zadań i szacowanie nakładu pracy (118) Modelowanie w terminie (120) Jak wdrożyć (120) Interakcja z Ekspertami Dziedziny (122)
Sygnatura czytelni BWEAiI: XII L 19
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. 146194 N (1 egz.)
Książka
W koszyku
Nowoczesne Django / Sylwester Walczak. - Gliwice : Helion, copyright 2022. - 215, [1] strona : ilustracje ; 24 cm.
Django w kontenerze Czym jest Docker? Instalacja Dockera Instalacja Django z użyciem Dockera Uruchamianie aplikacji Podstawowe operacje Dockera potrzebne do zarządzania Django Wdrażanie REST API z wykorzystaniem Django REST framework Czym jest REST API? Instalacja biblioteki Ustawienia biblioteki Tworzenie endpointów Własny system autoryzacji Szybkie ustawienia oraz tłumaczenie Tworzenie niestandardowego modelu użytkownika Niestandardowy menadżer modelu Dodawanie middleware'a Własne role i klasy permission Klasy permission Metoda has_permission Metoda has_object_permission Kasjer Barista Menadżer Właściciel Widoki CRUD dla użytkownika Create User List Users Generowanie JWT E-mail aktywacyjny Aplikacja do zamawiania kawy Opis aplikacji Wymagane modele Wymagane uprawnienia Kasjer Barista Menadżer Właściciel Pełny magazyn Tworzenie modelu Widoki Menu Tworzenie modeli Tworzenie widoków Złóżmy zamówienie! Tworzenie modelu Tworzenie widoków Akcje dodatkowe Obsługa klientów Anulowanie zamówienia Zarządzanie kawiarnią Model rejestracji zdarzeń (LOGI) Dokumentacja API Rozbijmy monolit! Mikroserwisy Modularność Różnorodność technologii Skalowanie Stabilność Dopasowanie do organizacji Omówienie architektury Rozdzielanie widoków na osobne instancje Django Centralny serwis autoryzacji Tworzymy własną bibliotekę Rozdzielanie aplikacji Supplier Story Menu Purchase Rabbit MQ Kolejka tworzenia zamówień Webhooki TL;DR Tworzymy system wiadomości - Django Channels Cache Autoryzacja usługa-usługa Rejestrowanie zachowań Django
Sygnatura czytelni BWEAiI: XII Ł 226
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. 153038 (1 egz.)
Książka
W koszyku
Spring w akcji / Craig Walls ; przekład Robert Górczyński. - Gliwice : Helion, copyright 2020. - 520 stron : ilustracje ; 24 cm.
Tytuł oryginału: Spring in action.
Wydanie 5. odnosi się do oryginału.
Indeks.
CZĘŚĆ I. PODSTAWY SPRINGA 21 Rozdział 1. Rozpoczęcie pracy ze Springiem 23 1.1. Czym jest Spring? 24 1.2. Inicjalizacja aplikacji Springa 26 1.2.1. Inicjalizacja projektu Springa za pomocą Spring Tool Suite 27 1.2.2. Analiza struktury projektu Springa 30 1.3. Utworzenie aplikacji Springa 37 1.3.1. Obsługa żądań internetowych 37 1.3.2. Definiowanie widoku 39 1.3.3. Testowanie kontrolera 40 1.3.4. Kompilacja i uruchomienie aplikacji 41 1.3.5. Poznajemy Spring Boot DevTools 43 1.3.6. Przegląd 45 1.4. Możliwości Springa 46 1.4.1. Podstawowy framework Spring 47 1.4.2. Spring Boot 47 1.4.3. Spring Data 48 1.4.4. Spring Security 48 1.4.5. Spring Integration i Spring Batch 48 1.4.6. Spring Cloud 48 Rozdział 2. Tworzenie aplikacji internetowej 51 2.1. Wyświetlanie informacji 52 2.1.1. Zdefiniowanie domeny 52 2.1.2. Utworzenie klasy kontrolera 55 2.1.3. Przygotowanie widoku 58 2.2. Przetwarzanie wysłanego formularza 62 2.3. Weryfikacja danych wyjściowych formularza 68 2.3.1. Deklarowanie reguł weryfikacji danych 68 2.3.2. Przeprowadzanie weryfikacji danych podczas ich pobierania z formularza 70 2.3.3. Wyświetlanie błędów operacji sprawdzania poprawności danych 72 2.4. Praca z kontrolerem widoku 72 2.5. Wybór biblioteki szablonów widoku 75 2.5.1. Buforowanie szablonów 77 Rozdział 3. Praca z danymi 79 3.1. Odczyt i zapis danych za pomocą JDBC 79 3.1.1. Przygotowanie domeny do obsługi trwałego magazynu danych 82 3.1.2. Praca z klasą JdbcTemplate 83 3.1.3. Definiowanie schematu i wstępne przygotowanie danych 87 3.1.4. Wstawianie danych 89 3.2. Implementacja trwałego magazynu danych za pomocą Spring Data JPA 98 3.2.1. Dodawanie Spring Data JPA do projektu 99 3.2.2. Określenie domeny jako encji 99 3.2.3. Deklarowanie repozytoriów JPA 102 3.2.4. Dostosowanie do własnych potrzeb repozytoriów JPA 104 Rozdział 4. Spring Security 107 4.1. Włączenie obsługi Spring Security 108 4.2. Konfigurowanie Spring Security 110 4.2.1. Istniejący w pamięci magazyn danych użytkownika 111 4.2.2. Magazyn danych użytkownika oparty na JDBC 112 4.2.3. Magazyn danych użytkownika oparty na LDAP 115 4.2.4. Dostosowanie uwierzytelniania użytkownika do własnych potrzeb 118 4.3. Zabezpieczanie żądań internetowych 125 4.3.1. Zabezpieczanie żądań 126 4.3.2. Utworzenie własnej strony logowania 129 4.3.3. Wylogowanie 131 4.3.4. Ochrona przed atakami typu CSRF 131 4.4. Poznanie użytkownika 133 Rozdział 5. Praca z właściwościami konfiguracyjnymi 137 5.1. Dostosowanie konfiguracji automatycznej do własnych potrzeb 138 5.1.1. Poznajemy abstrakcję środowiska Springa 139 5.1.2. Konfigurowanie źródła danych 140 5.1.3. Konfigurowanie serwera osadzonego 142 5.1.4. Konfigurowanie rejestrowania danych 143 5.1.5. Używanie wartości właściwości specjalnych 144 5.2. Tworzenie własnych właściwości konfiguracyjnych 145 5.2.1. Definiowanie komponentów przechowujących właściwości konfiguracyjne 147 5.2.2. Deklarowanie metadanych właściwości konfiguracyjnej 149 5.3. Konfigurowanie za pomocą profili 152 5.3.1. Definiowanie właściwości dla konkretnego profilu 153 5.3.2. Aktywowanie profilu 154 5.3.3. Warunkowe tworzenie komponentu bean z profilami 155 CZĘŚĆ II. ZINTEGROWANY SPRING 157 Rozdział 6. Praca z właściwościami konfiguracyjnymi 159 6.1. Utworzenie kontrolerów RESTful 160 6.1.1. Pobieranie danych z serwera 162 6.1.2. Przekazywanie danych do serwera 167 6.1.3. Uaktualnienie danych w serwerze 168 6.1.4. Usuwanie danych z serwera 170 6.2. Włączenie obsługi hipermediów 171 6.2.1. Dodawanie hiperłączy 174 6.2.2. Utworzenie komponentu asemblera zasobu 176 6.2.3. Nazewnictwo osadzonych związków 180 6.3. Włączenie usług back-endu 181 6.3.1. Dostosowanie nazw ścieżek dostępu zasobów i relacji 184 6.3.2. Stronicowanie i sortowanie 186 6.3.3. Dodawanie własnych punktów końcowych 187 6.3.4. Dodawanie własnych hiperłączy do punktów końcowych Spring Data 189 Rozdział 7. Używanie usług REST 191 7.1. Używanie punktów końcowych REST za pomocą RestTemplate 192 7.1.1. Pobieranie zasobu 194 7.1.2. Przekazywanie do serwera zasobów za pomocą metody HTTP PUT 195 7.1.3. Usuwanie zasobu 196 7.1.4. Przekazywanie do serwera zasobów za pomocą metody HTTP POST 196 7.2. Poruszanie się po API REST za pomocą Traverson 197 Rozdział 8. Asynchroniczne wysyłanie komunikatów 201 8.1. Wysyłanie komunikatów za pomocą JMS 202 8.1.1. Konfigurowanie JMS 202 8.1.2. Wysyłanie komunikatów za pomocą JmsTemplate 204 8.1.3. Otrzymywanie komunikatów JMS 211 8.2. Praca z RabbitMQ i AMQP 215 8.2.1. Dodawanie obsługi brokera RabbitMQ do Springa 216 8.2.2. Wysyłanie komunikatów za pomocą RabbitTemplate 217 8.2.3. Pobieranie komunikatu z RabbitMQ 221 8.3. Obsługa komunikatów za pomocą Apache Kafki 225 8.3.1. Konfigurowanie Springa do obsługi komunikatów Kafki 226 8.3.2. Wysyłanie komunikatów za pomocą KafkaTemplate 227 8.3.3. Utworzenie komponentu nasłuchującego Kafki 229 Rozdział 9. Integracja Springa 233 9.1. Deklarowanie prostego przepływu integracji 234 9.1.1. Definiowanie przepływu integracji za pomocą XML-a 235 9.1.2. Konfigurowanie przepływu integracji za pomocą Javy 237 9.1.3. Konfigurowanie Spring Integration za pomocą języka specjalizowanego 239 9.2. Poznajemy Spring Integration 241 9.2.1. Kanał komunikatu 241 9.2.2. Filtr 243 9.2.3. Przekształcenie 244 9.2.4. Router 245 9.2.5. Spliter 247 9.2.6. Aktywator usługi 249 9.2.7. Brama 251 9.2.8. Adapter kanału 252 9.2.9. Moduł punktu końcowego 254 9.3. Utworzenie własnego przepływu integracji dotyczącego poczty elektronicznej 256 CZĘŚĆ III. REAKTYWNY SPRING 263 Rozdział 10. Wprowadzenie do projektu Reactor 265 10.1. Wprowadzenie do programowania reaktywnego 266 10.1.1. Definiowanie strumienia reaktywnego 267 10.2. Rozpoczęcie pracy z projektem Reactor 269 10.2.1. Wykres przepływu reaktywnego 270 10.2.2. Dodawanie zależności projektu Reactor 271 10.3. Najczęściej stosowane operacje reaktywne 272 10.3.1. Tworzenie typu reaktywnego 273 10.3.2. Łączenie typów reaktywnych 277 10.3.3. Przekształcanie i filtrowanie strumienia reaktywnego 281 10.3.4. Przeprowadzanie operacji logicznej na typie reaktywnym 290 Rozdział 11. Tworzenie reaktywnego API 293 11.1. Praca z frameworkiem WebFlux w Springu 293 11.1.1. Wprowadzenie do Spring WebFlux 295 11.1.2. Definiowanie kontrolera reaktywnego 296 11.2. Definiowanie funkcyjnych procedur obsługi żądania 300 11.3. Testowanie kontrolera reaktywnego 303 11.3.1. Testowanie żądań HTTP GET 303 11.3.2. Testowanie żądań POST 306 11.3.3. Testowanie działającego serwera 307 11.4. Reaktywne używanie API REST 308 11.4.1. Pobieranie zasobów 309 11.4.2. Przekazywanie zasobu 311 11.4.3. Usunięcie zasobu 312 11.4.4. Obsługa błędów 312 11.4.5. Wymiana żądań 314 11.5. Zabezpieczanie API reaktywnego 316 11.5.1. Konfigurowanie zabezpieczeń reaktywnej aplikacji internetowej 316 11.5.2. Konfigurowanie reaktywnej usługi szczegółów związanych z użytkownikiem 318 Rozdział 12. Reaktywny trwały magazyn danych 321 12.1. Reaktywność i Spring Data 322 12.1.1. Reaktywny Spring Data 323 12.1.2. Konwersja między typem reaktywnym a niereaktywnym 323 12.1.3. Opracowanie repozytorium reaktywnego 325 12.2. Praca z reaktywnymi repozytoriami bazy danych Cassandra 325 12.2.1. Włączenie obsługi Spring Data Cassandra 326 12.2.2. Modelowanie danych w bazie danych Cassandra 328 12.2.3. Mapowanie typów domeny pod kątem przechowywania informacji w bazie danych Cassandra 329 12.2.4. Tworzenie reaktywnego repozytorium bazy danych Cassandra 335 12.3. Tworzenie reaktywnych repozytoriów MongoDB 337 12.3.1. Dodawanie obsługi Spring Data MongoDB 338 12.3.2. Mapowanie typu domeny na dokument MongoDB 339 12.3.3. Tworzenie interfejsów repozytoriów reaktywnych MongoDB 343 CZĘŚĆ IV. NATYWNA CHMURA SPRINGA 347 Rozdział 13. Odkrywanie usług 349 13.1. Poznajemy mikrousługi 350 13.2. Konfiguracja rejestru usług 352 13.2.1. Konfigurowanie Eureki 356 13.2.2. Skalowanie serwera Eureka 359 13.3. Rejestrowanie i odkrywanie usług 361 13.3.1. Konfigurowanie właściwości klienta Eureki 362 13.3.2. Używanie usługi 363 Rozdział 14. Zarządzanie konfiguracją 371 14.1. Konfiguracja współdzielona 372 14.2. Uruchamianie serwera konfiguracji 373 14.2.1. Włączanie Config Server 374 14.2.2. Umieszczanie właściwości w repozytorium konfiguracyjnym 377 14.3. Używanie konfiguracji współdzielonej 380 14.4. Udostępnienie konfiguracji przeznaczonej dla konkretnej aplikacji i konkretnego profilu 382 14.4.1. Udostępnianie właściwości przeznaczonych dla konkretnej aplikacji 382 14.4.2. Udostępnianie właściwości z profili 383 14.5. Utajnienie właściwości konfiguracyjnych 385 14.5.1. Szyfrowanie właściwości w repozytorium Git 386 14.5.2. Przechowywanie danych wrażliwych w magazynie Vault 389 14.6. Odświeżanie właściwości konfiguracyjnych w locie 393 14.6.1. Ręczne odświeżanie właściwości konfiguracyjnych 394 14.6.2. Automatyczne odświeżanie właściwości konfiguracyjnych 396 Rozdział 15. Obsługa awarii i opóźnień 405 15.1. Wprowadzenie do wzorca bezpiecznika 405 15.2. Deklarowanie bezpiecznika 408 15.2.1. Łagodzenie opóźnienia 410 15.2.2. Zarządzanie wartością graniczną bezpiecznika 411 15.3. Monitorowanie awarii 412 15.3.1. Wprowadzenie do panelu kontrolnego biblioteki Hystrix 413 15.3.2. Pula wątków biblioteki Hystrix 416 15.4. Agregowanie wielu strumieni biblioteki Hystrix 418 CZĘŚĆ V. WDRAŻANIE APLIKACJI SPRINGA 421 Rozdział 16. Praca ze Spring Boot Actuator 423 16.1. Wprowadzenie do Actuatora 424 16.1.1. Konfigurowanie bazowej ścieżki dostępu Actuatora 425 16.1.2. Włączanie i wyłączanie punktów końcowych Actuatora 426 16.2. Używanie punktów końcowych Actuatora 427 16.2.1. Pobieranie podstawowych informacji o aplikacji 428 16.2.2. Wyświetlanie konfiguracji aplikacji 431 16.2.3. Wyświetlanie informacji o aktywności aplikacji 439 16.2.4. Dane statystyczne dotyczące środowiska uruchomieniowego 442 16.3. Dostosowanie Actuatora do własnych potrzeb 444 16.3.1. Dodawanie informacji dostarczanych później przez punkt końcowy /info 445 16.3.2. Definiowanie własnych wskaźników informacji o stanie aplikacji 449 16.3.3. Rejestrowanie niestandardowych danych statystycznych 450 16.3.4. Tworzenie własnego punktu końcowego 452 16.4. Zabezpieczanie Actuatora 455 Rozdział 17. Administrowanie Springiem 459 17.1. Używanie Spring Boot Admin 459 17.1.1. Tworzenie serwera administracyjnego 460 17.1.2. Rejestrowanie klientów serwera administracyjnego 462 17.2. Poznajemy serwer administracyjny 465 17.2.1. Wyświetlanie ogólnych informacji o stanie aplikacji 466 17.2.2. Obserwowanie kluczowych danych statystycznych 466 17.2.3. Analiza zmiennych środowiskowych 467 17.2.4. Wyświetlanie i zmiana poziomu rejestrowania danych 469 17.2.5. Monitorowanie wątków 469 17.2.6. Monitorowanie żądań HTTP 470 17.3. Zabezpieczanie serwera administracyjnego 471 17.3.1. Włączanie logowania w serwerze administracyjnym 472 17.3.2. Uwierzytelnianie z użyciem Actuatora 473 Rozdział 18. Monitorowanie Springa za pomocą JMX 475 18.1. Praca z Actuatorem i MBean 476 18.2. Tworzenie własnego komponentu MBean 478 18.3. Wysyłanie powiadomień 480 Rozdział 19. Wdrażanie aplikacji Springa 483 19.1. Opcje podczas wdrażania aplikacji 484 19.2. Kompilowanie i wdrażanie pliku WAR 485 19.3. Przekazanie pliku JAR do Cloud Foundry 487 19.4. Umieszczanie aplikacji Spring Boota w kontenerze Dockera 490 19.5. To nie koniec, ale dopiero początek 494 Dodatek A. Tworzenie aplikacji Springa 497 A.1. Inicjalizacja projektu za pomocą Spring Tool Suite 497 A.2. Tworzenie projektu za pomocą IntelliJ IDEA 500 A.3. Tworzenie projektu za pomocą NetBeans 503 A.4. Inicjalizacja projektu na stronie start.spring.io 506 A.5. Inicjalizacja projektu z poziomu powłoki 510 A.5.1. Polecenie curl i API Initializr 510 A.5.2. Interfejs powłoki dla Spring Boota 512 A.6. Tworzenie aplikacji Springa za pomocą metaframeworka 513 A.7. Kompilowanie i uruchamianie projektu 513
Sygnatura czytelni BWEAiI: XII N 143
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. 149865 N (1 egz.)
Książka
W koszyku
Angular w akcji / Jeremy Wilken ; [tłumaczenie: Lech Lachowski]. - Gliwice : Wydawnictwo Helion, copyright 2019. - 336 stron : ilustracje ; 24 cm.
Tytuł oryginału: Angular in action.
Indeks.
Rozdział 1. Angular - nowoczesna platforma internetowa 21 1.1. Dlaczego warto wybrać Angular? 22 1.2. Czego się nauczysz z tej książki 23 1.3. Podróż od AngularJS do Angulara 24 1.4. Angular - platforma, a nie framework 26 1.4.1. CLI Angulara 26 1.4.2. Renderowanie serwerowe i kompilator 27 1.4.3. Możliwości mobilne i desktopowe 29 1.4.4. Biblioteki interfejsu użytkownika 30 1.5. Architektura komponentowa 32 1.5.1. Najważniejsze cechy komponentów 34 1.5.2. Shadow DOM 36 1.5.3. Szablony 37 1.5.4. Moduły JavaScriptu 39 1.6. Nowoczesny JavaScript i Angular 40 1.6.1. Strumienie obserwowalne 43 1.7. TypeScript i Angular 44 Rozdział 2. Twoja pierwsza aplikacja Angular 47 2.1. Przegląd projektu z tego rozdziału 48 2.2. Konfigurowanie projektu 50 2.3. Rusztowanie bazowej aplikacji 51 2.4. Jak Angular renderuje aplikację bazową 53 2.4.1. Komponent App 53 2.4.2. Moduł App 54 2.4.3. Początkowe ładowanie aplikacji 55 2.5. Budowanie usług 57 2.6. Tworzenie pierwszego komponentu 60 2.7. Komponenty wykorzystujące komponenty i usługi 66 2.8. Komponenty z formularzami i ze zdarzeniami 69 2.9. Routing aplikacji 73 Rozdział 3. Najważniejsze elementy aplikacji 77 3.1. Encje w Angularze 79 3.1.1. Moduły 79 3.1.2. Komponenty 81 3.1.3. Dyrektywy 82 3.1.4. Potoki 85 3.1.5. Usługi 86 3.2. Jak Angular zaczyna renderować aplikację 87 3.3. Rodzaje kompilatorów 89 3.4. Wstrzykiwanie zależności 89 3.5. Wykrywanie zmian 90 3.6. Wyrażenia szablonów i wiązania 91 3.6.1. Interpolacja 93 3.6.2. Wiązania właściwości 94 3.6.3. Specjalne wiązania właściwości 95 3.6.4. Wiązanie atrybutów 96 3.6.5. Wiązanie zdarzeń 97 Rozdział 4. Podstawy komponentów 101 4.1. Konfigurowanie przykładu 102 4.1.1. Przygotowanie kodu 103 4.2. Kompozycja i cykl życia komponentu 104 4.2.1. Cykl życia komponentu 106 4.2.2. Zaczepy cyklu życia 107 4.2.3. Zagnieżdżanie komponentów 109 4.3. Rodzaje komponentów 110 4.4. Tworzenie komponentu Data 113 4.5. Używanie wejść z komponentami 116 4.5.1. Podstawy wejść 117 4.5.2. Przechwytywanie wejść 120 4.6. Rzutowanie zawartości 122 Rozdział 5. Zaawansowane aspekty komponentów 129 5.1. Wykrywanie zmian i optymalizacje 130 5.2. Komunikacja między komponentami 134 5.2.1. Zdarzenia wyjściowe i zmienne szablonów 135 5.2.2. Odwoływanie się do komponentów za pomocą ViewChild 137 5.3. Stylizacja komponentów i tryby hermetyzacji 138 5.3.1. Dodawanie stylów do komponentu 139 5.3.2. Tryby hermetyzacji 141 5.4. Dynamiczne renderowanie komponentów 145 5.4.1. Używanie okna modalnego ng-bootstrap dla komponentów dynamicznych 145 5.4.2. Dynamiczne tworzenie komponentu i jego renderowanie 149 Rozdział 6. Usługi 155 6.1. Konfigurowanie przykładu 156 6.1.1. Pobieranie kodu 158 6.1.2. Przykładowe dane 158 6.2. Tworzenie usług Angulara 159 6.3. Wstrzykiwanie zależności i drzewa wstrzykiwaczy 164 6.4. Usługi bez wstrzykiwania zależności 168 6.5. Korzystanie z usługi HttpClient 169 6.5.1. Interfejs HttpInterceptor 173 6.6. Usługi pomocnicze 176 6.7. Usługi udostępniania 180 6.8. Usługi dodatkowe 184 Rozdział 7. Routing 187 7.1. Konfigurowanie przykładu 188 7.2. Definiowanie tras i konfiguracja routera 190 7.3. Moduły funkcyjne i routing 193 7.4. Parametry trasy 194 7.4.1. Tworzenie linków w szablonach za pomocą dyrektywy routerLink 195 7.4.2. Uzyskiwanie dostępu do parametrów trasy w komponencie 196 7.5. Trasy podrzędne 198 7.6. Trasy drugorzędne 201 7.6.1. Definiowanie trasy drugorzędnej 202 7.6.2. Nawigacja między trasami drugorzędnymi 204 7.6.3. Zamykanie trasy drugorzędnej i routing programowy 205 7.7. Zabezpieczanie tras w celu ograniczenia dostępu 205 7.8. Leniwe ładowanie 211 7.9. Najlepsze praktyki dotyczące routingu 214 Rozdział 8. Budowanie niestandardowych dyrektyw i potoków 217 8.1. Konfigurowanie przykładu 219 8.2. Tworzenie niestandardowych dyrektyw 219 8.2.1. Tworzenie dyrektywy atrybutów 221 8.2.2. Modyfikowanie komponentu za pomocą dyrektywy ze zdarzeniami 223 8.2.3. Tworzenie dyrektywy strukturalnej 226 8.3. Tworzenie niestandardowych potoków 229 8.3.1. Tworzenie czystego potoku 230 8.3.2. Tworzenie nieczystego potoku 232 Rozdział 9. Formularze 237 9.1. Konfigurowanie przykładu 238 9.1.1. Wstępny przegląd aplikacji 240 9.2. Formularze oparte na szablonach 241 9.2.1. Wiązanie danych modelu z wejściami za pomocą dyrektywy NgModel 241 9.2.2. Walidacja kontrolek formularza za pomocą dyrektywy NgModel 243 9.2.3. Niestandardowa walidacja za pomocą dyrektyw 246 9.2.4. Obsługa zdarzeń przesyłania lub zdarzeń anulowania 249 9.3. Formularze reaktywne 251 9.3.1. Definiowanie formularza 252 9.3.2. Implementowanie szablonu 254 9.3.3. Obserwowanie zmian 255 9.3.4. Niestandardowe walidatory z formularzami reaktywnymi 256 9.3.5. Obsługa zdarzeń przesyłania lub zdarzeń anulowania 260 9.3.6. Które podejście do formularzy jest lepsze? 264 9.4. Niestandardowe kontrolki formularzy 265 Rozdział 10. Testowanie aplikacji 273 10.1. Narzędzia testowe i konfiguracja przykładu 274 10.1.1. Narzędzia do testowania 275 10.2. Testy jednostkowe 276 10.2.1. Anatomia testów jednostkowych 276 10.2.2. Testowanie potoków 277 10.2.3. Testowanie usług, stuby i symulowanie żądań HTTP 279 10.2.4. Testowanie komponentów i korzystanie z modułów testujących 285 10.2.5. Testowanie dyrektyw 293 10.3. Testy e2e 297 10.4. Dodatkowe strategie testowania 302 10.4.1. Ile testów wystarczy? 303 10.4.2. Kiedy mam pisać testy? 304 10.4.3. Co mam napisać, e2e czy testy jednostkowe? 304 10.4.4. A co, jeśli nie mam czasu na pisanie testów? 305 10.4.5. A co z innymi rodzajami testów? 305 Rozdział 11. Angular w środowisku produkcyjnym 309 11.1. Kompilowanie Angulara dla środowiska produkcyjnego 310 11.1.1. Kompilacja produkcyjna 310 11.1.2. Optymalizacja dla przeglądarek docelowych 311 11.1.3. Progresywne aplikacje internetowe 312 11.1.4. Internacjonalizacja (i18n) 312 11.1.5. Używanie alternatywnych narzędzi kompilacji 313 11.1.6. Renderowanie po stronie serwera lub renderowanie wstępne 314 11.1.7. Potoki kompilacji 314 11.2. Wybór architektury Angulara 315 11.2.1. Leniwe ładowanie tras 315 11.2.2. Ograniczanie zewnętrznych zależności 316 11.2.3. Bycie na bieżąco 319 11.3. Wdrożenie 319 Dodatek A. Aktualizacja z AngularJS do Angulara 323 Dodatek B. Komunikacja między komponentami Angular 329
Sygnatura czytelni BWEAiI: XII N 16
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. 148044 N (1 egz.)
Książka
W koszyku
Tytuł oryginału: Learning Amazon Web Services (AWS): A Hands-On Guide to the Fundamentals of AWS Cloud
Rozdział 1. Poznajemy AWS 21 Próba zdefiniowania chmury 22 Przenoszenie się do AWS 26 Infrastruktura jako usługa 27 Platforma jako usługa 29 Główne cechy programowania w chmurze w AWS 32 Operacyjne korzyści wynikające z używania AWS 36 Ograniczenia dostawców chmury 36 Bezpieczeństwo danych w AWS 39 Bezpieczeństwo sieciowe w AWS 40 Bezpieczeństwo aplikacji w AWS 41 Zgodność w chmurze AWS 42 Korzystanie z piaskownicy AWS 43 Jaki problem chcemy rozwiązać? 44 Migrowanie aplikacji 46 Dobrze zaprojektowana platforma 47 Narzędzie Well-Architected Tool 48 Rozdział 2. Projektowanie z użyciem usług AWS Global Services 53 Rozważania dotyczące lokalizacji 54 Regiony AWS 56 Izolacja regionu 58 Strefy dostępności 60 Dystrybucja stref dostępności 62 Wiele stref dostępności 64 Czym jest umowa o warunkach świadczenia usług w AWS? 65 Wszystko zawodzi 67 Globalne usługi brzegowe 69 Usługi w lokalizacjach brzegowych 70 Wybieranie regionu 74 Zgodność 75 AWS i zgodność 78 HIPAA 80 NIST 81 GovCloud 82 Aspekty dotyczące opóźnień 83 Usługi oferowane we wszystkich regionach 84 Obliczanie kosztów 85 Koszty usług zarządzania 86 Cennik narzędzi do zarządzania: AWS Config 87 Koszty obliczeniowe AWS 88 Koszty magazynu 89 Koszt transferu danych 91 Warstwowe koszty w AWS 93 Optymalizacja kosztów w AWS 93 Optymalizacja kosztów obliczeń 94 Narzędzia analizy kosztów w AWS 96 Trusted Advisor 96 AWS Simple Monthly Calculator 100 Kalkulator całkowitych kosztów własności (Total Cost of Ownership - TCO) 101 10 najważniejszych tematów do dyskusji: zgodność, zarządzanie, opóźnienia, wznawianie działania po awarii 103 Rozdział 3. Usługi sieciowe w AWS 105 Sieci VPC 106 Partnerstwo z AWS 107 Co się kryje za kulisami sieci? 109 Wszystko koncentruje się na przepływie pakietów 112 Tworzenie pierwszej chmury VPC 115 Ile chmur VPC? 118 Tworzenie bloku VPC CIDR 119 Planowanie głównego bloku VPC CIDR 120 Domyślna chmura VPC 122 Więcej o strefach dostępności 123 Tworzenie podsieci 124 Usługi NAT 126 Korzystanie z tablic trasowania 127 Główna tablica trasowania 128 Prywatne adresy IPV4 131 Elastyczne adresy IP 134 Koszty obsługi transferu 136 Własny adres IP, czyli program Bring Your Own IP (BYOIP) 137 Proces BYOIP 138 Adresy IPv6 139 Grupy bezpieczeństwa 140 Niestandardowe grupy bezpieczeństwa 143 Sieciowe listy kontroli dostępu ACL 147 Szczegóły implementacji sieciowych list ACL 148 Czym są porty efemeryczne? 151 Dzienniki przepływu VPC 153 Peering między chmurami VPC 154 Nawiązywanie połączenia typu peering 154 Punkty końcowe bramy VPC 156 Punkty końcowe interfejsu VPC 158 Łączność VPC 162 Brama internetowa: wejście publiczne 162 Połączenia VPN 164 Wirtualna brama prywatna (Virtual Private Gateway) 166 Połączenia VPN 167 VPN CloudHub 168 Propagacja trasy 168 Direct Connect 169 Route 53 171 Opcje trasowania w Route 53 173 Sprawdzanie kondycji w Route 53 174 Korzystanie z DNS w chmurze VPC: prywatne strefy DNS 175 Nazwy hostów DNS 175 10 najważniejszych punktów do dyskusji: uwarunkowania sieciowe pod kątem bezpieczeństwa, odzyskiwanie działania po awarii oraz łączność 176 Rozdział 4. Usługi obliczeniowe - instancje AWS EC2 179 Krótka historia wirtualizacji EC2 180 System Nitro 183 Instancje EC2 184 Rodziny instancji 186 Czym jest vCPU? 187 Opcje wyboru instancji EC2 188 Instancje ogólnego przeznaczenia 189 Instancje zaprojektowane do przekraczania limitów 190 Instancje zoptymalizowane pod kątem obliczeniowym 192 Instancje zoptymalizowane pod kątem pamięci 193 Instancje obliczeniowe z akceleracją (GPU) 194 Instancje zoptymalizowane pod kątem magazynu 195 Instancje bez systemu operacyjnego 195 Hosty na wyłączność 196 Instancje na wyłączność 197 Wydajność sieci EC2 197 Obrazy maszyn Amazona (Amazon Machine Image - AMI) 198 Wybór obrazu AMI 200 Obrazy AMI z systemem Linux 200 Typy wirtualizacji obrazów AMI z Linuksem 201 Obrazy AMI z systemem Windows 202 AWS Marketplace 202 Tworzenie niestandardowego obrazu AMI 203 Niestandardowe obrazy AMI magazynu instancji 205 Poprawny projekt AMI 206 Uwarunkowania tworzenia obrazów AMI 207 Najlepsze praktyki dotyczące obrazów AMI 209 Przestrzeganie najlepszych praktyk: znaczniki 210 Wykorzystanie szablonów uruchamiania 211 Zmiana bieżącego typu instancji 212 Ceny EC2 212 Zarezerwowane instancje (RI) 214 Ograniczenia zarezerwowanych instancji 215 Typy zarezerwowanych instancji EC2 216 Zaplanowane zarezerwowane instancje EC2 218 Instancje typu spot 218 Flota instancji typu spot 219 Pule możliwości typu spot 220 Flota EC2 222 Opcje magazynu instancji EC2 222 Lokalny magazyn instancji - SSD lub dysk magnetyczny 223 Funkcja automatycznego przywracania działania instancji EC2 225 Zamawianie instancji 226 Migracja do AWS 232 Ogólne spojrzenie na etapy migracji 233 AWS Migration Hub 235 Usługi AWS Server Migration Services 236 Ogólne spojrzenie na migrację serwera 238 Importowanie i eksportowanie zasobów wirtualnych 238 Inne sposoby hostowania zadań w AWS 239 Kontenery 239 Amazon Elastic Container Service (ECS) 241 AWS Fargate 242 AWS ECS for Kubernetes (EKS) 242 Amazon LightSail 242 Lambda 243 AWS Firecracker 245 10 najważniejszych punktów do dyskusji - czynniki migracji i planowania 245 Rozdział 5. Planowanie w celu zapewnienia skalowania i odporności 247 Koncepcja monitoringu 250 Czym jest CloudWatch? 252 Monitorowanie 253 Dzienniki 253 Zbieranie danych za pomocą agenta CloudWatch 255 Instalowanie agenta CloudWatch 255 Planowanie monitoringu 256 Integracja CloudWatch 258 Terminologia CloudWatch 259 Użycie pulpitu 263 Tworzenie alarmu CloudWatch 264 Dodatkowe ustawienia alarmu i akcji 265 Akcje 265 Monitorowanie instancji EC2 265 Automatyczny ponowny rozruch lub przywracanie instancji do działania 266 Usługi elastycznego równoważenia obciążenia 267 Celowa nadmiarowość 270 Testy kondycji EC2 270 Dodatkowe funkcje ELB 271 Application Load Balancer (ALB) 274 Ogólne kroki: tworzenie ALB 275 Opcje wyboru reguł 277 Ustawienia bezpieczeństwa modułu nasłuchiwania HTTPS 280 Trasowanie grupy docelowej 281 Utrzymywanie sesji użytkownika 282 Obsługa mechanizmu lepkich sesji 283 Konfigurowanie testów kondycji 284 Monitorowanie działania modułu równoważenia obciążenia 285 Network Load Balancer 286 Skalowanie aplikacji 286 EC2 Auto Scaling 287 Komponenty usługi EC2 Auto Scaling 288 Konfiguracja uruchamiania 288 Szablony uruchamiania 289 Grupy automatycznego skalowania (ASG) 289 Opcje skalowania grup ASG 291 Wtyczki cyklu życia 293 AWS Auto Scaling 294 10 najważniejszych punktów do dyskusji: skala, dostępność i monitoring 295 Rozdział 6. Magazyn w chmurze 297 Magazyn w chmurze 299 Który magazyn pasuje do naszych potrzeb? 301 Magazyn blokowy EBS 302 Typy woluminów EBS 302 Dyski SSD ogólnego przeznaczenia 303 Gwarantowana wartość IOPS (io1) 305 Elastyczne woluminy EBS 306 Przyłączanie woluminu EBS 307 Szyfrowanie woluminów EBS 308 Migawki EBS 309 Oznaczanie woluminów EBS i migawek 311 Najlepsze praktyki dotyczące EBS 312 Magazyn S3 312 Kontenery, obiekty i klucze 314 Spójność danych S3 316 Klasy pamięci magazynu S3 317 Zarządzanie S3 318 Wersjonowanie 322 Bezpieczeństwo kontenerów S3 322 Magazyn archiwum Amazon S3 Glacier 325 Skarbce i archiwa magazynu S3 Glacier 325 Współdzielone systemy plików w AWS 326 Elastyczny system plików (Elastic File System - EFS) 327 Tryby wydajności EFS 328 Tryby przepustowości EFS 328 Bezpieczeństwo EFS 329 Porównanie wydajności magazynów 329 Amazon FSx dla systemu Windows File Server 332 Usługa relacyjnej bazy danych (Relational Database Service - RDS) 333 Instancje bazy danych RDS 335 Wysoka dostępność RDS 336 Ogólne kroki instalacji RDS 339 Monitorowanie wydajności bazy danych 340 Najlepsze praktyki związane z RDS 341 Aurora 341 Magazyn Aurora 343 Komunikacja z magazynem Aurora 345 DynamoDB 346 Projektowanie baz danych 348 Tabele DynamoDB 349 Dostarczanie tabeli o określonej pojemności 350 Możliwości adaptacyjne 351 Spójność danych 353 ACID i DynamoDB 354 Tabele globalne 355 DynamoDB Accelerator (DAX) 356 Kopie zapasowe i przywracanie danych 356 ElastiCache 357 Opcje transferu danych w AWS 358 Rodzina Snow 360 Rodzina bram magazynu AWS 361 10 najważniejszych punktów do dyskusji: opcje i uwarunkowania magazynowe 363 Rozdział 7. Usługi bezpieczeństwa 365 Zarządzanie tożsamością i dostępem 367 Zasady IAM 369 Uwierzytelnianie IAM 371 Żądanie dostępu do zasobów AWS 373 Proces autoryzacji 374 Akcje 375 Użytkownicy IAM 376 Użytkownik główny 377 Użytkownik IAM 379 Tworzenie użytkownika IAM 379 Klucze dostępu użytkownika IAM 380 Grupy IAM 382 Logowanie się jako użytkownik IAM 383 Szczegóły konta IAM 383 Podsumowanie informacji o koncie użytkownika IAM 384 Tworzenie zasad haseł 385 Rotacja kluczy dostępu 386 Korzystanie z uwierzytelniania wieloskładnikowego (Multifactor Authentication - MFA) 387 Typy zasad IAM 388 Zasady oparte na tożsamości 388 Zasady oparte na zasobach 390 Zasady wbudowane 391 Tworzenie zasad IAM 392 Elementy zasady 392 Odczytywanie prostej zasady w formacie JSON 394 Akcje zasady 395 Dodatkowe opcje kontroli zasad 396 Przegląd stosowanych uprawnień 399 Wersje zasad IAM 400 Używanie elementów warunkowych 401 Używanie znaczników z tożsamościami IAM 402 Role IAM 403 Kiedy należy korzystać z ról 404 Dostęp do zasobów AWS między kontami 406 Usługa AWS Security Token Service (STS) 407 Federacja tożsamości 409 Najlepsze praktyki IAM 411 Narzędzia bezpieczeństwa IAM 413 Tworzenie zdarzenia planu CloudWatch 417 Inne usługi bezpieczeństwa w AWS 418 AWS Organizations 418 Resource Access Manager (AWS RAM) 420 Secrets Manager 421 GuardDuty 422 AWS Inspector 423 10 najważniejszych punktów do dyskusji o zagadnieniach bezpieczeństwa 425 Rozdział 8. Automatyzacja infrastruktury AWS 427 Automatyzacja w AWS 427 Od infrastruktury zarządzanej ręcznie do zautomatyzowanej z wykorzystaniem CloudFormation 430 Komponenty CloudFormation 432 Szablony CloudFormation 432 Stosy 435 Tworzenie instancji EC2 za pomocą ElP 436 Aktualizacje z wykorzystaniem zestawów zmian 438 Korzystanie z zestawów stosów CloudFormation 438 AWS Service Catalog 439 Metodologia 12 reguł 441 Reguła 1. Źródło kodu - jedno źródło kodu, objęte kontrolą wersji, które umożliwia tworzenie wielu wdrożeń 442 AWS CodeCommit 443 Reguła 2. Zależności - jawne deklarowanie i wydzielanie zależności 443 Reguła 3. Konfiguracja - przechowywanie konfiguracji w środowisku 444 Reguła 4. Usługi obsługujące - traktowanie usług obsługujących jak dołączonych zasobów 445 Reguła 5. Budowanie, publikowanie, uruchamianie - oddzielanie faz budowania od uruchamiania 445 Reguła 6. Proces - uruchamianie aplikacji w postaci jednego lub kilku procesów bezstanowych 446 Reguła 7. Przydzielanie portów - udostępnianie usług z wykorzystaniem przydzielania portów 448 Reguła 8. Współbieżność - skalowanie przez odpowiednio dobrane procesy 448 Reguła 9. Zbywalność - zwiększanie odporności poprzez szybkie uruchamianie i wyłączanie 448 Reguła 10. Jednolitość środowiska programistycznego i produkcyjnego - utrzymywanie środowisk programistycznego, testowego i produkcyjnego w możliwie podobnym stanie 449 Reguła 11. Dzienniki - traktowanie dzienników jak strumienia zdarzeń 449 Reguła 12. Procesy administracyjne - uruchamianie zadań administracyjnych i zarządzania jako procesów jednorazowych 450 Elastic Beanstalk 450 Aktualizowanie aplikacji Elastic Beanstalk 453 CodePipeline 454 AWS CodeDeploy 456 Bezusługowa obsługa zadań z wykorzystaniem funkcji Lambda 457 API Gateway 459 Tworzenie bezusługowej aplikacji WWW 461 Tworzenie statycznej strony WWW 461 Uwierzytelnianie użytkownika 462 Komponenty bezusługowego backendu 462 Konfiguracja usługi API Gateway 463 10 najważniejszych punktów do dyskusji: przejście do projektu bezstanowego 465
Sygnatura czytelni BWEAiI: XII E 109
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. 149399 N (1 egz.)
Książka
W koszyku
Tytuł oryginału: C++ concurrency in action, 2nd edition, 2019.
Wydanie 2. odnosi się do oryginału.
Na okładce: Odkryj wszystkie tajemnice wielowątkowych aplikacji!
Indeks.
Rozdział 1. Witaj, świecie współbieżności w C++! (21) 1.1. Czym jest współbieżność? (22) 1.1.1. Współbieżność w systemach komputerowych (22) 1.1.2. Modele współbieżności (25) 1.1.3. Współbieżność kontra równoległość (27) 1.2. Dlaczego warto stosować współbieżność? (27) 1.2.1. Stosowanie współbieżności do podziału zagadnień (27) 1.2.2. Stosowanie współbieżności do podniesienia wydajności - równoległość zadań i danych (28) 1.2.3. Kiedy nie należy stosować współbieżności (30) 1.3. Współbieżność i wielowątkowość w języku C++ (31) 1.3.1. Historia przetwarzania wielowątkowego w języku C++ (31) 1.3.2. Obsługa współbieżności w nowym standardzie (32) 1.3.3. Większa obsługa współbieżności i równoległości w standardach C++14 i C++17 (33) 1.3.4. Efektywność biblioteki wątków języka C++ (33) 1.3.5. Mechanizmy związane z poszczególnymi platformami (34) 1.4. Do dzieła (35) 1.4.1. Witaj, świecie współbieżności! (35) Rozdział 2. Zarządzanie wątkami (39) 2.1. Podstawowe zarządzanie wątkami (40) 2.1.1 Uruchamianie wątku (40) 2.1.2. Oczekiwanie na zakończenie wątku (43) 2.1.3. Oczekiwanie w razie wystąpienia wyjątku (44) 2.1.4. Uruchamianie wątków w tle (46) 2.2. Przekazywanie argumentów do funkcji wątku (47) 2.3. Przenoszenie własności wątku (50) 2.4. Wybór liczby wątków w czasie wykonywania (55) 2.5. Identyfikowanie wątków (57) Rozdział 3. Współdzielenie danych przez wątki (61) 3.1. Problemy związane ze współdzieleniem danych przez wątki (62) 3.1.1. Sytuacja wyścigu (64) 3.1.2. Unikanie problematycznych sytuacji wyścigu (65) 3.2. Ochrona współdzielonych danych za pomocą muteksów (66) 3.2.1. Stosowanie muteksów w języku C++ (66) 3.2.2. Projektowanie struktury kodu z myślą o ochronie współdzielonych danych (68) 3.2.3. Wykrywanie sytuacji wyścigu związanych z interfejsami (70) 3.2.4. Zakleszczenie: problem i rozwiązanie (77) 3.2.5. Dodatkowe wskazówki dotyczące unikania zakleszczeń (80) 3.2.6. Elastyczne blokowanie muteksów za pomocą szablonu std::unique_lock (87) 3.2.7. Przenoszenie własności muteksu pomiędzy zasięgami (89) 3.2.8. Dobór właściwej szczegółowości blokad (90) 3.3. Alternatywne mechanizmy ochrony współdzielonych danych (93) 3.3.1. Ochrona współdzielonych danych podczas inicjalizacji (93) 3.3.2. Ochrona rzadko aktualizowanych struktur danych (97) 3.3.3. Blokowanie rekurencyjne (99) Rozdział 4. Synchronizacja współbieżnych operacji (101) 4.1. Oczekiwanie na zdarzenie lub inny warunek (102) 4.1.1. Oczekiwanie na spełnienie warunku za pomocą zmiennych warunkowych (103) 4.1.2. Budowa kolejki gwarantującej bezpieczne przetwarzanie wielowątkowe przy użyciu zmiennych warunkowych (106) 4.2. Oczekiwanie na jednorazowe zdarzenia za pomocą przyszłości (111) 4.2.1. Zwracanie wartości przez zadania wykonywane w tle (112) 4.2.2. Wiązanie zadania z przyszłością (114) 4.2.3. Obietnice (szablon std::promise) (117) 4.2.4. Zapisywanie wyjątku na potrzeby przyszłości (119) 4.2.5. Oczekiwanie na wiele wątków (121) 4.3. Oczekiwanie z limitem czasowym (124) 4.3.1. Zegary (124) 4.3.2. Okresy (125) 4.3.3. Punkty w czasie (127) 4.3.4. Funkcje otrzymujące limity czasowe (129) 4.4. Upraszczanie kodu za pomocą technik synchronizowania operacji (131) 4.4.1. Programowanie funkcyjne przy użyciu przyszłości (131) 4.4.2. Synchronizacja operacji za pomocą przesyłania komunikatów (136) 4.4.3. Współbieżność w stylu kontynuacji dzięki użyciu Concurrency TS (141) 4.4.4. Łączenie kontynuacji ze sobą (143) 4.4.5. Oczekiwanie na więcej niż tylko jedną przyszłość (146) 4.4.6. Oczekiwanie za pomocą when_any na pierwszą przyszłość w zbiorze (148) 4.4.7. Zasuwy i bariery w Concurrency TS (151) 4.4.8. Zasuwa typu podstawowego - std::experimental::latch (151) 4.4.9. Podstawowa bariera - std::experimental::barrier (153) 4.4.10. std::experimental::flex_barrier, czyli elastyczniejszy przyjaciel std::experimental:barrier (155) Rozdział 5. Model pamięci języka C++ i operacje na typach atomowych (157) 5.1. Podstawowe elementy modelu pamięci (158) 5.1.1. Obiekty i miejsca w pamięci (158) 5.1.2. Obiekty, miejsca w pamięci i przetwarzanie współbieżne (159) 5.1.3. Kolejność modyfikacji (161) 5.2. Operacje i typy atomowe języka C++ (161) 5.2.1. Standardowe typy atomowe (162) 5.2.2. Operacje na typie std::atomic_flag (165) 5.2.3. Operacje na typie std::atomic (167) 5.2.4. Operacje na typie std::atomic - arytmetyka wskaźników (170) 5.2.5. Operacje na standardowych atomowych typach całkowitoliczbowych (172) 5.2.6. Główny szablon klasy std::atomic (172) 5.2.7. Wolne funkcje dla operacji atomowych (174) 5.3. Synchronizacja operacji i wymuszanie ich porządku (176) 5.3.1. Relacja synchronizacji (178) 5.3.2. Relacja poprzedzania (179) 5.3.3. Porządkowanie pamięci na potrzeby operacji atomowych (181) 5.3.4. Sekwencje zwalniania i relacja synchronizacji (201) 5.3.5. Ogrodzenia (204) 5.3.6. Porządkowanie operacji nieatomowych za pomocą operacji atomowych (206) 5.3.7. Porządkowanie operacji nieatomowych (207) Rozdział 6. Projektowanie współbieżnych struktur danych przy użyciu blokad (211) 6.1. Co oznacza projektowanie struktur danych pod kątem współbieżności? (212) 6.1.1. Wskazówki dotyczące projektowania współbieżnych struktur danych (213) 6.2. Projektowanie współbieżnych struktur danych przy użyciu blokad (214) 6.2.1. Stos gwarantujący bezpieczeństwo przetwarzania wielowątkowego przy użyciu blokad (215) 6.2.2. Kolejka gwarantująca bezpieczeństwo przetwarzania wielowątkowego przy użyciu blokad i zmiennych warunkowych (218) 6.2.3. Kolejka gwarantująca bezpieczeństwo przetwarzania wielowątkowego przy użyciu szczegółowych blokad i zmiennych warunkowych (222) 6.3. Projektowanie złożonych struktur danych przy użyciu blokad (235) 6.3.1. Implementacja tablicy wyszukiwania gwarantującej bezpieczeństwo przetwarzania wielowątkowego przy użyciu blokad (235) 6.3.2. Implementacja listy gwarantującej bezpieczeństwo przetwarzania wielowątkowego przy użyciu blokad (241) Rozdział 7. Projektowanie współbieżnych struktur danych bez blokad (247) 7.1. Definicje i ich praktyczne znaczenie (248) 7.1.1. Rodzaje nieblokujących struktur danych (248) 7.1.2. Struktury danych bez blokad (249) 7.1.3. Struktury danych bez oczekiwania (250) 7.1.4. Zalety i wady struktur danych bez blokad (250) 7.2. Przykłady struktur danych bez blokad (252) 7.2.1. Implementacja stosu gwarantującego bezpieczeństwo przetwarzania wielowątkowego bez blokad (253) 7.2.2. Eliminowanie niebezpiecznych wycieków - zarządzanie pamięcią w strukturach danych bez blokad (257) 7.2.3. Wykrywanie węzłów, których nie można odzyskać, za pomocą wskaźników ryzyka (262) 7.2.4. Wykrywanie używanych węzłów metodą zliczania referencji (271) 7.2.5. Zmiana modelu pamięci używanego przez operacje na stosie bez blokad (277) 7.2.6. Implementacja kolejki gwarantującej bezpieczeństwo przetwarzania wielowątkowego bez blokad (282) 7.3. Wskazówki dotyczące pisania struktur danych bez blokad (295) 7.3.1. Wskazówka: na etapie tworzenia prototypu należy stosować tryb std::memory_order_seq_cst (295) 7.3.2. Wskazówka: należy używać schematu odzyskiwania pamięci bez blokad (296) 7.3.3 Wskazówka: należy unikać problemu ABA (296) 7.3.4. Wskazówka: należy identyfikować pętle aktywnego oczekiwania i wykorzystywać czas bezczynności na wspieranie innego wątku (297) Rozdział 8. Projektowanie współbieżnego kodu (299) 8.1. Techniki dzielenia pracy pomiędzy wątki (300) 8.1.1. Dzielenie danych pomiędzy wątki przed rozpoczęciem przetwarzania (301) 8.1.2. Rekurencyjne dzielenie danych (302) 8.1.3. Dzielenie pracy według typu zadania (307) 8.2. Czynniki wpływające na wydajność współbieżnego kodu (310) 8.2.1. Liczba procesorów (310) 8.2.2. Współzawodnictwo o dane i ping-pong bufora (311) 8.2.3. Fałszywe współdzielenie (314) 8.2.4. Jak blisko należy rozmieścić dane? (315) 8.2.5. Nadsubskrypcja i zbyt intensywne przełączanie zadań (316) 8.3. Projektowanie struktur danych pod kątem wydajności przetwarzania wielowątkowego (317) 8.3.1. Podział elementów tablicy na potrzeby złożonych operacji (317) 8.3.2. Wzorce dostępu do danych w pozostałych strukturach (319) 8.4. Dodatkowe aspekty projektowania współbieżnych struktur danych (321) 8.4.1. Bezpieczeństwo wyjątków w algorytmach równoległych (321) 8.4.2. Skalowalność i prawo Amdahla (329) 8.4.3. Ukrywanie opóźnień za pomocą wielu wątków (330) 8.4.4. Skracanie czasu reakcji za pomocą technik przetwarzania równoległego (332) 8.5. Projektowanie współbieżnego kodu w praktyce (334) 8.5.1. Równoległa implementacja funkcji std::for_each (334) 8.5.2. Równoległa implementacja funkcji std::find (337) 8.5.3. Równoległa implementacja funkcji std::partial_sum (343) Rozdział 9. Zaawansowane zarządzanie wątkami (355) 9.1. Pule wątków (356) 9.1.1. Najprostsza możliwa pula wątków (356) 9.1.2. Oczekiwanie na zadania wysyłane do puli wątków (359) 9.1.3. Zadania oczekujące na inne zadania (363) 9.1.4. Unikanie współzawodnictwa w dostępie do kolejki zadań (366) 9.1.5. Wykradanie zadań (368) 9.2. Przerywanie wykonywania wątków (372) 9.2.1. Uruchamianie i przerywanie innego wątku (373) 9.2.2. Wykrywanie przerwania wątku (375) 9.2.3. Przerywanie oczekiwania na zmienną warunkową (375) 9.2.4. Przerywanie oczekiwania na zmienną typu std::condition_variable_any (379) 9.2.5. Przerywanie pozostałych wywołań blokujących (381) 9.2.6. Obsługa przerwań (382) 9.2.7. Przerywanie zadań wykonywanych w tle podczas zamykania aplikacji (383) Rozdział 10. Algorytmy równoległości (385) 10.1. Algorytmy równoległe w bibliotece standardowej (385) 10.2. Polityki wykonywania (386) 10.2.1. Ogólny efekt wyboru polityki wykonywania (386) 10.2.2. std::execution::sequenced_policy (388) 10.2.3. std::execution::parallel_policy (388) 10.2.4. std::execution::parallel_unsequenced_policy (389) 10.3. Algorytmy równoległości w bibliotece standardowej C++ (390) 10.3.1. Przykłady używania algorytmów równoległych (392) 10.3.2. Licznik odwiedzin (394) Rozdział 11. Testowanie i debugowanie aplikacji wielowątkowych (397) 11.1. Rodzaje błędów związanych z przetwarzaniem współbieżnym (398) 11.1.1. Niechciane blokowanie (398) 11.1.2. Sytuacje wyścigu (399) 11.2. Techniki lokalizacji błędów związanych z przetwarzaniem współbieżnym (400) 11.2.1. Przeglądanie kodu w celu znalezienia ewentualnych błędów (401) 11.2.2. Znajdowanie błędów związanych z przetwarzaniem współbieżnym poprzez testowanie kodu (403) 11.2.3. Projektowanie kodu pod kątem łatwości testowania (405) 11.2.4. Techniki testowania wielowątkowego kodu (407) 11.2.5. Projektowanie struktury wielowątkowego kodu testowego (410) 11.2.6. Testowanie wydajności wielowątkowego kodu (413) Dodatek A. Krótki przegląd wybranych elementów języka C++11 (415) A.1. Referencje do r-wartości (415) A.2. Usunięte funkcje (420) A.3. Funkcje domyślne (421) A.4. Funkcje constexpr (425) A.5. Funkcje lambda (430) A.6. Szablony zmiennoargumentowe (436) A.7. Automatyczne określanie typu zmiennej (440) A.8. Zmienne lokalne wątków (441) A.9. Ustalanie argumentu szablonu klasy (442) Dodatek B. Krótkie zestawienie bibliotek przetwarzania współbieżnego (445) Dodatek C. Framework przekazywania komunikatów i kompletny przykład implementacji systemu bankomatu (447) Dodatek D. Biblioteka wątków języka C++ (465)
Sygnatura czytelni BWEAiI: XII Ł 179
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. 149892 N (1 egz.)
Książka
W koszyku
Indeks.
Dla programistów i menedżerów pracujących według zasad DevOps.
Ciągłe dostarczanie co i jak Wprowadzenie czym jest ciągłe dostarczanie? Dlaczego udostępnianie oprogramowania jest tak skomplikowane? Ciągła integracja daje nadzieję Powolne i ryzykowne procesy Szybka praca jest możliwa Wartość ciągłego dostarczania Regularność Możliwość śledzenia i sprawdzalność zmian Regresja Korzyści płynące z ciągłego dostarczania Ciągłe dostarczanie w celu przyspieszenia udostępniania Przykład Implementowanie funkcji i udostępnianie jej w środowisku produkcyjnym Przejście do następnej funkcji Ciągłe dostarczanie zapewnia przewagę konkurencyjną Scenariusz bez ciągłego dostarczania Ciągłe dostarczanie i Lean Startup Wpływ na proces rozwoju produktu Minimalizowanie ryzyka za pomocą ciągłego dostarczania Szybsze informacje zwrotne i podejście Lean Procesy generowania i struktura potoku ciągłego dostarczania Zapewnianie infrastruktury Automatyzowanie infrastruktury przykład Skrypty instalacyjne Problemy związane ze standardowymi skryptami instalacyjnymi Chef Chef a Puppet Inne możliwości Podstawy techniczne Podstawowe pojęcia związane z Chefem Chef, księgi receptur i receptury Role Chef Solo Chef Solo wnioski Knife i Chef Server Chef Server wnioski Vagrant Przykład zastosowania Chefa i Vagranta Vagrant wnioski Docker Rozwiązanie oparte na Dockerze Kontenery Dockera a wirtualizacja Cel używania Dockera Komunikacja między kontenerami Dockera Tworzenie kontenerów Dockera Pliki Dockerfile Tworzenie i uruchamianie obrazów Dockera Uruchamianie przykładowej aplikacji za pomocą Dockera Dodatkowe polecenia Dockera Docker i Vagrant Vagrant jako mechanizm dodawania oprogramowania Docker Machine Tworzenie złożonych konfiguracji za pomocą Dockera Docker Registry Docker w klastrze Docker Compose Niemodyfikowalny serwer Wady idempotencji Serwer niemodyfikowalny i Docker Infrastruktura jako kod Testowanie infrastruktury w postaci kodu Serverspec Test Kitchen ChefSpec Platforma jako usługa Obsługa danych i baz Zarządzanie schematami Dane testowe i główne Potok ciągłego dostarczania Automatyzacja procesu budowania i ciągła integracja Automatyzacja procesu budowania przykład Automatyzowanie procesu budowania i narzędzia do budowania Narzędzia do budowania w świecie Javy Ant Maven Kontrola wersji i snapshoty Udostępnianie z użyciem Mavena Gradle Gradle Wrapper Dodatkowe narzędzia do budowania Wybór odpowiedniego narzędzia Testy jednostkowe Pisanie dobrych testów jednostkowych Programowanie sterowane testami Ruchy Clean Code i Software Craftsmanship Ciągła integracja Jenkins Rozszerzanie Jenkinsa za pomocą wtyczek Wtyczka SCM Sync Configuration Wtyczka Environment Injector Wtyczka Job Configuration History Wtyczka Clone Workspace SCM Wtyczka Build Pipeline Wtyczka Amazon EC2 Wtyczka Job DSL Tworzenie własnych wtyczek Infrastruktura do ciągłej integracji Pomiar jakości kodu SonarQube Integrowanie z potokiem Zarządzanie artefaktami Integracja z procesem budowania Zaawansowane funkcje repozytoriów Testy akceptacyjne Testy akceptacyjne przykład Piramida testów Czym są testy akceptacyjne? Zautomatyzowane testy akceptacyjne Więcej niż wzrost wydajności Testy ręczne A co z klientem? Testy akceptacyjne a testy jednostkowe Środowiska testowe Testy akceptacyjne oparte na interfejsie GUI Problemy z testami z użyciem interfejsu GUI Stosowanie abstrakcji Automatyzacja z użyciem narzędzia Selenium Interfejs API WebDriver Testy bez użycia przeglądarki HtmlUnit Interfejs API WebDriver dla Selenium Środowisko IDE dla Selenium Problemy ze zautomatyzowanymi testami interfejsu GUI Wykonywanie testów z użyciem interfejsu GUI Eksportowanie testów jako kodu Ręczne modyfikowanie przypadków testowych Dane testowe Obiekty reprezentujące strony Inne narzędzia do przeprowadzania testów z użyciem interfejsu GUI PhantomJS Windmill Tekstowe testy akceptacyjne Podejście BDD Różne adaptery Inne platformy Strategie przeprowadzania testów akceptacyjnych Właściwe narzędzie Błyskawiczne informacje zwrotne Pokrycie testami Testy wydajności Testy wydajności przykład Testy wydajności jak je przeprowadzać? Cele testów wydajności Środowiska i ilość danych Testy szybkości tylko po zakończeniu implementowania kodu? Testy wydajności = zarządzanie ryzykiem Symulowanie działań użytkowników Dokumentowanie wymogów związanych z szybkością Sprzęt potrzebny w testach wydajności Chmura i wirtualizacja Minimalizowanie ryzyka dzięki ciągłemu testowaniu Testy wydajności sensowne czy nie? Implementowanie testów wydajności Testy wydajności z użyciem narzędzia Gatling Wersja demonstracyjna a praktyka Narzędzia używane zamiast Gatlinga Grinder Apache JMeter Tsung Rozwiązania komercyjne Testy eksploracyjne Testy eksploracyjne przykład Po co stosować testy eksploracyjne? Czasem testy ręczne i tak są lepsze Testy z udziałem klientów Testy ręczne wymagań niefunkcjonalnych Jak zabrać się za testy eksploracyjne? Zadanie określa testy Zautomatyzowane środowisko Przypadki pokazowe jako punkt wyjścia Przykład aplikacja z obszaru handlu elektronicznego Testy wersji beta Testy oparte na sesji Wdrażanie udostępnianie w środowisku produkcyjnym Wdrażanie przykład Udostępnianie i wycofywanie Korzyści Wady Zastępowanie nową wersją Korzyści Wady Wdrażanie w modelu niebieskie-zielone Korzyści Wady Udostępnianie kanarkowe Korzyści Wady Ciągłe wdrażanie Korzyści Wady Wirtualizacja Hosty fizyczne Poza aplikacje sieciowe Eksploatacja Eksploatacja przykład Trudności z eksploatacją oprogramowania Pliki dziennika Co należy rejestrować? Narzędzia do przetwarzania plików dziennika Elasticsearch, Logstash i Kibana Rejestrowanie danych w przykładowej aplikacji Analizowanie dzienników przykładowej aplikacji Analizowanie danych za pomocą Kibany ELK skalowalność Inne technologie obsługi dzienników Zaawansowane techniki rejestrowania dzienników Anonimizacja Szybkość działania Czas Operacyjna baza danych Monitorowanie Pomiary z użyciem narzędzia Graphite Pomiary w przykładowej aplikacji Struktura przykładu Inne rozwiązania z obszaru monitorowania Inne wyzwania związane z eksploatacją aplikacji Skrypty Aplikacje w centrum danych klienta Zarządzanie, kwestie organizacyjne i architektura w obszarze ciągłego dostarczania Wprowadzanie ciągłego dostarczania w organizacji Ciągłe dostarczanie od początku projektu Odwzorowywanie strumienia wartości Odwzorowywanie strumienia wartości pozwala opisać sekwencję zdarzeń Optymalizacje Dodatkowe sposoby optymalizacji Inwestycje wysokiej jakości Koszty Korzyści Nie dodawaj kodu, gdy proces budowania kończy się niepowodzeniem! Zatrzymywanie taśmy Pięć pytań dlaczego DevOps Ciągłe dostarczanie i DevOps Czym jest model DevOps? Problemy Perspektywa klienta Pionierska firma Amazon DevOps Ciągłe dostarczanie i DevOps DevOps więcej niż ciągłe dostarczanie Pełna odpowiedzialność i samoorganizowanie się Decyzje z obszaru technologii Mniej scentralizowanej kontroli Pluralizm w obszarze technologii Wymiana między zespołami Architektura Ciągłe dostarczanie bez modelu DevOps? Końcowa część potoku ciągłego dostarczania Ciągłe dostarczanie, DevOps i architektura oprogramowania Architektura oprogramowania Po co tworzyć architekturę oprogramowania? Optymalizowanie architektury pod kątem ciągłego dostarczania Mniejsze jednostki wdrażania Interfejsy Prawo Postela lub zasada odporności Projektowanie pod kątem niepowodzeń Stan Bazy danych Zapewnianie stabilności baz danych Baza danych = komponent Widoki i procedury składowane Baza danych dla komponentu Bazy typu NoSQL Mikrousługi Mikrousługi i ciągłe dostarczanie Wprowadzanie ciągłego dostarczania z użyciem mikrousług Mikrousługi wymagają ciągłego dostarczania Struktura organizacyjna Radzenie sobie z nowymi funkcjami Odgałęzienia kodu funkcji Przełączniki funkcji Korzyści Przykłady zastosowań przełączników funkcji Wady Wnioski - jakie korzyści wynikają z ciągłego dostarczania?
Sygnatura czytelni BWEAiI: XII J 71
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. 145288 N (1 egz.)
Książka
W koszyku
Prawdziwy świat kryptografii / David Wong ; [przekład Wojciech Fenrich]. - Wydanie I. - Warszawa : PWN, 2023. - XXVIII, 412 stron : fotografie, ilustracje ; 24 cm.
Indeks.
Dla specjalistów ds. cyberbezpieczeństwa i programistów szyfrujących dane.
CZĘŚĆ I PRYMITYWY. SKŁADNIKI KRYPTOGRAFII 1.1.W kryptografii chodzi o zabezpieczenie protokołów 1.2.Kryptografia symetryczna. Czymjest szyfrowanie symetryczne? 1.3.Zasada Kerckhoffsa: tylko klucz pozostaje tajny 1.4.Kryptografia asymetryczna. Dwa klucze są lepsze niżjeden O wymienianiu się kluczami albo jak uzyskać dostęp do wspólnego sekretu Szyfrowanie asymetryczne, nie mylić z symetrycznym Podpisy cyfrowe, zupełnie jak te tradycyjne 1.5.Kryptografia: klasyfikacje i abstrakcje 1.6.Kryptografia teoretyczna a prawdziwy świat kryptografii 1.7.Od teorii do praktyki. Każdy może pójść własną ścieżką 1.8.Słowo ostrzeżenia 2 Funkcje skrótu (funkcje haszujące) 2.1.Czymjest funkcja skrótu? 2.2.Właściwości zabezpieczeń funkcji skrótu 2.3.Uwarunkowania zabezpieczeń funkcji skrótu 2.4.Funkcje skrótu w praktyce Zobowiązania Integralność zasobów podrzędnych 36 BitTor-rent Tor 2.5.Znormalizowane funkcje skrótu Funkcja haszująca SHA-2 Funkcja haszująca SHA-3 SHAKE i cSHAKE. Dwie funkcje o rozszerzalnym wyjściu (XOF) Jak uniknąć wieloznacznego haszowania za pomocą TupleHash 2.6.Haszowanie haseł 3Kody uwierzytelniania wiadomości 3.1.Ciasteczka bezstanowe - motywujący przykład dla MAC 3.2.Kod z przykładem 3.3.Właściwości zabezpieczeń MAC Fałszerstwo znacznika uwierzytelniania Długość znacznika uwierzytelnia¬nia Ataki powtórzeniowe Weryfikacja znaczników uwierzytelniania w stałym czasie 3.4.MAC w prawdziwym świecie Uwierzytelnianie wiadomości Wyprowadzanie kluczy Integralność ciasteczek Tablice mieszające 3.5.Kody uwierzytelniania wiadomości w praktyce HMAC, czyli MAC oparty na haszu KMAC, czyli MAC oparty na cSHA¬KE 3.6.SHA-2 i ataki przedłużenia długości 4Szyfrowanie uwierzytelnione 4.1.Czym jest szyfr? 4.2.Szyfr blokowy AES Jaki poziom bezpieczeństwa zapewnia AES? Interfejs AES Wewnętrzna konstrukcja AES 4.3.Zaszyfrowany pingwin i tryb CBC 4.4.Na brak uwierzytelnienia - AES-CBC-HMAC 4.5.Konstrukcje typu „wszystko w jednym". Szyfrowanie uwierzytelnione Czym jest szyfrowanie uwierzytelnione z powiązanymi danymi (AEAD)? Algorytm AEAD o nazwie AES-GCM ChaCha20-Poly1305 4.6.Inne rodzaje szyfrowania symetrycznego Opakowywanie klucza Szyfrowanie uwierzytelnione odporne na niepopraw¬ne użycie nonce Szyfrowanie dysku Szyfrowanie baz danych 5Wymiany klucza 5.1.Czym są wymiany klucza? 5.2.Wymiana klucza Diffiego-Hellmana (DH) Teoria grup Problem logarytmu dyskretnego. Fundament algorytmu Diffiego-Hellmana Normy algorytmu Diffiego-Hellmana 5.3.Wymiana kluczy przy użyciu protokołu Diffiego-Hellmana w przestrzeni krzywych eliptycznych Czym jest krzywa eliptyczna? Jak działa algorytm Diffiego-Hellmana oparty na krzywych eliptycznych? Normy dla algorytmu Diffiego-Hellmana w prze¬strzeni krzywych eliptycznych 5.4.Atak przeciwko małym podgrupom i inne czynniki związane z bezpieczeństwem 6Szyfrowanie asymetryczne i szyfrowanie hybrydowe 6.1.Czym jest szyfrowanie asymetryczne? 6.2.Szyfrowanie asymetryczne i szyfrowanie hybrydowe w praktyce Wymiany klucza i kapsułkowanie klucza Szyfrowanie hybrydowe 6.3.Szyfrowanie asymetryczne przy użyciu RSA: złe i mniej złe Podręcznikowe RSA Dlaczego nie należy używać RSA PKCS#1 v1.5 Szyfrowanie asymetryczne przy użyciu RSA-OAEP 6.4.Szyfrowanie hybrydowe przy użyciu ECIES 7 Podpisy i dowody z wiedzą zerową 7.1. Czym jest podpis? Jak w praktyce weryfikować podpisy Najważniejszy przypadek użycia pod¬pisów, czyli uwierzytelnione wymiany klucza Rzeczywisty przypadek użycia. Infrastruktura klucza publicznego 7.2.Dowody z wiedzą zerową (ZKP). Pochodzenie podpisów Protokół identyfikacji Schnorra. Interaktywny dowód z wiedzą zerową Podpisyjako nieinteraktywne dowody z wiedzą zerową 7.3.Algorytmy podpisów, z których powinniśmy korzystać (lub nie) RSA PKCS#1 v1.5, czyli zła norma RSA-PSS. Lepsza norma Algorytm podpisu elektronicznego oparty na krzywych eliptycznych Algorytm podpisu cyfrowego oparty na krzywej Edwardsa 7.4.Subtelności schematów podpisów Ataki podstawieniowe na podpisy Deformowalność podpisu 1 8Losowość i sekrety 8.1.Czym jest losowość? 8.2.Powolna losowość? Skorzystajmy z generatora liczb pseudolosowych (PRNG) 8.3.Uzyskiwanie losowości w praktyce 8.4.Generowanie losowości i czynniki związane z bezpieczeństwem 8.5.Publiczna losowość 8.6.Wyprowadzanie kluczy za pomocą HKDF 8.7.Zarządzanie kluczami i sekretami 8.8.Decentralizacja zaufania za pomocą kryptografii progowej CZĘŚĆ II PROTOKOŁY, CZYLI PRZEPISY NA KRYPTOGRAFIĘ 9Bezpieczny transport 9.1.Bezpieczne protokoły transportowe: SSL i TLS Od SSL do TLS TLS w praktyce 9.2.Jak działa protokół TLS? Handshake TLS Jak TLS 1.3 szyfruje dane aplikacji Aktualny stan szyfrowania w sieci web Inne bezpieczne protokoły transportowe Framework protokołu Noise. Współczesna alternatywa dla TLS Wiele odcieni fazy handshake Handshake przy użyciu Noise 10Szyfrowanie od końca do końca 10.1.Dlaczego szyfrowanie od końca do końca? 10.2.Niemożliwe do odnalezienia źródło zaufania 10.3.Porażka szyfrowanych e-maili PGP czy GPG? Ijak to w ogóle działa? Skalowanie zaufania pomiędzy użytkownika¬mi za pomocą sieci zaufania Odkrywanie kluczy to prawdziwy problem Jeśli nie PGP, to co? 10.4.Bezpieczne przesyłanie wiadomości. Nowoczesne spojrzenie na szyfrowanie od końca do końca w aplikacji Signal Bardziej przyjazny dla użytkownika niż WOT. Ufaj, ale weryfikuj X3DH. Handshake protokołu Signal Podwójna Zapadka. Protokół post-handshake Signala 10.5.Stan szyfrowania od końca do końca 11Uwierzytelnianie użytkownika 11.1.Uwierzytelnianie - kilka słów podsumowania 11.2.Uwierzytelnianie użytkownika, czyli jak pozbyć się haseł Jedno hasło, by rządzić wszystkimi. Pojedyncze logowanie (SSO) i menedżery haseł Nie chcecie widzieć haseł? Użyjcie asymetrycznej wymiany kluczy uwierzytelnianej hasłem Hasła jednorazowe to tak naprawdę nie hasła. Bezhasłowość przy użyciu kluczy symetrycznych Jak zastąpić hasła kluczami asymetrycznymi 11.3.Uwierzytelnianie wspomagane przez użytkownika - parowanie urządzeń wykorzystujące wsparcie człowieka Klucze wstępnie współdzielone Symetryczne uwierzytelnianie hasłem wymiany klucza przy użyciu CPace Czy naszą wymianę klucza zaatakował pośrednik? Po prostu sprawdźmy krótki ciąg uwierzytelniony (SAS) 12Krypto jak w słowie „kryptowaluta"? 12.1.Wprowadzenie do algorytmów konsensusu tolerancyjnych na bizantyjskie błędy Problem odporności. Protokoły rozproszone przychodzą na ratunek Prob¬lem zaufania? Decentralizacja przychodzi z pomocą Problem skali. Sieci bezpozwoleniowe i odporne na cenzurę 12.2.Jak działa bitcoin? Wjaki sposób bitcoin obsługuje salda użytkownika i transakcje Wydobywa¬nie bitcoinów w cyfrowej złotej erze Jasny fork! Rozwiązywanie konfliktów wydobywczych Redukcja rozmiaru bloku za pomocą drzew Merkle 12.3.Wycieczka po świecie kryptowalut Zmienna wartość Latencja Rozmiar łańcucha bloków Poufność Wydajność energetyczna 12.4.DiemBFT. Tolerancyjny na bizantyjskie błędy protokół konsensusu Bezpieczeństwo i żywotność. Dwie własności protokołu konsensusu BFT Runda w protokole DiemBFT Ile nieuczciwości może tolerować protokół? Zasady głosowania DiemBFT Kiedy transakcje uważa się za sfinalizowa¬ne? Intuicje stojące za bezpieczeństwem DiemBFT 13Kryptografia sprzętowa 13.1.Model napastnika we współczesnej kryptografii Niezaufane środowiska. Sprzęcie, ratuj! Kryptografia białej skrzynki - zły pomysł Siedzą w naszych portfelach. Inteli-gentne karty i bezpieczne elementy Banki je uwielbiają. Sprzętowe moduły bezpieczeństwa Moduły zaufanej platformy (TPM). Przydatna normaliza¬cja elementów bezpiecznych Poufne obliczenia z zaufanym środowiskiem wykonawczym 13.3.Które rozwiązanie będzie dobre dla mnie? 13.4.Kryptografia odporna na wycieki, czyli jak złagodzić ataki kanałem bocznym w oprogramowaniu Programowanie stałoczasowe Nie korzystaj z sekretu! Maskowanie A co z atakami usterek? 14Kryptografia postkwantowa 14.1.Czym są komputery kwantowe i dlaczego straszą kryptografów? Mechanika kwantowa - studium rzeczy małych Od narodzin komputerów kwantowych po supremację kwantową Wpływ algorytmów Grovera i Shora na kryptografię Kryptografia postkwantowa, czyli jak się bronić przed kom-puterami kwantowymi 14.2.Podpisy oparte na haszach. Nie potrzeba niczego poza funkcją skrótu Podpisy jednorazowe (OTS) z podpisami Lamporta Mniejsze klucze i jednorazowe podpisy Winternitza Podpisy wielorazowe z XMSS oraz SPHINCS+ 14.3.Krótsze klucze i podpisy dzięki kryptografii opartej na kratach Czymjest krata? Uczenie się z błędami podstawą kryptografii? Kyber, czyli wymiana klucza oparta na kracie Dilithium - schemat podpisu opar¬ty na kracie 14.4.Czy powinniśmy zacząć panikować? 15Czy to już wszystko? Kryptografia następnej generacji 15.1.Im więcej, tym lepiej. Bezpieczne obliczenia wielostronne Przecięcie zbiorów prywatnych (PSI) MPC ogólnego przeznaczenia Stan MPC 15.2.W pełni homomorficzne szyfrowania i obietnica zaszyfrowanej chmury Przykład szyfrowania homomorficznego z szyfrowaniem RSA Różne typy szyfrowania homomorficznego Bootstrapping, klucz do w pełni homomor-ficznego szyfrowania Schemat FHE oparty na problemie uczenia się z błę¬dami Gdzie się z tego korzysta? 15.3.Dowody z wiedzą zerową ogólnego przeznaczenia 15.3.1. Jak działają schematy zk-SNARK Zobowiązania homomorficzne - ukrywamy części dowodu Parowania bilinearne - ulepszamy nasze zobo-wiązania homomorficzne Skąd się bierze zwięzłość? Od programów do wielomianów Programy są dla komputerów; nam potrzebne są układy arytmetyczne Układy arytmetyczne R1CS Od R1CS do wielo¬mianu Trzeba dwojga, aby określić wartość wielomianu ukrytego w wykładniku 16Kiedy i gdzie kryptografia zawodzi 16.1.Szukanie właściwego prymitywu kryptograficznego lub protokołu to nudna praca 16.2.W jaki sposób korzystam z prymitywu kryptograficznego lub protokołu? Uprzejme normy i formalna weryfikacja 16.3.Gdzie są dobre biblioteki? 16.4.Niewłaściwe wykorzystanie kryptografii. Programiści to wrogowie 16.5.Robicie to źle. Użyteczne zabezpieczenia 16.6.Kryptografia nie jest wyspą 16.7.Nasze obowiązki jako praktyków kryptografii. Dlaczego nie powinniśmy wdrażać własnej kryptografii
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 153849 N (1 egz.)
Książka
W koszyku
TDD : techniki programowania sterowanego testami / Dariusz Woźniak. - Gliwice : Wydawnictwo Helion, copyright 2018. - 326 stron : ilustracje ; 24 cm.
Bibliografia na stronach [311]-318. Indeks.
Kontekst jest królem (23) Atrapa to mock czy test double? (23) xUnit a xUnit.net (24) Funkcja a funkcjonalność oraz funkcyjny a funkcjonalny (24) Jak uczyć się metody Test-Driven Development? (25) Rozdział 1. Wprowadzenie do TDD (29) Błędy w oprogramowaniu (31) Cykl Red-Green-Refactor (32) Rozdział 2. Co zyskujemy dzięki TDD? (35) Wysoka jakość kodu (35) Czy pisanie w metodyce TDD oznacza pisanie według zasad SOLID? (36) Prostota kodu: YAGNI i KISS (37) Żywa dokumentacja (38) Lepsze zrozumienie wymagań biznesowych (38) Automatyczna regresja (39) Informacja zwrotna (41) Mniej defektów (42) Czas programowania jest krótszy (43) Niższy koszt zmian (43) Przypadki użycia (45) Badanie Microsoft Research nad zespołami Microsoftu i IBM (45) Pilotażowy projekt dla dużej firmy (45) Mały projekt w parach (47) Metaanaliza (47) Rozdział 3. Trudności przy wdrażaniu TDD (49) Ścieżka nauki (49) Dyscyplina (50) Więcej narzędzi (50) Początkowa percepcja dłuższego czasu potrzebnego do napisania kodu (51) Jak "sprzedać" TDD kierownictwu? (51) Musimy dostarczać szybko, a w naszym projekcie nie ma czasu na TDD (51) Lista kontrolna: Definition of Done (52) Rozdział 4. Filozofia TDD (57) Test-First czy Test-Last? (58) Wszystkie testy naraz czy test po teście? (59) Weryfikacja stanu czy zachowania? (60) Jedna czy wiele asercji? (60) Scenariusz 1.: Jedna oczekiwana zmienna wyjściowa (60) Scenariusz 2.: Wiele oczekiwanych zmiennych wyjściowych (61) Scenariusz 3.: Asercje pośrednie (62) Wiele asercji w jednym teście (66) Kiedy pisanie testów jednostkowych nie ma sensu? (67) Czy należy pisać testy jednostkowe do bibliotek innych dostawców? (68) Czy TDD sprawdza się dla małych aplikacji? (69) Czy TDD sprawdza się dla dużych aplikacji? (70) Czy testy jednostkowe zastępują testera? (70) Jak pisanie testów jednostkowych wpływa na estymatę zadania? (71) Czy testy jednostkowe można pisać w innym języku programowania niż pisany jest kod? (71) Czy testy jednostkowe może pisać inna osoba? (72) Czy system może mieć zbyt dużo testów jednostkowych? (72) Czy testy jednostkowe to jedyne testy, jakie powinny znajdować się w aplikacji? (73) Jakich testów powinno być najwięcej (piramida testów)? (74) Rozdział 5. Rodzaje testów (77) Sposób wykonywania (77) Wiedza na temat struktury systemu (test skrzynki) (77) Poziom testowania (78) Testowanie po zmianach dokonanych w systemie (80) Testowanie niefunkcjonalne (80) Test wydajnościowy (81) Rozdział 6. Test jednostkowy (83) Struktura testu: Arrange-Act-Assert (83) Alternatywne struktury testu (84) Test jednostkowy a test integracyjny (85) Myśl jak tester: ścieżki optymistyczne i przypadki brzegowe (86) Jak nazywać klasy i metody testowe? (87) Podział testów i projekty testowe (88) Rozdział 7. Nasz pierwszy test jednostkowy (91) Wybór biblioteki do testowania (91) Zanim zaczniemy... (92) Dodanie solucji i projektów (92) Dodanie biblioteki NUnit (93) Etap red: pisanie testu do nieistniejącej metody (95) Jak uruchomić test? (98) Etap green: implementacja kodu (102) Etap trzeci (i ostatni): refaktoryzacja kodu (103) Rozdział 8. Piszemy kolejne testy jednostkowe (105) Drugi test jednostkowy (105) Kolejne przypadki użycia (106) Testy ułamków nieskończonych lub zaokrąglonych (108) Testowanie wyrzucenia wyjątku (109) Testowanie zdarzenia (111) Rozdział 9. Testowanie z NUnitem (115) Asercje (116) Model klasyczny i model oparty na twierdzeniach (118) Operacja równości (120) Porównanie dwóch typów wartościowych (121) Porównanie dwóch typów referencyjnych (122) Porównanie dwóch typów referencyjnych z nadpisanym operatorem porównania (122) Tolerancja: delta i procent (124) Tolerancja: czas (124) Własna klasa obsługująca porównanie (125) Metody pomocnicze (126) Operacje porównania (126) Własna klasa obsługująca porównanie (127) Należy do zakresu (128) Złożenia (128) Testowanie typów (129) Testowanie wyjątków (131) Testowanie, czy kod wyrzucił wyjątek (133) Testowanie, czy kod nie wyrzucił wyjątku (135) Testowanie parametru i komunikatu wyjątku (136) Testowanie wewnętrznego wyjątku (137) Typ tekstowy (137) Kolekcje (138) System plików (141) Komunikaty (142) Własne komunikaty błędów (144) Własne komunikaty informacyjne (145) Komunikat a nazwa testu (146) Współdzielenie danych (147) Kiedy korzystać ze współdzielenia danych? (148) Testy parametryzowane (150) TestCase (151) Values (152) Range (154) Random (154) TestCaseSource (155) ValueSource (160) Testy oparte na zewnętrznych źródłach (160) Strategie łączenia wartości testowych (161) Test kombinatoryczny (161) Test sekwencyjny (162) Test par (163) Teorie (166) Testowanie klas generycznych (170) Zasada podstawienia Liskov (172) Testowanie wywołań asynchronicznych (174) Równoległe uruchamianie testów (178) Poziom zrównoleglenia (179) Kiedy zrównoleglić uruchamianie testów? (179) Pozostałe atrybuty (179) Sterowanie wątkiem (180) Kategoria testu (180) Atrybuty informacyjne (182) Przekazywanie parametrów (182) Ignorowanie testów (183) Kolejność wykonywania testów (185) Ustawienia regionalne (185) Powtarzanie testu (188) Czas wykonywania testu (189) Platforma (190) Atrybuty a testy parametryzowane (192) Rozdział 10. Testowanie zależności i atrapy obiektów (193) Ręczne tworzenie atrapy (195) Kryterium akceptacji nr 1: wiek klienta niższy niż 18 lat (196) Kryterium akceptacji nr 2: wiek klienta większy bądź równy 18 lat (198) Kryterium akceptacji nr 3: jeśli obiekt klienta jest nullem, to wyrzuć wyjątek (200) Podsumowanie (200) Wprowadzenie do frameworku Moq (201) Składnia imperatywna i deklaratywna (202) Składnia imperatywna (203) Składnia deklaratywna (204) Wybór składni (205) Atrapa rekursywna (recursive mock) (205) Tryb zachowania właściwości (stubbing) (206) Zwracanie domyślnej wartości (207) Atrapa z sekwencyjnym rezultatem (208) Tryb zachowania atrapy (MockBehavior) (209) Przekazywanie parametrów w metodzie (argument matchers) (210) Ponowne użycie matcherów (215) Weryfikacja wywołań (216) Weryfikacja wywołania metody (217) Weryfikacja dostępu i zapisu właściwości (219) Testować stan czy zachowanie? (220) Komunikat błędu (221) Wywołanie zwrotne: Callback (222) Podsumowanie (224) Wywołanie składowej bazowej: CallBase (224) Atrapa wyrzucająca wyjątek (226) Inne poziomy dostępności (227) protected (228) internal (229) Klasyfikacja atrap (230) Dummy (230) Stub (232) Fake (233) Mock (235) Spy (235) Ograniczenia Moqa (237) Tworzenie atrap dla klas i metod statycznych (238) Rodzaje bibliotek do tworzenia atrap (241) Constrained (241) Unconstrained (241) Constrained czy unconstrained? (242) Rozdział 11. Dobre praktyki pisania testów jednostkowych (245) Test powinien być szybki, bardzo szybki! (246) Testy powinny być odizolowane i niezależne od siebie (247) Test powinien być powtarzalny (247) Test powinien być deterministyczny (248) Test nie powinien mieć zależności zewnętrznych (248) Test nie powinien mieć konfiguracji (249) Wynik testu nie powinien być interpretowany (249) Test nie powinien być pusty (250) Zalążek kodu powinien wyrzucać wyjątek (250) Test powinien mieć jedną logiczną asercję (251) Testy nie powinny być dyskryminowane (251) Testy powinny być podzielone według kategorii (251) Test powinien mieć strukturę Arrange-Act-Assert (251) Test powinien obejmować ścieżki optymistyczne i przypadki brzegowe (252) Test powinien mieć odpowiednią nazwę (252) Testowane powinny być tylko publiczne składowe (252) Test powinien oczekiwać konkretnego typu wyjątku (253) Test powinien oczekiwać wyjątku w konkretnym wyrażeniu (253) Test nie powinien zawierać instrukcji warunkowych i pętli (253) Test powinien mieć wartości oczekiwane wpisane "na sztywno" (254) Test powinien mieć asercję (255) Test powinien być nieskomplikowany (255) Test nie powinien być "przespecyfikowany" (256) Test nie powinien zawierać metod z atrybutami SetUp i TearDown (257) Klasa testowa powinna być bezstanowa (257) Komunikaty asercji nie powinny być nadmiarowe (258) Rozdział 12. TDD i istniejący kod (261) Refaktoryzacja bezpieczna i mniej bezpieczna (261) Przykład bezpiecznej refaktoryzacji (264) Dodawanie testów do istniejącego kodu (271) Gdzie zacząć dodawać testy? (271) Jak pisać testy? (272) Narzędzia (274) Rozdział 13. Pokrycie kodu testami (277) Co to jest pokrycie kodu testami? (277) Narzędzia do mierzenia pokrycia kodu (278) W ile procent pokrycia powinniśmy celować? (281) Przykłady "fałszywych" testów o stuprocentowym pokryciu kodu (281) 85%, 90% czy 100%? (283) Pokrycie kodu jako narzędzie do identyfikowania brakujących testów (284) Rozdział 14. Ciągła integracja (285) Serwer ciągłej integracji (286) Ciągła dostawa i ciągłe wdrażanie (288) Dodatek A. Biblioteki do testowania (291) Dodatek B. Biblioteki do tworzenia atrap (293) Dodatek C. Biblioteki do mierzenia pokrycia kodu testami (297) Dodatek D. Testy z danymi zewnętrznymi - przypadek użycia (299) Dodatek E. Rozszerzalność NUnita (303) Atrybut informacyjny (305) Atrybut umożliwiający współdzielenie danych (307)
Sygnatura czytelni BWEAiI: XII E 100
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. 146315 N (1 egz.)
Książka
W koszyku
VBA dla Excela 2021 i 365 PL : 234 praktyczne przykłady / Witold Wrotek. - Gliwice : Helion, 2022. - 384 strony : fotografie, ilustracje, wykresy ; 24 cm.
Indeks.
Co to jest VBA? Basic Visual Basic Visual Basic for Applications Czy VBA jest przeżytkiem? VBA i Office 2007, 2010, 2013, 2016, 2019, 2021 Zmieniony wygląd okna programu Makropolecenia w Microsoft Office 2021 Makropolecenia w Microsoft Office dla sieci Web Bezpieczeństwo w Microsoft Office 2021 Jaką funkcję może pełnić VBA? Kiedy warto stosować VBA? Kiedy nie warto stosować VBA? Jak napisać najprostszy program w VBA? Makropolecenia Siedem wersji Microsoft Office Planowanie makropolecenia Microsoft Office 2021 Planowanie i rejestrowanie makropolecenia Jak uruchomić edytor Visual Basic for Applications Gdzie w Excelu jest edytor VBA? Czy makropolecenie może spowodować szkody? Rozdział 3. Okno edytora Visual Basic for Applications Okno Project Okno Properties Okno Code Pasek menu Pasek narzędziowy Pierwszy program Przełączanie między widokami Wyrównywanie obiektów Strzelanie z armaty do komara Kiedy korzystać z makropoleceń, a kiedy z programów napisanych w VBA? Zmienne w VBA Pułapki systemu komunikatów Typy danych Pułapki braku deklaracji Wymuszanie deklarowania zmiennych Zasięg deklaracji Zmienne lokalne Zmienne obowiązujące wewnątrz całego modułu Zmienne globalne Przekazanie wartości przez zmienną globalną Przekazanie wartości przez wywołanie procedury z parametrem Deklaracja typu i instrukcja przypisania Komórka arkusza jako zmienna Tekst jako wartość zmiennej Komunikacja z użytkownikiem Wprowadzanie danych Wyświetlanie komunikatów Poprawność wprowadzanych danych Wycinanie tekstu Obiekty Właściwości Metody Zaznaczanie komórki Elektroniczny sufler Usuwanie zawartości i formatowania Usuwanie zawartości Usuwanie formatowania Usuwanie wartości mniejszych od progowej Przypisanie wartości komórce Kopiowanie zawartości komórek Nadawanie komórce koloru z użyciem nazwy koloru Nadawanie komórce koloru z użyciem kodu koloru Nadawanie koloru zawartości komórki Przesuwanie aktywnej komórki . Instrukcje warunkowe Sterowanie wykonywaniem procedur Skok do etykiety Podejmowanie decyzji Wybór jednej z trzech lub więcej opcji Wykonanie grupy instrukcji określoną liczbę razy Pętle zagnieżdżone Wykonywanie pętli, gdy warunek jest spełniony Elementy sterujące arkusza Pole listy Pole kombi (listy rozwijanej) Pasek Toolbox i elementy sterujące arkusza Zdarzenia Lista zdarzeń dla skoroszytu Lista zdarzeń dla arkusza Lista zdarzeń dla aplikacji Komunikacja z programem Lista zdarzeń dla formularzy Metody i właściwości dla zakresu Kopiowanie zakresu komórek Sortowanie zakresu komórek Filtrowanie zakresu komórek Wyszukiwanie informacji Podprogramy Śledzenie pracy programu Procedury zagnieżdżone Procedury zapętlone. Ściągawka z VBA Funkcje Instrukcje Operatory Operatory arytmetyczne Operatory porównania Operator konkatenacji Operatory logiczne . Funkcje arkuszowe Odpowiedniki funkcji arkuszowych w VBA Dodatek A. Wybrane kody błędów VBA Dodatek B. Programowanie obiektowe Programowanie proceduralne a obiektowe Właściwości Zdarzenia Kolekcje Modele obiektowe Metoda kropkowa Obiekty aktywne
Sygnatura czytelni BWEAiI: XII W 67
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. 153058 (1 egz.)
Książka
W koszyku
Algorytmy w Pythonie : techniki programowania dla praktyków / Piotr Wróblewski. - Gliwice : Helion, 2022. - 552 strony : ilustracje, wykresy ; 24 cm.
Bibliografia na stronach 535-536. Indeks.
Systemy obliczeniowe i podstawy kodowaniaRekurencja Analiza złożoności algorytmów Typy proste wbudowane Modelowanie abstrakcyjnych atruktur danych Przykładowe realizacje wybranych struktur danych Typy złożone wbudowane Struktury danych o dostępie ograniczonym Drzewa i ich reprezentacje Algorytmy przeszukiwania sortowania Derekursywacja i optymalizacja algorytmów Przeszukiwanie tekstów Zaawansowane techniki programowania Algorytmy grafowe Matematyka i Python Kodowanie i kompresja danych
Sygnatura czytelni BWEAiI: XII Ł 207
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. 152992 (1 egz.)
Książka
W koszyku
Tłumaczenie na podstawie "PHP. Obiekty, wzprce, narzędzia. Wydanie IV" w tłumaczeniu Przemysława Szeremioty.
Bibliografia, netografia na stronach [499]-501. Indeks.
Dla każdego projektanta, który chce tworzyć niezawodne, eleganckie i efektywne aplikacje.
OBIEKTY PHP - projektowanie i zarządzanie Problem PHP a inne języki programowania Obiekty Wzorce Narzędzia) PHP i obiekty Nieoczekiwany sukces obiektów w PHP PHP/FI - u zarania języka PHP3 - składniowy lukier Cicha rewolucja - PHP4 PHP5 - nieuchronne zmiany PHP7 - doganianie reszty świata Debata obiektowa - za czy przeciw? Obiektowy elementarz Klasy i obiekty Pierwsza klasa Pierwszy obiekt (lub dwa) Definiowanie składowych klasy Metody Metoda konstrukcji obiektu Typy argumentów metod Typy elementarne Typy obiektowe Dziedziczenie) Problemy związane z dziedziczeniem Stosowanie dziedziczenia Zarządzanie dostępem do klasy - słowa public, private i protected Zaawansowana obsługa obiektów Metody i składowe statyczne Składowe stałe Klasy abstrakcyjne Interfejsy Cechy typowe Zadanie dla cech typowych Definiowanie i stosowanie cechy typowej Stosowanie wielu cech typowych Łączenie cech z interfejsami Unikanie kolizji nazw metod za pomocą słowa insteadof Aliasy metod cech typowych Cechy typowe z metodami statycznymi Dostęp do składowych klasy włączającej Definiowanie metody abstrakcyjnej cechy typowej Zmiana dostępności metod cech typowych Późne wiązanie statyczne: słowo static Obsługa błędów Wyjątki Klasy i metody finalne Klasa do obsługi błędów wewnętrznych Przechwytywanie chybionych wywołań Definiowanie destruktorów Wykonywanie kopii obiektów Reprezentacja obiektu w ciągach znaków Wywołania zwrotne, funkcje anonimowe i domknięcia Klasy anonimowe Narzędzia obiektowe PHP a pakiety Pakiety i przestrzenie nazw w PHP Automatyczne wczytywanie kodu Klasy i funkcje pomocnicze Szukanie klasy Badanie obiektów i klas Pozyskiwanie ciągu pełnej nazwy klasy Badanie metod Badanie składowych Badanie relacji dziedziczenia Badanie wywołań metod Interfejs retrospekcji - Reflection API Zaczynamy Pora zakasać rękawy Badanie klasy Badanie metod Badanie argumentów metod) Korzystanie z retrospekcji Obiekty a projektowanie obiektowe Czym jest projektowanie? Programowanie obiektowe i proceduralne Odpowiedzialność Spójność Sprzęganie Ortogonalność Zasięg klas Polimorfizm Hermetyzacja Nieważne jak Cztery drogowskazy Zwielokrotnianie kodu Przemądrzałe klasy Złota rączka Za dużo warunków Język UML Diagramy klas Diagramy sekwencji CZĘŚĆ II. WZORCE Czym są wzorce projektowe? Do czego się przydają? Czym są wzorce projektowe? Wzorzec projektowy Nazwa Problem Rozwiązanie Konsekwencje Format wzorca według Bandy Czworga Po co nam wzorce projektowe? Wzorzec projektowy definiuje problem Wzorzec projektowy definiuje rozwiązanie Wzorce projektowe są niezależne od języka programowania Wzorce definiują słownictwo Wzorce są wypróbowane Wzorce mają współpracować Wzorce promują prawidła projektowe Wzorce są stosowane w popularnych frameworkach Wzorce projektowe a PHP Wybrane prawidła wzorców Olśnienie wzorcami Kompozycja i dziedziczenie Problem Zastosowanie kompozycji Rozprzęganie Problem Osłabianie sprzężenia Kod ma używać interfejsów, nie implementacji Zmienne koncepcje Nadmiar wzorców Wzorce Wzorce generowania obiektów Wzorce organizacji obiektów i klas Wzorce zadaniowe Wzorce korporacyjne Wzorce baz danych Generowanie obiektów Generowanie obiektów - problemy i rozwiązania Wzorzec Singleton Problem Implementacja Konsekwencje Wzorzec Factory Method Problem Implementacja Konsekwencje Wzorzec Abstract Factory Problem Implementacja Konsekwencje Prototyp Problem Implementacja Naginanie rzeczywistości - wzorzec Service Locator Doskonała izolacja - wstrzykiwanie zależności Problem Implementacja Konsekwencje Wzorce elastycznego programowania obiektowego Strukturalizacja klas pod kątem elastyczności obiektów Wzorzec Composite Problem Implementacja Konsekwencje Composite - podsumowanie Wzorzec Decorator Problem Implementacja Konsekwencje Wzorzec Facade Problem Implementacja Konsekwencje Reprezentacja i realizacja zadań Wzorzec Interpreter Problem Implementacja Ciemne strony wzorca Interpreter Wzorzec Strategy Problem Implementacja Wzorzec Observer Implementacja Wzorzec Visitor Problem Implementacja) Wady wzorca Visitor Wzorzec Command Problem Implementacja Wzorzec Null Object Problem Implementacja Wzorce korporacyjne Przegląd architektury Wzorce Aplikacje i warstwy Małe oszustwo na samym początku Wzorzec Registry Implementacja Warstwa prezentacji Wzorzec Front Controller Wzorzec Application Controller Zarządzanie danymi w komponentach Wzorzec Page Controller Wzorce Template View i View Helper Warstwa logiki biznesowej Wzorzec Transaction Script Wzorzec Domain Model Wzorce bazodanowe Warstwa danych Wzorzec Data Mapper Problem Implementacja Wzorzec Identity Map Problem Implementacja Konsekwencje Wzorzec Unit of Work Problem Implementacja Konsekwencje Wzorzec Lazy Load Problem Implementacja Konsekwencje Wzorzec Domain Object Factory Problem Implementacja Konsekwencje Wzorzec Identity Object Problem Implementacja Konsekwencje Wzorce Selection Factory i Update Factory Problem Implementacja Konsekwencje Co zostało z wzorca Data Mapper? NARZĘDZIA Dobre (i złe) praktyki Nie tylko kod Pukanie do otwartych drzwi Jak to zgrać? Uskrzydlanie kodu Standardy Vagrant Testowanie Ciągła integracja Standardy PHP Po co te standardy? Jakie są standardowe rekomendacje PHP? Dlaczego akurat PSR? Rekomendacje PSR - dla kogo? Kodowanie z klasą Podstawowy standard kodowania PSR-1 Rekomendacja stylu kodowania PSR-2 Sprawdzanie i poprawianie kodu PSR-4 - automatyczne ładowanie Zasady, które są dla nas ważne Używanie i tworzenie komponentów PHP za pomocą Composera Czym jest Composer? Instalowanie Composera Instalowanie (zbioru) pakietów Instalowanie pakietu z poziomu wiersza poleceń Wersje Element require-dev Composer i automatyczne ładowanie kodu Tworzenie własnego pakietu Dodawanie informacji o pakiecie Pakiety systemowe Dystrybucja za pośrednictwem repozytorium Packagist Odrobina prywatności Zarządzanie wersjami projektu z systemem Git Po co mi kontrola wersji? Skąd wziąć klienta Git? Obsługa repozytorium Git online Konfigurowanie serwera Git Tworzenie repozytorium zdalnego Rozpoczynamy projekt Klonowanie repozytorium Wprowadzanie i zatwierdzanie zmian Dodawanie i usuwanie plików i katalogów Dodawanie pliku Usuwanie pliku Dodawanie katalogu Usuwanie katalogów Etykietowanie wersji Rozgałęzianie projektu Testy jednostkowe z PHPUnit Testy funkcjonalne i testy jednostkowe Testowanie ręczne PHPUnit Tworzenie przypadku testowego Metody asercji Testowanie wyjątków Uruchamianie zestawów testów Ograniczenia Atrapy i imitacje Dobry test to oblany test Testy dla aplikacji WWW Przygotowanie aplikacji WWW do testów Proste testy aplikacji WWW Selenium Słowo ostrzeżenia Automatyzacja instalacji z Phingiem Czym jest Phing? Pobieranie i instalacja pakietu Phing Montowanie dokumentu kompilacji Różnicowanie zadań kompilacji Właściwości Typy Operacje Vagrant Problem Odrobina przygotowań Wybór i instalacja środowiska Vagrant Montowanie lokalnych katalogóww maszynie wirtualnej Vagranta Zaopatrywanie maszyny wirtualnej Konfigurowanie serwera WWW Konfigurowanie MySQL Konfigurowanie nazwy hosta Kilka słów na koniec Ciągła integracja kodu Czym jest ciągła integracja? Przygotowanie projektu do ciągłej integracji Instalowanie Jenkinsa Instalowanie rozszerzeń Jenkinsa Konfigurowanie klucza publicznego serwera Git Instalowanie projektu Pierwsza kompilacja Konfigurowanie raportów Automatyzacja kompilacji Obiekty, wzorce, narzędzia Obiekty Wybór Hermetyzacja i delegowanie Osłabianie sprzężenia Zdatność do wielokrotnego stosowania kodu Estetyka Wzorce Co dają nam wzorce? Wzorce a zasady projektowe Narzędzia Testowanie Standardy Zarządzanie wersjami Automatyczna kompilacja (instalacja) System integracji ciągłej Co pominęliśmy? Prosty analizator leksykalny Skaner Analizator leksykalny
Sygnatura czytelni BWEAiI: XII Ć 48
Ta pozycja znajduje się w zbiorach 2 placówek. Rozwiń listę, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 145274, 145273, 145275 (3 egz.)
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 145104 N (1 egz.)
Książka
W koszyku
SQL : leksykon kieszonkowy / Alice Zhao ; przekład Artur Dorda. - Wydanie IV. - Gliwice : Helion, © 2022. - 279, [1] strona : ilustracje ; 20 cm.
W książce także ISBN oryginału.
Indeks.
Rozdział 1. Intensywny kurs SQL Czym jest baza danych? SQL NoSQL Systemy zarządzania bazami danych Zapytanie SQL Polecenia SQL Zapytania SQL Polecenie SELECT Kolejność wykonywania Model danych Rozdział 2. Gdzie mogę używać SQL? Oprogramowanie RDBMS Który RDBMS wybrać? Czym jest okno terminala? SQLite MySQL Oracle PostgreSQL SQL Server Programy bazodanowe Podłączanie programu bazodanowego do bazy danych Inne języki programowania Podłącz Pythona do bazy danych Podłączenie R do bazy danych Rozdział 3. Język SQL Porównanie z innymi językami Standardy ANSI Terminy SQL Słowa kluczowe i funkcje Identyfikatory i aliasy Polecenia i klauzule Wyrażenia i predykaty Komentarze, cudzysłowy i puste znaki Podjęzyki Rozdział 4. Podstawy zapytań Klauzula SELECT Pobieranie kolumn Pobieranie wszystkich kolumn Pobieranie wyrażeń Pobieranie funkcji Aliasy kolumn Dookreślanie kolumn Pobieranie podzapytań DISTINCT Klauzula FROM Pobieranie danych z wielu tabel Pobieranie danych z podzapytań Dlaczego warto używać podzapytania w klauzuli FROM? Klauzula WHERE Wielokrotne predykaty Filtrowanie po podzapytaniach Klauzula GROUP BY Klauzula HAVING Klauzula ORDER BY Klauzula LIMIT Rozdział 5. Tworzenie, aktualizowanie i usuwanie Bazy danych Model danych versus schemat Wyświetlanie nazw istniejących baz danych Wyświetl nazwę aktualnej bazy danych Przełącz się do innej bazy danych Utwórz bazę danych Usuń bazę danych Tworzenie tabel Utwórz prostą tabelę Wyświetlanie nazw istniejących tabel Tworzenie tabeli, która jeszcze nie istnieje Tworzenie tabeli z ograniczeniami Tworzenie tabeli z kluczami głównymi i obcymi Tworzenie tabeli z automatycznie wygenerowanym polem Wstawianie wyników zapytania do tabeli Wstawianie danych z pliku tekstowego do tabeli Modyfikowanie tabel Zmień nazwę tabeli lub kolumny Wyświetl, dodaj i usuń kolumny Wyświetl, dodaj i usuń wiersze Wyświetl, dodaj, zmodyfikuj i usuń ograniczenia Zaktualizuj kolumnę Zaktualizuj wiersze Zaktualizuj wiersze za pomocą wyników zapytania Usuń tabelę Indeksy Porównanie indeksu książkowego i indeksu SQL Utwórz indeks, aby przyspieszyć zapytania Widoki Tworzenie widoku w celu zapisania wyników zapytania Zarządzanie transakcjami Zweryfikuj zmiany, zanim zrobisz COMMIT Wycofaj zmiany za pomocą ROLLBACK Rozdział 6. Typy danych Jak wybrać typ danych Dane liczbowe Wartości liczbowe Typy liczb całkowitych Typy liczb dziesiętnych Typy liczb zmiennoprzecinkowych Dane tekstowe Wartości tekstowe Typy znakowe Typy znakowe Unicode Dane daty i czasu Wartości daty i czasu Typy daty i czasu Inne dane Wartości logiczne Pliki zewnętrzne (obrazy, dokumenty itp.) Rozdział 7. Operatory i funkcje Operatory Operatory logiczne Operatory porównania Operatory matematyczne Funkcje agregujące Funkcje liczbowe Zastosuj funkcje matematyczne Generowanie liczb losowych Zaokrąglanie i obcinanie liczb Konwertowanie danych na liczbowy typ danych Funkcje tekstowe Poznaj długość ciągu znaków Zmiana wielkości liter w tekście Przytnij niechciane znaki wokół tekstu Konkatenacja ciągów znaków Szukanie tekstu w ciągu znaków Wyciągnij fragment tekstu Zamień tekst w ciągu znaków Usuwanie tekstu z ciągu znaków Użyj wyrażeń regularnych Konwertowanie danych na typ tekstowy Funkcje daty i czasu Zwróć aktualną datę lub godzinę Dodawanie lub odejmowanie daty lub przedziału czasowego Znajdź różnicę między dwiema datami lub godzinami Wyciągnij część daty lub czasu Określanie dnia tygodnia dla daty Zaokrąglij datę do najbliższej jednostki czasu Konwertowanie tekstu na typ danych daty i czasu Funkcje null Zwróć inną wartość, jeśli jest null Rozdział 8. Zaawansowane koncepcje zapytań Instrukcja Case Wyświetl wartości oparte na logice "jeżeli - to" dla pojedynczej kolumny Wyświetl wartości oparte na logice "jeżeli - to" dla wielu kolumn Grupowanie i zsumowywanie Podstawy GROUP BY Zagreguj wiersze w pojedynczą wartość lub listę ROLLUP, CUBE i GROUPING SETS Funkcje okna Funkcja agregująca Funkcja okna Uszereguj wiersze w tabeli Zwróć pierwszą wartość w każdej grupie Zwróć drugą wartość w każdej grupie Zwróć dwie pierwsze wartości w każdej grupie Zwróć wartość poprzedniego wiersza Obliczanie średniej kroczącej Obliczanie sumy bieżącej Pivoting i Unpivoting Rozbij wartości kolumny na wiele kolumn Wypisz wartości z wielu kolumn w pojedynczej kolumnie Rozdział 9. Praca z wieloma tabelami i zapytaniami Łączenie tabel Podstawy złączeń i INNER JOIN LEFT JOIN, RIGHT JOIN i FULL OUTER JOIN USING i NATURAL JOIN CROSS JOIN i złączenie własne Operatory Union UNION EXCEPT i INTERSECT Wspólne wyrażenia tabelaryczne CTE a podzapytania Rekurencyjne CTE Rozdział 10. Jak mogę...? .znaleźć wiersze zawierające zduplikowane wartości ...zwrócić wiersze z maksymalną wartością danej kolumny .złączyć tekst z wielu pól w jedno pole .znaleźć wszystkie tabele zawierające kolumnę o konkretnej nazwie .zaktualizować tabelę, której identyfikator pasuje do innej tabeli
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 153048 N (1 egz.)
Książka
W koszyku
Tytuł oryginału: Python microservices development.
Na książce także ISBN oryginału.
Indeks.
Rozdział 1. Czym są mikrousługi? (17) Geneza architektury SOA (18) Podejście monolityczne (19) Podejście mikrousługowe (22) Zalety mikrousług (24) Rozdzielenie zakresów odpowiedzialności (24) Mniejsze projekty (24) Skalowanie i wdrażanie (25) Wady mikrousług (26) Nielogiczny podział aplikacji (26) Więcej interakcji sieciowych (27) Powielanie danych (27) Problemy z kompatybilnością (28) Skomplikowane testy (28) Implementacja mikrousług w języku Python (29) Standard WSGI (29) Biblioteki Greenlet i Gevent (31) Platformy Twisted i Tornado (33) Moduł asyncio (34) Wydajność kodu (36) Rozdział 2. Platforma Flask (39) Jaka wersja Pythona? (40) Obsługa zapytań w platformie Flask (41) Kierowanie zapytań (44) Zapytanie (47) Odpowiedź (49) Wbudowane funkcjonalności platformy Flask (50) Obiekt session (51) Zmienne globalne (51) Sygnały (52) Rozszerzenia i pośredniki (53) Szablony (55) Konfiguracja (56) Konspekty (58) Obsługa błędów i diagnostyka kodu (59) Szkielet mikrousługi (62) Rozdział 3. Cykl doskonały: kodowanie, testowanie, dokumentowanie (65) Rodzaje testów (67) Testy jednostkowe (67) Testy funkcjonalne (70) Testy integracyjne (72) Testy obciążeniowe (72) Testy całościowe (75) Pakiet WebTest (76) Narzędzia pytest i tox (78) Dokumentacja programistyczna (80) Ciągła integracja (84) System Travis CI (85) System ReadTheDocs (86) System Coveralls (86) Rozdział 4. Aplikacja Runnerly (89) Aplikacja Runnerly (89) Historie użytkowników (90) Struktura monolityczna (91) Model (92) Widok i szablon (93) Zadania wykonywane w tle aplikacji (96) Uwierzytelnianie i autoryzowanie użytkowników (99) Zebranie elementów w monolityczną całość (102) Dzielenie monolitu (104) Usługa danych (105) Standard Open API 2.0 (106) Dalszy podział aplikacji (108) Rozdział 5. Interakcje z innymi usługami (111) Wywołania synchroniczne (112) Sesje w aplikacji Flask (113) Pula połączeń (116) Pamięć podręczna i nagłówki HTTP (117) Przyspieszanie przesyłania danych (120) Wywołania asynchroniczne (125) Kolejki zadań (125) Kolejki tematyczne (126) Publikowanie i subskrybowanie komunikatów (130) Wywołania RPC w protokole AMQP (130) Testy (131) Imitowanie wywołań synchronicznych (131) Imitowanie wywołań asynchronicznych (133) Rozdział 6. Monitorowanie usług (137) Centralizacja dzienników (138) Konfiguracja systemu Graylog (139) Wysyłanie logów do systemu Graylog (142) Dodatkowe pola (145) Wskaźniki wydajnościowe (146) Wskaźniki systemowe (146) Wskaźniki wydajnościowe kodu (148) Wskaźniki wydajnościowe serwera WWW (150) Rozdział 7. Zabezpieczanie usług (153) Protokół OAuth2 (154) Uwierzytelnienie oparte na tokenach (156) Standard JWT (156) Biblioteka PyJWT (158) Uwierzytelnianie za pomocą certyfikatu X.509 (160) Mikrousługa TokenDealer (162) Stosowanie usługi TokenDealer (165) Zapora WAF (167) Platforma OpenResty: serwer Nginx i język Lua (169) Zabezpieczanie kodu (174) Sprawdzanie odbieranych zapytań (175) Ograniczanie zakresu działania aplikacji (178) Analizator Bandit (179) Rozdział 8. Wszystko razem (183) Tworzenie interfejsu za pomocą biblioteki ReactJS (184) Język JSX (185) Komponenty ReactJS (186) Biblioteka ReactJS i platforma Flask (189) Bower, npm i Babel (190) Współdzielenie zasobów między domenami (193) Uwierzytelnianie użytkowników i autoryzowanie zapytań (195) Komunikacja z usługą danych (195) Uzyskiwanie tokena Strava (196) Uwierzytelnienie w kodzie JavaScript (198) Rozdział 9. Spakowanie i uruchomienie Runnerly (201) Narzędzia pakujące (202) Kilka definicji (203) Pakowanie projektów (204) Wersje projektu (211) Udostępnianie projektu (213) Rozpowszechnianie projektu (215) Uruchamianie mikrousług (218) Zarządzanie procesami (220) Rozdział 10. Usługi kontenerowe (225) Czym jest Docker? (226) Docker od podstaw (227) Uruchamianie aplikacji Flask na platformie Docker (229) Kompletny system - OpenResty, Circus i Flask (231) Platforma OpenResty (232) Menedżer Circus (233) Wdrożenia kontenerowe (236) Docker Compose (237) Klastrowanie i prowizjonowanie kontenerów (239) Rozdział 11. Instalacja w chmurze AWS (243) Chmura AWS (244) Kierowanie zapytań - Route53, ELB i AutoScaling (245) Wykonywanie kodu - EC2 i Lambda (246) Gromadzenie danych - EBS, S3, RDS, ElasticCache i CloudFront (247) Powiadamianie - SES, SQS i SNS (248) Prowizjonowanie i uruchamianie - CloudFormation i ECS (250) Podstawy wdrażania mikrousług w chmurze AWS (250) Utworzenie konta w chmurze AWS (251) Instalowanie instancji EC2 z systemem CoreOS (253) Wdrażanie klastrów przy użyciu usługi ECS (257) Usługa Route53 (262) Rozdział 12. Co dalej? (265) Iteratory i generatory (266) Koprocedury (269) Biblioteka asyncio (270) Platforma aiohttp (271) Platforma Sanic (272) Model asynchroniczny i synchroniczny (273)
Sygnatura czytelni BWEAiI: XII Ł 108
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. 146538 N (1 egz.)
Książka
W koszyku
W książce także ISBN oryginału.
Bibliografie, netografie przy niektórych rozdziałach.
Rozdział 1. Dlaczego projektowanie dziedzinowe? 19 Zrozumieć problem 20 Przestrzeń problemu i przestrzeń rozwiązania 20 Co poszło nie tak z wymaganiami? 22 Jak radzić sobie ze złożonością? 23 Rodzaje złożoności 23 Klasyfikowanie złożoności 26 Podejmowanie decyzji i błędy poznawcze 29 Wiedza 32 Wiedza dziedzinowa 32 Unikanie ignorancji 34 Rozdział 2. Język i kontekst 37 Język wszechobecny 37 Język dziedzinowy 38 Wyraźne określanie rzeczy dorozumianych 41 Język i kontekst 47 Rozdział 3. EventStorming 53 EventStorming 54 Język modelowania 55 Wizualizacja 57 Porady dotyczące organizowania warsztatów EventStorming 58 Kogo zaprosić? 58 Przygotowanie przestrzeni 59 Warsztaty 61 Nasz pierwszy model 68 Rozdział 4. Projektowanie modelu 75 Model dziedziny 75 Co reprezentuje model? 76 Anemiczny model dziedziny 77 Co należy uwzględnić w modelu dziedziny? 78 EventStorming na poziomie projektu 82 Poszerzanie wiedzy 82 Przygotowanie do warsztatów 83 Notacja rozszerzona 83 Modelowanie dziedziny referencyjnej 88 Rozdział 5. Implementacja modelu 93 Wymagania techniczne 93 Rozpoczęcie implementacji 94 Tworzenie projektów 94 Framework 95 Przełożenie modelu na kod 96 Encje 97 Dodawanie zachowania 100 Zapewnianie poprawności 101 Ograniczenia dla wartości wejściowych 102 Obiekty wartości 103 Zdarzenia dziedzinowe w kodzie 127 Zdarzenia dziedzinowe jako obiekty 128 Generowanie zdarzeń 131 Zdarzenia zmieniają stan 134 Rozdział 6. Działanie za pomocą poleceń 141 Wymagania techniczne 141 Otoczenie modelu dziedziny 142 Udostępnianie internetowego interfejsu API 142 Warstwa aplikacji 149 Obsługa poleceń 152 Wzorzec procedury obsługi poleceń 152 Usługa aplikacji 156 Rozdział 7. Granica spójności 167 Wymagania techniczne 167 Spójność modelu dziedziny 168 Granice transakcji 168 Wzorzec Agregat 173 Ochrona niezmienników 181 Analiza ograniczeń dla polecenia 182 Egzekwowanie reguł 189 Encje wewnątrz agregatu 192 Rozdział 8. Utrwalanie agregatów 203 Wymagania techniczne 203 Utrwalanie agregatów 204 Repozytorium i jednostki pracy 204 Implementacja dla RavenDB 206 Implementacja Entity Framework Core 221 Rozdział 9. CQRS - strona odczytu 233 Wymagania techniczne 234 Dodawanie profilów użytkowników 234 Zagadnienia dotyczące dziedziny profilu użytkownika 235 Strona aplikacji dla profilu użytkownika 242 Strona zapytań 250 CQRS i konflikt między odczytami a zapisami 250 Zapytania i modele odczytu 252 Implementowanie zapytań 254 API zapytań 254 Implementacja zapytań dla RavenDB 257 Implementacja zapytań dla frameworku encji 264 Rozdział 10. Event Sourcing 271 Wymagania techniczne 272 Dlaczego Event Sourcing 273 Problemy z utrwalaniem stanu 273 Czym jest Event Sourcing? 277 Event Sourcing wokół nas 278 Agregaty pozyskiwane ze zdarzeń 279 Strumienie zdarzeń 279 Magazyny zdarzeń 281 Utrwalanie oparte na zdarzeniach 283 Rozdział 11. Rzutowania i kwerendy 303 Zdarzenia i zapytania 304 Budowanie modeli odczytu na podstawie zdarzeń 305 Rzutowania 306 Subskrypcje 308 Implementacja rzutowań 311 Subskrypcje nadganiające 311 Rzutowania międzyagregatowe 320 Rzutowanie zdarzeń z dwóch agregatów 321 Wzbogacanie modeli odczytu 331 Kwerendowanie w rzutowaniach 332 Konwertowanie zdarzeń 335 Magazyn trwały 340 Punkty kontrolne 340 Utrwalanie modeli odczytu 344 Rozdział 12. Kontekst ograniczony 355 Pułapka pojedynczego modelu 356 Zaczynaj od rzeczy małych 356 Znowu złożoność 357 Wielka kula błota 359 Konstruowanie systemów 363 Granice językowe 364 Autonomia zespołu 369 Rozdział 13. Podział systemu 375 Kiedy, co i jak? 375 Kiedy dzielić? 376 Co dzielić? 378 Jak podzielić? 380 Różne spojrzenia na projektowanie systemów 382 Proces projektowania 383 Dzielenie encji 387 Budowa systemu modułowego 387 Moduły wewnątrz jednego rozwiązania 389 Struktura modułu 392 Budowanie systemu 403 Podłączanie modułów do aplikacji 404 Integracja 405 Interfejs użytkownika 412 Interfejs użytkownika ponad granicami 413 Mikrousługi 417 Kiedy nie stosować systemów rozproszonych 418 Jak stosować systemy rozproszone 419
Sygnatura czytelni BWEAiI: XII L 48
Ta pozycja znajduje się w zbiorach 2 placówek. Rozwiń listę, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 151437 (1 egz.)
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 151436 N (1 egz.)
Książka
W koszyku
Na stronie tytułowej, okładce i grzbiecie także nazwa wydawcy oryginału: O'Reilly.
Dla początkujących i doświadczonych programistów.
Czytanie kodu C++ dla programistów Pythona JavaScriptu
Sygnatura czytelni BWEAiI: XII F 106
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. 154694 N (1 egz.)
Książka
W koszyku
Na okładce i grzbiecie także nazwa wydawcy oryginału: No Starch Press.
Dlaczego wybrałem język C? Słowo kluczowe static Pliki nagłówkowe Zwalnianie pamięci Witryny oceniające Anatomia opisu problemu Problem: Kolejki po jedzenie Problem 1. Płatki śniegu Rozwiązywanie podstawowego problemu Rozwiązanie 1. Porównywanie parami Rozwiązanie 2. Zmniejszenie liczby wykonywanych operacji Projekt tablicy mieszającej Dlaczego warto używać tablic mieszających? Problem 2. Słowa złożone Wskazywanie słów złożonych Problem 3. Sprawdzanie pisowni - usuwanie litery Rozważania o zastosowaniu tablic mieszających 2. Drzewa i rekurencja Problem 1. Halloweenowy łup Drzewa binarne Rozwiązywanie problemu dla przykładowego drzewa Reprezentacja drzew binarnych Zbieranie wszystkich cukierków Zupełnie inne rozwiązanie Przechodzenie minimalnej liczby ulic Odczyt danych wejściowych Dlaczego korzystać z rekurencji? Problem 2. Odległość pomiędzy potomkami Odczyt danych wejściowych Liczba potomków w odległości d od wierzchołka Liczba potomków dla wszystkich wierzchołków Sortowanie wierzchołków Funkcja main 3. Memoizacja i programowanie dynamiczne Problem 1. Burgerowa gorączka Określenie planu rozwiązania problemu Określanie optymalnego rozwiązania Rozwiązanie 1. Zastosowanie rekurencji Rozwiązanie 2. Memoizacja Rozwiązanie 3. Programowanie dynamiczne Memoizacja i programowanie dynamiczne Krok 1. Struktura optymalnego rozwiązania Krok 2. Rozwiązanie rekurencyjne Krok 3. Memoizacja Krok 4. Programowanie dynamiczne Problem 2. Skąpcy Określanie optymalnego rozwiązania Rozwiązanie 1. Rekurencja Funkcja main Problem 3. Rywalizacja hokejowa Rozważania dotyczące rywalizacji Określenie optymalnego rozwiązania Optymalizacja zużycia pamięci Problem 4. Sposoby zaliczenia 4. Grafy i przeszukiwanie wszerz Problem 1. Pogoń skoczka Optymalne ruchy skoczka Najlepszy wynik skoczka Przesunięcie i powrót skoczka Optymalizacja czasu działania Grafy i przeszukiwanie wszerz Czym są grafy? Grafy a drzewa Algorytm BFS na grafach Problem 2. Wspinaczka po linie Rozwiązanie 1. Poszukiwanie ruchów Rozwiązanie 2. Nowy model Problem 3. Tłumaczenie książek Budowanie grafu Implementacja algorytmu BFS Koszt całkowity 5. Najkrótsze ścieżki na grafach ważonych Problem 1. Myszy w labiryncie Zostawiamy algorytm BFS Najkrótsze ścieżki na grafach ważonych Tworzenie grafu Implementacja algorytmu Dijkstry Dwie optymalizacje Algorytm Dijkstry Efektywność działania algorytmu Dijkstry Krawędzie o wagach ujemnych Problem 2. Planowanie odwiedzin u babci Macierz sąsiedztwa Konstruowanie grafu Dziwaczne ścieżki Zadanie 1. Najkrótsze ścieżki Zadanie 2. Liczba najkrótszych ścieżek 6. Wyszukiwanie binarne Problem 1. Karmienie mrówek Nowy rodzaj problemów z drzewami Wczytywanie danych wejściowych Sprawdzanie wykonalności Wydajność działania algorytmu wyszukiwania binarnego Określanie wykonalności Przeszukiwanie tablicy posortowanej Problem 2. Skok przez rzekę Koncepcja zachłanności Testowanie wykonalności Wczytywanie danych wejściowych Problem 3. Jakość życia Sortowanie wszystkich prostokątów Wyszukiwanie binarne Szybsze sprawdzanie wykonalności Problem 4. Drzwi w jaskini Rozwiązywanie podzadań Zastosowanie wyszukiwania liniowego Stosowanie wyszukiwania binarnego 7. Kopce i drzewa segmentów Promocja w supermarkecie Wartość maksymalna i minimalna w tablicy Kopce maksymalne Kopce minimalne Rozwiązanie 2. Kopce Kopce Wybór struktury danych Problem 2. Budowanie drzewców Rekurencyjne wyświetlanie drzewców Sortowanie na podstawie etykiet Rozwiązanie 1. Rekurencja Pytania o sumę zakresu Drzewa segmentów Rozwiązanie 2. Drzewa segmentów Drzewa segmentów Problem 3. Suma dwóch Wypełnianie drzewa segmentów Znajdowanie odpowiedzi z użyciem drzewa segmentów Aktualizacja drzewa segmentów Funkcja main 8. Struktura zbiorów rozłącznych Problem 1. Sieć społecznościowa Modelowanie danych w formie grafu Rozwiązanie 1. BFS Struktura zbiorów rozłącznych Rozwiązanie 2. Struktura zbiorów rozłącznych Optymalizacja 1. Łączenie na podstawie wielkości Optymalizacja 2. Skracanie ścieżek Struktura zbiorów rozłącznych Relacje: Trzy wymagania Wybieranie struktury zbiorów rozłącznych Optymalizacje Problem 2. Przyjaciele i wrogowie Rozszerzenie: wrogowie Funkcja main Operacje find i union Operacje UstawJakoPrzyjaciół i UstawJakoWrogów Operacje CzySąPrzyjaciółmi i CzySąWrogami Równoważne szuflady Funkcja main Implementacja operacji find i union A. Efektywność algorytmów Kwestia czasu. i nie tylko Notacja dużego O Czas liniowy Czas stały Czas kwadratowy Notacja dużego O w tej książce B. Ponieważ nie mogłem się powstrzymać Płatki śniegu: niejawne listy połączone Burgerowa gorączka: rekonstrukcja rozwiązania Pogoń skoczka: kodowanie ruchów Algorytm Dijkstry: stosowanie kopca Myszy w labiryncie: śledzenie z użyciem kopców Myszy w labiryncie: implementacja z użyciem kopca Skracanie skracania ścieżek Krok 1. Żadnych więcej operatorów trójargumentowych Krok 2. Bardziej czytelne operatory przypisania Krok 3. Wyjaśnienie rekurencji
Sygnatura czytelni BWEAiI: XII N 163
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. 153035 (1 egz.)
Książka
W koszyku
Jakość w agile : zwinna droga do sukcesu / Karolina Zmitrowicz, Rafał Stańczak. - Warszawa : Wydawnictwo Naukowe PWN SA, copyright 2018. - XV, [3], 323, [2] strony : ilustracje, fotografie, mapy, wykresy ; 24 cm.
Bibliografia na stronach 315-[317].
1. Zarządzanie jakością. Kultura jakości w organizacji 1.1. Koncepcja zarządzania jakością Koncepcja Zarządzanie jakością Zarządzanie przez 1.2. Ustalenie procesu zarządzania 1.3. Proces transformacji z podejścia tradycyjnego do zwinnego Kontekst zarządzania jakością Planowanie czynności zapewniania jakości i testowania Postęp prac Proces zgłaszania i naprawy defektów 1.4. Modele funkcjonowania zespołów – podejście tradycyjne a zwinne Zapewnianie jakości w Pojedynczy zespół pracujący nad jednym produktem Wiele zespołów pracujących nad jednym produktem 2. Inżynieria wymagań w projektach zwinnych 2.1. Wprowadzenie do inżynierii wymagań Zadania i czynności inżynierii Śledzenie powiązań 2.2. Interesariusze – z kim i dla kogo? Wizja produktu 2.3. Metody oraz formy pozyskiwania i dokumentacji wymagań Historyjki użytkownika Model INVEST Persona Przypadki użycia Prototypy, makiety, szkielety 2.4. Przegląd wymagań i zgłaszanie poprawek Kontrola jakości Definicja gotowości i ukończenia – kiedy można zacząć, a kiedy już skończyć Walidacja wymagań i współpraca z biznesem – pielęgnacja rejestru produktu 2.5. Wsparcie Mapy myśli Modelowanie oprogramowania Modelowanie procesów biznesowych Prototypowanie Narzędzia wspierające pracę grupową Budowanie strategii testów w organizacji 3.1. Strategia na poziomie organizacji 3.2. Polityka i ogólna strategia testów 3.3. Poziomy testów Pojęcie weryfikacji i walidacji Poziomy testów 3.4. Piramida testów w 3.5. Koncepcja kwadrantów testowych 3.6. Różne podejścia do testowania Testowanie oparte na ryzyku Testowanie oparte na modelach 3.7. Podejścia do tworzenia i wytwarzania architektury TDD BDD, SBE, ATDD Mikroserwisy 3.8. Zarządzanie ryzykiem – techniki i metody Tradycyjne zarządzanie ryzykiem Plan zarządzania ryzykiem Zwinny proces zarządzania ryzykiem Identyfikacja ryzyk w projektach zwinnych Wartość zarządzania ryzykiem Strategie reakcji na ryzyko 3.9. Strategia automatyzacji Cel automatyzacji Co warto i można automatyzować Problemy związane z automatyzacją Wykorzystanie narzędzi Wprowadzanie nowych narzędzi w organizacji Weryfikacja zakładanej koncepcji Analiza porównawcza 3.10. Dokumentacja testów – szablony i dobre praktyki 3.11. Organizacja pracy w zespole Wartości wspierające pracę zespołową Praca w parach Praca w zespołach rozproszonych 3.12. Wsparcie narzędziowe Narzędzia wspierające pracę grupową Narzędzia wspierające planowanie prac Inne narzędzia 4. Planowanie testów w projekcie 4.1. Testowanie w projekcie 4.2. Organizacja i model pracy Przygotowanie modelu Budowa repozytorium scenariuszy testowych Przepływ pracy dla scenariuszy testowych Planowanie działań testowych 4.3. Realizacja kampanii testowej 4.4. Raportowanie wyników kampanii testowej Raporty z procesów zarządzania jakością 4.5. Środowiska i dane testowe 4.6. Wsparcie narzędziowe Narzędzia do zarządzania wiedzą Narzędzia do zarządzania zgłoszeniami Narzędzia do zarządzania testami Narzędzia wspierające planowanie prac Narzędzia wspierające pracę grupową 5. Techniczne zapewnienie jakości 5.1. Pojęcie długu technicznego 5.2. Standardy budowania kodu 5.3. Testy jednostkowe Raportowanie z testów automatycznych 5.4. Statyczna analiza kodu 5.5. Przeglądy/inspekcje kodu 5.6. Agile a DevOps Praktyki pracy ciągłej 5.7. Wsparcie narzędziowe Zintegrowane środowisko programistyczne Repozytoria kodu źródłowego Narzędzia do testów jednostkowych Narzędzia do raportowania pokrycia kodu testami jednostkowymi Narzędzia do analizy statycznej Narzędzia do budowania wersji 6. Testowanie wartości biznesowej produktu Testy eksploracyjne Zarządzanie testami oparte na sesjach Inne rodzaje testów 6.1. Retrospekcja postępu prac 6.2. Wsparcie narzędziowe Raportowanie z SBTM Narzędzia wspierające testy na wielu przeglądarkach i systemach operacyjnych 7. Utrzymanie produktu 7.1. Zarządzanie incydentami 7.2. Koncepcje obsługi zgłoszeń na produkcji Analiza przyczyn źródłowych problemu wraz z sugestią procesu naprawczego 7.3. Wsparcie narzędziowe Narzędzia wspierające RCA Narzędzia do monitoringu wsparcia produkcji Narzędzia do zarządzania wiedzą Wspólne tworzenie dokumentów Tablice kanbanowe 8. Ciągłe zapewnienie jakości Zwinne myślenie 8.1. Koncepcja łańcucha bramek jakości 8.2. Zapobieganie występowaniu problemów Techniki i metody zapewniania jakości Monitoring 8.3. Wsparcie narzędziowe Narzędzia do monitoringu infrastruktury i systemów IT 9. Dobrze. Lepiej. Bardzo dobrze. Lepsze zarządzanie jakością w Agile 9.1. Wizualizacja potrzeb związanych z zarządzaniem jakością w organizacji plus edukacja wewnątrz firmy Ewangelista zapewniania jakości Zwinne gildie. Model Spotify 9.2. Jak i gdzie zdobywać wiedzę? Szkolenia i certyfikacje Coaching Meetupy – cykliczne spotkania społeczności Idea open space Konferencje Podsumowanie Manifest zwinnego zarządzania jakością Praktyki zwinnego zarządzania jakością
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 145938 (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