Опубликовано

Вышла книга Дуга Фаррелла “Python. Как стать профессионалом”

Python. Как стать профессионалом

Книга ориентирована на читателей, имеющих базовый опыт программирования на языке Python и желающих быстро научиться применять его в реальных проектах или изучить Python в качестве второго языка. Рассмотрен широкий круг тем от соблюдения чистоты кода и грамотного именования функций и переменных, до проектирования API, правил объектно-ориентированного программирования, обеспечения безопасности (аутентификация, авторизация) и взаимодействия с базами данных. Затронут широкий круг вопросов, связанных с программированием модулей на Python, автоматизацией задач, использования веб-фреймворков, в частности Flask.

Для программистов на Python

Разработка приложений с Python и Flask

Программисту-новичку не терпится увидеть, как его код заработает. В свою очередь, разработчик-профессионал обязан писать софт, который был бы максимально надёжен. Хороший код должен работать быстро, легко масштабироваться, не доставлять проблем с поддержкой. Наконец, код должен быть безопасен, качественно спроектирован и документирован, его должно быть легко обновлять и версионировать.

Эта книга поможет вам пройти путь от начинающего Python-программиста до уверенного Python-разработчика.

Книга помогает понять, почему Python – самый популярный язык в мире – необыкновенно хорош для профессиональной разработки. Работая с этим языком, легко приобрести важные профессиональные навыки – научиться именовать переменные, функции и классы, продумывать и писать качественные API, пользоваться объектами. Также в ней объяснено, как справляться с неизбежными отказами, в особенности сетевыми, соблюдать ключевые правила обеспечения безопасности, подключаться к базам данных и научиться профессионально решать конкретные задачи в рамках больших проектов на Python.

Значительная часть книги посвящена Python-фреймворку Flask, упрощающему и ускоряющему серверную веб-разработку на Python, поддерживающему создание статических веб-страниц и способствующему интеграции серверной и клиентской частей веб-приложения.

Книгу “Python. Как стать профессионалом” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Предисловие. 13

Введение. 15

Благодарности. 17

Об этой книге. 19

Для кого предназначена данная книга. 19

Структура книги: ее дорожная карта. 20

О коде. 22

Об авторе. 23

Глава 1. Становление питониста. 25

1.1. Стремление к обучению.. 26

1.2. Достижение целей. 27

1.2.1. Стиль мышления разработчика. 27

1.2.2. Создание приложений. 28

1.3. Использование языка Python. 28

1.3.1. Парадигмы программирования. 28

1.3.2. Создание сопровождаемого кода. 29

1.3.3. Производительность. 30

1.3.4. Сообщество приверженцев языка. 32

1.3.5. Инструментарий разработчика. 33

1.4. Выбор используемой версии Python. 34

1.5. Заключительные размышления. 35

1.6. Резюме. 35

Часть I. Закладка фундамента. 37

Глава 2. Подходящие имена. 39

2.1. Имена. 39

2.1.1. Присвоение имен. 41

2.1.2. Эксперимент по присвоению имен. 44

2.2. Пространства имен. 46

2.3. Пространства имен в языке Python. 47

2.3.1. Уровень встроенных модулей. 48

2.3.2. Уровень модуля. 49

2.3.3. Уровень функций. 53

2.3.4. Область видимости пространства имен. 54

2.3.5. Эксперимент с пространством имен. 56

2.4. Резюме. 60

Глава 3. API: давайте пообщаемся. 61

3.1. Начало разговора. 62

3.1.1. Соглашение, заключаемое между частями кода. 63

3.1.2. Что передается в качестве входных данных. 64

3.1.3. Что ожидается на выходе. 66

3.2. Работа API 69

3.2.1. Именование. 69

3.2.2. Параметры. 70

3.2.3. Возвращаемое значение. 73

3.2.4. Единственная ответственность. 73

3.2.5. Длина функции. 74

3.2.6. Идемпотентность. 75

3.2.7. Побочные эффекты. 75

3.3. Документация. 77

3.4. Заключительные размышления. 78

3.5. Резюме. 78

Глава 4. Объект разговора. 80

4.1. Объектно-ориентированное программирование. 80

4.1.1. Определение класса. 81

4.1.2. Рисование с помощью класса. 83

4.1.3. Наследование. 94

4.1.4. Полиморфизм. 102

4.1.5. Композиция. 103

4.2. Заключительные размышления. 107

4.3. Резюме. 107

Глава 5. Исключительные события. 109

5.1. Исключения. 111

5.2. Обработка исключений. 113

5.2.1. Обработка исключения, если код способен как-то исправить ситуацию.. 114

5.2.2. Предоставление исключениям возможности перемещаться вверх
по коду ваших программ. 114

5.2.3. Информирование пользователя. 115

5.2.4. Не стоит замалчивать исключения. 115

5.3. Выдача исключений. 120

5.4. Создание пользовательских исключений. 121

5.5. Заключительные размышления. 124

5.6. Резюме. 124

Часть II. Работа над конкретным заданием.. 125

Глава 6. Обмен информацией по Интернету. 127

6.1. Делитесь своей работой с другими. 127

6.1.1. Преимущества веб-приложений. 128

6.1.2. Сложности, связанные с использованием веб-приложений. 128

6.2. Серверы. 129

6.2.1. Модель “запрос — ответ”. 130

6.3. Веб-серверы. 131

6.4. Flask. 134

6.4.1. Почему именно Flask?. 134

6.4.2. Ваш первый веб-сервер. 135

6.4.3. Обслуживание содержимого. 138

6.4.4. Дополнительные функции Jinja2. 141

6.5. Запуск веб-сервера. 153

6.5.1. Gunicorn. 154

6.5.2. Коммерческий хостинг. 154

6.6. Заключительные размышления. 155

6.7. Резюме. 155

Глава 7. Работа со стилем.. 157

7.1. Стилизация приложения. 157

7.1.1. Создание привлекательных стилей. 158

7.1.2. Согласованность стилей. 158

7.1.3. Нормализация стилей. 159

7.1.4. Адаптивный дизайн. 159

7.2. Встраивание Bootstrap. 160

7.2.1. Предыдущий пример, теперь с Bootstrap. 160

7.3. Помощь в развитии приложения MyBlog. 169

7.3.1. Экземпляр приложения Flask. 169

7.4. Пространства имен. 174

7.4.1. Flask Blueprints 174

7.4.2. Добавление Blueprints в MyBlog. 175

7.4.3. Создание страницы “О сайте”. 179

7.4.4. Реструктуризированный app-экземпляр. 181

7.5. Навигация. 181

7.5.1. Создание навигационной информации. 182

7.5.2. Отображение навигационной информации. 183

7.5.3. Текущий вид MyBlog. 184

7.6. Конфигурация приложения. 186

7.6.1. Файлы конфигурации. 186

7.6.2. Закрытая информация. 186

7.7. Панель инструментов отладки Flask. 187

7.7.1. FlaskDynaConf 187

7.8. Регистрационная информация. 192

7.8.1. Конфигурация. 192

7.9. Добавление фавикона. 196

7.10. Заключительные размышления. 198

7.11. Резюме. 198

Глава 8. А я тебя знаю? Аутентификация. 200

8.1. Протокол HTTP, не имеющий состояния. 200

8.1.1. Сессии. 201

8.2. Запоминание пользователя. 202

8.2.1. Аутентификация. 203

8.2.2. Вход в систему. 213

8.3. Экстренные сообщения. 219

8.3.1. Усовершенствование формы входа. 220

8.4. Расширение круга друзей. 223

8.4.1. Blueprint-схема аутентификации. 224

8.4.2. Новая форма для пользователя. 225

8.4.3. Ах да: выход из системы. 228

8.5. Что дальше. 229

8.6. Резюме. 229

Глава 9. Какие действия вам разрешены? Авторизация. 230

9.1. Переход ко входу и выходу. 230

9.2. Подтверждение новых друзей. 232

9.2.1. Отправка электронной почты. 233

9.3. Сброс паролей. 239

9.4. Профили пользователей. 243

9.5. Безопасность. 246

9.5.1. Защита маршрутов. 246

9.6. Роли пользователей, задаваемые авторизацией. 247

9.6.1. Создание ролей. 247

9.6.2. Авторизация маршрутов. 250

9.7. Защита форм. 253

9.8. Заключительные размышления. 253

9.9. Резюме. 254

Глава 10. Выгоды от постоянства: базы данных. 255

10.1. Вторая половина дела. 255

10.1.1. Долговременное хранение информации. 256

10.2. Доступ к данным. 256

10.3. Системы управления базами данных. 262

10.3.1. Таблицы. 262

10.3.2. Отношения. 263

10.3.3. База данных транзакций. 266

10.3.4. Язык структурированных запросов SQL. 268

10.4. Использование SQLite в качестве базы данных. 271

10.5. SQLAlchemy. 271

10.5.1. Преимущества. 272

10.6. Моделирование базы данных. 272

10.6.1. Определение классов. 273

10.7. Создание и использование базы данных. 277

10.7.1. Добавление данных. 277

10.7.2. Использование данных. 280

10.8. Заключительные размышления. 283

10.9. Резюме. 283

Глава 11. Мне есть что сказать. 285

11.1. Публикации в MyBlog. 285

11.1.1. Моделирование баз данных. 286

11.2. Изменение порядка изложения материала. 289

11.3. Blueprint-схема контента. 289

11.4. Отображение и создание публикаций. 290

11.4.1. Обработчик отображения. 290

11.4.2. Шаблон отображения. 291

11.5. Создание публикаций. 292

11.5.1. Обработчик создания. 292

11.5.2. Форма создания. 293

11.5.3. Шаблон создания. 294

11.6. Отображение и редактирование публикации. 295

11.6.1. Обработчик отображения. 295

11.6.2. Шаблон отображения. 296

11.6.3. Обработчик обновления. 298

11.6.4. Форма обновления. 299

11.6.5. Шаблон обновления. 300

11.7. Иерархия контента для комментариев. 301

11.7.1. Изменение класса сообщения. 304

11.7.2. Обработчик отображения. 305

11.7.3. Шаблон отображения. 308

11.8. Создание комментариев. 310

11.8.1. Шаблон создания. 310

11.8.2. Форма создания. 311

11.8.3. Обработчик создания. 311

11.9. Уведомление пользователей. 312

11.10. Обработка ошибок сайта. 314

11.11. Заключительные размышления. 317

11.12. Резюме. 317

Глава 12. И что, на этом всё?. 319

12.1. Тестирование. 319

12.1.1. Модульное тестирование. 320

12.1.2. Функциональное тестирование. 321

12.1.3. Сквозное тестирование. 321

12.1.4. Интеграционное тестирование. 321

12.1.5. Нагрузочное тестирование. 321

12.1.6. Тестирование производительности. 321

12.1.7. Регрессионное тестирование. 322

12.1.8. Тестирование доступности. 322

12.1.9. Приемочное тестирование. 322

12.2. Отладка. 323

12.2.1. Воспроизведение ошибок. 323

12.2.2. Точки останова. 323

12.2.3. Ведение журнала. 324

12.2.4. Неприемлемые результаты. 324

12.2.5. Процесс исключения. 325

12.2.6. Проговаривание проблемы. 325

12.3. Инструменты. 325

12.3.1. Управление исходным кодом. 325

12.3.2. Оптимизация. 326

12.3.3. Контейнеры. 327

12.3.4. Базы данных. 327

12.3.5. Языки. 328

12.4. Среды операционных систем. 329

12.5. Облачные вычисления. 329

12.6. Сеть. 330

12.7. Сотрудничество. 330

12.8. Заключительные размышления. 331

12.9. Резюме. 331

Приложение. Ваша среда разработки. 333

П1. Установка Python. 333

П1.1. Windows 334

П1.2. Mac. 334

П1.3. Linux. 335

П2. Виртуальная среда Python. 336

П2.1. Windows 337

П2.2. Mac и Linux. 338

П3. Настройка Visual Studio Code. 339

П3.1. Установка Visual Studio Code. 339

П3.2. Установка Python-расширения. 340

П3.3. Другие полезные расширения. 340

П3.4. Запуск из командной строки. 341

П3.5. Запуск проекта. 341

П4. Ряд полезных советов. 343

Предметный указатель. 345

Doug Farrell

Дуг Фаррелл (Doug Farrell) занимается разработкой программных средств с 1983 года, хотя имеет степени бакалавра по двум явно смежным областям — по физике и по прикладному искусству. Дуг — программист-самоучка, на протяжении многих лет использовавший немало языков во многих отраслях: Pascal, Fortran, C/C++, PHP, Python и JavaScript. С Python он работает с 2000 года, а с 2006 года Python стал его основным языком. Дуг написал множество статей для RealPython.com. Он также преподавал в центре STEM, где использовалась существенная часть материалов разработанного им обучающего курса.

Summary
Aggregate Rating
3 based on 1 votes
Добавить комментарий