Skip to content

feat(33-data-types): перенос теории из Python и адаптация под java#309

Open
fey wants to merge 1 commit into
mainfrom
update-33-data-types-from-python
Open

feat(33-data-types): перенос теории из Python и адаптация под java#309
fey wants to merge 1 commit into
mainfrom
update-33-data-types-from-python

Conversation

@fey

@fey fey commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Что сделано

Перенесена теория модуля «Типы данных» из эталонного Python-курса в Java-курс. Три урока расширены до объема Python-оригинала (85–110% символов) и адаптированы под Java. Из Python ru/data.yml перенесены definitions/tips, имена уроков оставлены Java.

Объемы (RU README, символы)

Урок Java Python-источник Java Python %
41-data-types-basics 40-primitive-data-types 2590 2420 107.0%
45-explicit-types 50-strong-typing 3463 3954 87.6%
55-type-casting 55-data-types-casting 1831 1667 109.8%

Адаптации под Java (не калька с Python)

  • Статическая типизация. В 45-explicit-types раскрыта главная идея: тип переменной указывается явно, фиксируется при объявлении и не меняется. Типы проверяются заранее, на стадии компиляции, еще до запуска программы. Это противопоставлено динамической типизации. Объяснены var и вывод типов.
  • char против String. В 41-data-types-basics показано, что символ char записывается в одинарных кавычках ('A'), а строка String — в двойных ("A"). Питоновская мысль про одинарные кавычки для строк не переносилась.
  • Примитивы и ссылочный String. Примитивы int/double/boolean/char и ссылочный String. Рациональные числа описаны через double (а не float), как принято в Java.
  • Приведение типов. В 55-type-casting показаны Integer.parseInt/Double.parseDouble для строк, приведение (int)/(double), отбрасывание дробной части при (int), и ключевой Java-нюанс: 7 / 2 = 3, а (double) 7 / 2 = 3.5.
  • В примерах нет методов строк, if, циклов и тернарника (модуль идет до этих тем). Арифметика показана через System.out.println и присваивание, голых выражений нет.
  • Убраны ссылки на другие уроки (самодостаточность).

Что НЕ тронуто

  • Уроки 47-data-types-list и 50-null — Java-only, оставлены без изменений (KEEP).
  • Python-урок 45-tuples не переносился (в Java нет кортежей, EXCLUDE).
  • Python-урок 52-data-types-immutability не переносился (перенесен в модуль методов).
  • Не менялись: *.java, EXERCISE.md, es/, en/, yml уровня урока/модуля, другие модули.

Проверки

  • Объемы всех трех уроков в коридоре 85–110%.
  • Греп ё — пусто. Греп ёлочек «» — пусто.
  • Преждевременных конструкций (if/while/charAt/substring/.length) в новой теории нет (срабатывания греп — **жирный** и нетронутый 47-data-types-list).
  • yamllint — 0 ошибок.
  • ajv-cli валидация трех ru/data.yml по lesson.json — все valid.
  • rumdl — мои ru/README.md без замечаний (оставшиеся 14 замечаний в нетронутых es//en/ файлах, предсуществующие).
  • Тесты в Docker (код не менялся): PASS для всех пяти уроков 41-data-types-basics, 45-explicit-types, 47-data-types-list, 50-null, 55-type-casting.

🤖 Generated with Claude Code

Расширены три урока модуля «Типы данных» до объема Python-эталона
и адаптированы под Java:

- 41-data-types-basics (зачем нужны типы): примитивы int/double/
  boolean/char и ссылочный String, char в одинарных кавычках против
  строки в двойных
- 45-explicit-types (явная типизация): статическая типизация, тип
  фиксируется при объявлении, проверка на стадии компиляции, var и
  вывод типов
- 55-type-casting (приведение типов): Integer.parseInt, приведение
  (int)/(double), целочисленное деление и (double) 7 / 2

Перенесены definitions/tips из Python ru/data.yml с сохранением
Java-имен уроков. Код уроков, es/en, EXERCISE.md не тронуты.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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