Python na poważnie - Helion
Tłumaczenie: Natalia Chounlamany-Turalska
ISBN: 9788301206413
stron: 238, Format: ebook
Data wydania: 2019-06-28
Księgarnia: Helion
Cena książki: 63,20 zł (poprzednio: 78,02 zł)
Oszczędzasz: 19% (-14,82 zł)
Rozwijaj swoje umiejętności programowania w Pythonie, zagłębiając się w tajniki języka przy pomocy książki Python na poważnie. Napisana z myślą o developerach i doświadczonych programistach książka Python na poważnie bazuje na ponad 15-letnim doświadczeniu w pracy z Pythonem, uczy czytelników, jak unikać typowych błędów, jak pisać kod w bardziej produktywny sposób i jak szybciej budować lepsze programy. Omówimy szereg zaawansowanych zagadnień, takich jak wielowątkowość i memoizacja, przedstawimy porady ekspertów m.in. w zakresie projektowania interfejsów API i obsługi baz danych, a także wytłumaczymy pewne wewnętrzne mechanizmy, aby pomóc w lepszym zrozumieniu języka Python. Na początku dowiesz się, jak rozpocząć projekt i rozwiązać takie kwestie jak numerowanie wersji i automatyczne sprawdzanie kodu. Później zobaczysz, jak efektywnie definiować funkcje, wybierać odpowiednie struktury danych i biblioteki, budować przyszłościowe programy, przygotowywać oprogramowanie do dystrybucji oraz optymalizować swoje programy, także na poziomie kodu bajtowego. Ponadto dowiesz się jak: Tworzyć i wykorzystywać efektywne dekoratory i metody, z uwzględnieniem metod abstrakcyjnych, statycznych i klas Używać Pythona do programowania funkcyjnego przy pomocy generatorów oraz funkcji czystych i funkcyjnych Rozszerzać narzędzie flake8 o analizę drzewa składniowego AST, wprowadzając bardziej zaawansowaną technikę automatycznego sprawdzania kodu Przeprowadzać dynamiczną analizę wydajności w celu wykrywania słabych punktów w kodzie Korzystać z relacyjnych baz danych, a także efektywnie zarządzać danymi i przesyłać je strumieniowo przy użyciu PostgreSQL Wznieś swoje umiejętności na wyższy poziom. Ucz się od ekspertów i zostań poważnym programistą Pythona dzięki książce Python na poważnie!
Osoby które kupowały "Python na poważnie", wybierały także:
- GraphQL. Kurs video. Buduj nowoczesne API w Pythonie 169,00 zł, (50,70 zł -70%)
- Receptura na Python. Kurs Video. 54 praktyczne porady dla programist 199,00 zł, (59,70 zł -70%)
- Podstawy Pythona z Minecraftem. Kurs video. Piszemy pierwsze skrypty 149,00 zł, (44,70 zł -70%)
- Twórz gry w Pythonie. Kurs video. Poznaj bibliotekę PyGame 249,00 zł, (74,70 zł -70%)
- Data Science w Pythonie. Kurs video. Algorytmy uczenia maszynowego 199,00 zł, (59,70 zł -70%)
Spis treści
Python na poważnie eBook -- spis treści
- Okładka
- Strona tytułowa
- Strona redakcyjna
- Strona tytułowa
- O autorze
- O recenzencie technicznym
- Spis treści
- Podziękowania
- Wprowadzenie
- Kto i dlaczego powinien przeczytać tę książkę
- O tej książce
- 1. Rozpoczynanie projektu
- Wersje Pythona
- Układ projektu
- Co robić
- Czego nie robić
- Numerowanie wersji
- Style programowania i automatyczne sprawdzanie
- Narzędzia do wykrywania błędów stylu
- Narzędzia do wykrywania błędów programistycznych
- Joshua Harlow o Pythonie
- 2. Moduły, biblioteki i platformy
- System importowania
- Moduł sys
- Ścieżki importowania
- Niestandardowe importery
- Obiekty wyszukujące z listy sys.meta_path
- Przydatne standardowe biblioteki
- Zewnętrzne biblioteki
- Lista wymagań, jakie powinna spełniać bezpieczna biblioteka zewnętrzna
- Chronienie kodu przy użyciu opakowania API
- Instalacja pakietu: dodatkowe możliwości narzędzia pip
- Stosowanie i wybieranie platform
- Doug Hellmann, Python Core Developer, o bibliotekach Pythona
- System importowania
- 3. Dokumentacja i najlepsze praktyki
- Dokumentowanie przy użyciu Sphinksa
- Rozpoczęcie pracy ze Sphinksem i reST
- Moduły Sphinksa
- Pisanie rozszerzeń Sphinksa
- Zarządzanie zmianami interfejsów API
- Numerowanie wersji API
- Dokumentowanie zmian API
- Oznaczanie przestarzałych funkcji przy użyciu modułu warnings
- Podsumowanie
- Christophe de Vienne o rozwijaniu interfejsów API
- Dokumentowanie przy użyciu Sphinksa
- 4. Obsługa znaczników czasu i stref czasowych
- Problem brakujących stref czasowych
- Budowanie domyślnych obiektów datetime
- Rozpoznawanie stref czasowych przy użyciu dateutil
- Serializowanie obiektów datetime rozpoznających strefę czasową
- Rozwiązywanie problemu niejednoznacznych godzin
- Podsumowanie
- 5. Dystrybucja oprogramowania
- Krótka historia plików setup.py
- Zarządzanie pakietami przy użyciu setup.cfg
- Standardowy format dystrybucji wheel
- Dzielenie się swoją pracą ze światem
- Punkty wejścia
- Wizualizowanie punktów wejścia
- Wykorzystywanie skryptów konsoli
- Wykorzystywanie wtyczek i sterowników
- Podsumowanie
- Nick Coghlan o zarządzaniu pakietami
- 6. Testy jednostkowe
- Podstawy testowania
- Proste testy
- Pomijanie testów
- Uruchamianie wybranych testów
- Równoległe uruchamianie testów
- Tworzenie obiektów wykorzystywanych w testach przy użyciu fikstur
- Uruchamianie scenariuszy testowych
- Kontrolowane testy bazujące na atrapach obiektów
- Odkrywanie nieprzetestowanego kodu przy użyciu coverage
- Środowiska wirtualne
- Konfigurowanie środowiska wirtualnego
- Stosowanie virtualenv wraz z narzędziem tox
- Odtwarzanie środowiska
- Stosowanie różnych wersji Pythona
- Integrowanie innych testów
- Zasady dotyczące testowania
- Robert Collins o testowaniu
- Podstawy testowania
- 7. Metody i dekoratory
- Dekoratory i kiedy ich używać
- Tworzenie dekoratorów
- Pisanie dekoratorów
- Stosowanie wielu dekoratorów
- Pisanie dekoratorów klas
- W jaki sposób działają metody w Pythonie
- Metody statyczne
- Metody klasy
- Metody abstrakcyjne
- Mieszanie metod statycznych, klasy i abstrakcyjnych
- Umieszczanie implementacji w metodach abstrakcyjnych
- Prawda o metodzie super
- Podsumowanie
- Dekoratory i kiedy ich używać
- 8. Programowanie funkcyjne
- Tworzenie czystych funkcji
- Generatory
- Tworzenie generatora
- Zwracanie i przekazywanie wartości przy użyciu instrukcji yield
- Inspekcje generatorów
- Wyrażenia listowe
- Funkcjonowanie funkcji funkcyjnych
- Stosowanie funkcji na elementach przy użyciu funkcji map()
- Filtrowanie list przy użyciu funkcji filter()
- Pobieranie indeksów przy użyciu funkcji enumerate()
- Sortowanie listy przy użyciu funkcji sorted()
- Wyszukiwanie przy użyciu any() i all() elementów spełniających warunki
- Łączenie list przy użyciu funkcji zip()
- Rozwiązania typowych problemów
- Przydatne funkcje itertools
- Podsumowanie
- 9. Drzewo AST, Hy i atrybuty jak w języku Lisp
- Analizowanie drzewa AST
- Pisanie programu przy użyciu AST
- Obiekty AST
- Przechodzenie drzewa AST
- Rozszerzanie narzędzia flake8 o analizy AST
- Pisanie klasy
- Pomijanie nieistotnego kodu
- Sprawdzanie, czy istnieje odpowiedni dekorator
- Poszukiwanie argumentu self
- Szybkie wprowadzenie do Hy
- Podsumowanie
- Paul Tagliamonte o AST i Hy
- Analizowanie drzewa AST
- 10. Wydajność i optymalizacje
- Struktury danych
- Zrozumienie działania programu przez profilowanie
- cProfile
- Dezasemblowanie przy użyciu modułu dis
- Efektywne definiowanie funkcji
- Listy uporządkowane i bisect
- namedtuple i __slots__
- Memoizacja
- Szybszy Python dzięki PyPy
- Eliminacja kopiowania przy użyciu protokołu bufora
- Podsumowanie
- Victor Stinner o optymalizacji
- 11. Skalowalność i architektura
- Wielowątkowość w Pythonie i jej ograniczenia
- Przetwarzanie wieloprocesowe kontra wielowątkowe
- Architektura sterowana zdarzeniami
- Inne opcje i asyncio
- Architektura zorientowana na usługi
- Komunikacja między procesami przy użyciu ZeroMQ
- Podsumowanie
- 12. Zarządzanie relacyjnymi bazami danych
- Rozwiązania RDBMS, ORM i kiedy ich używać
- Wewnętrzne bazy danych
- Strumieniowe przesyłanie danych przy użyciu Flask i PostgreSQL
- Pisanie aplikacji do strumieniowego przesyłania danych
- Budowanie aplikacji
- Dimitri Fontaine on Databases
- 13. Pisz mniej, programuj więcej
- Użycie modułu six do wspierania wersji Python 2 i 3
- Ciągi a unicode
- Rozwiązywanie problemu przeniesienia modułów Pythona
- Moduł modernize
- Wykorzystywanie Pythona jak języka Lisp do tworzenia jednego dyspozytora
- Tworzenie metod generycznych w języku Lisp
- Metody generyczne w Pythonie
- Menedżery kontekstu
- Redukowanie szablonowego kodu przy użyciu attr
- Podsumowanie
- Użycie modułu six do wspierania wersji Python 2 i 3
- Aktualizacje
- Przypisy