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
- Profesjonalne programowanie w Pythonie. Poziom ekspert. Wydanie II
E-book details
Profesjonalne programowanie w Pythonie. Poziom ekspert. Wydanie II
Twórcy Pythona niemal od początku starali się opracować wieloparadygmatowy język zorientowany na czytelność kodu i produktywność programisty. Dziś język ten jest uważany za wszechstronny i potężny, a do tego cechuje się prostotą i elastycznością. Nadaje się zarówno do pisania niedużych skryptów, jak i wielkich systemów, a także do wysoce specjalistycznych zadań, jak choćby analiza danych w celach naukowych. Mimo to pisanie kodu, który jest wydajny, prosty w utrzymaniu oraz łatwy w użyciu, wciąż sprawia problemy nawet zaawansowanym programistom Pythona.
Niniejsza książka jest zbiorem praktyk stosowanych przez najlepszych programistów pracujących z Pythonem. Jest przeznaczona dla osób zawodowo zajmujących się rozwojem oprogramowania oraz dla ambitnych pasjonatów w tej dziedzinie. Poza opisem zaawansowanych technik programowania w Pythonie znalazły się tu również informacje o narzędziach i technikach stosowanych obecnie przez profesjonalnych programistów. Opisano metody zarządzania kodem, tworzenia, dokumentowania i testowania kodu oraz zasady optymalizacji oprogramowania. Przedstawiono również wzorce projektowe, które szczególnie docenią programiści Pythona.
Najważniejsze zagadnienia przedstawione w książce:
- metodologie pracy w Pythonie i najlepsze praktyki składniowe
- rozszerzenia Pythona napisane w innych językach programowania
- techniki profilowania aplikacji
- przetwarzanie współbieżne i równoległe
- najprzydatniejsze wzorce projektowe
Python — niezawodne narzędzie dla profesjonalisty!
O autorach (11)
O recenzencie (12)
Przedmowa (13)
Rozdział 1. Obecny status Pythona (19)
- Gdzie jesteśmy i dokąd zmierzamy? (20)
- Dlaczego i jak zmienia się Python (20)
- Bądź na bieżąco ze zmianami języka - dokumenty PEP (21)
- Popularność Pythona 3 w chwili pisania tej książki (22)
- Główne różnice pomiędzy Pythonem 3 a Pythonem 2 (23)
- Korzyści płynące ze znajomości starej wersji Pythona (23)
- Główne różnice składni i częste pułapki (24)
- Popularne narzędzia i techniki używane w celu utrzymania kompatybilności (26)
- Nie tylko CPython (30)
- Dlaczego powinieneś się przejmować? (30)
- Stackless Python (31)
- Jython (31)
- IronPython (32)
- PyPy (33)
- Nowoczesne podejścia do programowania w Pythonie (34)
- Izolacja środowisk Pythona na poziomie aplikacji (34)
- Zalety stosowania izolacji (36)
- Popularne rozwiązania (37)
- Które rozwiązanie wybrać? (41)
- Izolacja środowisk Pythona na poziomie systemu operacyjnego (42)
- Wirtualne środowiska robocze z wykorzystaniem narzędzia Vagrant (43)
- Konteneryzacja czy wirtualizacja? (45)
- Popularne narzędzia pracy ukierunkowane na produktywność (45)
- Alternatywne powłoki Pythona - IPython, bpython, ptpython (46)
- Interaktywne debuggery (48)
- Przydatne materiały (49)
- Podsumowanie (50)
Rozdział 2. Najlepsze praktyki składniowe - poniżej poziomu klas (51)
- Typy wbudowane Pythona (52)
- Ciągi znaków i bajtów (52)
- Kolekcje (56)
- Zaawansowane elementy składni (67)
- Iteratory (67)
- Instrukcja yield (69)
- Dekoratory (72)
- Zarządcy kontekstu - instrukcja with (83)
- Inne elementy składni, o których możesz jeszcze nie wiedzieć (87)
- Konstrukcja for ... else ... (87)
- Adnotacje funkcji (88)
- Podsumowanie (89)
Rozdział 3. Najlepsze praktyki składniowe - powyżej poziomu klas (91)
- Dziedziczenie po typach wbudowanych (92)
- Uzyskiwanie dostępu do metod klas nadrzędnych (94)
- Klasy w starym stylu oraz funkcja super() w Pythonie 2 (96)
- Porządek rozpatrywania metod w Pythonie (97)
- Pułapki związane z funkcją super() (101)
- Najlepsze praktyki (104)
- Zaawansowane wzorce dostępu do atrybutów (104)
- Deskryptory (105)
- Właściwości (111)
- Sloty (114)
- Metaprogramowanie (114)
- Dekoratory jako metoda metaprogramowania (115)
- Dekoratory klas (116)
- Wykorzystanie metody __new__() w celu nadpisania procesu tworzenia instancji klas (118)
- Metaklasy (120)
- Rady dotyczące automatycznego generowania kodu (127)
- Podsumowanie (134)
Rozdział 4. Właściwy dobór nazw (135)
- PEP 8 i najlepsze praktyki nazewnicze (135)
- Kiedy i dlaczego przestrzegać zasad PEP 8? (136)
- Poza PEP 8 - wytyczne stylu w zespołach (136)
- Notacje nazewnicze (137)
- Zmienne (138)
- Zmienne publiczne i prywatne (140)
- Funkcje i metody (142)
- Właściwości (145)
- Klasy (145)
- Moduły i pakiety (146)
- Dobre praktyki nazewnicze (146)
- Użycie prefiksów is oraz has przy elementach logicznych (146)
- Użycie liczby mnogiej przy zmiennych przechowujących kolekcje (146)
- Precyzyjne opisywanie słowników (147)
- Unikanie zbyt ogólnych określeń (147)
- Unikanie istniejących nazw (148)
- Najlepsze praktyki dla argumentów funkcji i metod (149)
- Projektowanie argumentów metodą przyrostową (150)
- Ufaj argumentom i testom (150)
- Ostrożne wykorzystanie magicznych argumentów *args oraz **kwargs (152)
- Nazwy klas (154)
- Nazwy modułów i pakietów (154)
- Przydatne narzędzia (155)
- Pylint (155)
- pep8 i flake8 (157)
- Podsumowanie (158)
Rozdział 5. Tworzenie i dystrybucja pakietów (159)
- Tworzenie pakietów (160)
- Zamieszanie wokół narzędzi do tworzenia i dystrybuowania pakietów (160)
- Konfiguracja projektu (162)
- Własne polecenia skryptu setup.py (172)
- Praca z pakietami podczas ich rozwoju (172)
- Pakiety przestrzeni nazw (174)
- Zastosowanie pakietów przestrzeni nazw (174)
- PEP 420 - domyślne pakiety przestrzeni nazw (176)
- Pakiety przestrzeni nazw w starszych wersjach Pythona (177)
- Praca z repozytorium pakietów (178)
- Python Package Index - repozytorium pakietów Pythona (179)
- Dystrybucje źródłowe a dystrybucje budowane (181)
- Samodzielne pliki wykonywalne (184)
- Kiedy samodzielne pliki wykonywalne są użyteczne? (186)
- Popularne narzędzia (186)
- Bezpieczeństwo kodu Pythona w samodzielnych plikach wykonywalnych (193)
- Podsumowanie (195)
Rozdział 6. Zdalne wdrożenia kodu (197)
- Manifest Twelve-Factor App (198)
- Automatyzacja wdrożeń z wykorzystaniem narzędzia Fabric (200)
- Własne repozytorium pakietów lub kopie lustrzane PyPI (205)
- Utrzymywanie kopii lustrzanych PyPI (206)
- Wdrożenia z wykorzystaniem dystrybucji pakietów (207)
- Popularne konwencje i dobre praktyki (215)
- Hierarchia systemu plików (215)
- Izolacja (216)
- Wykorzystanie narzędzi nadzoru nad procesami (216)
- Kod aplikacji powinien być uruchomiony w przestrzeni użytkownika (218)
- Korzystanie ze wstecznych serwerów proxy protokołu HTTP (219)
- Przeładowywanie procesów bez zastojów (219)
- Instrumentacja i monitorowanie kodu (221)
- Logowanie błędów (Sentry oraz raven) (221)
- Monitorowanie metryk systemowych i aplikacji (224)
- Obsługa logów (226)
- Podsumowanie (230)
Rozdział 7. Rozszerzenia Pythona w innych językach programowania (231)
- Inne języki, czyli C lub C++ (232)
- Jak działają rozszerzenia w C i C++ (232)
- Dlaczego warto tworzyć rozszerzenia (234)
- Zwiększanie wydajności w krytycznych sekcjach kodu (235)
- Integracja kodu napisanego w innych językach programowania (236)
- Integracja zewnętrznych bibliotek dynamicznych (236)
- Tworzenie własnych wbudowanych typów danych (236)
- Pisanie rozszerzeń (237)
- Zwyczajne rozszerzenia w C (238)
- Cython (253)
- Wyzwania związane z rozszerzeniami (257)
- Dodatkowa złożoność (258)
- Debugowanie (258)
- Korzystanie z dynamicznych bibliotek bez pisania rozszerzeń (259)
- ctypes (259)
- CFFI (265)
- Podsumowanie (266)
Rozdział 8. Zarządzanie kodem (267)
- Systemy kontroli wersji (268)
- Scentralizowane systemy kontroli wersji (268)
- Rozproszone systemy kontroli wersji (271)
- Systemy scentralizowane czy rozproszone? (274)
- Korzystaj z systemu Git, jeśli tylko możesz (274)
- Git flow oraz GitHub flow (275)
- Ciągłe procesy programistyczne (279)
- Ciągła integracja oprogramowania (280)
- Ciągłe dostarczanie oprogramowania (284)
- Ciągłe wdrażanie oprogramowania (285)
- Popularne narzędzia do ciągłej integracji (285)
- Wybór odpowiednich narzędzi i częste pułapki (294)
- Podsumowanie (297)
Rozdział 9. Dokumentowanie projektu (299)
- Siedem zasad technicznego pisania (300)
- Pisz w dwóch krokach (300)
- Skieruj przekaz do konkretnej grupy czytelników (301)
- Korzystaj z prostego stylu (302)
- Ogranicz zakres informacji (303)
- Korzystaj z realistycznych przykładów (303)
- Dokumentuj lekko, ale jednocześnie wystarczająco (304)
- Korzystaj z szablonów (305)
- Poradnik reStructuredText (305)
- Struktura sekcji (307)
- Listy numerowane i wypunktowania (309)
- Formatowanie znakowe (310)
- Bloki dosłowne (310)
- Odnośniki (311)
- Budowanie dokumentacji (312)
- Budowanie portfolio dokumentacji (312)
- Tworzenie własnego portfolio (319)
- Projektowanie krajobrazu dokumentacji (319)
- Budowanie dokumentacji a systemy ciągłej integracji (324)
- Podsumowanie (325)
Rozdział 10. Programowanie sterowane testami (327)
- Nie testuję (327)
- Zasady programowania sterowanego testami (328)
- Możliwe rodzaje testów (332)
- Narzędzia testowe standardowej biblioteki Pythona (335)
- Testuję (340)
- Pułapki modułu unittest (340)
- Alternatywy dla modułu unittest (341)
- Mierzenie pokrycia kodu testami (349)
- Fałszywe obiekty zastępcze i atrapy (351)
- Testowanie kompatybilności środowisk i zależności (358)
- Programowanie sterowane dokumentami (361)
- Podsumowanie (363)
Rozdział 11. Optymalizacja - ogólne zasady i techniki profilowania (365)
- Trzy zasady optymalizacji (365)
- Przede wszystkim spraw, aby kod działał poprawnie (366)
- Pracuj z perspektywy użytkownika (367)
- Utrzymuj kod czytelnym (367)
- Strategia optymalizacyjna (368)
- Poszukaj innego winowajcy (368)
- Skaluj sprzęt (369)
- Napisz test wydajnościowy (370)
- Identyfikowanie wąskich gardeł wydajności (370)
- Profilowanie czasu użycia procesora (370)
- Profilowanie zużycia pamięci (379)
- Profilowanie połączeń sieciowych (389)
- Podsumowanie (390)
Rozdział 12. Optymalizacja - wybrane skuteczne techniki (391)
- Redukcja złożoności (392)
- Złożoność cyklomatyczna (394)
- Notacja dużego O (394)
- Upraszczanie (397)
- Przeszukiwanie list (397)
- Korzystanie ze zbiorów w miejscu list (398)
- Ukróć zewnętrzne wywołania, zredukuj nakład pracy (398)
- Korzystanie z modułu collections (399)
- Stosowanie kompromisów architektonicznych (403)
- Stosowanie heurystyk i algorytmów aproksymacyjnych (403)
- Stosowanie kolejek zadań i opóźnionego przetwarzania (404)
- Stosowanie probabilistycznych struktur danych (408)
- Buforowanie (409)
- Buforowanie deterministyczne (410)
- Buforowanie niedeterministyczne (412)
- Usługi buforujące (413)
- Podsumowanie (416)
Rozdział 13. Przetwarzanie współbieżne i równoległe (419)
- Dlaczego współbieżność? (420)
- Wielowątkowość (421)
- Czym jest wielowątkowość? (422)
- Jak Python radzi sobie z wątkami (423)
- Kiedy należy korzystać z wielowątkowości? (424)
- Przetwarzanie wieloprocesowe (439)
- Wbudowany moduł multiprocessing (442)
- Programowanie asynchroniczne (447)
- Kooperacyjna wielozadaniowość i asynchroniczne operacje wejścia/wyjścia (448)
- Słowa kluczowe async i await (449)
- asyncio w starszych wersjach Pythona (453)
- Praktyczny przykład programu asynchronicznego (454)
- Integracja nieasynchronicznego kodu z async za pomocą modułu futures (456)
- Podsumowanie (459)
Rozdział 14. Przydatne wzorce projektowe (461)
- Wzorce kreacyjne (462)
- Singleton (462)
- Wzorce strukturalne (465)
- Adapter (466)
- Pełnomocnik (481)
- Fasada (482)
- Wzorce czynnościowe (483)
- Obserwator (483)
- Odwiedzający (485)
- Szablon (488)
- Podsumowanie (491)
Skorowidz (492)
- Title: Profesjonalne programowanie w Pythonie. Poziom ekspert. Wydanie II
- Author: Michal Jaworski, Tarek Ziade
- Original title: Expert Python Programming, Second Edition
- Translation: Michał Jaworski
- ISBN: 978-83-283-3034-4, 9788328330344
- Date of issue: 2017-08-09
- Format: Ebook
- Item ID: prprpe
- Publisher: Helion