Skip to content

Latest commit

 

History

History
114 lines (86 loc) · 7.41 KB

File metadata and controls

114 lines (86 loc) · 7.41 KB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Обзор проекта

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

Структура репозитория

ROP/ - Railway-Oriented Programming

Доклад о функциональном подходе к обработке ошибок через метафору железной дороги.

  • Примеры на OCaml
  • Введение в монады через практику
  • Продолжительность: 35 минут + вопросы

FP_REVIEW/ - Обзор функционального программирования в 11 языках

Комплексный обзор ФП-возможностей в разных языках.

Ключевые файлы:

  • fp_languages_review.md - полное учебное пособие с примерами кода
  • FP_OBSIDIAN/ - структурированная база знаний для работы в Obsidian
  • Капля ФП в мире лошадей и хомячков.* - слайды презентации

Структура материалов:

  • 00-Введение/ - базовые концепции ФП
  • 01-Фундаментальные-свойства/ - 5 основных свойств (функции первого класса, чистые функции, иммутабельность, декларативный стиль, выражения)
  • 02-Вспомогательные-свойства/ - 7 дополнительных свойств (композиция, рекурсия/TCO, АТД, pattern matching, статическая типизация, ленивые вычисления, изоляция эффектов)
  • 03-Языки/ - описания 11 языков (OCaml, F#, Clojure, Scala, Ruby, Rust, Go, JavaScript, TypeScript, Python, Java, C++)
  • 04-Сравнения/ - сводные таблицы
  • 05-Ресурсы/ - материалы для изучения

FP_Talk_2026/ - "Rust, Scala и JavaScript сидят в баре"

Материалы для конференционного доклада о фундаментальных свойствах ФП.

  • CFP.md - тезисы для подачи на конференцию
  • Фокус на 5 языках: OCaml, Scala, Python, JavaScript, Rust
  • Формат: 40-45 минут, intermediate level

Работа с материалами

Obsidian Vault (FP_REVIEW/FP_OBSIDIAN/)

Это Map of Content (MOC) для навигации по материалам ФП:

  • Открывается в Obsidian как vault
  • Граф связей между концепциями
  • Навигация через внутренние ссылки [[ссылка]]
  • Теги для фильтрации: #фундаментальное, #вспомогательное, #язык, #сравнение, #ресурсы
  • Работает и как обычный Markdown без Obsidian

Форматы файлов

  • .md - основной формат документации и материалов
  • .pdf / .pptx - финальные версии презентаций
  • Все markdown-файлы должны соответствовать markdown lint

Принципы создания примеров кода для презентаций

Самодокументированность

  • Аннотации типов и выразительные имена предпочтительнее комментариев
  • Комментарий оправдан только для неочевидных семантических нюансов языка
  • Если идею нельзя выразить в коде — переформулировать пример

Соответствие декларации

  • Каждое свойство, объявленное в теоретическом слайде, должно быть явно проиллюстрировано в примерах кода на каждом языке
  • Контраст (чистая vs нечистая функция, декларативный vs императивный стиль) — обязательная часть иллюстрации, не опция
  • Перед финализацией секции сверять список свойств из теоретического слайда с кодовыми слайдами

Один слайд — один язык

  • Каждый языковой пример живёт на отдельном слайде
  • Заголовок слайда: # Свойство — Язык

Принципы работы

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

  • Вся документация ведется по-русски
  • Без эмоджи и коммерческого сленга
  • Markdown lint обязателен для всех .md файлов

Организация материалов

  • Каждый доклад в отдельной папке с собственным README.md
  • README.md содержит описание, структуру и ключевые детали доклада
  • Презентации хранятся в корне папки доклада
  • Вспомогательные материалы организованы в подпапках

Git workflow

  • Основная ветка: master
  • Тематические ветки для новых докладов или значительных обновлений
  • Коммиты на русском языке с описанием изменений
  • Заголовки коммитов пишутся в совершенном прошедшем времени (добавил, исправил, удалил)

Игнорируемые файлы

См. .gitignore:

  • Временные файлы презентаций (~$*, *.tmp)
  • Записи докладов (*.mp4, *.mp3, recordings/)
  • Локальные конфиги Obsidian (.obsidian/)
  • IDE конфиги (.vscode/, .idea/)
  • Системные файлы (.DS_Store)

Рекомендации по редактированию

При создании нового доклада

  1. Создать папку с говорящим именем
  2. Добавить README.md с описанием структуры доклада
  3. Обновить корневой README.md с ссылкой на новый доклад

При работе с Obsidian материалами

  • Сохранять структуру связей через [[internal links]]
  • Использовать frontmatter с тегами для навигации
  • Обновлять MOC (главный README.md) при добавлении новых разделов

При обновлении презентаций

  • Хранить актуальные версии в корне папки доклада
  • Указывать версию в названии файла при необходимости (например, "v2.0")