Skip to content

add(40-define-functions): уроки про модули и пакеты по аналогии с Python#831

Merged
fey merged 1 commit into
mainfrom
add-modules-packages-lessons
Jun 2, 2026
Merged

add(40-define-functions): уроки про модули и пакеты по аналогии с Python#831
fey merged 1 commit into
mainfrom
add-modules-packages-lessons

Conversation

@fey
Copy link
Copy Markdown
Contributor

@fey fey commented Jun 2, 2026

Что

Добавляет два урока в конец модуля 40-define-functions, повторяя структуру exercises-python (350-modules, 400-packages):

  • 460-modules («Модули») — import/export, именованный импорт, export default, переименование через as, краткое про стандартные модули (Math, node:*).
  • 470-packages («Пакеты») — npm-пакеты, импорт по имени пакета, subpath-модули одного пакета (hexlet-basics/string vs hexlet-basics/math как аналог Python payments.stripe), package.json/exports, node_modules и реестр npm.

Почему

В JS-курсе студенты уже встречали import { length } from 'hexlet-basics/string' «как есть» (модуль 35-calling-functions), но нигде не объяснялось, что это значит. Эти уроки дают объяснение и закрывают паритет с Python.

Детали реализации

  • Прямой перенос Python-задач невозможен: в JS Math.ceil глобален, node:* в курсе не используются. Поэтому упражнения опираются на уже существующий внутренний пакет hexlet-basics (string/math).
  • Без изменений в src/hexlet/ и package.json.
  • Упражнения:
    • mirror(text) → импорт reverse, toUpperCase из hexlet-basics/string.
    • formatPrice(amount) → импорт round из hexlet-basics/math.
  • Локали: ru/en/es (README/EXERCISE/data.yml) + description.es.yml.

Проверки (в Docker)

  • vitest related — оба теста зелёные
  • make schema-validate — exit 0
  • make description-lint (yamllint) — exit 0
  • biome check — без предупреждений

🤖 Generated with Claude Code

Добавляет два урока в конец модуля 40-define-functions, повторяя структуру
exercises-python (350-modules, 400-packages):

- 460-modules: import/export, именованный импорт, export default,
  переименование через as, стандартные модули
- 470-packages: npm-пакеты, импорт по имени, subpath-модули одного пакета,
  package.json/exports, node_modules

Упражнения используют существующий внутренний пакет hexlet-basics
(string/math) — без изменений в src/hexlet и package.json.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@fey fey force-pushed the add-modules-packages-lessons branch from 7e84d7e to 859a2b4 Compare June 2, 2026 12:14
@fey fey merged commit a35e389 into main Jun 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant