Categories
Ebooks
-
Business and economy
- Bitcoin
- Businesswoman
- Coaching
- Controlling
- E-business
- Economy
- Finances
- Stocks and investments
- Personal competence
- Computer in the office
- Communication and negotiation
- Small company
- Marketing
- Motivation
- Multimedia trainings
- Real estate
- Persuasion and NLP
- Taxes
- Social policy
- Guides
- Presentations
- Leadership
- Public Relation
- Reports, analyses
- Secret
- Social Media
- Sales
- Start-up
- Your career
- Management
- Project management
- Human Resources
-
For children
-
For youth
-
Education
-
Encyclopedias, dictionaries
-
E-press
- Architektura i wnętrza
- Biznes i Ekonomia
- Home and garden
- E-business
- Finances
- Personal finance
- Business
- Photography
- Computer science
- HR & Payroll
- Computers, Excel
- Accounts
- Culture and literature
- Scientific and academic
- Environmental protection
- Opinion-forming
- Education
- Taxes
- Travelling
- Psychology
- Religion
- Agriculture
- Book and press market
- Transport and Spedition
- Healthand beauty
-
History
-
Computer science
- Office applications
- Data bases
- Bioinformatics
- IT business
- CAD/CAM
- Digital Lifestyle
- DTP
- Electronics
- Digital photography
- Computer graphics
- Games
- Hacking
- Hardware
- IT w ekonomii
- Scientific software package
- School textbooks
- Computer basics
- Programming
- Mobile programming
- Internet servers
- Computer networks
- Start-up
- Operational systems
- Artificial intelligence
- Technology for children
- Webmastering
-
Other
-
Foreign languages
-
Culture and art
-
School reading books
-
Literature
- Antology
- Ballade
- Biographies and autobiographies
- For adults
- Dramas
- Diaries, memoirs, letters
- Epic, epopee
- Essay
- Fantasy and science fiction
- Feuilletons
- Work of fiction
- Humour and satire
- Other
- Classical
- Crime fiction
- Non-fiction
- Fiction
- Mity i legendy
- Nobelists
- Novellas
- Moral
- Okultyzm i magia
- Short stories
- Memoirs
- Travelling
- Narrative poetry
- Poetry
- Politics
- Popular science
- Novel
- Historical novel
- Prose
- Adventure
- Journalism, publicism
- Reportage novels
- Romans i literatura obyczajowa
- Sensational
- Thriller, Horror
- Interviews and memoirs
-
Natural sciences
-
Social sciences
-
School textbooks
-
Popular science and academic
- Archeology
- Bibliotekoznawstwo
- Cinema studies
- Philology
- Polish philology
- Philosophy
- Finanse i bankowość
- Geography
- Economy
- Trade. World economy
- History and archeology
- History of art and architecture
- Cultural studies
- Linguistics
- Literary studies
- Logistics
- Maths
- Medicine
- Humanities
- Pedagogy
- Educational aids
- Popular science
- Other
- Psychology
- Sociology
- Theatre studies
- Theology
- Economic theories and teachings
- Transport i spedycja
- Physical education
- Zarządzanie i marketing
-
Guides
-
Game guides
-
Professional and specialist guides
-
Law
- Health and Safety
- History
- Road Code. Driving license
- Law studies
- Healthcare
- General. Compendium of knowledge
- Academic textbooks
- Other
- Construction and local law
- Civil law
- Financial law
- Economic law
- Economic and trade law
- Criminal law
- Criminal law. Criminal offenses. Criminology
- International law
- International law
- Health care law
- Educational law
- Tax law
- Labor and social security law
- Public, constitutional and administrative law
- Family and Guardianship Code
- agricultural law
- Social law, labour law
- European Union law
- Industry
- Agricultural and environmental
- Dictionaries and encyclopedia
- Public procurement
- Management
-
Tourist guides and travel
- Africa
- Albums
- Southern America
- North and Central America
- Australia, New Zealand, Oceania
- Austria
- Asia
- Balkans
- Middle East
- Bulgary
- China
- Croatia
- The Czech Republic
- Denmark
- Egipt
- Estonia
- Europe
- France
- Mountains
- Greece
- Spain
- Holand
- Iceland
- Lithuania
- Latvia
- Mapy, Plany miast, Atlasy
- Mini travel guides
- Germany
- Norway
- Active travelling
- Poland
- Portugal
- Other
- Russia
- Romania
- Slovakia
- Slovenia
- Switzerland
- Sweden
- World
- Turkey
- Ukraine
- Hungary
- Great Britain
- Italy
-
Psychology
- Philosophy of life
- Kompetencje psychospołeczne
- Interpersonal communication
- Mindfulness
- General
- Persuasion and NLP
- Academic psychology
- Psychology of soul and mind
- Work psychology
- Relacje i związki
- Parenting and children psychology
- Problem solving
- Intellectual growth
- Secret
- Sexapeal
- Seduction
- Appearance and image
- Philosophy of life
-
Religion
-
Sport, fitness, diets
-
Technology and mechanics
Audiobooks
-
Business and economy
- Bitcoin
- Businesswoman
- Coaching
- Controlling
- E-business
- Economy
- Finances
- Stocks and investments
- Personal competence
- Communication and negotiation
- Small company
- Marketing
- Motivation
- Real estate
- Persuasion and NLP
- Taxes
- Guides
- Presentations
- Leadership
- Public Relation
- Secret
- Social Media
- Sales
- Start-up
- Your career
- Management
- Project management
- Human Resources
-
For children
-
For youth
-
Education
-
Encyclopedias, dictionaries
-
History
-
Computer science
-
Other
-
Foreign languages
-
Culture and art
-
School reading books
-
Literature
- Antology
- Ballade
- Biographies and autobiographies
- For adults
- Dramas
- Diaries, memoirs, letters
- Epic, epopee
- Essay
- Fantasy and science fiction
- Feuilletons
- Work of fiction
- Humour and satire
- Other
- Classical
- Crime fiction
- Non-fiction
- Fiction
- Mity i legendy
- Nobelists
- Novellas
- Moral
- Okultyzm i magia
- Short stories
- Memoirs
- Travelling
- Poetry
- Politics
- Popular science
- Novel
- Historical novel
- Prose
- Adventure
- Journalism, publicism
- Reportage novels
- Romans i literatura obyczajowa
- Sensational
- Thriller, Horror
- Interviews and memoirs
-
Natural sciences
-
Social sciences
-
Popular science and academic
-
Guides
-
Professional and specialist guides
-
Law
-
Tourist guides and travel
-
Psychology
- Philosophy of life
- Interpersonal communication
- Mindfulness
- General
- Persuasion and NLP
- Academic psychology
- Psychology of soul and mind
- Work psychology
- Relacje i związki
- Parenting and children psychology
- Problem solving
- Intellectual growth
- Secret
- Sexapeal
- Seduction
- Appearance and image
- Philosophy of life
-
Religion
-
Sport, fitness, diets
-
Technology and mechanics
Videocourses
-
Data bases
-
Big Data
-
Biznes, ekonomia i marketing
-
Cybersecurity
-
Data Science
-
DevOps
-
For children
-
Electronics
-
Graphics/Video/CAX
-
Games
-
Microsoft Office
-
Development tools
-
Programming
-
Personal growth
-
Computer networks
-
Operational systems
-
Software testing
-
Mobile devices
-
UX/UI
-
Web development
-
Management
Podcasts
- Ebooks
- Programming
- Python
- Python dla profesjonalistów. Debugowanie, testowanie i utrzymywanie kodu
E-book details
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.
- 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
- Porównywanie rzeczywistych danych wyjściowych z oczekiwanymi
- 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
- Kodowanie eksploracyjne w IPythonie
- 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
- Interaktywny debuger ipdb
- 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
- Używanie fikstur
- 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
- Częściowe uruchomienie
- 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
- Rodzaje automatycznych testów
- 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
- Wprowadzenie do pracy z systemem git
- 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
- Katalogi utworzone przez pyscaffold
- 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
- Pliki utworzone 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
- Tworzenie struktury projektu za pomocą narzędzia pyscaffold
- 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
- Kod zorganizowany i niezorganizowany
- 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
- Słabe strony dynamicznego typowania
- 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
- Wpisy Todo
- 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
- Sekcje tekstu w dokumentacji technicznej
- Inne narzędzia do tworzenia dokumentacji
- MkDocs
- Notatniki Jupyter
- GitBook
- Read the Docs
- pydoc
- S5
- pygments
- doctest
- PyPDF2
- pandoc
- Najlepsze praktyki
- Title: Python dla profesjonalistów. Debugowanie, testowanie i utrzymywanie kodu
- Author: Kristian Rother
- Original title: Pro Python Best Practices: Debugging, Testing and Maintenance
- Translation: Radosław Meryk
- ISBN: 978-83-283-3803-6, 9788328338036
- Date of issue: 2017-12-10
- Format: Ebook
- Item ID: pytpro
- Publisher: Helion