Python na poważnie
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!
- Kategorie:
- Język wydania: polski
- ISBN: 978-83-01-20641-3
- ISBN druku: 978-83-01-20637-6
- Liczba stron: 238
-
Sposób dostarczenia produktu elektronicznegoProdukty elektroniczne takie jak Ebooki czy Audiobooki są udostępniane online po opłaceniu zamówienia kartą lub przelewem na stronie Twoje konto > Biblioteka.Pliki można pobrać zazwyczaj w ciągu kilku-kilkunastu minut po uzyskaniu poprawnej autoryzacji płatności, choć w przypadku niektórych publikacji elektronicznych czas oczekiwania może być nieco dłuższy.Sprzedaż terytorialna towarów elektronicznych jest regulowana wyłącznie ograniczeniami terytorialnymi licencji konkretnych produktów.
-
Ważne informacje techniczneMinimalne wymagania sprzętowe:procesor: architektura x86 1GHz lub odpowiedniki w pozostałych architekturachPamięć operacyjna: 512MBMonitor i karta graficzna: zgodny ze standardem XGA, minimalna rozdzielczość 1024x768 16bitDysk twardy: dowolny obsługujący system operacyjny z minimalnie 100MB wolnego miejscaMysz lub inny manipulator + klawiaturaKarta sieciowa/modem: umożliwiająca dostęp do sieci Internet z prędkością 512kb/sMinimalne wymagania oprogramowania:System Operacyjny: System MS Windows 95 i wyżej, Linux z X.ORG, MacOS 9 lub wyżej, najnowsze systemy mobilne: Android, iPhone, SymbianOS, Windows MobilePrzeglądarka internetowa: Internet Explorer 7 lub wyżej, Opera 9 i wyżej, FireFox 2 i wyżej, Chrome 1.0 i wyżej, Safari 5Przeglądarka z obsługą ciasteczek i włączoną obsługą JavaScriptZalecany plugin Flash Player w wersji 10.0 lub wyżej.Informacja o formatach plików:
- PDF - format polecany do czytania na laptopach oraz komputerach stacjonarnych.
- EPUB - format pliku, który umożliwia czytanie książek elektronicznych na urządzeniach z mniejszymi ekranami (np. e-czytnik lub smartfon), dając możliwość dopasowania tekstu do wielkości urządzenia i preferencji użytkownika.
- MOBI - format zapisu firmy Mobipocket, który można pobrać na dowolne urządzenie elektroniczne (np.e-czytnik Kindle) z zainstalowanym programem (np. MobiPocket Reader) pozwalającym czytać pliki MOBI.
- Audiobooki w formacie MP3 - format pliku, przeznaczony do odsłuchu nagrań audio.
Rodzaje zabezpieczeń plików:- Watermark - (znak wodny) to zaszyfrowana informacja o użytkowniku, który zakupił produkt. Dzięki temu łatwo jest zidentyfikować użytkownika, który rozpowszechnił produkt w sposób niezgodny z prawem. Ten rodzaj zabezpieczenia jest zdecydowanie bardziej przyjazny dla użytkownika, ponieważ aby otworzyć książkę zabezpieczoną Watermarkiem nie jest potrzebne konto Adobe ID oraz autoryzacja urządzenia.
- Brak zabezpieczenia - część oferowanych w naszym sklepie plików nie posiada zabezpieczeń. Zazwyczaj tego typu pliki można pobierać ograniczoną ilość razy, określaną przez dostawcę publikacji elektronicznych. W przypadku zbyt dużej ilości pobrań plików na stronie WWW pojawia się stosowny komunikat.
PODZIĘKOWANIA XV WPROWADZENIE XVII Kto i dlaczego powinien przeczytać tę książkę XVIII O tej książce XVIII 1. ROZPOCZYNANIE PROJEKTU 1 Wersje Pythona 1 Układ projektu 3 Co robić 3 Czego nie robić 4 Numerowanie wersji 5 Style programowania i automatyczne sprawdzanie 6 Narzędzia do wykrywania błędów stylu 8 Narzędzia do wykrywania błędów programistycznych 8 Joshua Harlow o Pythonie 10 2. MODUŁY, BIBLIOTEKI I PLATFORMY M 13 System importowania 14 Moduł sys 16 Ścieżki importowania 16 Niestandardowe importery 17 Obiekty wyszukujące z listy sys.meta_path 17 Przydatne standardowe biblioteki 19 Zewnętrzne biblioteki 21 Lista wymagań, jakie powinna spełniać bezpieczna biblioteka zewnętrzna 22 Chronienie kodu przy użyciu opakowania API 23 Instalacja pakietu: dodatkowe możliwości narzędzia pip 23 Stosowanie i wybieranie platform 26 Doug Hellmann, Python Core Developer, o bibliotekach Pythona 27 3. DOKUMENTACJA I NAJLEPSZE PRAKTYKI 33 Dokumentowanie przy użyciu Sphinksa 34 Rozpoczęcie pracy ze Sphinksem i reST 35 Moduły Sphinksa 36 Pisanie rozszerzeń Sphinksa 39 Zarządzanie zmianami interfejsów API 41 Numerowanie wersji API 41 Dokumentowanie zmian API 42 Oznaczanie przestarzałych funkcji przy użyciu modułu warnings 44 Podsumowanie 46 Christophe de Vienne o rozwijaniu interfejsów API 46 4. OBSŁUGA ZNACZNIKÓW CZASU I STREF CZASOWYCH 49 Problem brakujących stref czasowych 50 Budowanie domyślnych obiektów datetime 50 Rozpoznawanie stref czasowych przy użyciu dateutil 52 Serializowanie obiektów datetime rozpoznających strefę czasową 54 Rozwiązywanie problemu niejednoznacznych godzin 56 Podsumowanie 57 5. DYSTRYBUCJA OPROGRAMOWANIA 59 Krótka historia plików setup.py 60 Zarządzanie pakietami przy użyciu setup.cfg 62 Standardowy format dystrybucji wheel 64 Dzielenie się swoją pracą ze światem 66 Punkty wejścia 70 Wizualizowanie punktów wejścia 71 Wykorzystywanie skryptów konsoli 72 Wykorzystywanie wtyczek i sterowników 74 Podsumowanie 77 Nick Coghlan o zarządzaniu pakietami 77 6. TESTY JEDNOSTKOWE 79 Podstawy testowania 80 Proste testy 80 Pomijanie testów 82 Uruchamianie wybranych testów 83 Równoległe uruchamianie testów 85 Tworzenie obiektów wykorzystywanych w testach przy użyciu fikstur 86 Uruchamianie scenariuszy testowych 87 Kontrolowane testy bazujące na atrapach obiektów 88 Odkrywanie nieprzetestowanego kodu przy użyciu coverage 93 Środowiska wirtualne 95 Konfigurowanie środowiska wirtualnego 96 Stosowanie virtualenv wraz z narzędziem tox 98 Odtwarzanie środowiska 99 Stosowanie różnych wersji Pythona 100 Integrowanie innych testów 101 Zasady dotyczące testowania 102 Robert Collins o testowaniu 103 7. METODY I DEKORATORY 107 Dekoratory i kiedy ich używać 108 Tworzenie dekoratorów 108 Pisanie dekoratorów 109 Stosowanie wielu dekoratorów 110 Pisanie dekoratorów klas 111 W jaki sposób działają metody w Pythonie 116 Metody statyczne 117 Metody klasy 119 Metody abstrakcyjne 120 Mieszanie metod statycznych, klasy i abstrakcyjnych 121 Umieszczanie implementacji w metodach abstrakcyjnych 123 Prawda o metodzie super 124 Podsumowanie 127 8. PROGRAMOWANIE FUNKCYJNE 129 Tworzenie czystych funkcji 130 Generatory 131 Tworzenie generatora 131 Zwracanie i przekazywanie wartości przy użyciu instrukcji yield 133 Inspekcje generatorów 134 Wyrażenia listowe 136 Funkcjonowanie funkcji funkcyjnych 137 Stosowanie funkcji na elementach przy użyciu funkcji map() 137 Filtrowanie list przy użyciu funkcji filter() 138 Pobieranie indeksów przy użyciu funkcji enumerate() 138 Sortowanie listy przy użyciu funkcji sorted() 138 Wyszukiwanie przy użyciu any() i all() elementów spełniających warunki 139 Łączenie list przy użyciu funkcji zip() 139 Rozwiązania typowych problemów 140 Przydatne funkcje itertools 140 Podsumowanie 145 9. DRZEWO AST, HY I ATRYBUTY JAK W JĘZYKU LISP 147 Analizowanie drzewa AST 148 Pisanie programu przy użyciu AST 150 Obiekty AST 151 Przechodzenie drzewa AST 151 Rozszerzanie narzędzia fl ake8 o analizy AST 153 Pisanie klasy 154 Pomijanie nieistotnego kodu 154 Sprawdzanie, czy istnieje odpowiedni dekorator 155 Poszukiwanie argumentu self 156 Szybkie wprowadzenie do Hy 158 Podsumowanie 160 Paul Tagliamonte o AST i Hy 160 10. WYDAJNOŚĆ I OPTYMALIZACJE 165 Struktury danych 166 Zrozumienie działania programu przez profi lowanie 168 cProfi le 169 Dezasemblowanie przy użyciu modułu dis 171 Efektywne defi niowanie funkcji 173 Listy uporządkowane i bisect 174 namedtuple i __slots__ 177 Memoizacja 182 Szybszy Python dzięki PyPy 184 Eliminacja kopiowania przy użyciu protokołu bufora 185 Podsumowanie 190 Victor Stinner o optymalizacji 190 11. SKALOWALNOŚĆ I ARCHITEKTURA 193 Wielowątkowość w Pythonie i jej ograniczenia 194 Przetwarzanie wieloprocesowe kontra wielowątkowe 195 Architektura sterowana zdarzeniami 197 Inne opcje i asyncio 199 Architektura zorientowana na usługi 200 Komunikacja między procesami przy użyciu ZeroMQ 201 Podsumowanie 203 12. ZARZĄDZANIE RELACYJNYMI BAZAMI DANYCH 205 Rozwiązania RDBMS, ORM i kiedy ich używać 205 Wewnętrzne bazy danych 208 Strumieniowe przesyłanie danych przy użyciu Flask i PostgreSQL 209 Pisanie aplikacji do strumieniowego przesyłania danych 209 Budowanie aplikacji 212 Dimitri Fontaine on Databases 214 13. PISZ MNIEJ, PROGRAMUJ WIĘCEJ 219 Użycie modułu six do wspierania wersji Python 2 i 3 219 Ciągi a unicode 221 Rozwiązywanie problemu przeniesienia modułów Pythona 221 Moduł modernize 222 Wykorzystywanie Pythona jak języka Lisp do tworzenia jednego dyspozytora 222 Tworzenie metod generycznych w języku Lisp 222 Metody generyczne w Pythonie 224 Menedżery kontekstu 226 Redukowanie szablonowego kodu przy użyciu attr 229 Podsumowanie 232 INDEKS 233