Практическая книга · тема 02Python 3.10+Go 1.21+
От файла к проекту

У программы
появляется
структура.

Модули, пакеты, виртуальное окружение и зависимости — на одном Python-проекте, который растёт вместе с вами.Пакеты, модуль проекта и зависимости — на одном Go-проекте, который растёт вместе с вами.

Начать с .venvНачать с go mod init →
Эволюция одной папки
main.pymain.go 01
↓
student-tools/

├ .venv/
├ app/
│ ├ services/
│ └ utils/
├ tests/
└ README.md

├ go.mod
├ main.go
├ internal/
│ ├ services/
│ └ utils/
└ README.md

ГОТОВ К ПЕРЕДАЧЕ ↗
ФорматОдин учебный модуль
Внутри8 последовательных глав
На выходеРаботающий пакет

От первого запуска
к передаче проекта.

Сначала подготовим окружение, затем запустим один файл. Подключим Rich, разделим обязанности между модулями и соберём пакет. В конце восстановим проект из архива и подготовим собственную работу для GitHub.

Сначала объявим модуль, затем запустим один файл. Подключим стороннюю библиотеку, разделим обязанности между пакетами и соберём программу. В конце восстановим проект из архива и подготовим собственную работу для GitHub.

В книге две ветки одного материала. Кнопка Python / Go в левой колонке переключает команды, код и структуру проекта; выбор запоминается и действует на все главы темы. Задачи, порядок шагов и результат в обеих ветках совпадают.

Это книга для чтения и работы рядом с VS Code. У каждой главы есть конкретный результат, примеры целиком и проверка понимания. Идите по порядку при первом прохождении; возвращайтесь к нужной главе, когда требуется подсказка.

Как проходит лекция-практика

Преподаватель
объясняет на примере
→Вы повторяете
в своей папке
→Проверяем
конкретный результат

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

Содержание модуля

Читать → делать → проверять
2.1

Сначала — своё окружениеСначала — свой модуль

Создаём рабочую папку, выбираем Python и разбираем, что делает активация.

Создаём рабочую папку, объявляем модуль через go mod init и разбираемся, где живут зависимости.

2.2

VS Code должен видеть тот же PythonGo

Связываем редактор и терминал с окружением. Запускаем первую версию программы.

Ставим расширение Go и gopls, проверяем, что редактор и терминал берут один go. Запускаем первую версию программы.

2.3

Добавляем первую зависимость

Устанавливаем Rich в окружение проекта и меняем только способ вывода.

Добавляем библиотеку fatih/color через go get и меняем только способ вывода.

2.4

Один файл становится тремя

Разделяем расчёт, форматирование и запуск. Читаем импорт как связь между частями.

Разделяем расчёт, форматирование и запуск по пакетам. Читаем импорт как связь между частями.

2.5

Собираем пакет и запускаем его

Группируем связанные модули, добавляем __init__.py и разбираем команду python -m.

Группируем связанные файлы в пакеты, разбираем internal/ и команды go run . и go build.

2.6

Проект, который запустится у другого

Фиксируем зависимости, объясняем запуск и отделяем исходники от локального окружения.

Приводим go.mod в порядок, пишем тесты и README, отделяем исходники от собранного бинарника.

2.7

Практика: верните файлам порядок

Получаем тот же проект без структуры. Собираем его самостоятельно и проверяем результат.

2.8

Домашнее задание №2

Расширяем Student Tools, проверяем переносимость и сдаём ссылку на lesson_02.

Всё для этой темы

Архивы содержат исходники и инструкции. Окружение создаётся на вашем компьютере. Отдельная регистрация или репозиторий преподавателя для скачивания не нужны.

Архивы содержат исходники и инструкции для обеих веток: внутри две папки — python/ и go/. Зависимости скачиваются на ваш компьютер командой go mod download. Отдельная регистрация не нужна.

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

Go: создание модуля · Go: справочник по модулям · Go: организация кода · VS Code: Go · Go: имена пакетов

Python: venv · Python: модули и пакеты · VS Code: Python environments · pip freeze