Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Код высокого качества — это не просто код без ошибок. Он должен быть чистым, удобочитаемым и простым в сопровождении. Путь от рядового питониста к профи не прост, для этого вам нужно разбираться в стиле, архитектуре приложений и процессе разработки. Книга «Секреты Python Pro» научит проектировать ПО и писать качественный код, то есть делать его понятным, сопровождаемым и расширяемым. Дейн Хиллард — профессиональный питонист, — с помощью примеров и упражнений он покажет вам как разбивать код на блоки, повышать качество за счет снижения сложности и т. д. Только освоив основополагающие принципы, вы сможете сделать так, чтобы чтение, сопровождение и переиспользование вашего кода не доставляло проблем ни вам ни вашим коллегам.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 259
Veröffentlichungsjahr: 2024
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Переводчик А. Логунов
Технический редактор А. Руденко
Литературные редакторы М. Кольцов, А. Руденко
Художник В. Мостипан
Корректоры С. Беляева, Н. Викторова
Верстка Л. Егорова
Дейн Хиллард
Секреты Python Pro. — СПб.: Питер, 2021.
ISBN 978-5-4461-1684-3
© ООО Издательство "Питер", 2021
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
С языком Python мы родились в декабре 1989 года. За последующие три десятилетия я многого достиг, и Python тоже. Все больше людей выбирают его для достижения самых амбициозных целей в области data science, машинного обучения и многого другого. С тех пор как я освоил Python, этот «второй среди лучших языков для всего на свете» для меня стал первым и лучшим.
У меня был довольно традиционный путь в программирование через факультет электротехники и computer science Мичиганского университета. В то время все лабораторные на курсе были сосредоточены в основном на C++ и MATLAB — языках, которые я продолжал использовать на первом рабочем месте. На следующей должности, обрабатывая большой объем данных из области биоинформатики, я разработал несколько экземпляров скриптов для командной оболочки на SQL и начал использовать PHP для работы на персональном веб-сайте WordPress.
Хотя я и получал результаты (иногда даже крутые), ни один из используемых мною языков не находил во мне отклика. Я считал, что языки программирования — это просто средство достижения цели и у них мало шансов быть клевыми. Примерно в это время один товарищ пригласил меня присоединиться к хакатон-проекту по разработке библиотеки Ruby.
Внезапно мир взорвался красками, фрукты стали слаще, деревья выше и все такое. Простота использования интерпретируемого языка и удобный для человека синтаксис Ruby действительно заставили меня задуматься о тех инструментах, которые я использовал. Правда, я не слишком долго задержался на Ruby, решив для следующей итерации персонального веб-сайта попробовать Python и веб-фреймворк Django. Это принесло мне ту же радость и плавный прогресс в обучении, который был с Ruby, и с тех пор к Ruby я не возвращался.
Теперь, когда Python широко признан наилучшим языком для многих задач, людям, приходящим в разработку ПО, не нужно переживать этап проб и ошибок, который прошел я, — они открывают новые интересные пути к карьере в области ПО. Но несмотря на эти различия, надеюсь, что мы поделимся общим опытом радости от программирования на Python, и книгой «Секреты Python Pro»я хочу внести свой вклад в эту радость.
Присоединяйтесь к чудесному путешествию по Python, в которое я попал случайно. Хочу увидеть, как вы создаете веб-сайт, конвейер данных или автоматизированную систему полива растений. Что бы вы ни нафантазировали, Python вас прикроет. Присылайте скриншоты и образцы кода ваших проектов по адресу [email protected].
Я писал эту книгу не один и глубоко признателен всем, кто как только мог помогал мне на разных этапах. Я ценю вас.
Почти каждый, кто участвовал в создании книги, может сказать, что работы всегда оказывается больше, чем ожидалось, — я слышал это много раз. Но настоящая борьба разворачивается там, где приходится уравновешивать чрезмерную работу с реальной жизнью.
Стефани! Твоя поддержка и то, что ты терпела мой треп, было безумно важно при создании книги. Благодарю тебя за то, что ты так легко воспринимала мое невнимание и вытаскивала меня из этого проекта в самые трудные времена. Я бы не справился без тебя.
Спасибо моим родителям, Киму и Донне, за то, что всегда направляли мою энергию в творческое русло.
Спасибо моему дорогому другу Винсенту Чжану за бесчисленные ночи в кофейне, когда мы писали код. Там и родилась концепция книги, и твое одобрение помогло мне взяться за дело.
Спасибо Джеймсу Нгуену за настойчивость — ты изменил свою жизнь, чтобы стать разработчиком, и олицетворяешь целевую аудиторию этой книги. Я горжусь твоими достижениями.
Выражаю благодарность всем моим коллегам в ITHAKA и за ее пределами за ваш вклад и поддержку — вы выдержали этот непростой период.
Тони Арритоле, редактору, спасибо за решимость подталкивать меня к более качественному изложению. Процесс написания книги чреват многими неожиданными препятствиями, но вы обеспечили мне стабильность. Спасибо.
Ник Уоттс, научный редактор, ваши отзывы превратили мой безумный бред в правдоподобные размышления о разработке ПО. Я очень ценю вашу искренность и проницательность.
Спасибо Майку Стивенсу и Марджан Бейс из издательства Manning за то, что они поверили в мою идею и доверили ее реализовать. Спасибо всем в Manning за неустанную работу по воплощению авторских замыслов.
Всем рецензентам — Элу Кринкеру, Бонни Бейли, Буркхарду Нестману, Крису Уэйману, Дэвиду Кернсу, Дэвиду Кадамуро, Эриксу Зеленке, Грэму Уилеру, Грегори Матушеку, Жану-Франсуа Морину, Йенсу Кристиану Бредалю Мадсену, Джозефу Перениа, Марку Томасу, Маркусу Маучеру, Майку Стивенсу, Патрику Ригану, Филу Соренсену, Рафаэлю Кассемиро Фрейре, Ричарду Филдсенду, Роберту Уолшу, Стивену Парру, Свену Стампфу и Уиллису Хэмптону — ваши предложения помогли сделать книгу лучше.
Последняя благодарность всем, кто оказал положительное влияние — намеренно, ненамеренно или иным образом — на мой путь в программировании и эту книгу. Просто невозможно составить исчерпывающий список. Спасибо Марку Брехобу, доктору Эндрю Деорио, Джесси Силафф, Треку Гловаки, всем в SAIC (в нашем маленьком офисе в Анн-Арборе), всем в Compendia Bioscience (и друзьям), Брэндону Родсу, Кеннету Лаву, Трею Ханнеру, Джеффу Триплетту, Мариатте Виджая, Али Спиттелу, Крису Койеру, Саре Драснер, Дэвиду Бизли, Дрону Аялону, Тиму Аллену, Санди Мец и Мартину Фаулеру.
В книге «Секреты Python Pro» есть несколько идей, которые разработчики на практически любом языке могут использовать для улучшения своей работы. Она будет отличной книгой после изучения основ языка Python.
Книга предназначена для тех, кто начинает свой путь в программировании или тех, кто использует ПО в качестве дополнительного инструмента в своей работе. Описанные здесь идеи помогут создавать ПО, улучшать его сопровождение и облегчат совместную работу.
В естественных науках воспроизводимость и работа с источниками являются важными аспектами исследовательского процесса. Все больше исследований опирается на софт, где особенно важен понятный код, который можно обновлять и совершенствовать. Но в учебных планах по-прежнему уделено слишком мало внимания связи ПО с другими дисциплинами. Тем, кто имеет небольшой опыт в формальной разработке софта, эта книга расскажет о принципах создания совместно переиспользуемого ПО.
Если вы хорошо разбираетесь в объектно-ориентированном программировании и предметно-ориентированном дизайне, то эта книга, возможно, покажется вам простой. Но начинающие разработчики обязательно найдут в ней много интересного.
Книга состоит из одиннадцати глав и разделена на четыре части. В частях I и II излагается тематический материал и приводятся краткие примеры и упражнения. Часть III основана на материалах из предыдущих глав и тоже содержит упражнения. В части IV содержатся рекомендации по дальнейшему изучению языка Python.
Часть I «Почему это важно?» рассказывает о восхождении языка Python к славе и отвечает на вопрос, в чем ценность разработки ПО.
• Глава 1 посвящена недавней истории языка Python и его достоинствам. Объясняется, почему так важен дизайн программного обеспечения и как он проявляется в вашей повседневной работе.
Часть II «Основы проектирования» охватывает концепции высокого уровня, лежащие в основе дизайна и разработки ПО.
• Глава 2 посвящена теме разделения ответственности — фундаментальной концепции, являющейся основополагающей для других, описанных в книге.
• Глава 3 объясняет абстракцию и инкапсуляцию и показывает, как сокрытие информации и предоставление простых интерфейсов для более сложной логики помогает держать код под контролем.
• Глава 4 предлагает подумать о производительности, разных структурах данных, подходах и инструментах создания быстрых программ.
• Глава 5 учит тестированию программ с использованием различных подходов — от юнит-тестирования до сквозного тестирования.
Часть III «Организация крупных систем» проведет вас по процессу создания реального приложения с использованием принципов, которые вы усвоили.
• В главе 6 вы самостоятельно спроектируете приложение. В главе также содержатся упражнения, которые помогут создать базу программы.
• Глава 7 разбирает понятия расширяемости и гибкости и содержит упражнения на добавление расширяемости в приложение.
• Глава 8 рассказывает о наследовании: когда и где его следует использовать. В главе также содержатся упражнения на проверку наследования в приложении.
• Глава 9 знакомит с инструментами и подходом для предотвращения чрезмерного роста кода по мере развития проекта.
• Глава 10 объясняет понятие слабой сопряженности и приводит несколько заключительных упражнений на уменьшение сопряженности в разрабатываемом приложении.
Часть IV «Что дальше?» дает несколько рекомендаций, как и чему учиться дальше.
• В главе 11 я покажу, как составить план дальнейшего обучения, и затрону несколько тем, которые могут быть интересны, если вы настроены на последующее погружение в вопросы разработки ПО.
Рекомендую читать книгу «Секреты Python Pro» последовательно, хотя вы можете пропустить главы из частей I и II, если эти темы вам знакомы. Часть III лучше читать последовательно и делать упражнения по порядку.
В конце книги есть приложение, где рассказано, как установить Python:
• В приложении рассматривается вопрос о том, какую версию Python установить, и как это сделать.
Полный исходный код примеров и упражнений можно получить в репозитории книги на GitHub (https://github.com/daneah/practices-of-the-python-pro). Либо зайдите на домашнюю страницу книги (www.manning.com/books/prac-tices-of-the-python-pro) и скачайте код, нажав на кнопку Source Code (Исходный код).
Эта книга содержит много примеров исходного кода, как в пронумерованных листингах, так и в основном тексте. В обоих случаях код выделен моноширинным шрифтом.
Во многих случаях код был переформатирован: мы добавили разрывы строк и переработали отступы, чтобы уместиться в доступное пространство книжной страницы. В редких случаях даже этого было недостаточно, и листинги включали маркеры продолжения строк (). Кроме того, комментарии в коде часто удаляются из листингов, если в тексте есть описание. Большая часть листингов имеет дополнительные примечания.
В каждой главе код организован в модули Python, на которые даны ссылки в тексте. Мы надеемся, что вы напишете свою версию кода и будете использовать предоставленный исходный код только для самопроверки. В части III проекты каждой главы имеют в основе код из предыдущей, однако каждая глава содержит полную рабочую копию исходного кода.
Весь код этой книги написан на Python 3, точнее предназначен для работы с Python 3.7+. Большую часть кода можно организовать для работы в более ранних версиях без особых проблем, но все же подумайте об установке свежей версии Python для работы с этой книгой.
Покупка книги «Секреты Python Pro» включает в себя бесплатный доступ к веб-форуму от издательства Manning Publications, где вы можете комментировать книгу, задавать технические вопросы и получать помощь от автора и других пользователей. Для того чтобы получить доступ к форуму, перейдите по ссылке https://livebook.manning.com/#!/book/practices-of-the-python-pro/discussion. Вы также можете узнать больше о форумах издательства Manning и правилах поведения на сайте по адресу https://livebook.manning.com/#!/discussion.
Издательство Manning предоставляет читателям возможность для содержательного диалога. Участие и вклад автора в работу форума остается добровольным (и неоплачиваемым). Попробуйте задать автору сложный вопрос! Форум и архивы предыдущих дискуссий будут доступны на веб-сайте издательства.
Дейн Хиллард — ведущий разработчик веб-приложений в ITHAKA, некоммерческой организации в области высшего образования. Ранее занимался созданием движков для данных телеметрии и конвейеров ETL для приложений в области биоинформатики.
Первые попытки Дейна программировать заключались в создании индивидуального стиля для своей страницы MySpace, написании скриптов для приложения 3D-моделирования Rhinoceros и создании настраиваемых под свои нужды скинов и оружия для игры Liero в MS-DOS. Дейн любит творческое написание кода и активно ищет способы объединить свою любовь к музыке, фотографии, еде и ПО.
Дейн неоднократно выступал на международных конференциях, посвященных Python и Django, и планирует продолжать, пока кто-нибудь его не остановит.
Рисунок на обложке книги «Секреты Python Pro» называется «Homme Finnois», или «Финский человек» (житель Финляндии). Иллюстрация взята из коллекции костюмов разных стран Costumes de Diffrents Pays Жака Грассе де Сен-Совера (1757–1810), опубликованной во Франции в 1797 году. Каждая иллюстрация нарисована и раскрашена от руки. Иллюстрации из каталога Грассе де Сен-Совера напоминают о культурных различиях между городами и весями мира, имевших место почти двести лет назад. Люди, проживавшие в изолированных друг от друга регионах, говорили на разных языках и диалектах. По одежде человека можно было определить, в каком городе, поселке или поселении он проживает.
С тех пор дресс-код сильно изменился, да и различия между разными регионами стали не столь выраженными. В наше время довольно трудно узнать жителей разных континентов, не говоря уже о жителях разных городов или регионов. Возможно, мы отказались от культурных различий в пользу более разнообразной личной жизни — и конечно, в пользу более разнообразной и стремительной технологической жизни.
Сейчас, когда все компьютерные книги похожи друг на друга, издательство Manning стремится к разнообразию и помещает на обложки книг иллюстрации, показывающие особенности жизни в разных странах мира два века назад.
В то время, когда трудно отличить одну компьютерную книгу от другой, издательство Manning демонстрирует изобретательность и инициативу компьютерного бизнеса с помощью книжных обложек, основанных на богатом разнообразии региональной жизни двухвековой давности, оживленной картинами Грассе де Сен-Совера.
Ваши замечания, предложения, вопросы отправляйте по адресу [email protected] (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение! На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.
Когда вы начинаете изучать новые темы, важно учитывать общую картину, чтобы очертить рамки и сфокусировать внимание. Первая часть книги расскажет о значении языка Python в современной разработке ПО, а также поможет понять принципы и методы проектирования ПО, чтобы ваша карьера программиста была успешной.
Если вы новичок в программировании, или хотите изучить новый язык, или пытаетесь развить навыки для более крупных проектов, эта часть книги должна убедить вас в том, что Python — отличный выбор.