Ziadé Tarek
Sortowanie
Źródło opisu
Książki, czasopisma i zbiory specjalne
(3)
Forma i typ
Publikacje fachowe
(3)
Książki
(2)
Dostępność
tylko na miejscu
(3)
dostępne
(1)
Placówka
Wypożyczalnia
(1)
Biblioteka WEAiI
(3)
Autor
Berłowski Paweł
(189)
Kotowski Włodzimierz
(179)
Praca zbiorowa
(157)
Skoczylas Zbigniew
(152)
Stiasny Grzegorz
(143)
Ziadé Tarek
(-)
Sadlik Ryszard
(142)
Blum Maciej
(140)
Michalski Dariusz
(134)
Majewski Jerzy S
(132)
Lewandowski Maciej
(131)
Etzold Hans-Rüdiger
(120)
Leśniewski Mariusz
(116)
Gewert Marian
(108)
Maruchin Wojciech
(107)
Guryn Halina
(105)
Traczyk Wojciech
(101)
Chalastra Michał
(99)
Kardyś Marta
(97)
Nazwisko Imię
(96)
Marx Karl (1818-1883)
(94)
Berkieta Mateusz
(93)
Tomczak Małgorzata
(93)
Polkowski Sławomir
(92)
Engels Friedrich (1820-1895)
(91)
Kotapski Roman
(91)
Jakubiec Izabela
(90)
Rybicki Piotr
(90)
Krysicki Włodzimierz (1905-2001)
(88)
Teleguj Kazimierz
(88)
Kapołka Maciej
(86)
Mikołajewska Emilia
(84)
Zaborowska Joanna
(81)
Starosolski Włodzimierz (1933- )
(80)
Meryk Radosław
(79)
Piątek Grzegorz
(79)
Rudnicki Bogdan
(79)
Górczyński Robert
(78)
Polit Ryszard
(77)
Mroczek Wojciech
(76)
Kulawik Marta
(74)
Mycielski Krzysztof
(74)
Myszkorowski Jakub
(73)
Konopka Eduard
(71)
Jabłoński Marek
(70)
Walkiewicz Łukasz
(70)
Bielecki Jan (1942-2001)
(69)
Knosala Ryszard (1949- )
(68)
Rajca Piotr (1970- )
(68)
Rymarz Małgorzata
(68)
Walczak Krzysztof
(68)
Wiecheć Marek
(68)
Jabłoński Adam
(67)
Laszczak Mirosław
(66)
Piwko Łukasz
(66)
Wodziczko Piotr
(65)
Dziedzic Zbigniew
(64)
Sidor-Rządkowska Małgorzata
(64)
Żakowski Wojciech (1929-1993)
(64)
Lenin Włodzimierz (1870-1924)
(62)
Pasko Marian
(62)
Włodarski Lech (1916-1997)
(62)
Czakon Wojciech
(61)
Leyko Jerzy (1918-1995)
(61)
Paszkowska Małgorzata
(61)
Jankowski Mariusz
(60)
Kostecka Alicja
(60)
Wróblewski Piotr
(60)
Karpińska Marta
(59)
Próchnicki Wojciech
(59)
Rogala Elżbieta
(59)
Bielecki Maciej
(57)
Gawrońska Joanna
(57)
Jelonek Jakub
(57)
Malkowski Tomasz
(57)
Pilch Piotr
(57)
Rauziński Robert (1933- )
(57)
Ajdukiewicz Andrzej (1939- )
(55)
Cieślak Piotr
(55)
Draniewicz Bartosz
(55)
Godek Piotr
(55)
Osiński Zbigniew (1926-2001)
(55)
Suchodolski Bogdan (1903-1992)
(55)
Jasiński Filip
(54)
Klupiński Kamil
(54)
Kuliński Włodzisław
(54)
Forowicz Krystyna
(53)
Szkutnik Leon Leszek
(52)
Zdanikowski Paweł
(52)
Barowicz Marek
(51)
Wantuch-Matla Dorota
(51)
Trammer Hubert
(50)
Walczak Tomasz
(50)
Watrak Andrzej
(50)
Zgółkowa Halina (1947- )
(50)
Barańska Katarzyna
(49)
Czajkowska-Matosiuk Katarzyna
(49)
Jurlewicz Teresa
(49)
Pikoń Andrzej
(49)
Szargut Jan (1923- )
(49)
Chojnacki Ireneusz
(48)
Rok wydania
2020 - 2024
(1)
2010 - 2019
(2)
Okres powstania dzieła
2001-
(3)
Kraj wydania
Polska
(3)
Język
polski
(3)
Odbiorca
Programiści
(2)
Temat
Python (język programowania)
(3)
Programowanie (informatyka)
(1)
Gatunek
Podręcznik
(3)
Dziedzina i ujęcie
Informatyka i technologie informacyjne
(3)
3 wyniki Filtruj
Książka
W koszyku
Wydanie 4. odnosi się do oryginału.
Indeks.
Aktualny stan Pythona Co zrobić z kodem w Pythonie 2? Dokumenty PEP Aktywne społeczności Nowoczesne środowiska programistyczne Pythona Ekosystem pakietów Pythona Instalowanie pakietów Pythona za pomocą narzędzia pip Izolowanie środowiska uruchomieniowego Izolacja na poziomie aplikacji a izolacja na poziomie systemu Izolacja środowiska na poziomie aplikacji Poetry jako system zarządzania zależnościami Izolacja środowiska na poziomie systemu Konteneryzacja a wirtualizacja Zarządzanie środowiskami wirtualnymi z użyciem Dockera Wirtualne środowiska programistyczne oparte na narzędziu Vagrant Popularne narzędzia do zwiększania produktywności Niestandardowe powłoki Pythona Stosowanie powłoki IPython Stosowanie powłok we własnych skryptach i programach Interaktywne debugery Inne narzędzia do zwiększania produktywności Niedawne dodatki do języka Operatory scalania i aktualizacji słownika Wyrażenia przypisania Wskazówki dotyczące typów w typach generycznych Parametry czysto pozycyjne Moduł zoneinfo Moduł graphlib Funkcja breakpoint() Tryb roboczy Funkcje __getattr__() i __dir__() na poziomie modułu Formatowanie łańcuchów znaków za pomocą obiektów f-string Podkreślenia w literałach liczbowych Moduł secrets Tworzenie sumy typów za pomocą operatora | Strukturalne dopasowywanie wzorców Porównanie Pythona z innymi językami Model klas i programowanie obiektowe Dostęp do klas bazowych Wielodziedziczenie i porządek MRO Inicjalizowanie instancji klasy Wzorce dostępu do atrybutów Deskryptory Dynamiczny polimorfizm Przeciążanie operatorów Przeciążanie funkcji i metod Klasy danych Programowanie funkcyjne Funkcje lambda Funkcje map(), filter() i reduce() Obiekty i funkcje częściowe Generatory Wyrażenia generatora Dekoratory Wyliczenia Interfejs, wzorce i modułowość Interfejsy Odrobina historii: zope.interface Stosowanie adnotacji funkcji i abstrakcyjnych klas bazowych Tworzenie interfejsów z wykorzystaniem adnotacji określających typ Odwrócenie sterowania i wstrzykiwanie zależności Odwrócenie sterowania w aplikacjach Stosowanie platform do wstrzykiwania zależności. Współbieżność Czym jest współbieżność? Wielowątkowość Obsługa wątków w Pythonie Kiedy należy stosować wielowątkowość? Przykładowa aplikacja wielowątkowa Wieloprocesowość Wbudowany moduł multiprocessing Stosowanie puli procesów Stosowanie modułu multiprocessing.dummy jako interfejsu do obsługi wielowątkowości Programowanie asynchroniczne Kooperatywna wielozadaniowość i asynchroniczne operacje wejścia - wyjścia Słowa kluczowe async i await w Pythonie Praktyczny przykład zastosowania programowania asynchronicznego Dostosowywanie nieasynchronicznego kodu do asynchroniczności za pomocą obiektów future Programowanie sterowane zdarzeniami Czym dokładnie jest programowanie sterowane zdarzeniami? Sterowanie zdarzeniami nie jest tożsame z asynchronicznością Programowanie sterowane zdarzeniami w GUI Komunikacja sterowana zdarzeniami Różne style programowania sterowanego zdarzeniami Styl oparty na wywołaniach zwrotnych Styl oparty na obserwowaniu obiektów Styl oparty na tematach Architektury sterowane zdarzeniami Kolejki zdarzeń i komunikatów. Elementy metaprogramowania Czym jest metaprogramowanie? Stosowanie dekoratorów do modyfikowania działania funkcji przed jej użyciem Następny krok: dekoratory klas Przechwytywanie procesu tworzenia instancji klasy Metaklasy Ogólna składnia Stosowanie metaklas Pułapki związane z metaklasami Stosowanie metody __init_subclass__() jako alternatywy dla metaklas Generowanie kodu Funkcje exec, eval i compile Drzewa składni abstrakcyjnej Haczyki importu Ważne przykłady generowania kodu w Pythonie Łączenie Pythona z kodem w C i C++ C i C++ jako podstawa rozszerzalności w Pythonie Kompilowanie i wczytywanie w Pythonie rozszerzeń napisanych w C Kiedy należy używać rozszerzeń? Zwiększanie wydajności kluczowych fragmentów kodu Integrowanie istniejącego kodu napisanego w różnych językach Integrowanie zewnętrznych bibliotek dynamicznych Tworzenie wydajnych niestandardowych typów danych Pisanie rozszerzeń Rozszerzenia w czystym C Pisanie rozszerzeń za pomocą Cythona Wady korzystania z rozszerzeń Dodatkowa złożoność Trudniejsze debugowanie Komunikacja z bibliotekami dynamicznymi bez używania rozszerzeń Moduł ctypes CFFI Automatyzacja testów i kontroli jakości Zasady programowania sterowanego testami Pisanie testów z użyciem platformy pytest Parametryzacja testów Konfiguracje testów w platformie pytest Stosowanie "fałszywych" obiektów Atrapy i moduł unittest.mock Automatyzacja kontroli jakości Pokrycie kodu testami Narzędzia do poprawiania stylu i lintery Statyczna analiza typów Testowanie mutacyjne Przydatne narzędzia związane z testami Generowanie realistycznych danych Generowanie dat i czasu Tworzenie pakietów i udostępnianie kodu w Pythonie Tworzenie pakietów bibliotek i ich udostępnianie Budowa pakietu Pythona Rodzaje dystrybucji pakietów Rejestrowanie i publikowanie pakietów Wersjonowanie pakietów i zarządzanie zależnościami Instalowanie własnych pakietów Pakiety przestrzeni nazw Skrypty i punkty wejścia w pakietach Tworzenie pakietów aplikacji i usług do użytku w internecie Manifest Twelve-Factor App Korzystanie z Dockera Zarządzanie zmiennymi środowiskowymi Rola zmiennych środowiskowych w platformach do tworzenia aplikacji Tworzenie samodzielnych aplikacji wykonywalnych Kiedy samodzielne aplikacje wykonywalne są przydatne? Bezpieczeństwo kodu Pythona w pakietach wykonywalnych Monitorowanie pracy i wydajności aplikacji Rejestrowanie błędów i logów Podstawy rejestrowania logów w Pythonie Zalecane praktyki z obszaru rejestrowania logów Rozproszone rejestrowanie logów Rejestrowanie błędów w celu ich późniejszej analizy Instrumentacja kodu z wykorzystaniem niestandardowych wskaźników Stosowanie aplikacji Prometheus Śledzenie rozproszone aplikacji Śledzenie rozproszone za pomocą Jaegera Optymalizacja kodu Częste przyczyny niskiej wydajności Złożoność kodu Nadmierne wykorzystanie zasobów i ich wyciekanie Nadmierna liczba operacji wejścia - wyjścia i operacji blokujących Profilowanie kodu Profilowanie procesora Profilowanie wykorzystania pamięci Zmniejszanie złożoności przez wybór odpowiednich struktur danych Przeszukiwanie listy Stosowanie zbiorów Stosowanie modułu collections Architektoniczne kompromisy Stosowanie heurystyk i algorytmów aproksymacyjnych Stosowanie kolejek zadań i przetwarzania odroczonego Stosowanie probabilistycznych struktur danych Zapisywanie wyników w pamięci podręcznej
Sygnatura czytelni BWEAiI: XII Ł 213
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. 153041 N (1 egz.)
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 152672 (1 egz.)
Książka
W koszyku
(Technologia i Rozwiązania)
Na stronie tytułowej i okładce nazwa wydawcy oryginału: Packt Publishing.
Na stronie tytułowej i okładce: Wydanie 2 - dotyczy wydania oryginału.
Indeks.
Obecny status Pythona (19) Gdzie jesteśmy i dokąd zmierzamy? (20) Dlaczego i jak zmienia się Python (20) Bądź na bieżąco ze zmianami języka - dokumenty PEP (21) Popularność Pythona 3 w chwili pisania tej książki (22) Główne różnice pomiędzy Pythonem 3 a Pythonem 2 (23) Korzyści płynące ze znajomości starej wersji Pythona (23) Główne różnice składni i częste pułapki (24) Popularne narzędzia i techniki używane w celu utrzymania kompatybilności (26) Nie tylko CPython (30) Dlaczego powinieneś się przejmować? (30) Stackless Python (31) Jython (31) IronPython (32) PyPy (33) Nowoczesne podejścia do programowania w Pythonie (34) Izolacja środowisk Pythona na poziomie aplikacji (34) Zalety stosowania izolacji (36) Popularne rozwiązania (37) Które rozwiązanie wybrać? (41) Izolacja środowisk Pythona na poziomie systemu operacyjnego (42) Wirtualne środowiska robocze z wykorzystaniem narzędzia Vagrant (43) Konteneryzacja czy wirtualizacja? (45) Popularne narzędzia pracy ukierunkowane na produktywność (45) Alternatywne powłoki Pythona - IPython, bpython, ptpython (46) Interaktywne debuggery (48) Przydatne materiały (49) Najlepsze praktyki składniowe - poniżej poziomu klas (51) Typy wbudowane Pythona (52) Ciągi znaków i bajtów (52) Kolekcje (56) Zaawansowane elementy składni (67) Iteratory (67) Instrukcja yield (69) Dekoratory (72) Zarządcy kontekstu - instrukcja with (83) Inne elementy składni, o których możesz jeszcze nie wiedzieć (87) Konstrukcja for ... else ... (87) Adnotacje funkcji (88) Najlepsze praktyki składniowe - powyżej poziomu klas (91) Dziedziczenie po typach wbudowanych (92) Uzyskiwanie dostępu do metod klas nadrzędnych (94) Klasy w starym stylu oraz funkcja super() w Pythonie 2 (96) Porządek rozpatrywania metod w Pythonie (97) Pułapki związane z funkcją super() (101) Najlepsze praktyki (104) Zaawansowane wzorce dostępu do atrybutów (104) Deskryptory (105) Właściwości (111) Sloty (114) Metaprogramowanie (114) Dekoratory jako metoda metaprogramowania (115) Dekoratory klas (116) Wykorzystanie metody __new__() w celu nadpisania procesu tworzenia instancji klas (118) Metaklasy (120) Rady dotyczące automatycznego generowania kodu (127) Właściwy dobór nazw (135) PEP 8 i najlepsze praktyki nazewnicze (135) Kiedy i dlaczego przestrzegać zasad PEP 8? (136) Poza PEP 8 - wytyczne stylu w zespołach (136) Notacje nazewnicze (137) Zmienne (138) Zmienne publiczne i prywatne (140) Funkcje i metody (142) Właściwości (145) Klasy (145) Moduły i pakiety (146) Dobre praktyki nazewnicze (146) Użycie prefiksów is oraz has przy elementach logicznych (146) Użycie liczby mnogiej przy zmiennych przechowujących kolekcje (146) Precyzyjne opisywanie słowników (147) Unikanie zbyt ogólnych określeń (147) Unikanie istniejących nazw (148) Najlepsze praktyki dla argumentów funkcji i metod (149) Projektowanie argumentów metodą przyrostową (150) Ufaj argumentom i testom (150) Ostrożne wykorzystanie magicznych argumentów *args oraz **kwargs (152) Nazwy klas (154) Nazwy modułów i pakietów (154) Przydatne narzędzia (155) Pylint (155) pep8 i flake8 (157) Tworzenie i dystrybucja pakietów (159) Tworzenie pakietów (160) Zamieszanie wokół narzędzi do tworzenia i dystrybuowania pakietów (160) Konfiguracja projektu (162) Własne polecenia skryptu setup.py (172) Praca z pakietami podczas ich rozwoju (172) Pakiety przestrzeni nazw (174) Zastosowanie pakietów przestrzeni nazw (174) PEP 420 - domyślne pakiety przestrzeni nazw (176) Pakiety przestrzeni nazw w starszych wersjach Pythona (177) Praca z repozytorium pakietów (178) Python Package Index - repozytorium pakietów Pythona (179) Dystrybucje źródłowe a dystrybucje budowane (181) Samodzielne pliki wykonywalne (184) Kiedy samodzielne pliki wykonywalne są użyteczne? (186) Popularne narzędzia (186) Bezpieczeństwo kodu Pythona w samodzielnych plikach wykonywalnych (193) Zdalne wdrożenia kodu (197) Manifest Twelve-Factor App (198) Automatyzacja wdrożeń z wykorzystaniem narzędzia Fabric (200) Własne repozytorium pakietów lub kopie lustrzane PyPI (205) Utrzymywanie kopii lustrzanych PyPI (206) Wdrożenia z wykorzystaniem dystrybucji pakietów (207) Popularne konwencje i dobre praktyki (215) Hierarchia systemu plików (215) Izolacja (216) Wykorzystanie narzędzi nadzoru nad procesami (216) Kod aplikacji powinien być uruchomiony w przestrzeni użytkownika (218) Korzystanie ze wstecznych serwerów proxy protokołu HTTP (219) Przeładowywanie procesów bez zastojów (219) Instrumentacja i monitorowanie kodu (221) Logowanie błędów (Sentry oraz raven) (221) Monitorowanie metryk systemowych i aplikacji (224) Obsługa logów (226) Rozszerzenia Pythona w innych językach programowania (231) Inne języki, czyli C lub C++ (232) Jak działają rozszerzenia w C i C++ (232) Dlaczego warto tworzyć rozszerzenia (234) Zwiększanie wydajności w krytycznych sekcjach kodu (235) Integracja kodu napisanego w innych językach programowania (236) Integracja zewnętrznych bibliotek dynamicznych (236) Tworzenie własnych wbudowanych typów danych (236) Pisanie rozszerzeń (237) Zwyczajne rozszerzenia w C (238) Cython (253) Wyzwania związane z rozszerzeniami (257) Dodatkowa złożoność (258) Debugowanie (258) Korzystanie z dynamicznych bibliotek bez pisania rozszerzeń (259) ctypes (259) CFFI (265) Zarządzanie kodem (267) Systemy kontroli wersji (268) Scentralizowane systemy kontroli wersji (268) Rozproszone systemy kontroli wersji (271) Systemy scentralizowane czy rozproszone? (274) Korzystaj z systemu Git, jeśli tylko możesz (274) Git flow oraz GitHub flow (275) Ciągłe procesy programistyczne (279) Ciągła integracja oprogramowania (280) Ciągłe dostarczanie oprogramowania (284) Ciągłe wdrażanie oprogramowania (285) Popularne narzędzia do ciągłej integracji (285) Wybór odpowiednich narzędzi i częste pułapki (294) Dokumentowanie projektu (299) Siedem zasad technicznego pisania (300) Pisz w dwóch krokach (300) Skieruj przekaz do konkretnej grupy czytelników (301) Korzystaj z prostego stylu (302) Ogranicz zakres informacji (303) Korzystaj z realistycznych przykładów (303) Dokumentuj lekko, ale jednocześnie wystarczająco (304) Korzystaj z szablonów (305) Poradnik reStructuredText (305) Struktura sekcji (307) Listy numerowane i wypunktowania (309) Formatowanie znakowe (310) Bloki dosłowne (310) Odnośniki (311) Budowanie dokumentacji (312) Budowanie portfolio dokumentacji (312) Tworzenie własnego portfolio (319) Projektowanie krajobrazu dokumentacji (319) Budowanie dokumentacji a systemy ciągłej integracji (324) Programowanie sterowane testami (327) Nie testuję (327) Zasady programowania sterowanego testami (328) Możliwe rodzaje testów (332) Narzędzia testowe standardowej biblioteki Pythona (335) Testuję (340) Pułapki modułu unittest (340) Alternatywy dla modułu unittest (341) Mierzenie pokrycia kodu testami (349) Fałszywe obiekty zastępcze i atrapy (351) Testowanie kompatybilności środowisk i zależności (358) Programowanie sterowane dokumentami (361) Optymalizacja - ogólne zasady i techniki profilowania (365) Trzy zasady optymalizacji (365) Przede wszystkim spraw, aby kod działał poprawnie (366) Pracuj z perspektywy użytkownika (367) Utrzymuj kod czytelnym (367) Strategia optymalizacyjna (368) Poszukaj innego winowajcy (368) Skaluj sprzęt (369) Napisz test wydajnościowy (370) Identyfikowanie wąskich gardeł wydajności (370) Profilowanie czasu użycia procesora (370) Profilowanie zużycia pamięci (379) Profilowanie połączeń sieciowych (389) Optymalizacja - wybrane skuteczne techniki (391) Redukcja złożoności (392) Złożoność cyklomatyczna (394) Notacja dużego O (394) Upraszczanie (397) Przeszukiwanie list (397) Korzystanie ze zbiorów w miejscu list (398) Ukróć zewnętrzne wywołania, zredukuj nakład pracy (398) Korzystanie z modułu collections (399) Stosowanie kompromisów architektonicznych (403) Stosowanie heurystyk i algorytmów aproksymacyjnych (403) Stosowanie kolejek zadań i opóźnionego przetwarzania (404) Stosowanie probabilistycznych struktur danych (408) Buforowanie (409) Buforowanie deterministyczne (410) Buforowanie niedeterministyczne (412) Usługi buforujące (413) Przetwarzanie współbieżne i równoległe (419) Dlaczego współbieżność? (420) Wielowątkowość (421) Czym jest wielowątkowość? (422) Jak Python radzi sobie z wątkami (423) Kiedy należy korzystać z wielowątkowości? (424) Przetwarzanie wieloprocesowe (439) Wbudowany moduł multiprocessing (442) Programowanie asynchroniczne (447) Kooperacyjna wielozadaniowość i asynchroniczne operacje wejścia/wyjścia (448) asyncio w starszych wersjach Pythona (453) Praktyczny przykład programu asynchronicznego (454) Integracja nieasynchronicznego kodu z async za pomocą modułu futures (456) Przydatne wzorce projektowe (461) Wzorce kreacyjne (462) Singleton (462) Wzorce strukturalne (465) Adapter (466) Pełnomocnik (481) Fasada (482) Wzorce czynnościowe (483) Obserwator (483) Odwiedzający (485) Szablon (488)
Sygnatura czytelni BWEAiI: XII Ł 80
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. 144834 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.)
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