reklama - zainteresowany?

Python dla profesjonalistów. Debugowanie, testowanie i utrzymywanie kodu - Helion

Python dla profesjonalistów. Debugowanie, testowanie i utrzymywanie kodu
Autor: Kristian Rother
Tytuł oryginału: Pro Python Best Practices: Debugging, Testing and Maintenance
Tłumaczenie: Radosław Meryk
ISBN: 978-83-283-3802-9
stron: 272, Format: 170x230, okładka: miękka
Data wydania: 2017-12-11
Księgarnia: Helion

Cena książki: 49,00 zł

Dodaj do koszyka Python dla profesjonalistów. Debugowanie, testowanie i utrzymywanie kodu

Tagi: Python - Programowanie

Python istnieje już ponad 25 lat. Nie jest trudnym językiem i oferuje ogromne możliwości. Tworzenie dobrych programów w Pythonie wymaga jednak od programistów dużych umiejętności. Cykl rozwoju oprogramowania jest pełen pułapek nieznanych początkującym koderom. Mimo to w podręcznikach Pythona niewiele uwagi poświęca się debugowaniu i testowaniu, a przecież etapy te mają kluczowe znaczenie dla jakości kodu i funkcjonalności tworzonego oprogramowania.

Ta książka uczyni Cię lepszym programistą! Dzięki przedstawionym tu podstawowym praktykom stosowanym przez najbardziej profesjonalnych programistów Pythona będziesz tworzył doskonalszy kod. Zoptymalizujesz z nimi procesy debugowania programów, pisania automatycznych testów i utrzymywania oprogramowania bez nadmiernego wysiłku. Przedstawione tu techniki będą szczególnie przydatne dla programistów zajmujących się analizą danych, tworzeniem stron internetowych oraz rozwijaniem oprogramowania naukowego.

Najważniejsze zagadnienia przedstawione w książce:

  • błędy semantyczne i wyjątki,
  • sposoby eliminacji błędów i narzędzia do debugowania,
  • zasady i techniki testowania aplikacji,
  • mocne i słabe strony testów automatycznych,
  • mechanizm kontroli wersji,
  • kontrola typów i sporządzanie dokumentacji.

Ty też możesz programować w Pythonie!


Dr Kristian Rother zajmuje się programowaniem od wczesnego dzieciństwa. Jest również specjalistą w dziedzinie bioinformatyki: prowadził badania struktur 3D białek i RNA na Uniwersytecie Humboldta w Berlinie. Przez wiele lat doskonalił swoje umiejętności nauczania, a obecnie pracuje w Berlinie jako profesjonalny trener. Prowadzi szkolenia z programowania w Pythonie, uczy biochemii, statystyki, testowania aplikacji internetowych, wyszukiwarek, wygłasza prezentacje.

Dodaj do koszyka Python dla profesjonalistów. Debugowanie, testowanie i utrzymywanie kodu

 

Osoby które kupowały "Python dla profesjonalistów. Debugowanie, testowanie i utrzymywanie kodu", wybierały także:

  • GraphQL. Kurs video. Buduj nowoczesne API w Pythonie
  • Receptura na Python. Kurs Video. 54 praktyczne porady dla programist
  • Podstawy Pythona z Minecraftem. Kurs video. Piszemy pierwsze skrypty
  • Twórz gry w Pythonie. Kurs video. Poznaj bibliotekę PyGame
  • Data Science w Pythonie. Kurs video. Algorytmy uczenia maszynowego

Dodaj do koszyka Python dla profesjonalistów. Debugowanie, testowanie i utrzymywanie kodu

Spis treści

Python dla profesjonalistów. Debugowanie, testowanie i utrzymywanie kodu -- spis treści

  • O autorze
  • O recenzencie technicznym
  • Podziękowania
  • Przedmowa
  • Rozdział 1 Wprowadzenie
    • Lekcja pokory
    • Najlepsze praktyki w Pythonie
    • Pochodzenie najlepszych praktyk
      • Hacking
      • Inżynieria programowania
      • Agile
      • Software Craftsmanship
    • Dla kogo jest ta książka?
    • O czym jest ta książka?
      • Część I. Debugowanie
      • Część II. Automatyczne testowanie
      • Część III. Utrzymanie
      • Dalsze korzyści
    • Gra MazeRun
    • Jak korzystać z tej książki?
      • Instalacja Pythona 3
      • Instalacja biblioteki Pygame
      • Instalacja edytora tekstu
      • Pobranie kodu źródłowego przykładów
  • Część I Debugowanie
  • Rozdział 2 Wyjątki w Pythonie
    • Wyjątki są defektami, o których istnieniu wiemy
    • Czytanie kodu
      • Błędy typu SyntaxError
      • Najlepsze praktyki debugowania wyjątków SyntaxError
    • Analiza komunikatów o błędach
      • Typ błędu
      • Opis błędu
      • Ślad
      • Dedukcja
    • Przechwytywanie wyjątków
      • Najlepsze praktyki debugowania wyjątków IOError
    • Błędy i defekty
      • Skąd się biorą defekty?
    • Poprawny kod
    • Najlepsze praktyki
  • Rozdział 3 Błędy semantyczne w Pythonie
    • Porównywanie rzeczywistych danych wyjściowych z oczekiwanymi
      • Defekty
    • Defekty przypisania zmiennych
      • Wielokrotne inicjowanie
      • Przypadkowe przypisanie
      • Przypadkowe porównania
      • Nieprawidłowe zmienne w wyrażeniu
      • Przestawione literały w wyrażeniu
    • Defekty indeksowania
      • Tworzenie nieprawidłowych indeksów
      • Użycie nieprawidłowych indeksów
    • Defekty w instrukcjach przepływu sterowania
      • Defekty w wyrażeniach logicznych
      • Defekty związane z wcięciami
    • Defekty w używaniu funkcji
      • Pomijanie wywołania funkcji
      • Brak instrukcji return
      • Brak przechowywania zwracanej wartości
    • Propagacja błędów
    • Najlepsze praktyki
  • Rozdział 4 Debugowanie metodą naukową
    • Stosowanie metody naukowej
    • Odtwarzanie błędu
    • Automatyzowanie błędu
    • Izolowanie defektu
      • Strategia rozbierania
      • Strategia wyszukiwania binarnego
    • Uzyskiwanie pomocy
      • Czas na przerwę
      • Wyjaśnij problem komuś innemu
      • Programowanie w parach
      • Przeglądy kodu
      • Czytanie
    • Sprzątanie
    • Metoda naukowa i inne najlepsze praktyki
    • Najlepsze praktyki
  • Rozdział 5 Debugowanie za pomocą instrukcji print
    • Diagnozowanie, czy kod był uruchamiany
    • Wyświetlanie zawartości zmiennych
      • Estetyczne wyświetlanie struktur danych
    • Upraszczanie danych wejściowych
      • Zacznij od minimalnego wejścia
      • Stopniowe dodawanie większej ilości danych wejściowych
    • Włączanie i wyłączanie wyświetlania wyjścia
    • Kompletny kod
    • Plusy i minusy używania instrukcji print
    • Najlepsze praktyki
  • Rozdział 6 Debugowanie z funkcjami introspekcji
    • Kodowanie eksploracyjne w IPythonie
      • Eksploracja plików i katalogów
      • Przegląd poleceń powłoki IPythona
    • Odkrywanie przestrzeni nazw
      • Eksploracja przestrzeni nazw za pomocą polecenia dir()
      • Eksploracja przestrzeni nazw obiektów
      • Eksploracja atrybutów w programie Pythona
      • Alternatywy instrukcji dir w IPythonie
    • Mechanika przestrzeni nazw
      • Python używa przestrzeni nazw dla własnych funkcji
      • Modyfikowanie przestrzeni nazw
      • Przestrzenie nazw i zasięg lokalny
      • Przestrzenie nazw są podstawową właściwością Pythona
    • Używanie samodokumentujących się obiektów
      • Dostęp do ciągów dokumentacyjnych za pomocą instrukcji help()
      • Opisy obiektów w IPythonie
    • Analizowanie typów obiektów
      • Sprawdzanie tożsamości obiektu
      • Sprawdzanie egzemplarzy i podklas
    • Praktyczne wykorzystanie introspekcji
      • Znajdowanie literówek za pomocą introspekcji
      • Łączenie funkcji introspekcji
      • Introspekcja w dużych i małych programach
    • Najlepsze praktyki
  • Rozdział 7 Korzystanie z interaktywnego debugera
    • Interaktywny debuger ipdb
      • Instalowanie ipdb
    • Uruchamianie debugera
      • Uruchamianie ipdb z wiersza polecenia
      • Uruchamianie ipdb z poziomu programu
      • Debugowanie post mortem
      • Uruchamianie debugera w odpowiedzi na wyjątki
      • Naprawa defektu
    • Komendy w wierszu poleceń debugera
      • Inspekcja zmiennych
      • Ocena wartości wyrażeń Pythona
      • Krokowe uruchamianie kodu
      • Wznawianie działania programu
    • Używanie pułapek
      • Przeglądanie i usuwanie pułapek
      • Pułapki warunkowe
    • Konfigurowanie ipdb
    • Przykład sesji ipdb
      • Dodawanie funkcji sterowania grą
      • Krokowe uruchamianie kodu
      • Usuwanie defektu
      • To działa!
      • Czy teraz program nie ma defektów?
    • Inne narzędzia do debugowania
      • pdb debuger Pythona
      • Środowisko IDE PyCharm
      • ipdbplugin
      • pudb
      • wdb
      • Pasek narzędzi Django Debug
      • cProfile
    • Najlepsze praktyki
  • Część II Automatyczne testowanie
  • Rozdział 8 Pisanie automatycznych testów
    • Instalacja frameworka py.test
    • Pisanie funkcji testowej
      • Uruchamianie testów
      • Pisanie testu, który nie przechodzi
      • Spraw, aby test przeszedł
      • Testy pomyślne a testy niepomyślne
    • Pisanie oddzielnych funkcji testowych
    • Asercje dostarczają przydatnych danych wyjściowych
    • Testowanie występowania wyjątków
    • Przypadki brzegowe
      • Złożone przypadki brzegowe
    • Korzyści wynikające z automatycznego testowania
    • Inne frameworki testowe w Pythonie
      • unittest
      • nose
      • doctest
      • Pisanie bloku __main__
    • Najlepsze praktyki
  • Rozdział 9 Organizowanie danych testowych
    • Używanie fikstur
      • Parametr scope
    • Parametryzacja testów
      • Wiele parametrów
      • Fikstury z parametrami
    • Makiety
    • Testowanie plików wynikowych
      • Sprzątanie po testach
      • Używanie plików tymczasowych
      • Porównywanie plików wynikowych z danymi testowymi
        • Moduł filecmp
        • Moduł difflib
      • Najlepsze praktyki testowania dużych plików
    • Generowanie losowych danych testowych
    • Gdzie przechowywać dane testowe?
      • Moduły danych testowych
      • Katalogi danych testowych
      • Bazy danych testowych
    • Najlepsze praktyki
  • Rozdział 10 Pisanie zestawu testów
    • Moduły testowe
    • Klasy testów
      • Refaktoryzacja funkcji testowych
      • Fikstury w klasach testowych
    • W jaki sposób testy znajdują testowany kod?
    • Wiele pakietów testowych
    • Automatyczne wykrywanie testów
    • Uruchamianie zestawu testów
      • Częściowe uruchomienie
        • Uruchamianie modułów i pakietów testowych
        • Uruchamianie klas testowych
        • Uruchamianie pojedynczych testów
          • Wybieranie testów za pomocą słów kluczowych
        • Analiza testów zakończonych niepowodzeniem
        • Ponowne uruchamianie testów
    • Obliczanie pokrycia testami
      • Zestaw testów wymaga utrzymania
    • Najlepsze praktyki
  • Rozdział 11 Najlepsze praktyki testowania
    • Rodzaje automatycznych testów
      • Testy jednostkowe
      • Testy integracyjne
      • Testy akceptacyjne
      • Testy regresji
      • Testy wydajności
      • Optymalizacja wydajności
    • Podejście najpierw test
      • Pisanie testów według specyfikacji
      • Pisanie testów według defektów
      • Rozwój oprogramowania sterowany testami (TDD)
    • Zalety automatycznego testowania
      • Testowanie oszczędza czas
      • Testowanie dodaje precyzji
      • Dzięki testowaniu współpraca staje się łatwiejsza
    • Ograniczenia automatycznego testowania
      • Testowanie wymaga sprawdzalnego kodu
      • Testowanie nie działa dobrze w przypadku projektów, które szybko się zmieniają
      • Testowanie nie udowadnia poprawności
    • Programy trudne do testowania
      • Liczby losowe
      • Graficzne interfejsy użytkownika
      • Dane wyjściowe złożone lub o dużej objętości
      • Współbieżność
      • Sytuacje, gdy automatyczne testy zawodzą
    • Inne możliwości dla automatycznego testowania
      • Tworzenie prototypów
      • Przeglądy kodu
      • Listy kontrolne
      • Procesy promujące poprawność
      • Wnioski
    • Najlepsze praktyki
  • Część III Utrzymanie
  • Rozdział 12 Kontrola wersji
    • Wprowadzenie do pracy z systemem git
      • Tworzenie repozytorium
      • Dodawanie plików do repozytorium
      • Śledzenie zmian w plikach
      • Przenoszenie i usuwanie plików
      • Odrzucanie zmian
    • Przeglądanie historii kodu
      • Pobieranie starszych commitów
      • Powrót do najświeższego commita
    • Publikowanie kodu w serwisie GitHub
      • Rozpoczynanie projektu w serwisie GitHub
      • Korzystanie z serwisu GitHub z pozycji pojedynczego programisty
      • Praca w projektach rozpoczętych przez innych
      • Projekty z wieloma programistami
      • Scalanie zmian wprowadzonych przez dwie osoby
      • Żądania pobrania
    • Korzystanie z gałęzi
      • Scalanie gałęzi
    • Konfigurowanie systemu git
      • Ignorowanie plików
      • Ustawienia globalne
    • Przykłady użycia
      • Dwadzieścia znaków: mały projekt o małym ruchu
      • Python: wielki projekt z codziennymi commitami
      • grep: projekt długoterminowy
    • Inne systemy kontroli wersji
      • Mercurial
      • Subversion (SVN)
      • CVS (Concurrent Versions Software)
      • Bitbucket
      • Sourceforge
    • Najlepsze praktyki
  • Rozdział 13 Konfigurowanie projektu w Pythonie
    • Tworzenie struktury projektu za pomocą narzędzia pyscaffold
      • Instalacja narzędzia pyscaffold
    • Typowe katalogi w projekcie Pythona
      • Katalogi utworzone przez pyscaffold
        • Główny katalog pakietu Pythona
        • Katalog tests/
        • Katalog docs/
        • Katalog .git/
      • Katalogi nieutworzone przez pyscaffold
        • Katalog bin/
        • Katalogi build/, dist/ i sdist/
        • Katalog .hg/
        • Katalogi danych
    • Pliki
      • Pliki utworzone przez pyscaffold
        • README.rst
        • setup.py
        • AUTHORS.rst
        • LICENSE.rst
        • MANIFEST.in
        • versioneer.py
        • requirements.txt
        • .coveragerc
        • .gitattributes i .gitignore
      • Pliki, które nie są tworzone przez pyscaffold
    • Ustawianie numerów wersji programu
    • Zarządzanie środowiskiem projektu Pythona za pomocą virtualenv
      • Instalacja narzędzia virtualenv
      • Podłączanie projektu do środowiska virtualenv
      • Praca z projektem virtualenv
      • Instalowanie pakietów w środowisku virtualenv
      • Opuszczanie sesji środowiska virtualenv
      • Konfigurowanie uruchamiania i dezaktywacji środowiska virtualenv
        • Ustawienie zmiennej PYTHONPATH
    • Instalowanie Pygame z virtualenv
    • Najlepsze praktyki
  • Rozdział 14 Porządkowanie kodu
    • Kod zorganizowany i niezorganizowany
      • Entropia oprogramowania: przyczyny niezorganizowanego kodu
    • Jak rozpoznać niezorganizowany kod?
      • Czytelność
      • Niedoskonałości strukturalne
      • Redundancja
      • Słabości projektu
    • Porządkowanie instrukcji Pythona
      • Pogrupuj instrukcje importu
      • Pogrupuj stałe
      • Usuń niepotrzebne wiersze
      • Zastosuj opisowe nazwy zmiennych
      • Idiomatyczny kod Pythona
    • Refaktoryzacja
      • Wyodrębnianie funkcji
      • Tworzenie prostego interfejsu wiersza polecenia
      • Podział programów na moduły
    • Uporządkowany kod
    • PEP8 i pylint
      • Komunikaty ostrzegawcze
      • Ocena punktowa kodu
    • Zrób tak, żeby działało, zrób to dobrze, zrób tak, żeby działało szybko
      • Zrób tak, żeby działało
      • Zrób to dobrze
      • Zrób tak, żeby działało szybko
    • Przykłady dobrze zorganizowanego kodu
    • Najlepsze praktyki
  • Rozdział 15 Dekompozycja zadań programistycznych
    • Dekompozycja zadań programowania jest trudna
    • Proces dekompozycji zadań programowania
    • Napisz historyjkę użytkownika
    • Dodaj szczegóły do opisu
      • Kryteria akceptacji
      • Opisy przypadków użycia
    • Sprawdź wymagania niefunkcjonalne
    • Identyfikowanie problemów
      • Niepełne informacje
      • Wiedza specjalistyczna
      • Zmiany istniejącego kodu
      • Przewidywanie przyszłych zmian
    • Wybór architektury
    • Identyfikowanie komponentów programu
    • Implementacja
    • Inne narzędzia planowania
      • Plan projektu na jednej stronie
      • Śledzenie spraw
      • Kanban
    • Najlepsze praktyki
  • Rozdział 16 Statyczne typowanie w języku Python
    • Słabe strony dynamicznego typowania
      • Sygnatury funkcji
      • Granice wartości
      • Semantyczne znaczenie typów
      • Typy złożone
    • Czy w Pythonie jest możliwe silniejsze typowanie?
    • Asercje
    • NumPy
    • Bazy danych
    • Integracja kodu w języku C
    • Cython
    • Wskazówki typowania
      • mypy
    • Której metody kontroli typów używać?
    • Najlepsze praktyki
  • Rozdział 17 Dokumentacja
    • Dla kogo piszemy dokumentację?
    • Sphinx: narzędzie do tworzenia dokumentacji dla języka Python
      • Konfigurowanie Sphinksa
      • Pliki utworzone przez program Sphinx
      • Tworzenie dokumentacji
        • Budowanie dokumentacji HTML
        • Budowanie dokumentacji PDF
        • Budowanie dokumentacji EPUB
    • Pisanie dokumentacji
      • Dyrektywy
      • Organizowanie dokumentów
      • Przykłady kodu
      • Generowanie dokumentacji na podstawie ciągów docstring
    • Testy dokumentacji
    • Konfigurowanie Sphinksa
      • Wpisy Todo
        • Tworzenie listy Todo
      • Budowanie warunkowe
      • Zmiana wyglądu i wrażenia
    • Jak napisać dobrą dokumentację?
      • Sekcje tekstu w dokumentacji technicznej
        • Streszczenie
        • Wymagania wstępne i instalacja
        • Pierwsze kroki
        • Receptury
        • Studia przypadków
        • Dokumentacja techniczna
        • Dokumentacja projektowa
        • Aspekty prawne
          • Przykłady dobrej dokumentacji
    • Inne narzędzia do tworzenia dokumentacji
      • MkDocs
      • Notatniki Jupyter
      • GitBook
      • Read the Docs
      • pydoc
      • S5
      • pygments
      • doctest
      • PyPDF2
      • pandoc
    • Najlepsze praktyki

Dodaj do koszyka Python dla profesjonalistów. Debugowanie, testowanie i utrzymywanie kodu

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.