Kategorien
E-Books
-
Wirtschaft
- Bitcoin
- Geschäftsfrau
- Coaching
- Controlling
- E-Business
- Ökonomie
- Finanzen
- Börse und Investitionen
- Persönliche Kompetenzen
- Computer im Büro
- Kommunikation und Verhandlungen
- Kleines Unternehmen
- Marketing
- Motivation
- Multimedia-Training
- Immobilien
- Überzeugung und NLP
- Steuern
- Sozialpolitik
- Handbȕcher
- Präsentationen
- Führung
- Public Relation
- Berichte, Analysen
- Geheimnis
- Social Media
- Verkauf
- Start-up
- Ihre Karriere
- Management
- Projektmanagement
- Personal (HR)
-
Für Kinder
-
Für Jugendliche
-
Bildung
-
Enzyklopädien, Wörterbücher
-
E-Presse
- Architektura i wnętrza
- Biznes i Ekonomia
- Haus und Garten
- E-Business
- Finanzen
- Persönliche Finanzen
- Unternehmen
- Fotografie
- Informatik
- HR und Gehaltsabrechnung
- Computer, Excel
- Buchhaltung
- Kultur und Literatur
- Wissenschaftlich und akademisch
- Umweltschutz
- meinungsbildend
- Bildung
- Steuern
- Reisen
- Psychologie
- Religion
- Landwirtschaft
- Buch- und Pressemarkt
- Transport und Spedition
- Gesundheit und Schönheit
-
Geschichte
-
Informatik
- Office-Programme
- Datenbank
- Bioinformatik
- IT Branche
- CAD/CAM
- Digital Lifestyle
- DTP
- Elektronik
- Digitale Fotografie
- Computergrafik
- Spiele
- Hacking
- Hardware
- IT w ekonomii
- Wissenschaftliche Pakete
- Schulbücher
- Computergrundlagen
- Programmierung
- Mobile-Programmierung
- Internet-Server
- Computernetzwerke
- Start-up
- Betriebssysteme
- Künstliche Inteligenz
- Technik für Kinder
- Webmaster
-
Andere
-
Fremdsprachen lernen
-
Kultur und Kunst
-
Lektüre
-
Literatur
- Anthologien
- Ballade
- Biografien und Autobiografien
- Für Erwachsene
- Drama
- Tagebücher, Memoiren, Briefe
- Epos
- Essay
- Science Fiction
- Felietonys
- Fiktion
- Humor, Satire
- Andere
- Klassisch
- Krimi
- Sachbücher
- Belletristik
- Mity i legendy
- Nobelpreisträger
- Kurzgeschichten
- Gesellschaftlich
- Okultyzm i magia
- Erzählung
- Erinnerungen
- Reisen
- Gedicht
- Poesie
- Politik
- Populärwissenschaftlich
- Roman
- Historischer Roman
- Prosa
- Abenteuer
- Journalismus
- Reportage
- Romans i literatura obyczajowa
- Sensation
- Thriller, Horror
- Interviews und Erinnerungen
-
Naturwissenschaften
-
Sozialwissenschaften
-
Schulbücher
-
Populärwissenschaft und akademisch
- Archäologie
- Bibliotekoznawstwo
- Filmwissenschaft
- Philologie
- Polnische Philologie
- Philosophie
- Finanse i bankowość
- Erdkunde
- Wirtschaft
- Handel. Weltwirtschaft
- Geschichte und Archäologie
- Kunst- und Architekturgeschichte
- Kulturwissenschaft
- Linguistik
- Literaturwissenschaft
- Logistik
- Mathematik
- Medizin
- Geisteswissenschaften
- Pädagogik
- Lehrmittel
- Populärwissenschaftlich
- Andere
- Psychologie
- Soziologie
- Theatrologie
- Teologie
- Theorien und Wirtschaftswissenschaften
- Transport i spedycja
- Sportunterricht
- Zarządzanie i marketing
-
Handbȕcher
-
Spielanleitungen
-
Professioneller und fachkundige Leitfaden
-
Jura
- Sicherheit und Gesundheit am Arbeitsplatz
- Geschichte
- Verkehrsregeln. Führerschein
- Rechtswissenschaften
- Gesundheitswesen
- Allgemeines. Wissenskompendium
- akademische Bücher
- Andere
- Bau- und Wohnungsrecht
- Zivilrecht
- Finanzrecht
- Wirtschaftsrecht
- Wirtschafts- und Handelsrecht
- Strafrecht
- Strafrecht. Kriminelle Taten. Kriminologie
- Internationales Recht
- Internationales und ausländisches Recht
- Gesundheitsschutzgesetz
- Bildungsrecht
- Steuerrecht
- Arbeits- und Sozialversicherungsrecht
- Öffentliches, Verfassungs- und Verwaltungsrecht
- Familien- und Vormundschaftsrecht
- Agrarrecht
- Sozialrecht, Arbeitsrecht
- EU-Recht
- Industrie
- Agrar- und Umweltschutz
- Wörterbücher und Enzyklopädien
- Öffentliche Auftragsvergabe
- Management
-
Führer und Reisen
- Afrika
- Alben
- Südamerika
- Mittel- und Nordamerika
- Australien, Neuseeland, Ozeanien
- Österreich
- Asien
- Balkan
- Naher Osten
- Bulgarien
- China
- Kroatien
- Tschechische Republik
- Dänemark
- Ägypten
- Estland
- Europa
- Frankreich
- Berge
- Griechenland
- Spanien
- Niederlande
- Island
- Litauen
- Lettland
- Mapy, Plany miast, Atlasy
- Miniführer
- Deutschland
- Norwegen
- Aktive Reisen
- Polen
- Portugal
- Andere
- Russland
- Rumänien
- Slowakei
- Slowenien
- Schweiz
- Schweden
- Welt
- Türkei
- Ukraine
- Ungarn
- Großbritannien
- Italien
-
Psychologie
- Lebensphilosophien
- Kompetencje psychospołeczne
- zwischenmenschliche Kommunikation
- Mindfulness
- Allgemeines
- Überzeugung und NLP
- Akademische Psychologie
- Psychologie von Seele und Geist
- Arbeitspsychologie
- Relacje i związki
- Elternschafts- und Kinderpsychologie
- Problemlösung
- Intellektuelle Entwicklung
- Geheimnis
- Sexualität
- Verführung
- Aussehen ind Image
- Lebensphilosophien
-
Religion
-
Sport, Fitness, Diäten
-
Technik und Mechanik
Hörbücher
-
Wirtschaft
- Bitcoin
- Geschäftsfrau
- Coaching
- Controlling
- E-Business
- Ökonomie
- Finanzen
- Börse und Investitionen
- Persönliche Kompetenzen
- Kommunikation und Verhandlungen
- Kleines Unternehmen
- Marketing
- Motivation
- Immobilien
- Überzeugung und NLP
- Steuern
- Handbȕcher
- Präsentationen
- Führung
- Public Relation
- Geheimnis
- Social Media
- Verkauf
- Start-up
- Ihre Karriere
- Management
- Projektmanagement
- Personal (HR)
-
Für Kinder
-
Für Jugendliche
-
Bildung
-
Enzyklopädien, Wörterbücher
-
Geschichte
-
Informatik
-
Andere
-
Fremdsprachen lernen
-
Kultur und Kunst
-
Lektüre
-
Literatur
- Anthologien
- Ballade
- Biografien und Autobiografien
- Für Erwachsene
- Drama
- Tagebücher, Memoiren, Briefe
- Epos
- Essay
- Science Fiction
- Felietonys
- Fiktion
- Humor, Satire
- Andere
- Klassisch
- Krimi
- Sachbücher
- Belletristik
- Mity i legendy
- Nobelpreisträger
- Kurzgeschichten
- Gesellschaftlich
- Okultyzm i magia
- Erzählung
- Erinnerungen
- Reisen
- Poesie
- Politik
- Populärwissenschaftlich
- Roman
- Historischer Roman
- Prosa
- Abenteuer
- Journalismus
- Reportage
- Romans i literatura obyczajowa
- Sensation
- Thriller, Horror
- Interviews und Erinnerungen
-
Naturwissenschaften
-
Sozialwissenschaften
-
Populärwissenschaft und akademisch
- Archäologie
- Philosophie
- Wirtschaft
- Handel. Weltwirtschaft
- Geschichte und Archäologie
- Kunst- und Architekturgeschichte
- Kulturwissenschaft
- Literaturwissenschaft
- Mathematik
- Medizin
- Geisteswissenschaften
- Pädagogik
- Lehrmittel
- Populärwissenschaftlich
- Andere
- Psychologie
- Soziologie
- Teologie
- Zarządzanie i marketing
-
Handbȕcher
-
Professioneller und fachkundige Leitfaden
-
Jura
-
Führer und Reisen
-
Psychologie
- Lebensphilosophien
- zwischenmenschliche Kommunikation
- Mindfulness
- Allgemeines
- Überzeugung und NLP
- Akademische Psychologie
- Psychologie von Seele und Geist
- Arbeitspsychologie
- Relacje i związki
- Elternschafts- und Kinderpsychologie
- Problemlösung
- Intellektuelle Entwicklung
- Geheimnis
- Sexualität
- Verführung
- Aussehen ind Image
- Lebensphilosophien
-
Religion
-
Sport, Fitness, Diäten
-
Technik und Mechanik
Videokurse
-
Datenbank
-
Big Data
-
Biznes, ekonomia i marketing
-
Cybersicherheit
-
Data Science
-
DevOps
-
Für Kinder
-
Elektronik
-
Grafik / Video / CAX
-
Spiele
-
Microsoft Office
-
Entwicklungstools
-
Programmierung
-
Persönliche Entwicklung
-
Computernetzwerke
-
Betriebssysteme
-
Softwaretest
-
Mobile Geräte
-
UX/UI
-
Web development
-
Management
Podcasts
- E-Books
- Programmierung
- Python
- Efektywny Python. 90 sposobów na lepszy kod. Wydanie II
Details zum E-Book
Python słusznie cieszy się stale rosnącym uznaniem programistów: jest wszechstronny i efektywny, pozwala też na tworzenie wysokiej jakości oprogramowania. Język ten ma poza tym wiele trudniejszych do uchwycenia zalet. Aby uzyskać naprawdę imponujące efekty w zakresie wydajności kodu, jego przenaszalności i bezpieczeństwa, trzeba zagłębić się w dość subtelne niuanse kodowania. Wielu programistów, choć posiada spore doświadczenie w programowaniu w innych językach, nie dostrzega tych zależności. Z kolei osoby dopiero rozpoczynające przygodę z programowaniem mogą poczuć się zaskoczone i zdezorientowane, jeśli nie zdołają uniknąć kilku nieoczywistych błędów podczas pracy.
To drugie, zaktualizowane i uzupełnione wydanie podręcznika programowania w duchu Pythona. Zawarty tu materiał umożliwia wykorzystanie tego języka do tworzenia wyjątkowo solidnego i niezwykle wydajnego kodu źródłowego. Książka jest napisana w zwięzłym stylu i ma przemyślany układ, oparty na scenariuszach, dzięki czemu przystępnie przedstawia 90 najlepszych praktyk, wskazówek i skrótów oraz wyjaśnia ich działanie na rzeczywistych przykładach kodu. Pokazano tu szereg mało znanych, być może nieco dziwnych sztuczek i sposobów udoskonalających pracę kodu źródłowego. Przyswojenie zaprezentowanych tu praktyk pozwoli Ci tworzyć kod łatwy do zrozumienia, obsługi i dalszej rozbudowy. W tym wydaniu treść poszczególnych wskazówek zaktualizowano do Pythona 3, a poszczególne przykłady kodu zostały przejrzane i udoskonalone - najlepsze praktyki również ewoluują!
W tej książce:
- nowe rozwiązania dla wszystkich najważniejszych obszarów programowania w Pythonie
- techniki stosowania konstrukcji składanych i funkcji generatorów
- właściwe korzystanie z klas, obiektów, metaklas i atrybutów dynamicznych
- współbieżność, równoległość, optymalizacja i bezpieczeństwo kodu
- wbudowane moduły Pythona do debugowania i testowania
- narzędzia i najlepsze praktyki podczas wspólnej pracy nad projektami
Python: elegancja, wydajność i ekspresja kodu!
Wprowadzenie 11
Podziękowania 15
O autorze 17
Rozdział 1. Programowanie zgodne z duchem Pythona 19
- Sposób 1. Ustalenie używanej wersji Pythona 19
- Sposób 2. Stosuj styl PEP 8 21
- Sposób 3. Różnice między typami bytes i str 23
- Sposób 4. Wybieraj interpolowane ciągi tekstowe f zamiast ciągów tekstowych formatowania w stylu C i funkcji str.format() 28
- Sposób 5. Decyduj się na funkcje pomocnicze zamiast na skomplikowane wyrażenia 38
- Sposób 6. Zamiast indeksowania wybieraj rozpakowanie wielu operacji przypisania 41
- Sposób 7. Preferuj użycie funkcji enumerate() zamiast range() 44
- Sposób 8. Używaj funkcji zip() do równoczesnego przetwarzania iteratorów 46
- Sposób 9. Unikaj bloków else po pętlach for i while 48
- Sposób 10. Unikaj powtórzeń w wyrażeniach przypisania 50
Rozdział 2. Lista i słownik 57
- Sposób 11. Umiejętnie podziel sekwencje 57
- Sposób 12. Unikaj użycia indeksów początek, koniec i wartości kroku w pojedynczej operacji podziału 60
- Sposób 13. Wybieraj rozpakowanie typu catch-all zamiast tworzenia wycinków 62
- Sposób 14. Używaj parametru key podczas sortowania według skomplikowanych kryteriów 66
- Sposób 15. Zachowaj ostrożność, gdy polegasz na kolejności wstawiania elementów do obiektu typu dict 71
- Sposób 16. Podczas obsługi brakujących kluczy słownika wybieraj funkcję get() zamiast operatora in i wyjątku KeyError 78
- Sposób 17. Podczas obsługi brakujących elementów w wewnętrznym stanie wybieraj typ defaultdict zamiast metody setdefault() 82
- Sposób 18. Wykorzystaj metodę __missing__() do tworzenia wartości domyślnych w zależności od klucza 84
Rozdział 3. Funkcje 89
- Sposób 19. Gdy funkcja zwraca wiele wartości, nie rozpakowuj więcej niż trzech zmiennych 89
- Sposób 20. Preferuj wyjątki zamiast zwrotu wartości None 92
- Sposób 21. Zobacz, jak domknięcia współdziałają z zakresem zmiennej 95
- Sposób 22. Zmniejszenie wizualnego zagmatwania za pomocą zmiennej liczby argumentów pozycyjnych 98
- Sposób 23. Zdefiniowanie zachowania opcjonalnego za pomocą argumentów w postaci słów kluczowych 101
- Sposób 24. Użycie None i docstring w celu dynamicznego określenia argumentów domyślnych 105
- Sposób 25. Wymuszaj czytelność kodu, stosując jedynie argumenty w postaci słów kluczowych 108
- Sposób 26. Dekoratory funkcji definiuj za pomocą functools.wraps 112
Rozdział 4. Konstrukcje składane i generatory 117
- Sposób 27. Używaj list składanych zamiast funkcji map() i filter() 117
- Sposób 28. Unikaj więcej niż dwóch wyrażeń na liście składanej 119
- Sposób 29. Stosuj wyrażenia przypisania, aby unikać powielania zadań w konstrukcjach składanych 121
- Sposób 30. Rozważ użycie generatorów, zamiast zwracać listy 124
- Sposób 31. Podczas iteracji przez argumenty zachowuj postawę defensywną 126
- Sposób 32. Rozważ użycie generatora wyrażeń dla dużych list składanych 131
- Sposób 33. Twórz wiele generatorów za pomocą wyrażenia yield from 132
- Sposób 34. Unikaj wstrzykiwania danych do generatorów za pomocą metody send() 135
- Sposób 35. Unikaj w generatorach przejścia między stanami za pomocą metody throw() 140
- Sposób 36. Rozważ stosowanie modułu itertools w pracy z iteratorami i generatorami 144
Rozdział 5. Klasy i interfejsy 151
- Sposób 37. Twórz klasy, zamiast zagnieżdżać wiele poziomów typów wbudowanych 151
- Sposób 38. Dla prostych interfejsów akceptuj funkcje zamiast klas 157
- Sposób 39. Użycie polimorfizmu @classmethod w celu ogólnego tworzenia obiektów 160
- Sposób 40. Inicjalizacja klasy nadrzędnej za pomocą wywołania super() 165
- Sposób 41. Rozważ łączenie funkcjonalności za pomocą klas domieszek 169
- Sposób 42. Preferuj atrybuty publiczne zamiast prywatnych 173
- Sposób 43. Stosuj dziedziczenie po collections.abc w kontenerach typów niestandardowych 178
Rozdział 6. Metaklasy i atrybuty 183
- Sposób 44. Używaj zwykłych atrybutów zamiast metod typu getter i setter 183
- Sposób 45. Rozważ użycie @property zamiast refaktoryzacji atrybutów 187
- Sposób 46. Stosuj deskryptory, aby wielokrotnie wykorzystywać metody udekorowane przez @property 191
- Sposób 47. Używaj metod __getattr__(), __getattribute__() i __setattr__() dla opóźnionych atrybutów 196
- Sposób 48. Sprawdzaj podklasy za pomocą __init_subclass__ 201
- Sposób 49. Rejestruj istniejące klasy za pomocą __init_subclass__() 208
- Sposób 50. Adnotacje atrybutów klas dodawaj za pomocą metody __set_name__() 212
- Sposób 51. Dla złożonych rozszerzeń klas wybieraj dekoratory klas zamiast metaklas 216
Rozdział 7. Współbieżność i równoległość 223
- Sposób 52. Używaj modułu subprocess do zarządzania procesami potomnymi 224
- Sposób 53. Użycie wątków dla operacji blokujących wejście- yjście, unikanie równoległości 228
- Sposób 54. Używaj klasy Lock, aby unikać stanu wyścigu w wątkach 232
- Sposób 55. Używaj klasy Queue do koordynacji pracy między wątkami 236
- Sposób 56. Naucz się rozpoznawać, kiedy współbieżność jest niezbędna 244
- Sposób 57. Unikaj tworzenia nowych egzemplarzy Thread na żądanie fan-out 248
- Sposób 58. Pamiętaj, że stosowanie Queue do obsługi współbieżności wymaga refaktoringu 252
- Sposób 59. Rozważ użycie klasy ThreadPoolExecutor, gdy wątki są potrzebne do zapewnienia współbieżności 258
- Sposób 60. Zapewnij wysoką współbieżność operacji wejścia-wyjścia dzięki użyciu współprogramów 260
- Sposób 61. Naucz się przekazywać do asyncio wątkowane operacje wejścia-wyjścia 264
- Sposób 62. Połączenie wątków i współprogramów w celu ułatwienia konwersji na wersję stosującą asyncio 274
- Sposób 63. Maksymalizuj responsywność przez unikanie blokującej pętli zdarzeń asyncio 280
- Sposób 64. Rozważ użycie concurrent.futures(), aby otrzymać prawdziwą równoległość 283
Rozdział 8. Niezawodność i wydajność 289
- Sposób 65. Wykorzystanie zalet wszystkich bloków w konstrukcji try-except-else-finally 289
- Sposób 66. Rozważ użycie poleceń contextlib i with w celu uzyskania wielokrotnego użycia konstrukcji try-finally 294
- Sposób 67. Podczas obsługi czasu lokalnego używaj modułu datetime zamiast time 297
- Sposób 68. Niezawodne użycie pickle wraz z copyreg 301
- Sposób 69. Gdy ważna jest precyzja, używaj modułu decimal 307
- Sposób 70. Przed optymalizacją przeprowadzaj profilowanie 310
- Sposób 71. Wybieraj typ deque podczas tworzenia kolejek typu producent - konsument 314
- Sposób 72. Podczas wyszukiwania danych w sortowanych sekwencjach stosuj moduł bisect 321
- Sposób 73. W kolejkach priorytetowych używaj modułu heapq 323
- Sposób 74. Podczas kopiowania zerowego obiektów typu bytes używaj egzemplarzy memoryview i bytearray 331
Rozdział 9. Testowanie i debugowanie 337
- Sposób 75. Używaj ciągów tekstowych repr do debugowania danych wyjściowych 338
- Sposób 76. W podklasach klasy TestCase sprawdzaj powiązane ze sobą zachowanie 341
- Sposób 77. Izoluj testy od siebie za pomocą metod setUp(), tearDown(), setUpModule() i tearDownModule() 348
- Sposób 78. Podczas testowania kodu zawierającego skomplikowane zależności korzystaj z imitacji 350
- Sposób 79. Hermetyzuj zależności, aby ułatwić tworzenie imitacji i testowanie 357
- Sposób 80. Rozważ interaktywne usuwanie błędów za pomocą pdb 361
- Sposób 81. Stosuj moduł tracemalloc, aby poznać sposób użycia pamięci i wykryć jej wycieki 365
Rozdział 10. Współpraca 369
- Sposób 82. Kiedy szukać modułów opracowanych przez społeczność? 369
- Sposób 83. Używaj środowisk wirtualnych dla odizolowanych i powtarzalnych zależności 370
- Sposób 84. Dla każdej funkcji, klasy i modułu utwórz docstring 375
- Sposób 85. Używaj pakietów do organizacji modułów i dostarczania stabilnych API 380
- Sposób 86. Rozważ użycie kodu o zasięgu modułu w celu konfiguracji środowiska wdrożenia 385
- Sposób 87. Zdefiniuj główny wyjątek Exception w celu odizolowania komponentu wywołującego od API 387
- Sposób 88. Zobacz, jak przerwać krąg zależności 391
- Sposób 89. Rozważ użycie modułu warnings podczas refaktoryzacji i migracji kodu 395
- Sposób 90. Rozważ stosowanie analizy statycznej za pomocą modułu typing w celu usuwania błędów 401
- Titel: Efektywny Python. 90 sposobów na lepszy kod. Wydanie II
- Autor: Brett Slatkin
- Originaler Titel: Effective Python: 90 Specific Ways to Write Better Python (2nd Edition) (Effective Software Development Series)
- Übersetzung: Robert Górczyński
- ISBN: 978-83-283-6733-3, 9788328367333
- Veröffentlichungsdatum: 2020-08-14
- Format: E-book
- Artikelkennung: efpyt2
- Verleger: Helion