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

Изучаем программирование на Kotlin для Android

Программирование на Kotlin для Android

Книга посвящена разработке мобильных приложений для Android на языке Kotlin. Рассмотрены основные структуры и элементы языка, подробно описан фреймворк коллекций Kotlin. Показана архитектура операционной системы Android, приложений и их контейнеров,  изучаются основы параллельного программирования. Рассказано о потокобезопасности, работе с параллелизмом с использованием обратных вызовов. Отдельная глава посвящена специальным конструкциям Kotlin — сопрограммам, с акцентом на структурированный параллелизм. Рассматриваются каналы, использование потоков для асинхронной обработки данных. Изучаются вопросы повышения производительности приложений с использованием инструментов профилирования Android и снижения потребления ресурсов за счет оптимизации производительности.

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

Разработка мобильных приложений для Android может показаться сложной задачей, особенно если для этого требуется изучить новый язык программирования. Речь идет о Kotlin, ставшем официальным языком разработки для этой операционной системы. Книга поможет быстро освоить этот язык, обладающий целым рядом технологических преимуществ, а также перейти с Java на Kotlin.

Авторы приводят реализацию наиболее распространенных задач в нативной разработке для Android и показывают, как Kotlin помогает решить проблему параллелизма. Делая акцент на структурированном параллелизме, новой парадигме асинхронного программирования, книга помогает освоить одну из самых мощных конструкций Kotlin — сопрограммы.

  • Познакомьтесь с основами Kotlin и его фреймворком коллекций
  • Изучите операционную систему Android, контейнер приложения и его компоненты
  • Познакомьтесь с потокобезопасностью и узнайте, как работать с параллелизмом
  • Пишите последовательный асинхронный код с низкими затратами
  • Изучите структурированный параллелизм с помощью сопрограмм и узнайте, как сопрограммы взаимодействуют между собой с помощью каналов
  • Узнайте, как использовать потоки для асинхронной обработки данных
  • Изучите вопросы производительности с помощью инструментов профилирования
  • Оптимизируйте производительность, чтобы сократить потребление ресурсов

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

Об авторах. 11

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

Кому адресована эта книга. 14

Почему мы написали эту книгу. 15

Как организована эта книга. 15

Условные обозначения и соглашения. 16

Примеры кода. 17

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

ГЛАВА 1. Основы языка Kotlin. 19

Система типов Kotlin. 20

Примитивные типы. 20

Null-безопасность. 21

Тип Unit 23

Функциональные типы. 24

Обобщенные типы. 25

Переменные и функции. 25

Переменные. 26

Лямбда-выражения. 26

Функции-расширения. 27

Классы. 29

Инициализация класса. 29

Свойства. 31

Модификатор lateinit 32

Свойства с отложенной инициализацией. 34

Делегаты. 35

Объекты-компаньоны. 36

Классы данных. 37

Классы перечислений. 38

Запечатанные классы. 40

Модификаторы видимости. 41

Резюме. 42

ГЛАВА 2. Фреймворк коллекций Kotlin. 45

Основные понятия. 45

Совместимость с Java. 46

Изменяемость. 46

Перегруженные операторы. 48

Создание контейнеров. 49

Функциональное программирование. 50

Сравнение функционального и процедурного программирования:
простой пример. 50

Функциональное программирование в Android. 51

Функции-преобразователи. 52

Булевы функции. 52

Фильтры. 53

Функция map. 53

Функция flatMap. 55

Группировка. 56

Сравнение итераторов и последовательностей. 57

Пример. 59

Проблема. 59

Реализация. 60

Резюме. 66

ГЛАВА 3. Основы Android. 67

Стек Android. 67

Аппаратное обеспечение. 67

Ядро. 68

Системные службы. 68

Среда выполнения Android. 69

Приложения. 69

Прикладное окружение Android. 69

Намерения и фильтры намерений. 70

Контекст. 73

Компоненты приложения Android: строительные блоки. 75

Компонент Activity и его друзья. 76

Службы. 80

Провайдеры контента. 85

BroadcastReceiver 86

Архитектуры приложений Android. 88

MVC: основы. 88

Виджеты. 89

Локальная модель. 89

Паттерны Android. 90

Model-View-Intent 90

Model-View-Presenter 90

Model-View-ViewModel 91

Резюме. 92

ГЛАВА 4. Параллельное программирование в Android. 94

Потокобезопасность. 95

Атомарность. 95

Видимость. 96

Модель многопоточного выполнения Android. 97

Пропуск кадров. 98

Утечка памяти. 101

Инструменты для управления потоками. 103

Looper/Handler 104

Исполнители Executors и объекты ExecutorService. 106

Инструменты для управления заданиями. 107

JobScheduler 109

WorkManager 111

Резюме. 112

ГЛАВА 5. Потокобезопасность. 113

Пример проблемы, связанной с потокобезопасностью.. 113

Инварианты. 115

Мьютексы. 116

Потокобезопасные коллекции. 116

Привязка к потоку. 119

Конфликт потоков. 120

Сравнение блокирующего и неблокирующего вызовов. 121

Очереди работ. 122

Противодавление. 123

Резюме. 125

ГЛАВА 6. Организация параллелизма с использованием обратных вызовов. 127

Пример: функция обработки покупок. 128

Создание приложения. 130

Компонент ViewModel 130

Представление. 131

Реализация логики. 135

Обсуждение. 136

Ограничения модели многопоточного выполнения. 138

Резюме. 139

ГЛАВА 7. Сопрограммы.. 141

Что такое сопрограмма?. 141

Наша первая сопрограмма. 142

Функция async. 144

Краткий обзор структурированного параллелизма. 146

Связь “родитель — потомок” в структурированном параллелизме. 148

CoroutineScope и CoroutineContext 150

Функции, поддерживающие возможность приостановки. 155

Функции, поддерживающие возможность приостановки, “под капотом”. 156

Использование сопрограмм и функций, поддерживающих возможность
приостановки: практический пример. 160

Не ошибитесь с модификатором suspend. 163

Резюме. 164

ГЛАВА 8. Структурированный параллелизм и сопрограммы.. 166

Функции, поддерживающие возможность приостановки. 166

Настройка места действия. 167

Традиционный подход с использованием java.util.concurrent.ExecutorService. 168

Вспомним, что такое HandlerThread. 172

Использование приостанавливаемых функций и сопрограмм. 175

Сравнение приостанавливаемых и традиционной многопоточности: итоги. 179

Отмена. 179

Жизненный цикл сопрограмм. 180

Отмена сопрограммы. 182

Отмена задачи, делегированной сторонней библиотеке. 184

Сопрограммы, которые действуют согласованно, чтобы их можно было отменить. 188

Функцию delay() можно отменить. 190

Обработка отмены. 191

Причины отмены. 192

Супервизия. 195

Функция supervisorScope. 197

Параллельная декомпозиция. 197

Автоматическая отмена. 199

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

Необработанные и открытые исключения. 199

Открытые исключения. 201

Необработанные исключения. 204

Резюме. 207

Размышления напоследок. 208

ГЛАВА 9. Каналы.. 209

Обзор каналов. 209

Рандеву-канал. 211

Неограниченный канал. 215

Объединенный канал. 216

Буферизованный канал. 217

Функция produce. 218

Взаимодействующие последовательные процессы. 219

Модель и архитектура. 219

Первая реализация. 220

Выражение select 225

Собираем все воедино. 227

Мультиплексор и демультиплексор. 228

Проверка производительности. 229

Противодавление. 231

Сходства с моделью акторов. 232

Последовательное выполнение внутри процесса. 232

Размышления напоследок. 233

Взаимоблокировки в CSP. 233

Каналы и взаимоблокировки. 236

Ограничения каналов. 236

“Горячие” каналы. 238

Резюме. 239

ГЛАВА 10. Потоки. 241

Введение в потоки. 241

Более реалистичный пример. 242

Операторы. 244

Терминальные операторы. 245

Примеры использования холодного потока. 246

Вариант 1: интерфейс с API на базе функции обратного вызова. 246

Вариант 2: параллельное преобразование потока значений. 251

Вариант 3: создание собственного оператора. 253

Обработка ошибок. 257

Блок try/catch. 257

Разделение ответственности важно. 260

Нарушение прозрачности исключения. 260

Оператор catch. 261

Материализация исключений. 264

Горячие потоки и SharedFlow. 267

Создаем SharedFlow. 268

Регистрируем подписчика. 268

Отправляем значения в SharedFlow. 269

Использование SharedFlow для потоковой передачи данных. 269

Использование SharedFlow в качестве шины событий. 275

StateFlow: специализированная версия SharedFlow. 276

Пример использования StateFlow. 277

Резюме. 279

ГЛАВА 11. Вопросы производительности и инструменты
профилирования Android. 280

Android Profiler 282

Network Profiler 285

CPU Profiler 291

Energy Profiler 301

Memory Profiler 303

Обнаружение утечек памяти с помощью LeakCanary. 308

Резюме. 312

ГЛАВА 12. Снижение потребления ресурсов за счет оптимизации производительности  314

Достижение плоской иерархии представлений с помощью ConstraintLayout 315

Сокращение количества операций рисования с помощью экземпляров
класса Drawable. 319

Минимизация данных в сетевых вызовах. 324

Организация пула и кэширование объектов Bitmap. 324

Избавляемся от ненужной работы. 326

Использование статических функций. 329

Минификация и обфускация с R8 и ProGuard. 329

Резюме. 331

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

Нет фото

Майк Данн (Mike Dunn) работал ведущим инженером по мобильным технологиям в издательстве O’Reilly Media.Один из авторов книги «Нативная разработка мобильных приложений. Перекрестный справочник для iOS и Android».

 

 

Лоранс Пьер-Оливье

Пьер-Оливье Лоранс (Pierre-Olivier Laurence) — ведущий инженер-программист компании Safran Aircraft Engines, со штаб-квартирой в окрестностях Парижа.

 

 

G.Blake_Meike

Дж. Блейк Мик (G. Blake Meike) — старший инженер-программист компании Couchbase и автор нескольких книг, среди которых «Программирование под Android».

 

 

Amanda Hinchman-Dominguez

Аманда Хинчман-Домингес (Amanda Hinchman-Dominguez) — эксперт по языку Kotlin в программе Google Developer Expert. Работает разработчиком для Android в компании Groupon и является активным участником глобального сообщества Kotlin.

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

Вышло 3 издание книги “Основы Lean UX”

Основы Lean UX

Книга посвящена методологии Lean UX, позволяющей проектировать на высоком уровне  первоклассные программные продукты в составе Agile-команд. Главный упор сделан на понятии «пользовательского восприятия» (user experience). Даны основы методологии Lean UX и принципы ее успешного внедрения в рабочую Agile-среду. Раскрыт процесс применения Lean UX с использованием  Lean UX Canvas и на наглядных примерах из практики дано описание каждого из его восьми этапов. Подробно рассмотрено сотрудничество проектировщиков с коллегами, не занимающимися проектированием, с применением  ряда  весьма популярных способов работы, таких как дизайн-спринты, системы проектирования и совместные исследования. Даны рекомендации по эффективной интеграции Lean UX в Agile-процесс. Рассмотрены конкретные приемы на уровнях как отдельных сотрудников, так и команды в целом,  позволяющие реально прижиться идеям Lean UX в организации.

Для разработчиков программных продуктов

Что, если мы обнаружим, что строим то, что никому не нужно? В таком случае какое значение имело то, что мы сделали это вовремя и в рамках бюджета?
Эрик Рис

Проектирование первоклассных программных продуктов в составе Agile-команд

Готельф и Сейден — ведущие специалисты в сфере производства программных продуктов. Благодаря совокупному опыту в области, охватывающей как самые динамичные технологические стартапы, так и столетние солидные компании, они дают предельно четкие рекомендации организациям, проходящим цифровую трансформацию. Эти рекомендации представляют реальные рецепты типа «давайте исправим это сейчас», исходящие от настоящих практикующих врачей, а не новомодную гомеопатическую панацею от кабинетных agile-знатоков.
 ДЖОН МАЕДА, старший вице-президент по взаимодействию с пользователями компании Everbridge

Книга по Lean UX навсегда изменила пути создания программных продуктов к лучшему. Демонстрируя компаниям-разработчикам программных систем способы их проектирования и постоянного совершенствования по мере становления и изменения клиентской аудитории, методология Lean UX позволяет создавать новое поколение не только привлекательных, но и весьма толковых продуктов
 КРИСТИНА ВОДТКЕ, лектор факультета компьютерных наук Стэнфордского университета и автор книги «Radical Focus»

В течение последних восьми лет прочтение книги по Lean UX было моей настоятельной рекомендацией для всех команд, изучающих приемы совместной работы, которые позволяют добиваться позитивного пользовательского восприятия. Эта последняя версия книги выходит за рамки прежнего повествования, закрепляя учебный материал в удобном для понимания формате и предоставляя примеры его практического применения. Считаю ее обязательной к прочтению для любой современной команды разработчиков программных продуктов.
 МЕЛИССА ПЕРРИ, генеральный директор компании Produx Labs, старший преподаватель Гарвардской школы бизнеса

В последнем издании книги по Lean UX Джефф и Джош еще раз показали, почему именно они были идейными лидерами в области проектирования на протяжении более десяти лет. Эта книга — вечная классика, место которой на книжной полке каждого проектировщика.
 ТЕРЕЗА ТОРРЕС, автор книги «Continuous Discovery Habits»

Книгу “Основы Lean UX, 3-е издание” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Рецензии на третье издание книги…………………………………………………………. 13

Рецензии на предыдущие издания книги……………………………………………….. 15

Вступительное слово………………………………………………………………………………. 19

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

От авторов……………………………………………………………………………………………… 27

Примечание от Джеффа…………………………………………………………………………………………………………….. 27

Примечание от Джоша………………………………………………………………………………………………………………. 27

От Джеффа и Джоша………………………………………………………………………………………………………………….. 28

Предисловие…………………………………………………………………………………………… 29

Что же такое Lean UX?………………………………………………………………………………………………………………. 29

Для кого предназначена книга по Lean UX?…………………………………………………………………………… 33

Что мы предлагаем в этой книге?……………………………………………………………………………………………… 33

ЧАСТЬ I. ПРЕДСТАВЛЕНИЕ И ПРИНЦИПЫ………………………………………. 35

Глава 1. Сейчас это актуально как никогда…………………………………………… 37

Проектирование немыслимо без постоянного развития………………………………………………………… 37

Глава 2. Принципы………………………………………………………………………………… 40

Основы Lean UX…………………………………………………………………………………………………………………………. 40

Так как же все-таки определить, что такое Lean UX?…………………………………………………………….. 43

Принципы Lean UX……………………………………………………………………………………………………………………. 43

Принципы организации команды……………………………………………………………………………………… 44

Принцип: Кросс-функциональность……………………………………………………………………….. 44

Принцип: Немногочисленность, специализированность, совмещенность………….. 44

Принцип: Самодостаточность и наделенность полномочиями……………………………. 45

Принцип: Ориентированность на решение задачи………………………………………………… 45

Принципы управления культурой разработки………………………………………………………………… 46

Принцип: Переход от сомнений к уверенности……………………………………………………… 46

Принцип: Нужны результаты, а не наработки………………………………………………………. 46

Принцип: Избавление от ненужного……………………………………………………………………….. 47

Принцип: Общее понимание…………………………………………………………………………………….. 47

Принцип: Отказ от “звездных” исполнителей…………………………………………………………. 47

Принцип: Допустимость неудачных решений……………………………………………………….. 48

Принципы управления процессом…………………………………………………………………………… 49

Принцип: Смысл здесь не в том, чтобы привычное делать быстрее……………………. 49

Принцип: Избегайте разбиений на этапы……………………………………………………………….. 49

Принцип: Ключ к гибкости — итерация…………………………………………………………………. 50

Принцип: Разбейте работу на малые части, чтобы снизить проектные риски……. 50

Принцип: Ведите непрерывные исследования……………………………………………………….. 50

Принцип: “Выходите на улицу”………………………………………………………………………………. 51

Принцип: Экстернализируйте свою работу…………………………………………………………… 51

Принцип: Реальные изделия важнее теоретических исследований……………………… 52

Принцип: Исходите из конечных бизнес-результатов…………………………………………… 52

Подведение итогов…………………………………………………………………………………………………………………….. 52

Глава 3. Результаты……………………………………………………………………………….. 53

В чем суть наших дел?………………………………………………………………………………………………………………. 53

История о результатах………………………………………………………………………………………………………. 54

Разбор истории: Изделия, результаты, воздействие……………………………………………………….. 55

Углубленный взгляд на результат…………………………………………………………………………… 56

Результаты, итерация и проверка…………………………………………………………………………………………….. 58

ЧАСТЬ II. ПРОЦЕСС ПРИМЕНЕНИЯ LEAN UX………………………………….. 61

Глава 4. Lean UX Canvas………………………………………………………………………… 63

Предположения в роли новых требований……………………………………………………………………………… 63

Lean UX Canvas…………………………………………………………………………………………………………………………. 65

Использование предписаний…………………………………………………………………………………………………….. 68

А когда нужно использовать Lean UX Canvas?………………………………………………………………. 68

Для чего Lean UX Canvas подходит лучше: для идей, выдвигаемых на начальном этапе, или для процесса поддержки инноваций?…………………………………………………………………………………………………………………………. 68

Кто должен работать с предписаниями?…………………………………………………………………………. 69

Сколько времени нужно потратить на проработку Lean UX Canvas?………………………….. 69

А нужно ли использовать все предписания, чтобы следовать методологии Lean UX?. 69

Проработка каждого раздела…………………………………………………………………………………………… 70

Учитывайте все обстоятельства………………………………………………………………………………. 70

Сравнение дистанционного и личного общения……………………………………………………. 71

Подведение итогов…………………………………………………………………………………………………………………….. 71

Глава 5. Блок 1: Бизнес-задача………………………………………………………………. 72

Проработка предписания………………………………………………………………………………………………………….. 73

Примеры постановки задачи…………………………………………………………………………………………………….. 75

На что следует обратить особое внимание…………………………………………………………………………….. 76

Глава 6. Блок 2: Результаты деятельности……………………………………………… 78

Использование пути потребителя…………………………………………………………………………………………….. 79

Тип пути потребителя: Пиратские метрики — Pirate Metrics…………………………………………. 79

Тип пути потребителя: Гора метрик — Metrics Mountain………………………………………………. 80

Стимуляция обсуждения бизнес-результатов с применением Горы метрик……….. 81

Тип пути потребителя: Пути обслуживания и карты потребительских историй…………. 82

Сопоставление результата и воздействия……………………………………………………………………….. 82

На что следует обратить особое внимание…………………………………………………………………………….. 84

Глава 7. Блок 3: Пользователи……………………………………………………………….. 86

Образ протоперсонажа……………………………………………………………………………………………………………… 88

Проработка предписания………………………………………………………………………………………………………….. 89

Проверка на ранней стадии………………………………………………………………………………………………. 90

На что следует обратить особое внимание…………………………………………………………………………….. 91

Глава 8. Блок 4: Результаты и преимущества, получаемые
пользователями……………………………………………………………………………………… 92

Проработка предписания………………………………………………………………………………………………………….. 93

На что следует обратить особое внимание…………………………………………………………………………….. 94

Глава 9. Блок 5: Решения………………………………………………………………………. 95

Проработка предписания………………………………………………………………………………………………………….. 95

Сопоставление выдвинутых идей…………………………………………………………………………………….. 96

Совместное проектирование: более структурированный подход………………………………… 96

Запуск Design Studio…………………………………………………………………………………………………………………… 97

Приготовления……………………………………………………………………………………………………………………. 97

Команда………………………………………………………………………………………………………………………………. 97

Процесс……………………………………………………………………………………………………………………………….. 97

Принадлежности………………………………………………………………………………………………………………… 98

Определение задачи и ограничений (15 минут)………………………………………………………………. 98

Выработка индивидуальных замыслов (10 минут)………………………………………………………… 98

Представление и критические оценки (по 3 минуты на человека)………………………………. 100

Попарная работа для пересмотра и уточнения идей (10 минут)…………………………………. 101

Выработка командного замысла (45 минут)…………………………………………………………………. 102

Использование результатов проработки……………………………………………………………………….. 102

На что следует обратить особое внимание…………………………………………………………………………… 103

Глава 10. Блок 6: Гипотезы………………………………………………………………….. 104

Проработка предписания……………………………………………………………………………………………………….. 105

Расстановка гипотез по приоритетности………………………………………………………………………………. 107

На что следует обратить особое внимание…………………………………………………………………………… 109

Глава 11. Блок 7: Что здесь самое важное, подлежащее осмыслению в первую очередь?            110

Проработка предписания……………………………………………………………………………………………………….. 111

На что следует обратить особое внимание…………………………………………………………………………… 111

Глава 12. Блок 8: MVP и проведение экспериментов……………………………. 112

Что такое MVP?……………………………………………………………………………………………………………………….. 112

Пример: Нужно ли запускать информационный бюллетень?……………………………………… 113

Создание MVP………………………………………………………………………………………………………………………….. 114

Создание MVP для выявления привносимой ценности………………………………………………… 114

Создание MVP, чтобы разобраться с реализацией идеи……………………………………………… 115

Ряд заключительных рекомендаций по созданию MVP……………………………………………….. 116

Кривая достоверности…………………………………………………………………………………………………….. 117

Примеры MVP…………………………………………………………………………………………………………………… 117

Тест исходной страницы………………………………………………………………………………………… 117

Фикция (также известная как “Кнопка в никуда”)………………………………………………… 119

Волшебник из страны Оз…………………………………………………………………………………………………. 121

Пример: Волшебник из страны Оз для Taproot Plus…………………………………………….. 121

Создание прототипов………………………………………………………………………………………………………………. 124

Бумажные прототипы……………………………………………………………………………………………………… 124

Экранные макеты с низкой степенью приближенности к продукту……………………………. 125

Экранные прототипы со средней и высокой степенью приближенности
к реальному продукту……………………………………………………………………………………………………… 126

MVP без кода……………………………………………………………………………………………………………………. 126

Прототипы с программным кодом и “живыми” данными…………………………………………….. 127

Что должно попасть в ваш прототип?……………………………………………………………………………. 128

Презентации и образцы…………………………………………………………………………………………………… 128

Пример: использование MVP-прототипа………………………………………………………………………. 128

Глава 13. Резюме………………………………………………………………………………….. 130

Применение Lean UX Canvas на предприятии……………………………………………………………………… 130

Validately: проверка посредством интервью и прототипа, созданного всего лишь
за два дня………………………………………………………………………………………………………………………………….. 132

Kaplan Test Prep: использование Lean UX для запуска нового бизнеса……………………………… 133

ЧАСТЬ III. СОТРУДНИЧЕСТВО…………………………………………………………. 137

Глава 14. Совместное проектирование…………………………………………………. 139

Совместное проектирование…………………………………………………………………………………………………… 140

Совместное проектирование: неформальный подход………………………………………………….. 141

Lean UX и дизайн-спринты……………………………………………………………………………………………… 143

Использование Design Sprints в Lean UX-процессе……………………………………………………….. 144

Дизайн-системы……………………………………………………………………………………………………………….. 145

Дизайн-системы: что скрывается в их названии?…………………………………………………………. 146

Ценность дизайн-систем………………………………………………………………………………………………………….. 147

Команды дизайн-систем — это те же разработчики программных продуктов…………. 148

Не нужно пропускать этап использования толстых маркеров……………………………………. 149

Практический пример: Дизайн-система GE…………………………………………………………………… 150

Сотрудничество с географически разбросанными командами…………………………………………… 153

Сотрудничество с распределенными командами…………………………………………………………. 153

Повышение эффективности сотрудничества…………………………………………………………………. 154

Подведение итогов…………………………………………………………………………………………………………………… 156

Глава 15. Обратная связь и исследования……………………………………………. 158

Проведение непрерывных и совместных исследований………………………………………………………. 158

Совместное исследование……………………………………………………………………………………………….. 159

Проведение совместного исследования на общем поле деятельности………………. 159

Пример проведения совместного исследования…………………………………………………… 161

Непрерывное обучение……………………………………………………………………………………………………. 161

Обращение к принципам………………………………………………………………………………………… 161

Постоянные исследования: работа вообще без исследований…………………………… 162

Непрерывное обучение в среде разработки: по три пользователя
каждый четверг……………………………………………………………………………………………………….. 163

Упростите среду тестирования……………………………………………………………………………… 164

Кто должен наблюдать за происходящим?………………………………………………………….. 164

Непрерывное исследование: Примеры…………………………………………………………………. 165

Вторники тестирования………………………………………………………………………………………….. 165

Осмысление исследования: командная работа…………………………………………………………….. 167

Запутанность, противоречивость и отсутствие ясности…………………………………….. 167

Выявление закономерностей по прошествии времени…………………………………………………. 168

Тестируйте уже имеющееся…………………………………………………………………………………… 169

Методы мониторинга при проведении непрерывных и совместных исследований….. 173

Служба поддержки клиентов…………………………………………………………………………………. 174

Получение отзывов при опросах на сайте……………………………………………………………. 174

Подведение итогов…………………………………………………………………………………………………………………… 176

Глава 16. Интеграция Lean UX и Agile…………………………………………………. 177

Проникнитесь Agile-процессом……………………………………………………………………………………………….. 178

Переопределение понятия “Готово”……………………………………………………………………………….. 179

Мы все еще являемся приверженцами поэтапных спринтов. Почему?……………………….. 182

Двуединая модель Agile…………………………………………………………………………………………………… 184

Dual-track работает только при условии, что все действуют в составе
единой команды………………………………………………………………………………………………………. 185

Планирование работы по методу Dual-track……………………………………………………….. 186

Использование Scrum-ритмов для выстраивания практики Lean UX…………………………………. 188

Цели спринта, цели разработки продукта и темы для нескольких спринтов…………….. 190

Начните тему с совместного проектирования……………………………………………………… 190

Встречи по планированию спринта……………………………………………………………………… 191

Экспериментальные истории…………………………………………………………………………………. 192

Расписание исследований пользовательских восприятий………………………………….. 193

Проектировщики должны принимать участие в планировании………………………………….. 194

Заинтересованные стороны и панель управления рисками………………………………………………… 195

Дорожные карты на основе результатов………………………………………………………………………………. 197

Частота ознакомлений…………………………………………………………………………………………………….. 199

Оценка прогресса…………………………………………………………………………………………………………….. 199

Lean UX и Agile на предприятии…………………………………………………………………………………………….. 200

Подведение итогов…………………………………………………………………………………………………………………… 203

ЧАСТЬ IV. LEAN UX В ВАШЕЙ ОРГАНИЗАЦИИ………………………………. 205

Глава 17. Осуществление организационных перемен…………………………… 209

Перемены………………………………………………………………………………………………………………………………….. 210

Перемены, вносимые в культуру поведения………………………………………………………………….. 211

Перемены, вносимые в организацию команды……………………………………………………………… 211

Перемены, вносимые в процесс………………………………………………………………………………………. 211

Перемена сознания: Будьте беспристрастны………………………………………………………………… 211

Перемена сознания: Приобретайте новые навыки……………………………………………………….. 212

Перемена сознания: Создавайте открытую рабочую среду для совместной работы. 213

Перемена сознания: Никаких выдающихся личностей………………………………………………… 214

Перемена сознания: Полюбите задачу, а не решение………………………………………………….. 215

Перемена сознания: Меняйте подходы, сложившиеся в агентстве……………………………… 216

Перемена сознания: Реально оценивайте свое окружение…………………………………………… 217

Перемена сознания: Думайте не о ролях, а о компетенциях……………………………………….. 217

Перемена сознания: Формируйте кросс-функциональные команды…………………………… 218

Перемена сознания: Формируйте небольшие команды……………………………………………….. 219

Перемена сознания: Научитесь работать с разобщенными командами…………………….. 219

Перемена сознания: Выстройте гибкие взаимоотношения со сторонними поставщиками……….. 220

Перемена сознания: Планируйте работу, нацеленную на конечные позитивные перемены, а не на материальные результаты………………………………………………………………………………………………………………………… 220

Перемена сознания: Остерегайтесь BDUF-проникновений в Agile-среды…………………… 221

Перемена сознания: Сначала выдайте скорость, а уж затем эстетику………………………. 223

Перемена сознания: Боритесь с UX-задолженностями………………………………………………… 224

Перемена сознания: Переосмыслите методы документирования……………………………….. 225

Перемена сознания: Контролируйте все, что делается выше и рядом с вами……………. 225

Глава 18. Применение методологии Lean UX в агентстве…………………….. 227

Чем вы собираетесь заниматься?……………………………………………………………………………………………. 227

Продажа услуг, оказываемых по методологии Lean UX, заключается в настройке клиентов на конкретные ожидания         229

Никто не хочет платить за эксперименты……………………………………………………………………………… 229

Итак, услуга продана! Осталось договориться со специалистами по закупкам……………….. 230

Теперь вы уже не аутсорсинговый партнер………………………………………………………………………….. 231

Краткие заметки о партнерах-разработчиках и о сторонних поставщиках……………………… 232

Подведение итогов…………………………………………………………………………………………………………………… 233

Глава 19. Последнее слово……………………………………………………………………. 234

Продукт, создающий другой продукт……………………………………………………………………………………. 235

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

Джефф Готельд

Джефф Готельф (Jeff Gothelf) — дизайнер и практик Agile. Ведущий специалист по темам Agile UX и Lean UX, а также очень востребованным международный спикер. Является директором нью-йоркского офиса Neo. Ранее Джефф руководил командами в TheLadders, Publicis Modem, WebTrends, Fidelity и AOL.

 

 

Сейден Джош

Джош Сейден (Josh Seiden) уже более 20 лет создает различные технологические продукты. Лидер UX-дизайна, Джош работал в области аппаратного и программного обеспечения, потребительского и корпоративного, мобильного, веб- и настольного. Является директором Neo, а до этой должности руководил отделом дизайна продуктов в новаторской ком-пании Liquidnet с Уолл-стрит, а также руководил новаторскими коман-дами по дизайну взаимодействия в Cooper. Основатель и бывший пре-зидент Interaction Design Association.

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

Новинка: “Kubernetes и сети. Многоуровневый подход”

Kubernetes и сети. Многоуровневый подход

Книга посвящена  интеграции Kubernetes в готовые компьютерные сети. Рассмотрено, как оркестратор Kubernetes вписывается в сетевую модель OSI.  Раскрыты вопросы интеграции сетей предприятия с облачными мощностями и контейнерными архитектурами. Рассмотрены ключевые факторы и новые зоны ответственности, возникающие при взаимодействии Kubernetes с каждым из уровней модели OSI. Приведены примеры быстрого масштабирования нагрузок, рассказано, как обеспечивать целостность данных и высокую отказоустойчивость, при активном применении современной виртуализации и при передаче больших объёмов данных по сети.

 Для Linux-разработчиков, DevOps-инженеров и системных администраторов

 

Авторы помогут вам быстро познакомиться со всеми тонкостями, возникающими при развёртывании Kubernetes в больших контейнерных конфигурациях. Если хотите преуспеть в поддержке  продакшен-кластера и эффективно устранять в нём неполадки, то нужно уверенно различать абстракции, предоставляемые на каждом из уровней OSI. Как – читайте в этой книге.

  • Изучите сетевую модель Kubernetes
  • Выберите для ваших кластеров наилучший интерфейс, соответствующий требованиям CNCF
  • Исследуйте примитивы сетевого уровня и операционной системы Linux, лежащие в основе Kubernetes
  • Научитесь быстро устранять сетевые проблемы и предотвращать простои
  • Узнайте, как при помощи Kubernetes организуются и поддерживаются облачные сети
  • Взвесьте достоинства и недостатки различных сетевых инструментов и научитесь наилучшим образом формировать стек для обслуживания сети

 

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

Предисловие…………………………………………………………………………………………….. 9

Просто еще один пакет?………………………………………………………………………………………………………………. 9

Для кого эта книга……………………………………………………………………………………………………………………….. 9

Что вы узнаете……………………………………………………………………………………………………………………………. 10

Обозначения, используемые в данной книге…………………………………………………………………………… 10

Использование примеров программ…………………………………………………………………………………………. 10

Благодарности…………………………………………………………………………………………………………………………… 11

Глава 1. Введение в сетевые технологии………………………………………………… 13

История сетевых технологий……………………………………………………………………………………………………. 13

Модель OSI…………………………………………………………………………………………………………………………………. 16

TCP/IP…………………………………………………………………………………………………………………………………………. 20

Уровень приложения………………………………………………………………………………………………………. 22

HTTP………………………………………………………………………………………………………………………… 22

Транспортный уровень………………………………………………………………………………………………….. 25

TCP…………………………………………………………………………………………………………………………… 25

TLS…………………………………………………………………………………………………………………………… 36

UDP………………………………………………………………………………………………………………………….. 38

Уровень межсетевого взаимодействия………………………………………………………………………….. 39

Протокол Интернета………………………………………………………………………………………………………. 39

Движение по сети……………………………………………………………………………………………………. 44

ICMP………………………………………………………………………………………………………………………… 47

Уровень канала данных…………………………………………………………………………………………………. 49

Снова наш веб-сервер…………………………………………………………………………………………………….. 54

Заключение………………………………………………………………………………………………………………………………… 56

Глава 2. Поддержка сети в ОС Linux……………………………………………………… 59

Базовые понятия………………………………………………………………………………………………………………………… 59

Сетевой интерфейс…………………………………………………………………………………………………………………….. 63

Интерфейс сетевого моста………………………………………………………………………………………………………… 64

Обработка пакетов в ядре Linux………………………………………………………………………………………………. 66

Netfilter (межсетевой фильтр)…………………………………………………………………………………………. 66

Conntrack…………………………………………………………………………………………………………………………. 70

Маршрутизация……………………………………………………………………………………………………………… 72

Высокоуровневая маршрутизация…………………………………………………………………………………………… 73

Утилита iptables………………………………………………………………………………………………………………. 74

Таблицы iptables…………………………………………………………………………………………………….. 75

Цепочки iptables……………………………………………………………………………………………………… 75

Подцепочки…………………………………………………………………………………………………………….. 79

Правила iptables…………………………………………………………………………………………………….. 80

Практическое применение iptables……………………………………………………………………….. 82

IPVS………………………………………………………………………………………………………………………………….. 85

eBPF…………………………………………………………………………………………………………………………………. 87

Средства сетевой диагностики…………………………………………………………………………………………………. 90

Безопасность…………………………………………………………………………………………………………………… 90

ping…………………………………………………………………………………………………………………………………… 91

traceroute…………………………………………………………………………………………………………………………. 92

dig…………………………………………………………………………………………………………………………………….. 93

telnet…………………………………………………………………………………………………………………………………. 95

nmap………………………………………………………………………………………………………………………………… 96

netstat……………………………………………………………………………………………………………………………….. 97

netcat………………………………………………………………………………………………………………………………… 98

Openssl……………………………………………………………………………………………………………………………… 99

cURL………………………………………………………………………………………………………………………………. 100

Заключение………………………………………………………………………………………………………………………………. 102

Глава 3. Основы работы с контейнерами…………………………………………….. 103

Введение в контейнеры……………………………………………………………………………………………………………. 103

Приложения…………………………………………………………………………………………………………………… 103

Гипервизор……………………………………………………………………………………………………………………. 104

Контейнеры…………………………………………………………………………………………………………………… 105

OCI…………………………………………………………………………………………………………………………. 108

LXC………………………………………………………………………………………………………………………… 109

runC……………………………………………………………………………………………………………………….. 109

containerd………………………………………………………………………………………………………………. 109

lmctfy…………………………………………………………………………………………………………………….. 110

rkt…………………………………………………………………………………………………………………………… 110

Docker……………………………………………………………………………………………………………………. 110

CRI-O…………………………………………………………………………………………………………………….. 111

Примитивы контейнеров…………………………………………………………………………………………………………. 113

Контрольные группы……………………………………………………………………………………………………. 113

Пространства имен………………………………………………………………………………………………………. 114

Задание пространств имен………………………………………………………………………………………….. 116

Основы сетей контейнеров……………………………………………………………………………………………………… 123

Сетевая модель Docker…………………………………………………………………………………………………. 132

Оверлейная сеть……………………………………………………………………………………………………………. 134

Сетевой интерфейс контейнера…………………………………………………………………………………… 135

Подключение контейнера к сети…………………………………………………………………………………………….. 137

Соединение контейнер-контейнер………………………………………………………………………………. 142

Взаимодействие между контейнерами на разных хостах………………………………………… 144

Заключение………………………………………………………………………………………………………………………………. 145

Глава 4. Cети в Kubernetes……………………………………………………………………. 147

Сетевая модель Kubernetes……………………………………………………………………………………………………… 147

Узел и конфигурация сети подов……………………………………………………………………………………………. 150

Изолированные сети…………………………………………………………………………………………………….. 151

Плоские сети…………………………………………………………………………………………………………………. 152

Островные сети…………………………………………………………………………………………………………….. 153

Конфигурация компонента kube-controller-manager…………………………………………………. 154

Kubelet………………………………………………………………………………………………………………………………………. 155

Готовность пода и ее проверка………………………………………………………………………………………………. 156

Спецификация интерфейса CNI……………………………………………………………………………………………… 162

Плагины CNI…………………………………………………………………………………………………………………………….. 163

Интерфейс IPAM…………………………………………………………………………………………………………… 164

Распространенные плагины CNI………………………………………………………………………………… 165

Компонент kube-proxy…………………………………………………………………………………………………………….. 170

Режим userspace……………………………………………………………………………………………………………. 171

Режим iptables……………………………………………………………………………………………………………….. 171

Режим IPVS……………………………………………………………………………………………………………………. 173

Режим kernelspace…………………………………………………………………………………………………………. 173

Сетевая политика…………………………………………………………………………………………………………………….. 173

Создание объекта NetworkPolicy с помощью Сilium…………………………………………………. 177

Группировка подов………………………………………………………………………………………………………. 182

Тип LabelSelector………………………………………………………………………………………………….. 183

Правила…………………………………………………………………………………………………………………………. 185

DNS                                                                                                                                                                 189

Двойной стек IPv4/ IPv6………………………………………………………………………………………………………….. 194

Заключение………………………………………………………………………………………………………………………………. 196

Глава 5. Сетевые абстракции в Kubernetes…………………………………………… 197

StatefulSet…………………………………………………………………………………………………………………………………. 198

Конечные точки……………………………………………………………………………………………………………………….. 200

Endpoint Slices…………………………………………………………………………………………………………………………… 204

Сервисы Kubernetes…………………………………………………………………………………………………………………. 208

NodePort…………………………………………………………………………………………………………………………. 209

ClusterIP…………………………………………………………………………………………………………………………. 212

Headless-сервис…………………………………………………………………………………………………………….. 219

Сервис ExternalName……………………………………………………………………………………………………. 221

Сервис LoadBalancer……………………………………………………………………………………………………. 222

Сервисы Kubernetes — устранение проблем……………………………………………………………… 228

Ингресс……………………………………………………………………………………………………………………………………… 229

Контроллеры и правила ингресса………………………………………………………………………………………….. 230

Задание правил ингресса…………………………………………………………………………………….. 236

Технология service mesh………………………………………………………………………………………………………….. 237

Заключение………………………………………………………………………………………………………………………………. 249

Глава 6. Kubernetes и облачные сети……………………………………………………. 251

Amazon Web Services……………………………………………………………………………………………………………….. 251

Сетевые сервисы AWS………………………………………………………………………………………………….. 251

Виртуальное частное облако……………………………………………………………………………… 252

Регионы и зоны доступности………………………………………………………………………………. 252

Подсеть………………………………………………………………………………………………………………….. 253

Таблицы маршрутизации……………………………………………………………………………………. 254

Эластичный сетевой интерфейс………………………………………………………………………….. 256

Эластичный IP-адрес…………………………………………………………………………………………… 256

Средства обеспечения безопасности…………………………………………………………………. 257

Устройства преобразования сетевых адресов………………………………………………….. 260

Шлюз Интернета………………………………………………………………………………………………….. 260

Эластичные балансировщики нагрузки…………………………………………………………….. 261

Эластичный сервис Kubernetes от Amazon………………………………………………………………… 264

Узлы EKS………………………………………………………………………………………………………………. 264

Режим EKS…………………………………………………………………………………………………………….. 265

Инструмент eksctl…………………………………………………………………………………………………. 268

CNI для виртуального облака в AWS…………………………………………………………………. 270

Ингресс-контроллер для AWS ALB…………………………………………………………………….. 272

Развертывание приложения в кластере AWS EKS…………………………………………………….. 274

Развертывание кластера EKS……………………………………………………………………………… 274

Развертывание тестового приложения……………………………………………………………….. 276

Тестирование сервиса LoadBalancer для веб-сервера……………………………………… 277

Развертывание и тестирование ингресс-контроллера для ALB………………………. 278

Уборка мусора……………………………………………………………………………………………………… 281

Вычислительное облако Google (GCP)…………………………………………………………………………………… 282

Сетевые сервисы GCP…………………………………………………………………………………………………… 282

Регионы и зоны……………………………………………………………………………………………………… 283

Виртуальное частное облако……………………………………………………………………………… 283

Подсеть………………………………………………………………………………………………………………….. 284

Маршруты и правила брандмауэров…………………………………………………………………. 285

Облачная балансировка нагрузки……………………………………………………………………… 285

Инстансы GCE………………………………………………………………………………………………………. 286

Google Kubernetes Engine (GKE)…………………………………………………………………………………… 286

GKE-узлы в облаке Google…………………………………………………………………………………… 287

Azure………………………………………………………………………………………………………………………………………….. 290

Сетевые сервисы Azure………………………………………………………………………………………………… 290

Базовая инфраструктура Azure…………………………………………………………………………… 291

Подсети…………………………………………………………………………………………………………………. 292

Таблицы маршрутизации……………………………………………………………………………………. 292

Публичные и частные IP-адреса………………………………………………………………………… 295

Группы сетевой безопасности…………………………………………………………………………….. 295

Взаимодействие вне пределов виртуальной сети……………………………………………… 297

Балансировщик нагрузки в Azure……………………………………………………………………….. 297

Azure Kubernetes Service……………………………………………………………………………………………….. 300

Плагин CNI для Аzure………………………………………………………………………………………….. 302

Ингресс-контроллер для шлюза приложения……………………………………………………. 303

Развертывание приложения с помощью Azure Kubernetes Service…………………………… 304

Развертывание кластера с помощью Azure Kubernetes Service………………………… 305

Соединение с кластером AKS и его конфигурирование……………………………………. 310

Развертывание веб-сервера…………………………………………………………………………………. 313

Заключительные замечания по AKS…………………………………………………………………… 315

Заключение………………………………………………………………………………………………………………………………. 315

Vallery-Lancey

Валлери Лэнси (Vallery Lancey) — инженер по распределённым системам, ранее отвечала за поддержку мультикластера Kubernetes в компании Lyft, работала ведущим DevOps-инженером в компании CheckFront (Британская Колумбия, Канада).

 

 

James Strong

Джеймс Стронг (James Strong) — директор по облачной интеграции в компании Contino, имеет опыт руководящей работы и консультирования многих крупных предприятий и финансовых институтов, участвует в работе конференций AWS User Group и Cloud-Native Louisville. Ранее работал системным администратором в Дейтонском университете, штат Огайо и в компании «GE Appliances».

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

Встречайте индейские сказки

Когда в суровых краях Северной Америки и Канады за прозрачными озерами садится солнце, индейцы собираются в просторном типи и рассказывают удивительные истории.

Лучшие охотники и следопыты узнали от обитателей диких лесов о том, как мышиная птица посмеялась над Лесовичком и откуда взялись селедка и каштаны, почему синицы дважды в год сходят с ума и как появилось бабье лето. Эти и другие лесные секреты посчастливилось услышать и Черному Волку — такое почетное имя индейцы дали писателю Эрнесту Сетон-Томпсону. Позже писатель собрал их в одну книгу необычных сказок. Впрочем, сказками их могут считать непосвященные бледнолицые, а для настоящих индейцев это самая что ни на есть правда.

Автор

Эрнест Сетон-Томпсон

Эрнест Сетон-Томпсон (1869–1946) — родился в Великобритании, но в 10 лет с семьей переехал в Канаду. Закончил художественный колледж Онтарио. Считается основателем анималистического жанра в литературе. Писатель организовывал экспедиции по лесам Америки, знакомил юных скаутов не только с правилами выживания в природе, но и с жизнью и обычаями индейцев.  Библиография Сетона-Томпсона состоит из восьми десятков книг о животных. Это не только научные работы, но и детские сказки, и фантастика.

Художник

Гончарова Елена
Елена Гончарова
Родилась и живу в Новосибирске, окончила Новосибирское художественное училище и Красноярский художественный институт. Занималась станковой живописью, а сейчас полностью посвятила себя иллюстрации.
Опубликовано

И снова классика: “Ашик-Кериб. Турецкая сказка”

Ашик-Кериб. Турецкая сказка

Известную во всем восточном мире сказку про бедного музыканта Ашик-Кериба записал и обработал для русского читателя великий  писатель Михаил Лермонтов.

Живущий в Тифлизе певец и музыкант  Ашик-Кериб влюбляется в дочь богатого турка. Из-за своей бедности он не может на ней жениться и поэтому обещает через семь лет вернуться богатым и уважаемым человеком. Девушка согласна ждать, но если Ашик-Кериб опоздает хоть на день, ей придется выйти замуж за купца, который давно к ней сватается. Годы разлуки не погасили чувства в сердцах влюбленных, но назначенный срок всё ближе, а Ашик-Кериб всё ещё так далеко от своей невесты.

Художник

Гульнара Фаляхова

Гульнара Фаляхова  представляет молодое поколение художников Башкирии. Ее работы, пронизанные духом тюркской культуры, украшают российские и зарубежные галереи.

 

Автор

Лермонтов Михаил Юрьевич

Михаил Юрьевич Лермонтов (1814–1841 гг.) — великий русский поэт и прозаик. Родился в семье офицера, но почти всё детство провел у бабушки в усадьбе Тарханы в Пензенской губернии. Учился в Московском университете. Популярность к поэту приходит вместе с выходом стихотворения «Смерть поэта» (1837 г.), посвященного смерти Александра Пушкина. За это произведение Лермонтов был арестован и отправлен в ссылку на Кавказ. Поэт обладал резким и непокорным характером, и в результате очередной ссоры был вызван на дуэль. Погиб от смертельной раны в Пятигорске.

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

Представляем книгу: “Занимательная электроника. 7-е издание”

Занимательная электроника. 7-е издание

На практических примерах рассказано о том, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. От физических основ электроники, описания устройства и принципов работы различных радиоэлектронных компонентов, советов по оборудованию домашней лаборатории автор переходит к конкретным аналоговым и цифровым схемам, включая устройства на основе микроконтроллеров. Приведены элементарные сведения по метрологии и теоретическим основам электроники. Дано множество практических рекомендаций: от принципов правильной организации электропитания до разводки плат и приобретения компонентов применительно к российским условиям. В 7-м издании обновлены многие разделы, содержавшие устаревшие сведения, подробнее рассказано об источниках тока для осветительных приборов,  измерениях электрических величин, генераторных схемах, импульсных источниках питания, добавлены новые примеры применения платформы Arduino, а также приведен пример усовершенствованного контроллера китайского производства для замены Arduino.

Для широкого круга любителей электроники

  • Начала начал электроники
  • Оборудуем домашнюю лабораторию
  • Транзисторы, резисторы, конденсаторы, дисплеи
  • Операционные усилители, импульсные источники питания
  • Аналоговые и логические схемы, микроконтроллеры
  • Arduino —электроника для домашнего мастера
  • Импортозамещение по-китайски: улучшенный аналог Arduino

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

К читателю…………………………………………………………………………………………….. 13

Радиолюбительство — что это такое?…………………………………………………………………………………….. 15

Как пользоваться книгой?…………………………………………………………………………………………………………. 18

Как разрабатывать электронные схемы?………………………………………………………………………………… 19

Откуда взять информацию, как грамотно найти замену и где приобрести………………………….. 22

Часть I. Основы основ…………………………………………………………………. 25

Глава 1. Чем отличается ток от напряжения?…………………………………….. 27

Связь тока и напряжения…………………………………………………………………………………………………………… 28

Регулирование тока с помощью сопротивления…………………………………………………………………….. 31

Источники напряжения и тока………………………………………………………………………………………………….. 34

Глава 2. Джентльменский набор
Оборудуем домашнюю лабораторию……………………………………………………… 37

Мультиметр………………………………………………………………………………………………………………………………… 38

Источник питания………………………………………………………………………………………………………………………. 42

Осциллограф………………………………………………………………………………………………………………………………. 45

Глава 3. Хороший паяльник — половина успеха
Инструменты и технологические советы……………………………………………….. 51

Инструменты и материалы……………………………………………………………………………………………………….. 52

Паяльники…………………………………………………………………………………………………………………………… 55

Флюсы для пайки……………………………………………………………………………………………………………….. 57

Макетные платы………………………………………………………………………………………………………………………… 59

Печатные платы…………………………………………………………………………………………………………………………. 60

Монтаж……………………………………………………………………………………………………………………………………….. 62

Немного о проводах………………………………………………………………………………………………………………….. 70

Корпуса………………………………………………………………………………………………………………………………………. 72

Новые подходы в любительском конструировании……………………………………………………………….. 75

Проектирование схем и разводка плат…………………………………………………………………………….. 75

Редактор sPlan для разработки схем……………………………………………………………………….. 76

Программа для раскладки плат Sprint-Layout……………………………………………………….. 79

Изготовление плат…………………………………………………………………………………………………….. 81

Пайка заказных плат на основе SMD-компонентов………………………………………………. 82

Глава 4. Тригонометрическая электроника
О частотах, периодах, мощности, переменных напряжениях и токах и немного о сигналах      85

Мощность…………………………………………………………………………………………………………………………………… 89

Что показывал вольтметр?………………………………………………………………………………………………………… 90

Сигналы………………………………………………………………………………………………………………………………………. 93

О переменном токе и электропитании……………………………………………………………………………………… 94

Децибелы……………………………………………………………………………………………………………………………………. 95

Глава 5. Электроника без полупроводников
Резисторы, конденсаторы и схемы на их основе…………………………………….. 97

Резисторы……………………………………………………………………………………………………………………………………. 97

Переменные резисторы……………………………………………………………………………………………………. 103

Параллельное и последовательное соединение резисторов……………………………………….. 104

Конденсаторы………………………………………………………………………………………………………………………….. 106

Параллельное и последовательное включение конденсаторов………………………………….. 116

Конденсаторы в цепи переменного тока……………………………………………………………………….. 116

Дифференцирующие и интегрирующие цепи………………………………………………………………………… 117

Индуктивности…………………………………………………………………………………………………………………………. 119

Глава 6. Изобретение, которое потрясло мир
Диоды, транзисторы и простейшие схемы на их основе……………………….. 123

Диоды……………………………………………………………………………………………………………………………………….. 123

Транзисторы…………………………………………………………………………………………………………………………….. 125

Ключевой режим работы биполярного транзистора……………………………………………………. 128

Усилительный режим работы биполярного транзистора……………………………………………. 131

Включение транзистора с общим коллектором……………………………………………………………. 133

Стабильный усилительный каскад на транзисторе……………………………………………………… 134

Дифференциальный каскад…………………………………………………………………………………………….. 137

Полевые транзисторы……………………………………………………………………………………………………………… 138

Выбор транзисторов……………………………………………………………………………………………………………….. 144

Глава 7. Ошеломляющее разнообразие электронного мира
Реле, стабилитроны, светодиоды………………………………………………………….. 149

Электромагнитные реле………………………………………………………………………………………………………….. 149

Стабилитроны………………………………………………………………………………………………………………………….. 155

Оптоэлектроника и светодиоды……………………………………………………………………………………………… 158

Оптоэлектроника……………………………………………………………………………………………………………… 158

Светодиоды………………………………………………………………………………………………………………………. 160

Светодиодные индикаторы…………………………………………………………………………………………….. 163

ЖК-дисплеи……………………………………………………………………………………………………………………………… 165

Простейший уровнемер для водяных баков………………………………………………………………………….. 167

Часть II. Аналоговые схемы……………………………………………………. 171

Глава 8. Звуковой усилитель без микросхем
Классическая схема УМЗЧ…………………………………………………………………… 173

Схема базового УМЗЧ…………………………………………………………………………………………………………….. 174

Мощность усилителя……………………………………………………………………………………………………….. 177

Стабильность……………………………………………………………………………………………………………………. 178

О мощности выходных транзисторов…………………………………………………………………………….. 180

Проверка и отладка…………………………………………………………………………………………………………………. 180

Классы усилителей, или немного высшей математики………………………………………………………… 182

Действующее значение напряжения………………………………………………………………………………. 182

Классификация усилителей…………………………………………………………………………………………….. 182

О мощности и качестве звуковых усилителей………………………………………………………………………. 186

Глава 9. Правильное питание — залог здоровья
О питании электронных устройств………………………………………………………. 189

Электрохимические элементы………………………………………………………………………………………………… 189

Аккумуляторы………………………………………………………………………………………………………………….. 193

Вторичные линейные источники питания…………………………………………………………………………….. 197

Трансформаторы……………………………………………………………………………………………………………… 198

Расчет сетевого трансформатора…………………………………………………………………………………… 199

Простейший нестабилизированный однополярный источник питания……………………… 201

Стабилизаторы………………………………………………………………………………………………………………… 205

Интегральные стабилизаторы………………………………………………………………………………………… 207

Однополярный регулируемый источник питания…………………………………………………………. 210

Двухполярные источники питания………………………………………………………………………………………… 216

Простой трансформаторный…………………………………………………………………………………………… 216

Параллельный стабилизатор с искусственной средней точкой………………………………….. 217

Источники тока………………………………………………………………………………………………………………………… 218

Источники тока для питания светодиодов…………………………………………………………………….. 220

Источник тока на стабилизаторе LM317………………………………………………………………………. 221

Драйвер светодиодов на PT4115……………………………………………………………………………………. 223

Рассеивание тепла…………………………………………………………………………………………………………………… 224

Расчет радиатора через коэффициент теплоотдачи…………………………………………………….. 225

Расчет через значения термических сопротивлений…………………………………………………….. 227

Установка компонентов на радиаторы………………………………………………………………………….. 228

Принудительное охлаждение и элементы Пельтье………………………………………………………. 229

Импульсные источники питания…………………………………………………………………………………………….. 232

Как правильно питаться?………………………………………………………………………………………………………… 238

Глава 10. Тяжеловесы
Устройства для управления мощной нагрузкой……………………………………. 241

Базовая схема регулирования напряжения на нагрузке………………………………………………………. 243

Мощность в нагрузке при тиристорном управлении……………………………………………………. 245

Ручной регулятор мощности…………………………………………………………………………………………………… 247

Базовая схема регулятора (диммера)…………………………………………………………………………….. 247

Регулятор переменного напряжения с двумя тиристорами………………………………………….. 252

Регулятор с симистором………………………………………………………………………………………………….. 253

Бесконтактный метод измерения переменного тока…………………………………………………………….. 254

Помехи………………………………………………………………………………………………………………………………………. 256

Глава 11. Слайсы, которые стали чипами
О микросхемах…………………………………………………………………………………….. 259

Некоторые типовые узлы микросхем и особенности их эксплуатации……………………………… 263

Звуковые усилители на микросхемах……………………………………………………………………………………. 269

Мощный УМЗЧ………………………………………………………………………………………………………………… 270

Микроусилитель мощности…………………………………………………………………………………………….. 273

Глава 12. Самые универсальные
Обратная связь и операционные усилители…………………………………………. 275

Опасные связи………………………………………………………………………………………………………………………….. 276

Основные свойства системы с отрицательной обратной связью………………………………… 280

Базовые схемы усилителей на ОУ………………………………………………………………………………………….. 282

Неидеальность ОУ, ее последствия и борьба с ними……………………………………………………. 284

Дифференциальные усилители……………………………………………………………………………………….. 286

Другие распространенные схемы на ОУ……………………………………………………………………….. 289

Применение интегратора для измерения малых импульсных токов…………………………… 291

Аналоговый генератор……………………………………………………………………………………………………………. 293

Релейное регулирование и термостаты…………………………………………………………………………………. 296

Термостат вообще……………………………………………………………………………………………………………. 297

Простой термостат для аквариума………………………………………………………………………………… 301

О гистерезисе……………………………………………………………………………………………………………………. 304

Автомат включения освещения………………………………………………………………………………………. 306

Терморегулятор «для дома для семьи»………………………………………………………………………….. 308

Глава 13. Как измерить температуру?
Об измерениях, погрешностях и обработке результатов……………………….. 313

Основы термометрии……………………………………………………………………………………………………………….. 314

Датчики…………………………………………………………………………………………………………………………….. 315

Термисторы……………………………………………………………………………………………………………… 316

Металлические датчики…………………………………………………………………………………………. 318

Полупроводниковые датчики………………………………………………………………………………… 318

Методы измерения сопротивления………………………………………………………………………………………… 319

Очень точный лабораторный измеритель температуры……………………………………………………… 321

О метрологии и ошибках аналоговых схем…………………………………………………………………………… 323

Точность и разрешающая способность…………………………………………………………………………. 325

Систематические ошибки………………………………………………………………………………………………… 326

Случайные ошибки измерения и их оценка…………………………………………………………………… 326

Регрессия и метод наименьших квадратов…………………………………………………………………….. 331

Разновидности погрешностей…………………………………………………………………………………………. 333

Часть III. Цифровой век………………………………………………………………. 335

Глава 14. На пороге цифрового века
Математическая логика и ее представление в технических устройствах 337

Основные операции алгебры Буля…………………………………………………………………………………………. 340

Булева алгебра на выключателях и реле………………………………………………………………………. 343

То же самое, но на транзисторах и диодах…………………………………………………………………… 346

О двоичной и других системах счисления…………………………………………………………………………….. 348

Позиционные и непозиционные системы счисления. Десятичная система………………… 348

Двоичная и шестнадцатеричная системы……………………………………………………………………… 351

Перевод из одной системы счисления в другую……………………………………………………………. 352

Байты………………………………………………………………………………………………………………………………… 354

Запись чисел в различных форматах…………………………………………………………………………….. 356

Немного двоичной арифметики……………………………………………………………………………………………… 358

Отрицательные двоичные числа…………………………………………………………………………………….. 358

Дробные числа…………………………………………………………………………………………………………………………. 361

Коды, шифры и дешифраторы………………………………………………………………………………………………… 362

Код Грея……………………………………………………………………………………………………………………………. 365

Глава 15. Математическая электроника, или Игра в квадратики
Устройство логических микросхем и двоичные операции……………………. 369

ТТЛ……………………………………………………………………………………………………………………………………………. 370

Основные характеристики КМОП………………………………………………………………………………………….. 372

Характеристики различных серий КМОП…………………………………………………………………….. 374

Двоичный сумматор на логических микросхемах……………………………………………………………….. 381

Обработка двоичных сигналов с помощью логических элементов……………………………………. 386

Мультиплексоры/демультиплексоры и ключи……………………………………………………………………… 389

Глава 16. Устройства на логических схемах
Мультивибраторы, формирователи, триггеры, счетчики………………………. 391

Генераторы………………………………………………………………………………………………………………………………. 391

Схемы на основе триггера Шмитта………………………………………………………………………………… 397

Кварцевые генераторы……………………………………………………………………………………………………. 399

Формирователи импульсов…………………………………………………………………………………………………….. 403

Одновибраторы……………………………………………………………………………………………………………………….. 405

Схема периодического включения питания………………………………………………………………….. 408

Одновибраторы и генераторы на микросхеме 555………………………………………………………………. 410

Триггеры, регистры и счетчики………………………………………………………………………………………………. 415

Самый простой триггер…………………………………………………………………………………………………… 415

D-триггеры………………………………………………………………………………………………………………………… 418

Регистры……………………………………………………………………………………………………………………………. 420

Счетчики…………………………………………………………………………………………………………………………… 421

Цифровой лабораторный генератор……………………………………………………………………………………… 427

Глава 17. Откуда берутся цифры
Цифроаналоговые и аналого-цифровые преобразователи……………………. 431

Принципы оцифровки сигналов……………………………………………………………………………………………… 433

ЦАП…………………………………………………………………………………………………………………………………………… 436

АЦП…………………………………………………………………………………………………………………………………………… 440

АЦП параллельного действия…………………………………………………………………………………………. 440

АЦП последовательного приближения………………………………………………………………………….. 441

Интегрирующие АЦП………………………………………………………………………………………………………. 442

Цифровой термометр без микроконтроллеров……………………………………………………………………… 451

АЦП 572ПВ2 и ПВ5………………………………………………………………………………………………………….. 452

Практическая схема термометра……………………………………………………………………………………. 456

Часть IV. Микроконтроллеры…………………………………………………… 463

Глава 18. Начала микроэлектроники
Микропроцессоры, память и микроконтроллеры…………………………………. 465

Как работает микропроцессор?……………………………………………………………………………………………… 468

Лечение амнезии………………………………………………………………………………………………………………………. 475

Изобретаем простейшую ROM……………………………………………………………………………………….. 476

Общее устройство памяти……………………………………………………………………………………………….. 477

RAM…………………………………………………………………………………………………………………………………… 479

EPROM, EEPROM и флеш-память…………………………………………………………………………………… 480

Микроконтроллеры Atmel AVR……………………………………………………………………………………………… 484

Почему AVR?……………………………………………………………………………………………………………………. 485

Структура МК AVR…………………………………………………………………………………………………………. 486

Последовательные порты……………………………………………………………………………………………….. 488

Глава 19. Основы Arduino
Контроллеры, среда и примеры программирования……………………………… 491

Что такое Arduino?…………………………………………………………………………………………………………………… 492

Основные платы Arduino…………………………………………………………………………………………………………. 494

Установка среды программирования Arduino………………………………………………………………………. 499

Настройки Arduino IDE……………………………………………………………………………………………………. 503

Программы для Arduino…………………………………………………………………………………………………………… 504

Примеры программирования………………………………………………………………………………………………….. 511

Обмен через последовательный порт…………………………………………………………………………….. 511

Термостат на Arduino………………………………………………………………………………………………………. 515

Правильное подключение кнопки…………………………………………………………………………………… 518

Правильная мигалка на Ardiuno……………………………………………………………………………………… 522

Глава 20. Компоненты для Arduino
Как на Arduino делать устройства лучше фирменных………………………….. 525

Техническое задание……………………………………………………………………………………………………………….. 526

О выборе компонентов…………………………………………………………………………………………………….. 527

Интерфейс TWI (I2C)………………………………………………………………………………………………………………… 528

Датчики метеорологических параметров……………………………………………………………………………… 530

Датчики температуры и влажности……………………………………………………………………………….. 531

Барометры………………………………………………………………………………………………………………………… 534

Другие метеорологические датчики………………………………………………………………………………. 535

Особенности калибровки цифровых датчиков……………………………………………………………… 537

Часы………………………………………………………………………………………………………………………………………….. 538

Простейшие дисплеи……………………………………………………………………………………………………………….. 541

Подключение цифрового 4-разрядного дисплея к Arduino…………………………………………… 542

Часы на 4-разрядном дисплее…………………………………………………………………………………………. 543

Простой электронный термометр…………………………………………………………………………………… 546

Arduino и поразрядные матричные индикаторы…………………………………………………………………… 550

Схема подключения драйвера MAX6953 с I2C-интерфейсом……………………………………… 552

Программа………………………………………………………………………………………………………………………… 554

Работа с текстом на графическом дисплее MT-12864J………………………………………………………… 557

Подключение MT-12864J………………………………………………………………………………………………… 558

Русификация модуля MT-12864J……………………………………………………………………………………. 560

Строчные OLED-дисплеи………………………………………………………………………………………………………… 562

Контроллер WS0010 и библиотека LiquidCrystal…………………………………………………………. 563

Пишем по-русски……………………………………………………………………………………………………………… 565

Подключение строчных дисплеев Winstar…………………………………………………………………….. 566

Часы на основе OLED-дисплея……………………………………………………………………………………….. 568

Графические дисплеи Winstar…………………………………………………………………………………………………. 571

I2C-интерфейс для дисплеев Winstar………………………………………………………………………………………. 576

Передача данных по радиоканалу………………………………………………………………………………………… 579

Беспроводной UART: приемопередатчик HC-12………………………………………………………….. 579

Подключение передатчика и приемника RF link 433 MГц…………………………………………… 581

О режиме энергосбережения, Watchdog-таймере и питании метеостанции………………………. 587

Watchdog Timer………………………………………………………………………………………………………………… 588

О мерах по снижению энергопотребления…………………………………………………………………….. 592

Автономный датчик температуры/влажности……………………………………………………………………… 593

О конструктивном оформлении устройств на Arduino…………………………………………………………. 596

Глава 21. Применения Arduino
Избранные возможности платформы……………………………………………………. 599

Аналоговое управление внешними устройствами (ШИМ)………………………………………………….. 599

Принцип ШИМ-регулирования………………………………………………………………………………………. 600

ШИМ и Arduino………………………………………………………………………………………………………………… 601

Подбор MOSFET-ключей и драйверов для мощной нагрузки……………………………………… 604

Запись на SD-карту………………………………………………………………………………………………………………….. 607

Измерение частоты в Arduino…………………………………………………………………………………………………. 609

Метод первый — измерение частоты…………………………………………………………………………….. 610

Метод второй — измерение периода……………………………………………………………………………… 611

Ультразвуковой дальномер…………………………………………………………………………………………………….. 613

Пироэлектрический датчик…………………………………………………………………………………………………….. 615

Управляем с ИК-пульта от телевизора………………………………………………………………………………….. 618

Определение и применение кодов команд с ИК-пульта……………………………………………….. 618

Двухкнопочный плавный регулятор с запоминанием состояния……………………………………….. 621

Программа регулятора……………………………………………………………………………………………………. 623

О преимуществах и недостатках Arduino……………………………………………………………………………… 625

Глава 22. Персональный компьютер вместо паяльника
О программировании МК на ассемблере………………………………………………. 631

Некоторые дополнительные подробности архитектуры AVR……………………………………………. 632

Classic, Mega и Tiny………………………………………………………………………………………………………….. 632

Память программ…………………………………………………………………………………………………….. 633

Память данных (ОЗУ, SRAM)………………………………………………………………………………… 634

Энергонезависимая память данных (EEPROM)…………………………………………………… 635

Способы тактирования…………………………………………………………………………………………… 636

Параллельные порты ввода/вывода……………………………………………………………………… 638

Прерывания……………………………………………………………………………………………………………… 640

Таймеры-счетчики………………………………………………………………………………………………….. 642

Железо………………………………………………………………………………………………………………………………………. 644

Софт………………………………………………………………………………………………………………………………………….. 646

О конфигурационных битах……………………………………………………………………………………………………. 649

Примеры программирования………………………………………………………………………………………………….. 652

Самая простая программа………………………………………………………………………………………………. 653

Таймер без прерываний…………………………………………………………………………………………………… 657

Применение прерываний…………………………………………………………………………………………………. 661

Прерывание таймера по переполнению………………………………………………………………………… 664

Прерывание таймера по сравнению………………………………………………………………………………. 667

Арифметика многоразрядных чисел на ассемблере…………………………………………………………….. 669

Операции с числами в формате BCD……………………………………………………………………………… 673

Мощный инвертор на микроконтроллере……………………………………………………………………………… 676

Программная реализация ШИМ…………………………………………………………………………………….. 678

О схемотехнике инвертора……………………………………………………………………………………………… 683

Экономичный автономный датчик температуры…………………………………………………………………. 686

Глава 23. LGT8F328P, или импортозамещение по-китайски
Усовершенствованный аналог AVR и примеры его применения………….. 689

Общие особенности LGT8F328P на практике……………………………………………………………………….. 689

Документация…………………………………………………………………………………………………………………… 690

Что требуется для начала работы?………………………………………………………………………………… 690

Применение LGT8F328P для замены Arduino……………………………………………………………………….. 693

Стандартная мигалка и мигалка по кнопке…………………………………………………………………… 694

Правильная мигалка на LGT8F328P……………………………………………………………………… 695

Программный UART………………………………………………………………………………………………………… 696

Примеры использования расширенных функций LGT8F328P…………………………………………….. 698

Timer3………………………………………………………………………………………………………………………………… 698

Цифроаналоговый преобразователь……………………………………………………………………………… 699

Генератор «пилы»…………………………………………………………………………………………………… 700

Генератор синуса……………………………………………………………………………………………………. 702

Получение уникального идентификатора……………………………………………………………………… 703

Программирование LGT8F328P на ассемблере……………………………………………………………………. 704

Установка источника тактирования………………………………………………………………………………. 707

Мигалка с помощью Timer3……………………………………………………………………………………………. 709

Watchdog, энергосбережение и UART……………………………………………………………………………. 711

Приложения…………………………………………………………………………………… 713

Приложение 1. Резисторы и конденсаторы…………………………………………… 715

Международная цветная маркировка резисторов (с допуском 5 и 10%)…………………………… 715

Таблицы номиналов резисторов и конденсаторов……………………………………………………………….. 716

Приложение 2. Стандартные обозначения, размеры и характеристики некоторых гальванических элементов……………………………………………………………………………………………… 717

Приложение 3. Соответствие наименований и функциональности некоторых зарубежных и отечественных цифровых микросхем…………………………………………………… 719

Приложение 4. Словарь часто встречающихся аббревиатур и терминов. 722

Приложение 5. Единицы измерения и обозначения……………………………… 728

Физические величины и их единицы измерения по умолчанию………………………………………….. 728

Приставки и множители для образования десятичных кратных и дольных единиц…………. 729

Некоторые буквенные обозначения в электрических схемах……………………………………………… 729

Некоторые символические обозначения в электрических схемах……………………………………… 730

Символические обозначения мощности резисторов на схемах………………………………………….. 732

Приложение 6. Запись загрузчика и программирование Arduino Mini….. 734

Запись загрузчика (bootloader)……………………………………………………………………………………………….. 734

Arduino в роли ISP……………………………………………………………………………………………………………. 734

Запись загрузчика через любой ISP-программатор……………………………………………………… 737

Программирование Arduino Mini и Pro Mini………………………………………………………………………….. 738

Программирование Mini c помощью платы Arduino Uno…………………………………………….. 738

Программирование Mini через адаптер USB-UART……………………………………………………… 739

Программирование Arduino Mini через адаптер USB-UART
с автоматическим сбросом……………………………………………………………………………………………… 740

Литература и источники………………………………………………………………………. 743

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

Ревич Юрий Всеволодович

Ревич Юрий Всеволодович – инженер-электронщик, журналист и писатель с многолетним стажем. Основной круг интересов – проектирование микроэлектронных устройств от принципиальной схемы до пользовательского интерфейса, информационные технологии, их влияние на современное общество, технологические инновации, история компьютеров. Автор 16 книг, в том числе «Занимательной электроники», выдержавшей 5 изданий в течение 15 лет, а также нескольких сотен публикаций в журналах, газетах и сетевых изданиях, в том числе ряда статей на портале Habr.ru.

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

Новинка: “Python для Excel”

Python для Excel

Книга посвящена автоматизации Excel с помощью языка программирования Python. Описаны дистрибутив Anaconda Python и современные средства разработки, такие как менеджеры пакетов Conda и pip, блокноты Jupyter и Visual Studio Code. Даны необходимые основы языка Python и введение в анализ данных с помощью библиотеки pandas. Приведены приемы чтения и записи файлов Excel без Excel. Рассмотрено программирование приложений Excel с помощью популярного пакета с открытым исходным кодом xlwings: автоматизация Excel, инструменты на основе технологии Python, трекер пакетов Python, а также функции, определяемые пользователем.

Электронный архив на сайте издательства содержит цветные иллюстрации к книге.

Для опытных пользователей Excel  и программистов

Современная среда для автоматизации и анализа данных

Excel — это самый популярный в мире табличный редактор, но его язык автоматизации VBA давно перестал развиваться. Python – самый востребованный язык программирования, он хорошо работает с данными и прекрасно подходит на роль языка сценариев Excel. Вот почему сочетание Excel и Python актуально и  привлекательно.

В книге показано, как эффективно интегрировать эти два мира и начать работу по автоматизации Excel с помощью Python. При этом знание Python приветствуется, но не обязательно, так как в книге есть введение во все используемые инструменты, включая вводный курс по языку Python.

  • Освойте работу с современными инструментами, включая блокноты Jupyter и Visual Studio Code.
  • Используйте pandas для сбора, очистки и анализа данных и замены типичных вычислений в Excel.
  • Автоматизируйте рутинные задачи, такие как объединение рабочих книг Excel и создание отчетов Excel.
  • Используйте xlwings для создания интерактивных инструментов Excel, использующих Python в качестве механизма вычислений.
  • Подключайте Excel к базам данных и файлам CSV и получайте данные из Интернета с помощью кода Python.
  • Используйте Python как единый инструмент для замены VBA, Power Query и Power Pivot.

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

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

Почему я написал эту книгу. 12

Кому адресована эта книга. 12

Структура книги. 13

Версии Python и Excel 14

Условные обозначения, используемые в этой книге. 15

Примеры использования кода. 15

Иллюстрации. 16

Онлайн-обучение O’Reilly. 17

Как с нами связаться. 17

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

Часть I. Введение в Python.. 19

Глава 1. Зачем нужен Python для Excel?. 21

Excel как язык программирования. 22

Excel в новостях. 23

Передовые методы программирования. 24

Современный Excel 29

Python для Excel 31

Читабельность и эксплуатационная пригодность. 31

Стандартная библиотека и менеджер пакетов. 32

Научные вычисления. 34

Особенности современного языка. 35

Кросс-платформенная совместимость. 36

Заключение. 36

Глава 2. Среда разработки. 38

Дистрибутив Anaconda Python. 39

Установка. 39

Anaconda Prompt 40

Python REPL: интерактивная сессия Python. 43

Менеджеры пакетов: Conda и pip. 44

Среды Conda. 46

Jupyter Notebooks. 47

Запуск блокнотов Jupyter 48

Ячейки блокнота. 49

Режим редактирования и командный режим.. 51

Порядок выполнения имеет значение. 52

Завершение работы блокнотов Jupyter 52

Visual Studio Code. 53

Установка и настройка. 55

Запуск скрипта на Python. 57

Заключение. 61

Глава 3. Приступая к работе с Python. 63

Типы данных. 63

Объекты.. 64

Числовые типы.. 65

Логический тип данных. 67

Строки. 69

Индексирование и нарезка. 70

Индексирование. 70

Нарезка (Slicing) 71

Структуры данных. 72

Списки. 72

Словари. 75

Кортежи. 76

Множества. 77

Управление потоком.. 78

Блоки кода и оператор pass. 78

Оператор if и условные выражения. 79

Циклы for и while. 80

Анализ списков, словарей и множеств. 83

Организация кода. 84

Функции. 84

Модули и инструкция по импорту. 86

Класс datetime. 88

PEP 8: Руководство по стилю для кода Python. 90

PEP 8 и VS Code. 92

Подсказки по типам.. 93

Заключение. 94

Часть II. Введение в pandas. 95

Глава 4. Основы NumPy. 97

Начало работы с NumPy. 97

Массив NumPy. 97

Векторизация и транслирование. 99

Универсальные функции (ufunc) 101

Создание и манипулирование массивами. 102

Получение и установка элементов массива. 102

Полезные конструкторы массива. 103

Представления и копирование. 103

Заключение. 104

Глава 5. Анализ данных с помощью pandas. 105

DataFrame и Series. 105

Индекс. 108

Столбцы.. 110

Манипулирование данными. 111

Выбор данных. 111

Изменение данных. 117

Отсутствующие данные. 120

Дубликаты данных. 122

Арифметические операции. 123

Работа с текстовой колонкой. 125

Использование функции. 126

Просмотр и копирование. 127

Объединение DataFrames. 127

Объединение. 128

Объединение и слияние. 129

Описательная статистика и агрегация данных. 132

Описательная статистика. 132

Группировка. 133

Pivoting и Melting. 134

Построение графиков. 135

Matplotlib. 135

Plotly. 137

Импорт и экспорт DataFrames. 140

Экспорт CSV файлов. 141

Импорт CSV-файлов. 142

Заключение. 144

Глава 6. Анализ временны́х рядов с помощью pandas. 145

DatetimeIndex. 146

Создание DatetimeIndex. 146

Фильтрация DatetimeIndex. 148

Работа с часовыми поясами. 150

Общие манипуляции с временны́ми рядами. 151

Смещение и процентные изменения. 151

Пересчет и корреляция. 153

Повторная выборка. 156

Скользящее окно. 157

Ограничения при работе с pandas. 158

Заключение. 159

Часть III. Чтение и запись файлов Excel без Excel. 161

Глава 7. Манипулирование файлами Excel с помощью pandas. 163

Тематическое исследование: отчетность в Excel 163

Чтение и запись файлов Excel с помощью pandas. 167

Функция read_excel и класс ExcelFile. 167

Метод to_excel и класс ExcelWriter 173

Ограничения при работе pandas с файлами Excel 174

Заключение. 175

Глава 8. Манипулирование файлами Excel с помощью пакетов
reader и writer. 176

Пакеты reader и writer 176

В каких случаях какой пакет используется. 177

Модуль excel.py. 178

OpenPyXL. 180

XlsxWriter 184

pyxlsb. 186

xlrd, xlwt, and xlutils. 187

Работа с xlwt 189

Расширенный круг задач для reader и writer 190

Работа с большими файлами Excel 191

Форматирование данных в Excel 195

Тематическое исследование (повторное): отчетность в Excel 200

Заключение. 201

Часть IV. Программирование приложения Excel
с помощью xlwings. 205

Глава 9. Автоматизация Excel 205

Начало работы с xlwings. 206

Использование Excel в качестве средства просмотра данных. 206

Объектная модель Excel 208

Запуск кода VBA.. 215

Конвертеры, опции и коллекции. 216

Работа с DataFrames. 216

Конвертеры и опции. 217

Диаграммы, рисунки и определенные имена. 220

Случай из практики (повторный анализ): отчетность в Excel 223

Расширенные темы xlwings. 225

Основы xlwings. 225

Улучшение производительности. 227

Как действовать при отсутствии недостающих функций. 229

Заключение. 230

Глава 10. Инструменты Excel на основе технологии Python. 231

Использование Excel в качестве интерфейса xlwings. 231

Надстройка Excel 232

Команда Quickstart 233

Run Main. 234

Функция RunPython. 235

Развертывание. 240

Зависимости Python. 240

Автономные рабочие книги: избавление от надстройки xlwings. 241

Иерархия конфигурации. 242

Настройки. 243

Заключение. 244

Глава 11. Трекер пакетов Python. 245

Что мы будем создавать. 245

Основной функционал. 247

Web APIs. 248

Базы данных. 251

Исключения. 260

Структура приложения. 263

Внешний интерфейс. 264

Внутренний интерфейс. 268

Отладка. 271

Заключение. 273

Глава 12. Функции, определяемые пользователем (UDFs) 274

Начало работы с UDF. 274

UDF Quickstart 275

Тематическое исследование: Google Trends. 280

Введение в Google Trends. 280

Работа с DataFrames и динамическими массивами. 282

Получение данных из Google Trends. 287

Построение графиков с помощью UDF. 291

Отладка UDFs. 293

Дополнительные вопросы по UDF. 294

Базовая оптимизация производительности. 295

Кэширование. 297

Декоратор Sub. 299

Заключение. 301

Часть V. Приложения. 303

Приложение A. Среда Conda. 305

Создание новой среды Conda. 305

Отключение автоматической активации. 307

Приложение B. Расширенные функциональные возможности VS Code. 308

Отладчик. 308

Блокноты Jupyter в VS Code. 310

Запуск блокнотов Jupyter 310

Сценарии Python с ячейками кода. 311

Приложение C. Дополнительные концепции Python. 313

Классы и объекты.. 313

Работа с объектами datetime с учетом временной зоны.. 315

Изменяемые и неизменяемые объекты Python. 316

Вызов функций с изменяемыми объектами в качестве аргументов. 317

Функции с изменяемыми объектами в качестве аргументов
по умолчанию.. 319

Об авторе. 321

Обложка. 323

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

 

Зумштейн Феликс

Феликс Зумштейн — создатель xlwings, популярного пакета с открытым исходным кодом, который позволяет автоматизировать Excel с помощью Python в Windows и macOS. Как генеральный директор компании xltrail и менеджер одноименной системы контроля версий для файлов Excel, он имеет глубокое представление о типичных случаях использования и проблемах с Excel в различных областях.

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

Уже в продаже: “Проектирование систем машинного обучения”

Проектирование систем машинного обучения

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

Книга адресована программистам и специалистам по data science

Ключевые особенности

  • Инжиниринг данных и выбор нужных метрик, помогающих правильно решить задачу
  • Автоматизация процесса, позволяющая непрерывно разрабатывать, оценивать, развёртывать и обновлять модели
  • Разработка мониторинговой системы, позволяющей быстро обнаруживать и устранять проблемы, которые могут возникать в реальном использовании
  • Выстраивание платформы машинного обучения, которая была бы применима сразу во многих практических ситуациях
  • Ответственный подход к разработке систем машинного обучения

Чем эта книга не является

Эта книга не является введением в ML. Существует множество книг, курсов и ресурсов, посвященных теориям машинного обучения, и поэтому в этой книге эти концепции уходят в сторону, чтобы сосредоточиться на практических аспектах машинного обучения. Чтобы быть конкретным, книга предполагает, что читатели имеют базовое понимание следующих тем:

  • Модели машинного обучения , такие как кластеризация, логистическая регрессия, деревья решений, совместная фильтрация и различные архитектуры нейронных сетей, включая упреждающую, рекуррентную, сверточную и трансформирующую.
  • Методы машинного обучения , такие как контролируемое и неконтролируемое, градиентный спуск, функция цели/потери, регуляризация, обобщение и настройка гиперпараметров.
  • Такие метрики , как точность, F1, точность, полнота, ROC, среднеквадратическая ошибка и логарифмическая вероятность.
  • Статистические концепции, такие как дисперсия, вероятность и нормальное/длинное распределение.
  • Общие задачи машинного обучения, такие как языковое моделирование, обнаружение аномалий, классификация объектов и машинный перевод.

Книга основана на стэнфордском учебном курсе

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

Отзывы о книге……………………………………………………………………………………… 13

Предисловие…………………………………………………………………………………………… 15

Для кого предназначена эта книга?…………………………………………………………………………………………. 16

Чего вы не найдете в книге?………………………………………………………………………………………………………. 17

Навигация по книге……………………………………………………………………………………………………………………. 18

Репозиторий GitHub и сообщество…………………………………………………………………………………………… 19

Используемые обозначения………………………………………………………………………………………………………. 19

Использование примеров кода…………………………………………………………………………………………………. 20

Платформа онлайн-обучения O’Reilly……………………………………………………………………………………… 20

Как с нами связаться?………………………………………………………………………………………………………………… 21

Благодарности…………………………………………………………………………………………………………………………… 21

Глава 1. Обзор ML-систем……………………………………………………………………… 23

Когда использовать ML?…………………………………………………………………………………………………………… 24

Примеры использования машинного обучения………………………………………………………………………. 30

Понимание систем машинного обучения………………………………………………………………………………… 33

Машинное обучение в исследованиях и в производстве……………………………………………. 33

Различные участники процесса и их требования……………………………………………….. 34

Приоритеты вычислений……………………………………………………………………………………….. 36

Данные…………………………………………………………………………………………………………………….. 39

Объективность………………………………………………………………………………………………………… 40

Интерпретируемость……………………………………………………………………………………………… 41

Обсуждение…………………………………………………………………………………………………………….. 42

ML-системы в сравнении с традиционным ПО……………………………………………………………. 42

Итоги…………………………………………………………………………………………………………………………………………… 44

Глава 2. Введение в проектирование ML-систем……………………………………. 46

Цели для бизнеса и для ML……………………………………………………………………………………………………….. 46

Требования к ML-системам………………………………………………………………………………………………………. 49

Надежность…………………………………………………………………………………………………………………….. 49

Масштабируемость………………………………………………………………………………………………………… 50

Обслуживаемость…………………………………………………………………………………………………………… 51

Адаптивность………………………………………………………………………………………………………………….. 51

Итеративный процесс………………………………………………………………………………………………………………… 52

Формулирование ML-задач……………………………………………………………………………………………………… 54

Типы ML-задач……………………………………………………………………………………………………………….. 55

Классификация или регрессия?…………………………………………………………………………….. 55

Бинарная или мультиклассовая классификация?……………………………………………….. 56

Мультиклассовая или многометочная классификация?…………………………………….. 57

Несколько способов сформулировать задачу…………………………………………………….. 58

Целевые функции……………………………………………………………………………………………………………. 59

Разделение целей……………………………………………………………………………………………………. 60

Данные или разум?……………………………………………………………………………………………………………………. 62

Итоги…………………………………………………………………………………………………………………………………………… 64

Глава 3. Основы проектирования баз данных……………………………………….. 67

Источники данных…………………………………………………………………………………………………………………….. 68

Форматы данных……………………………………………………………………………………………………………………….. 70

JSON…………………………………………………………………………………………………………………………………. 71

Row-Major или Column-Major?……………………………………………………………………………………… 72

Текстовый формат или двоичный?……………………………………………………………………………….. 74

Модели данных………………………………………………………………………………………………………………………….. 75

Реляционная модель……………………………………………………………………………………………………….. 76

NoSQL………………………………………………………………………………………………………………………………. 79

Документальная модель………………………………………………………………………………………… 80

Графовая модель……………………………………………………………………………………………………. 81

Структурированные или неструктурированные данные?………………………………………….. 82

Хранение и обработка данных…………………………………………………………………………………………………. 84

Транзакционная и аналитическая обработка данных……………………………………………….. 84

ETL: извлечение, преобразование, загрузка………………………………………………………………… 87

Режимы потока данных…………………………………………………………………………………………………………….. 89

Передача данных через базы данных………………………………………………………………………….. 89

Передача данных через сервисы…………………………………………………………………………………… 89

Передача данных в режиме реального времени………………………………………………………….. 91

Пакетная обработка или потоковая?……………………………………………………………………………………….. 93

Итоги…………………………………………………………………………………………………………………………………………… 95

Глава 4. Обучающие данные…………………………………………………………………. 98

Семплирование………………………………………………………………………………………………………………………….. 99

Невероятностное семплирование…………………………………………………………………………………. 99

Простое случайное семплирование……………………………………………………………………………. 101

Стратифицированное семплирование………………………………………………………………………… 101

Взвешенное семплирование………………………………………………………………………………………… 101

Резервуарное семплирование……………………………………………………………………………………… 102

Семплирование по важности………………………………………………………………………………………. 103

Разметка……………………………………………………………………………………………………………………………………. 104

Ручные метки………………………………………………………………………………………………………………… 104

Множественность меток………………………………………………………………………………………. 105

Родословная данных……………………………………………………………………………………………. 106

Естественные метки……………………………………………………………………………………………………… 107

Длина петли обратной связи……………………………………………………………………………….. 109

Справляемся с недостатками меток……………………………………………………………………………. 110

Слабый контроль…………………………………………………………………………………………………. 111

Частичный контроль……………………………………………………………………………………………. 114

Трансферное обучение………………………………………………………………………………………… 115

Активное обучение………………………………………………………………………………………………. 116

Несбалансированность классов…………………………………………………………………………………………….. 118

Проблемы несбалансированности классов……………………………………………………………….. 118

Справляемся с несбалансированностью классов……………………………………………………… 120

Использование правильных оценочных метрик……………………………………………….. 121

Методы уровня данных: ресемплинг…………………………………………………………………. 124

Методы уровня алгоритма………………………………………………………………………………….. 125

Обучение с учетом затрат…………………………………………………………………………… 126

Потеря, сбалансированная по классу……………………………………………………….. 126

Фокальная потеря………………………………………………………………………………………… 127

Аугментация данных……………………………………………………………………………………………………………….. 128

Простые преобразования с сохранением меток………………………………………………………… 128

Возмущения…………………………………………………………………………………………………………………… 129

Синтез данных………………………………………………………………………………………………………………. 131

Итоги…………………………………………………………………………………………………………………………………………. 132

Глава 5. Конструирование признаков………………………………………………….. 135

Признаки сконструированные или автоматически генерируемые?……………………………………. 135

Общий обзор методов конструирования признаков…………………………………………………………….. 138

Обработка отсутствующих значений…………………………………………………………………………. 138

Удаление пропусков…………………………………………………………………………………………….. 140

Заполнение пропусков…………………………………………………………………………………………. 141

Масштабирование……………………………………………………………………………………………………….. 141

Дискретизация………………………………………………………………………………………………………………. 143

Кодирование категориальных признаков………………………………………………………………….. 144

Пересечение признаков………………………………………………………………………………………………… 146

Дискретный и непрерывный позиционный эмбеддинг……………………………………………… 147

Утечка данных…………………………………………………………………………………………………………………………. 149

Основные причины утечки данных…………………………………………………………………………….. 151

Случайная разбивка коррелированных по времени данных вместо разбивки по времени              151

Масштабирование перед разделением………………………………………………………………. 152

Заполнение отсутствующих данных статистикой из тестовой части…………….. 152

Плохая обработка дублированных данных перед разделением…………………….. 152

Групповая утечка…………………………………………………………………………………………………. 153

Утечка из процесса генерации данных………………………………………………………………. 153

Обнаружение утечек данных………………………………………………………………………………………. 154

Конструирование хороших признаков………………………………………………………………………………….. 154

Важность признаков…………………………………………………………………………………………………….. 155

Обобщение признаков………………………………………………………………………………………………….. 157

Итоги…………………………………………………………………………………………………………………………………………. 158

Глава 6. Разработка модели и ее автономная оценка……………………………. 161

Разработка и обучение модели………………………………………………………………………………………………. 162

Оценка ML-моделей……………………………………………………………………………………………………… 162

Шесть шагов по выбору модели…………………………………………………………………………. 163

Избегайте ловушки «хочу самое новое»……………………………………………………. 164

Начните с простых моделей……………………………………………………………………….. 164

Избегайте предубеждений при выборе модели………………………………………… 165

Оценивайте хорошую производительность в сравнении с предыдущими хорошими показателями производительности……………………………………………………………………………………. 165

Проанализируйте компромиссы………………………………………………………………… 166

Поймите предположения вашей модели……………………………………………………. 167

Ансамбли………………………………………………………………………………………………………………………. 168

Бэггинг…………………………………………………………………………………………………………………… 170

Бустинг………………………………………………………………………………………………………………….. 171

Стекинг………………………………………………………………………………………………………………….. 172

Отслеживание экспериментов и управление версиями…………………………………………….. 173

Отслеживание экспериментов…………………………………………………………………………….. 173

Управление версиями…………………………………………………………………………………………… 175

Отладка ML-моделей…………………………………………………………………………………………… 176

Распределенное обучение……………………………………………………………………………………………. 179

Параллелизм данных…………………………………………………………………………………………… 180

Параллелизм моделей………………………………………………………………………………………….. 181

AutoML………………………………………………………………………………………………………………………….. 183

Программная часть AutoML: настройка гиперпараметров…………………………….. 183

Аппаратная часть AutoML: архитектурный поиск и оптимизаторы обучения 185

Четыре этапа разработки ML-модели………………………………………………………………………… 186

Этап 1. До машинного обучения………………………………………………………………………… 187

Этап 2. Простейшие ML-модели…………………………………………………………………………. 187

Этап 3. Оптимизация простых моделей……………………………………………………………… 188

Этап 4. Сложные модели…………………………………………………………………………………….. 188

Автономная оценка модели…………………………………………………………………………………………………….. 188

Базовые конфигурации………………………………………………………………………………………………… 189

Методы оценки……………………………………………………………………………………………………………… 191

Тест на возмущение……………………………………………………………………………………………… 191

Тест на инвариантность………………………………………………………………………………………. 192

Тест на ожидаемые изменения……………………………………………………………………………. 192

Калибровка модели……………………………………………………………………………………………… 193

Оценка достоверности…………………………………………………………………………………………. 194

Оценка на основе срезов……………………………………………………………………………………… 195

Итоги…………………………………………………………………………………………………………………………………………. 198

Глава 7. Развертывание модели и совершенствование
ее сервиса прогнозирования…………………………………………………………………. 201

Мифы о развертывании ML……………………………………………………………………………………………………. 203

Миф 1: вы можете развертывать только одну или две модели за раз……………………… 203

Миф 2: если мы ничего не делаем, производительность модели
остается такой же…………………………………………………………………………………………………………. 204

Миф 3: нет нужды в частом обновлении модели………………………………………………………. 205

Миф 4: большинству ML-инженеров не нужно беспокоиться
о масштабировании……………………………………………………………………………………………………… 205

Пакетное прогнозирование или онлайн-прогнозирование?………………………………………………… 206

От пакетного прогнозирования к онлайн-прогнозированию……………………………………. 209

Объединение пакетного и потокового конвейеров……………………………………………………. 211

Сжатие модели…………………………………………………………………………………………………………………………. 213

Низкоранговая факторизация……………………………………………………………………………………… 214

Дистилляция знаний…………………………………………………………………………………………………….. 215

Прунинг…………………………………………………………………………………………………………………………. 215

Квантизация………………………………………………………………………………………………………………….. 216

ML в облаке и на периферийных устройствах……………………………………………………………………… 218

Компиляция и оптимизация модели под граничные устройства……………………………… 220

Оптимизация модели……………………………………………………………………………………………. 222

Использование ML для оптимизации ML………………………………………………………….. 224

ML в браузерах…………………………………………………………………………………………………………….. 227

Итоги…………………………………………………………………………………………………………………………………………. 228

Глава 8. Сдвиги в распределении данных и мониторинг……………………… 232

Причины сбоев ML-систем……………………………………………………………………………………………………… 233

Сбои программной системы………………………………………………………………………………………… 234

Сбои, характерные для ML…………………………………………………………………………………………. 235

Данные в производстве отличаются от данных при обучении……………………….. 235

Граничные случаи……………………………………………………………………………………………….. 237

Вырожденные петли обратной связи…………………………………………………………………. 238

Обнаружение вырожденных петель обратной связи……………………………….. 240

Исправление вырожденных петель обратной связи…………………………………. 240

Сдвиги в распределении данных……………………………………………………………………………………………. 242

Типы сдвигов данных…………………………………………………………………………………………………… 242

Ковариационный сдвиг……………………………………………………………………………………….. 243

Сдвиг меток…………………………………………………………………………………………………………… 245

Концептуальный дрейф……………………………………………………………………………………….. 245

Общие сдвиги в распределении данных…………………………………………………………………….. 246

Обнаружение сдвигов в распределении данных……………………………………………………….. 247

Статистические методы………………………………………………………………………………………. 247

Временные рамки окон для обнаружения сдвигов……………………………………………. 249

Устранение сдвигов распределения данных……………………………………………………………… 252

Мониторинг и наблюдаемость……………………………………………………………………………………………….. 254

Специфичные для мониторинга ML метрики…………………………………………………………….. 255

Мониторинг метрик, связанных с точностью……………………………………………………. 255

Мониторинг прогнозов………………………………………………………………………………………… 256

Мониторинг признаков………………………………………………………………………………………… 257

Мониторинг сырых данных………………………………………………………………………………… 259

Инструменты мониторинга………………………………………………………………………………………….. 260

Журналы……………………………………………………………………………………………………………….. 260

Информационные панели……………………………………………………………………………………. 261

Оповещения…………………………………………………………………………………………………………… 262

Наблюдаемость……………………………………………………………………………………………………………. 263

Итоги…………………………………………………………………………………………………………………………………………. 265

Глава 9. Непрерывное обучение и тестирование в производстве………….. 268

Непрерывное обучение…………………………………………………………………………………………………………… 269

Переобучение без сохранения состояния или обучение с его сохранением?…………. 270

Почему нужно непрерывное обучение?……………………………………………………………………… 272

Проблемы непрерывного обучения…………………………………………………………………………….. 274

Доступ к свежим данным…………………………………………………………………………………….. 274

Оценка…………………………………………………………………………………………………………………… 276

Алгоритмы…………………………………………………………………………………………………………….. 277

Четыре этапа непрерывного обучения……………………………………………………………………….. 278

Этап 1: ручное переобучение без сохранения состояния………………………………… 278

Этап 2: автоматизированное переобучение……………………………………………………… 279

Требования…………………………………………………………………………………………………… 280

Этап 3: автоматизированное обучение с сохранением состояния………………….. 281

Требования…………………………………………………………………………………………………… 281

Этап 4: непрерывное обучение…………………………………………………………………………… 282

Требования…………………………………………………………………………………………………… 282

Как часто надо обновлять модели?……………………………………………………………………………. 282

Ценность свежих данных…………………………………………………………………………………….. 283

Итерация данных или итерация моделей?…………………………………………………………. 284

Тестирование в производстве…………………………………………………………………………………………………. 284

Теневое развертывание………………………………………………………………………………………………… 285

A/B-тестирование…………………………………………………………………………………………………………. 286

Канареечный релиз………………………………………………………………………………………………………. 287

Тестирование чередованием……………………………………………………………………………………….. 288

Бандиты…………………………………………………………………………………………………………………………. 290

Контекстные бандиты как стратегия исследования…………………………………………. 291

Итоги…………………………………………………………………………………………………………………………………………. 293

Глава 10. Инфраструктура и инструменты для MLOps…………………………. 296

Хранение и вычисление…………………………………………………………………………………………………………… 299

Публичное облако или собственный ЦОД?……………………………………………………………….. 302

Среда разработки……………………………………………………………………………………………………………………. 305

Настройка среды разработки……………………………………………………………………………………… 305

IDE…………………………………………………………………………………………………………………………. 306

Стандартизация среды разработки……………………………………………………………………………. 308

От разработки к производству: контейнеры………………………………………………………………. 310

Управление ресурсами……………………………………………………………………………………………………………. 313

Cron, планировщик и оркестратор……………………………………………………………………………… 313

Управление рабочим процессом обработки данных………………………………………………… 316

ML-платформа…………………………………………………………………………………………………………………………. 321

Развертывание модели…………………………………………………………………………………………………. 322

Хранилища моделей…………………………………………………………………………………………………….. 323

Хранилища признаков…………………………………………………………………………………………………. 327

Создать или купить?…………………………………………………………………………………………………….. 329

Итоги…………………………………………………………………………………………………………………………………………. 331

Глава 11. Человеческая сторона машинного обучения…………………………. 334

Пользовательский опыт…………………………………………………………………………………………………………… 334

Обеспечение согласованности……………………………………………………………………………………. 335

Борьба с «преимущественно верными» прогнозами…………………………………………………. 335

Система бэкапов…………………………………………………………………………………………………………… 337

Структура команды…………………………………………………………………………………………………………………. 337

Кросс-функциональное взаимодействие между командами…………………………………….. 338

«Универсальные» специалисты по обработке данных…………………………………………….. 339

Подход 1: создание отдельных команд для управления процессами…………….. 339

Подход 2: специалисты по обработке данных управляют всем процессом…… 340

Ответственный ИИ…………………………………………………………………………………………………………………… 342

Безответственный ИИ: исследования инцидентов…………………………………………………….. 343

Пример 1: предвзятость автоматизированной оценки……………………………………… 344

Провал 1: постановка неправильной цели………………………………………………… 345

Провал 2: недостаточная оценка присущих модели предубеждений……. 345

Провал 3: отсутствие прозрачности………………………………………………………….. 346

Пример 2: опасность «анонимизированных» данных………………………………………. 347

Советы по созданию ответственного ИИ……………………………………………………………………. 349

Выясните источники искажений модели……………………………………………………………. 349

Поймите ограничения подхода, основанного на данных………………………………… 351

Оцените компромиссы между разными пожеланиями……………………………………… 351

Продумывайте всё заранее………………………………………………………………………………….. 352

Создайте карточки моделей………………………………………………………………………………… 353

Установите процессы для смягчения смещений………………………………………………… 354

Будьте в курсе тенденций ответственного ИИ…………………………………………………… 355

Итоги…………………………………………………………………………………………………………………………………………. 355

Заключение………………………………………………………………………………………….. 358

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

Об авторе……………………………………………………………………………………………… 365

Об обложке…………………………………………………………………………………………… 366

Чип Хьюен

Чип Хьюен – основательница компании Claypot AI. Занималась разработкой систем машинного обучения в компаниях NVIDIA, Snorkel AI, Netflix, Primer, преподаёт в Стэнфордском университете курс CS 329S по проектированию систем машинного обучения.

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

Встречайте: “Excel для школьников. Практикум”

Excel для школьников. Практикум

Описание

Практическое пособие по использованию Excel для решения задач, типичных для разных сфер деятельности школьника. Двигаясь от задачи к задаче, читатель уясняет принципы работы электронных таблиц и осваивает нужные инструменты. Теория изложена просто, сопровождается примерами, авторскими рисунками, заданиями практикума. Ученики 8-9 классов научатся выполнять расчёты, оформлять таблицы по стандартам, строить диаграммы для презентаций, выполнять задания ОГЭ. Ученики 10-11 классов освоят решение задач ЕГЭ, выработают умение видеть за постановкой задачи структуры данных, что понадобится в будущем и программисту, и системному аналитику, и менеджеру. А в качестве бонуса смогут познакомиться с решением оптимизационных задач с помощью Excel.

Электронный архив на сайте издательства содержит необходимые для работы файлы.

Для школьников 8-11 классов, учащихся средних специальных учебных заведений  и преподавателей

Практическое пособие по использованию Excel для решения задач, типичных для разных сфер деятельности школьника.

Электронная таблица нужна сегодняшнему школьнику не только для ЕГЭ и ОГЭ. Эффективной работы с информацией требуют от него и повседневная жизнь, и хобби, и подработки. Excel — полезнейший универсальный инструмент, вполне доступный старшекласснику.

Первые четыре главы книги вполне покрывают повседневные потребности школьника: выполнить расчёты для проекта, оформить по стандартам таблицы в докладе, сделать убедительные диаграммы для презентации и, разумеется, выполнить задания ОГЭ.

Следующие три главы – это и уровень ЕГЭ, и выработка умения видеть за постановкой задачи структуры данных (а оно нужно и программисту, и системному аналитику, и менеджеру). Последняя глава демонстрирует одну из впечатляющих возможностей Excel — решение оптимизационных задач. Это уже уровень повыше школьного.

В каждой главе сначала на примере решения конкретных проблем излагается нужная теория, затем следует практикум — несколько разнообразных задач, решая которые, читатель сможет закрепить нужные навыки. Все необходимые для работы файлы есть в электронном архиве.

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

Крылова Елена Геннадьевна – преподаватель Высшей инженерной школы Санкт-Петербургского Политехнического университета Петра Великого (Академия информатики для школьников), автор книг «Нескучная информатика: теория в историях, задачи, тесты, лайфхаки», «Python для детей, которые пока не программируют», курсов для детей и взрослых, организатор олимпиад по информатике и программированию, интеллектуальных игр, квестов. Сфера профессиональных интересов — методики обучения работе с информацией и программированию, адаптация образовательного контента к особенностям восприятия современных школьников.

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

Новая книга: “Python, Django и Bootstrap для начинающих”

Python, Django и Bootstrap для начинающих

Книга посвящена вопросам разработки веб-приложений с использованием языка Python, фреймворков Django, Bootstrap и интерактивной среды разработки PyCharm. Рассмотрены основные технологии и рабочие инструменты создания веб-приложений. Описаны фреймворки Django, Bootsrtap и структура создаваемых веб-приложений. На простых примерах показана обработка и маршрутизация запросов пользователей, формирование ответных веб-страниц. Рассмотрено создание шаблонов веб-страниц и форм для пользователей. Показано взаимодействие пользователей с различными типами баз данных через модели. Описана работа с базами данных через встроенные в Django классы без использования SQL-запросов. Приведен пошаговый пример создания сайта от его проектирования, до формирования программных модулей и развертывания сайта в Интернете с базами данных SQLite и MySQL. Электронный архив на сайте издательства содержит коды всех примеров.

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

ОСВАИВАЕМ СОВРЕМЕННЫЙ И УДОБНЫЙ ИНСТРУМЕНТАРИЙ ДЛЯ СОЗДАНИЯ ВЕБ-ПРИЛОЖЕНИЙ

• Веб-технологии
• Инструментальные средства для разработки веб-приложений
• Знакомство с фреймворком Django
• Знакомство с фреймворком Bootstrap
• Интерактивная среда разработки PyCharm
• Обработка и маршрутизация запросов
• Шаблоны веб-страниц
• Формы и модели данных
• Веб-сайт и веб-интерфейс для пользователей
• Встроенная панель для администрирования сайта
• Пользовательские формы
• Публикация сайта в Интернете

Книгу “Python, Django и Bootstrap для начинающих” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Предисловие…………………………………………………………………………………………….. 9

Глава 1. Инструментальные средства для разработки веб-приложений…. 15

1.1. Интерпретатор Python………………………………………………………………………………………………………… 16

1.1.1. Установка Python в Windows…………………………………………………………………………………… 17

1.1.2. Установка Python в Linux………………………………………………………………………………………… 20

1.1.3. Проверка интерпретатора Python…………………………………………………………………………… 20

1.2. Интерактивная среда разработки программного кода PyCharm…………………………………… 21

1.2.1. Установка PyCharm в Windows……………………………………………………………………………….. 22

1.2.2. Установка PyCharm в Linux…………………………………………………………………………………….. 24

1.2.3. Проверка PyCharm……………………………………………………………………………………………………. 25

1.3. Установка пакетов в Python с использованием менеджера пакетов pip………………………… 28

1.3.1. Репозиторий пакетов программных средств PyPI…………………………………………………. 28

1.3.2. pip — менеджер пакетов в Python……………………………………………………………………………. 29

1.3.3. Использование менеджера пакетов pip…………………………………………………………………… 30

1.4. Фреймворк Django для разработки веб-приложений………………………………………………………. 31

1.5. Менеджер баз данных SQLiteStudio………………………………………………………………………………….. 35

1.6. Краткие итоги……………………………………………………………………………………………………………………… 37

Глава 2. Веб-технологии и базовые сведения об HTML………………………….. 39

2.1. Базовые сведения о веб-технологиях………………………………………………………………………………… 39

2.1.1. Технологии клиентского программирования…………………………………………………………. 41

2.1.2. Технологии серверного программирования…………………………………………………………… 42

2.1.3. Фреймворки Django и Bootstrap для разработки веб-приложений………………………. 43

2.2. Базовые сведения о HTML…………………………………………………………………………………………………. 45

2.2.1. Теги для представления текста на HTML-страницах…………………………………………… 47

2.2.2. Списки……………………………………………………………………………………………………………………….. 49

2.2.3. Таблицы…………………………………………………………………………………………………………………….. 51

2.2.4. Тег div………………………………………………………………………………………………………………………… 55

2.2.5. Гиперссылки……………………………………………………………………………………………………………… 56

2.3. Каскадные таблицы стилей (CSS)……………………………………………………………………………………… 56

2.4. Возможности использования JavaScript……………………………………………………………………………. 58

2.5. Краткие итоги……………………………………………………………………………………………………………………… 60

Глава 3. Макетирование HTML-страниц с фреймворком Bootstrap……….. 61

3.1. Технологические возможности фреймворка Bootstrap……………………………………………………. 61

3.2. Получение файлов фреймворка Bootstrap………………………………………………………………………… 63

3.3. Контейнеры и сетка Bootstrap……………………………………………………………………………………………. 66

3.3.1. Адаптивные контейнеры………………………………………………………………………………………….. 67

3.3.2. Ряды или строки (row)………………………………………………………………………………………………. 69

3.3.3. Адаптивные блоки (col)……………………………………………………………………………………………. 69

3.3.4. Адаптивные блоки без указания числа колонок……………………………………………………. 71

3.3.5. Расположение адаптивных блоков…………………………………………………………………………. 71

3.4. Верстка макета HTML-страниц………………………………………………………………………………………… 72

3.5. Подключение файлов фреймворка Bootstrap к проекту………………………………………………….. 75

3.6. Задание цвета элементам HTML-страниц……………………………………………………………………….. 77

3.7. Задание отступов элементам макета HTML-страниц…………………………………………………….. 80

3.8. Выравнивание содержимого в адаптивных блоках HTML-страниц……………………………… 84

3.9. Обозначение границ элементов макета HTML-страниц…………………………………………………. 86

3.10. Пример использования адаптивных контейнеров…………………………………………………………. 93

3.11. Таблицы Bootstrap……………………………………………………………………………………………………………. 97

3.12. Краткие итоги………………………………………………………………………………………………………………….. 102

Глава 4. Знакомимся с фреймворком Django………………………………………… 103

4.1. Общие представления о Django……………………………………………………………………………………….. 103

4.2. Структура приложений на Django………………………………………………………………………………….. 105

4.3. Первый проект на Django…………………………………………………………………………………………………. 107

4.4. Первое приложение на Django…………………………………………………………………………………………. 115

4.5. Краткие итоги……………………………………………………………………………………………………………………. 121

Глава 5. Представления и маршрутизация…………………………………………… 123

5.1. Обработка запросов пользователей……………………………………………………………………………….. 123

5.2. Маршрутизация запросов пользователей в функциях path и re_path…………………………. 126

5.3. Очередность маршрутов………………………………………………………………………………………………….. 129

5.4. Основные элементы синтаксиса регулярных выражений…………………………………………….. 129

5.5. Параметры представлений………………………………………………………………………………………………. 130

5.5.1. Определение параметров через функцию re_path()…………………………………………….. 130

5.5.2. Определение параметров через функцию path()………………………………………………….. 134

5.5.3. Определение параметров по умолчанию в функции path()………………………………… 136

5.6. Параметры строки запроса пользователя………………………………………………………………………. 137

5.7. Переадресация и отправка пользователю статусных кодов………………………………………… 140

5.7.1. Переадресация………………………………………………………………………………………………………… 140

5.7.2. Отправка пользователю статусных кодов…………………………………………………………… 142

5.8. Краткие итоги……………………………………………………………………………………………………………………. 144

Глава 6. Шаблоны в Django…………………………………………………………………. 145

6.1. Создание простейшего шаблона…………………………………………………………………………………….. 145

6.2. Создание каталога для шаблонов приложений…………………………………………………………….. 152

6.3. Класс TemplateResponse…………………………………………………………………………………………………… 155

6.4. Язык шаблонов (DTL)……………………………………………………………………………………………………….. 156

6.5. Передача данных в шаблоны через переменные…………………………………………………………… 158

6.6. Передача в шаблон сложных данных……………………………………………………………………………. 161

6.7. Использование тегов в шаблонах Django……………………………………………………………………….. 163

6.8. Статические файлы в шаблонах Django…………………………………………………………………………. 172

6.8.1. Основы каскадных таблиц стилей………………………………………………………………………… 172

6.8.2. Использование статических файлов в шаблонах Django…………………………………… 176

6.9. Использование класса TemplateView для вызова шаблонов HTML-страниц……………… 182

6.10. Наследование шаблонов……………………………………………………………………………………………….. 187

6.11. Создание многостраничного сайта на основе шаблонов Django………………………………. 190

6.12. Формирование URL-адресов в шаблонах Django……………………………………………………….. 197

6.13. Интеграция шаблонов Django с фреймворком Bootstrap…………………………………………….. 200

6.14. Использование специальных тегов в шаблонах Django……………………………………………… 203

6.14.1. Тег для вывода текущей даты и времени……………………………………………………………. 203

6.14.2. Теги Bootstrap для вывода информации в адаптивных блоках……………………….. 205

6.14.3. Теги Bootstrap и Django для представления списков в виде таблицы……………… 207

6.15. Краткие итоги………………………………………………………………………………………………………………….. 209

Глава 7. Формы……………………………………………………………………………………. 211

7.1. Процесс управления формами в Django………………………………………………………………………….. 211

7.2. Определение форм…………………………………………………………………………………………………………….. 214

7.3. Использование полей в формах Django………………………………………………………………………….. 220

7.3.1. Настройка среды для изучения полей разных типов………………………………………….. 220

7.3.2. Типы полей в формах Django и их общие параметры…………………………………………. 222

7.3.3. Поле BooleanField для выбора решения: да/нет…………………………………………………. 225

7.3.4. Поле CharField для ввода текста………………………………………………………………………….. 226

7.3.5. Поле ChoiceField для выбора данных из списка…………………………………………………. 228

7.3.6. Поле DateField для ввода даты……………………………………………………………………………… 229

7.3.7. Поле DateTimeField для ввода даты и времени……………………………………………………. 230

7.3.8. Поле DecimalField для ввода десятичных чисел…………………………………………………. 230

7.3.9. Поле DurationField для ввода промежутка времени…………………………………………… 232

7.3.10. Поле EmailField для ввода электронного адреса………………………………………………. 233

7.3.11. Поле FileField для выбора файлов……………………………………………………………………… 234

7.3.12. Поле FilePathField для создания списка файлов………………………………………………. 235

7.3.13. Поле FloatField для ввода чисел с плавающей точкой…………………………………….. 238

7.3.14. Поле GenericIPAddressField для ввода IP-адреса……………………………………………… 238

7.3.15. Поле ImageField для выбора файлов изображений…………………………………………… 239

7.3.16. Поле IntegerField для ввода целых чисел…………………………………………………………… 240

7.3.17. Поле JsonField для данных формата JSON………………………………………………………… 241

7.3.18. Поле MultipleChoiceField для выбора данных из списка…………………………………. 243

7.3.19. Поле NullBooleanField для выбора решения: да/нет………………………………………… 244

7.3.20. Поле RegexField для ввода текста………………………………………………………………………. 245

7.3.21. Поле SlugField для ввода текста…………………………………………………………………………. 246

7.3.22. Поле TimeField для ввода времени……………………………………………………………………… 246

7.3.23. Поле TypedChoiceField для выбора данных из списка……………………………………… 247

7.3.24. Поле TypedMultipleChoiceField для выбора данных из списка……………………….. 248

7.3.25. Поле URLField для ввода универсального указателя ресурса (URL)……………… 250

7.3.26. Поле UUIDField для ввода универсального уникального идентификатора UUID 251

7.4. Встроенные классы для создания сложных полей………………………………………………………… 252

7.4.1. Поле ComboField для ввода текста с проверкой соответствия заданным форматам……….. 252

7.4.2. Поле MultiValueField для создания сложных компоновок из нескольких полей 253

7.4.3. Поле SplitDateTimeField для раздельного ввода даты и времени………………………. 254

7.5. Настройка формы и ее полей…………………………………………………………………………………………… 255

7.5.1. Изменение внешнего вида поля с помощью параметра widget………………………….. 255

7.5.2. Задание начальных значений полей с помощью свойства initial……………………… 257

7.5.3. Задание порядка следования полей на форме…………………………………………………….. 258

7.5.4. Задание подсказок к полям формы……………………………………………………………………….. 259

7.5.5. Настройки вида формы………………………………………………………………………………………….. 260

7.5.6. Проверка (валидация) данных………………………………………………………………………………. 262

7.5.7. Детальная настройка полей формы……………………………………………………………………… 267

7.5.8. Присвоение стилей полям формы………………………………………………………………………….. 270

7.6. Использование в формах POST-запросов для отправки данных на сервер…………………. 275

7.7. Краткие итоги……………………………………………………………………………………………………………………. 278

Глава 8. Модели данных Django…………………………………………………………… 279

8.1. Создание моделей и миграции базы данных………………………………………………………………….. 280

8.2. Типы полей в модели данных Django……………………………………………………………………………… 284

8.3. Манипуляция с данными в Django на основе CRUD……………………………………………………… 287

8.3.1. Добавление данных в БД……………………………………………………………………………………….. 287

8.3.2. Чтение данных из БД……………………………………………………………………………………………… 288

Метод get()……………………………………………………………………………………………………………… 288

Метод get_or_create()……………………………………………………………………………………………. 288

Метод all()………………………………………………………………………………………………………………. 289

Метод count()………………………………………………………………………………………………………….. 289

Метод filter()…………………………………………………………………………………………………………… 289

Метод exclude()………………………………………………………………………………………………………. 289

Метод in_bulk()………………………………………………………………………………………………………. 289

8.3.3. Обновление данных в БД……………………………………………………………………………………….. 290

8.3.4. Удаление данных из БД…………………………………………………………………………………………. 291

8.3.5. Просмотр строки SQL-запроса к базе данных…………………………………………………….. 291

8.4. Общие принципы взаимодействия форм с моделями данных и шаблонами Django…… 292

8.4.1. Создание форм на основе классов Form и ModelForm………………………………………… 293

8.4.2. Связывание форм с представлениями (view)………………………………………………………… 294

8.4.3. Связывание представлений (view) с шаблонами форм……………………………………….. 295

8.5. Организация связей между таблицами в БД через модели данных……………………………… 296

8.5.1. Организация связей между таблицами «один ко многим»………………………………….. 296

8.5.2. Организация связей между таблицами «многие ко многим»………………………………. 301

8.5.3. Организация связей между таблицами «один к одному»……………………………………. 305

8.6. Пример работы с объектами модели данных (чтение и запись информации в БД)……. 308

8.7. Пример работы с объектами модели данных: редактирование и удаление информации из БД   315

8.8. Работа с изображениями и файлами в формах Django………………………………………………….. 321

8.8.1. Загрузка изображений……………………………………………………………………………………………. 321

8.8.2. Загрузка и отображение файлов PDF в формах Django………………………………………. 332

8.8.3. Загрузка и отображение видеофайлов в формах Django……………………………………. 339

8.8.4. Загрузка и озвучивание аудиофайлов в формах Django…………………………………….. 348

8.9. Краткие итоги……………………………………………………………………………………………………………………. 356

Глава 9. Пример создания веб-сайта на Django…………………………………….. 357

9.1. Создание структуры сайта при помощи Django……………………………………………………………. 357

9.2. Установка дополнительных пакетов и настройка параметров сайта «Мир книг»…….. 366

9.3. Разработка структуры моделей данных сайта «Мир книг»………………………………………….. 370

9.4. Основные элементы моделей данных в Django……………………………………………………………… 373

9.4.1. Поля и их аргументы в моделях данных………………………………………………………………. 373

9.4.2. Метаданные в моделях Django……………………………………………………………………………… 376

9.4.3. Методы в моделях Django……………………………………………………………………………………… 377

9.4.4. Методы работы с данными в моделях Django…………………………………………………….. 377

9.5. Формирование моделей данных для сайта «Мир книг»………………………………………………… 379

9.5.1. Модель для хранения жанров книг……………………………………………………………………….. 380

9.5.2. Модель для хранения языков книг………………………………………………………………………… 381

9.5.3. Модель для хранения наименования издательства…………………………………………….. 381

9.5.4. Модель для хранения авторов книг………………………………………………………………………. 382

9.5.5. Модель для хранения книг…………………………………………………………………………………….. 382

9.5.6. Модель для хранения отдельных экземпляров книг и их статуса……………………… 387

9.6. Административная панель Django Admin………………………………………………………………………. 391

9.6.1. Регистрация моделей данных в Django Admin…………………………………………………….. 391

9.6.2. Работа с данными в Django Admin……………………………………………………………………….. 392

9.7. Изменение конфигурации административной панели Django………………………………………. 402

9.7.1. Регистрация класса ModelAdmin…………………………………………………………………………… 403

9.7.2. Настройка отображения списков………………………………………………………………………….. 404

9.7.3. Добавление фильтров к спискам…………………………………………………………………………… 407

9.7.4. Формирование макета с подробным представлением элемента списка…………… 409

9.7.5. Разделение страницы на секции с отображением связанной информации……….. 411

9.7.6. Встроенное редактирование связанных записей………………………………………………… 412

9.8. Работа с файлами и изображениями в административной панели Django…………………. 416

9.9. Краткие итоги……………………………………………………………………………………………………………………. 422

Глава 10. Пример создания веб-интерфейса для пользователей сайта
«Мир книг»………………………………………………………………………………………….. 423

10.1. Последовательность создания пользовательских страниц сайта «Мир книг»…………. 423

10.2. Определение перечня и URL-адресов страниц сайта «Мир книг»……………………………… 424

10.3. Создание главной страницы сайта «Мир книг»…………………………………………………………… 425

10.3.1. Создание URL-преобразования………………………………………………………………………… 425

10.3.2. Создание упрощенного представления (view)…………………………………………………. 427

10.3.3. Изменение представления (view) главной страницы сайта…………………………….. 432

10.3.4. Модификация шаблона главной страницы сайта «Мир книг»………………………. 433

10.4. Создание страницы со списком книг на основе класса ListView………………………………… 438

10.5. Создание страницы с детальной информацией о книге на основе класса DetailView 443

10.6. Постраничный вывод большого числа записей из БД (класс Paginator)………………….. 448

10.7. Создание страницы со списком авторов на основе класса ListView………………………….. 453

10.8. Создание страницы с детальной информацией об авторе книги на основе
класса DetailView……………………………………………………………………………………………………………. 456

10.9. Создание страниц О компании и Контакты…………………………………………………………………. 460

10.10. Краткие итоги……………………………………………………………………………………………………………….. 468

Глава 11. Расширение возможностей администрирования сайта
«Мир книг» и создание пользовательских форм…………………………………… 469

11.1. Сессии в Django………………………………………………………………………………………………………………. 470

11.2. Аутентификация и авторизация пользователей в Django……………………………………………. 474

11.2.1. Немного об аутентификации пользователей в Django……………………………………. 474

11.2.2. Создание отдельных пользователей и групп пользователей…………………………. 475

11.2.3. Создание страницы регистрации пользователя при входе на сайт………………. 481

11.2.4. Создание страницы для сброса пароля пользователя……………………………………. 486

11.3. Настройка почты для отправки сообщения о смене пароля на реальный электронный адрес  494

11.4. Поверка подлинности входа пользователя в систему…………………………………………………. 499

11.5. Формирование страниц сайта для создания заказов на книги…………………………………… 502

11.6. Работа с формами…………………………………………………………………………………………………………… 512

11.6.1. Краткий обзор форм в Django……………………………………………………………………………. 512

11.6.2. Управление формами в Django………………………………………………………………………….. 514

11.6.3. Форма для ввода и обновления информации об авторах книг на основе класса Form() 515

11.6.4. Форма для обновления информации об авторах книг на основе класса ModelForm()     527

11.6.5. Форма для ввода и обновления информации о книгах на основе класса ModelForm()    533

11.7. Краткие итоги………………………………………………………………………………………………………………….. 545

Глава 12. Публикация сайта в сети Интернет………………………………………. 547

12.1. Подготовка инфраструктуры сайта перед публикацией в сети Интернет………………… 547

12.1.1. Окружение развертывания сайта в сети Интернет………………………………………….. 548

12.1.2. Выбор хостинг-провайдера………………………………………………………………………………. 549

12.2. Подготовка веб-сайта к публикации…………………………………………………………………………….. 550

12.3. Размещение веб-сайта на хостинге timeweb…………………………………………………………………. 552

12.3.1. Регистрация аккаунта пользователя………………………………………………………………… 552

12.3.2. Административная панель хостинга timeweb………………………………………………….. 555

12.3.3. Создание на сервере папки для нового сайта………………………………………………….. 559

12.3.4. Создание на сервере виртуального окружения и приложения Django для нового сайта               567

12.3.5. Перенос сайта с рабочего компьютера на удаленный сервер……………………….. 574

12.3.6. Смена временного доменного имени на постоянное………………………………………. 579

12.4. Краткие итоги………………………………………………………………………………………………………………….. 581

Глава 13. Приложения Django и MySQL………………………………………………. 583

13.1. Подготовка инфраструктуры сайта для перехода на MySQL……………………………………. 583

13.2. Инсталляция сервера MySQL………………………………………………………………………………………… 584

13.3. Создание базы данных…………………………………………………………………………………………………… 584

13.4. Создание проекта Django с базой данных MySQL на локальном компьютере………… 588

13.5. Создание инфраструктуры на удаленном сервере для сайта с базой данных на MySQL……….. 591

13.6. Создание базы данных MySQL на удаленном сервере………………………………………………. 599

13.7. Перенос сайта с локального компьютера на публичный сервер……………………………….. 603

13.8. Краткие итоги………………………………………………………………………………………………………………….. 611

Послесловие…………………………………………………………………………………………. 613

Список источников и литературы………………………………………………………… 614

Приложение. Описание электронного архива………………………………………. 617

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

Постолит

Постолит Анатолий Владимирович – доктор технических наук, профессор, академик Российской академии транспорта, лауреат Всероссийского конкурса «Инженер года». Профессиональный программист, автор книг компьютерной тематики, в том числе «Python, Django и PyCharm для начинающих», и более 100 научных публикаций. Преподавал в Московском государственном автомобильно-дорожном техническом университете  (МАДИ). Занимался разработкой и внедрением информационных систем для транспортного комплекса Москвы и Московской области,  для транспортного обслуживания зимних Олимпийских игр в г. Сочи, систем оплаты проезда и информирования пассажиров городского общественного транспорта. Специализируется на создании информационных систем на основе MS SQL Server, MS Visual Studio, Bluetooth-технологий, а также систем искусственного интеллекта, обработки изображений и компьютерного зрения.