handbook.
Личная база знаний по разработке: архитектура, паттерны, принципы, особенности языков и уроки. Каждая тема — короткий конспект и запускаемые примеры на PHP, Go, Python и TypeScript, которые можно сравнить бок о бок.
Как читать
- Тема - это статья. Проблема, решение, схема, плюсы и минусы, когда не применять.
- Код рядом. Над статьёй полоса с языками: нажмите PHP, Go, Python или TypeScript, и код откроется сбоку с пояснениями к классам и строкам.
- Тесты настоящие. Кнопка «тесты» показывает тесты темы: одни и те же случаи на четырёх языках, все они проходят перед каждой выкладкой сайта.
Начать: Стратегия · поиск по темам: Cmd K
Разделы
- principles/ПринципыПринципы проектирования, которые стоят за паттернами и архитектурными стилями. Код в темах показывает, как выглядит решение, когда принцип соблюдён, а вариант «до» лежит в статье.8 тем
- patterns/ПаттерныПаттерны проектирования: каталог GoF и прикладные паттерны корпоративных приложений.31 тема
- architecture/АрхитектураАрхитектурные стили и подходы: как организовать приложение целиком. Все темы раздела решают одну задачу - оформление заказа: позиции, проверка склада, сумма в копейках, сохранение, оплата, уведомление. Так стили видно рядом, на одних и тех же запросах.6 тем
- languages/ЯзыкиИдиомы и особенности языков. Тема здесь содержит реализацию только на своём языке, а в статье по абзацу о том, как то же решают остальные три.4 темы
- lessons/УрокиПошаговые разборы рефакторинга: каждый шаг (step-N/) - независимая рабочая версия кода с теми же тестами. Поведение не меняется, меняется устройство, и тесты это доказывают на каждом шаге.9 тем
Education
Личная база знаний по разработке: архитектура, паттерны, принципы, особенности языков и уроки. Каждая тема — короткий конспект и запускаемые примеры на PHP, Go, Python и TypeScript, которые можно сравнить бок о бок.
Разделы
| Раздел | О чём |
|---|---|
| principles | SOLID, GRASP, DRY/KISS/YAGNI, Law of Demeter, композиция vs наследование |
| patterns | GoF (порождающие, структурные, поведенческие) и прикладные паттерны |
| architecture | Слоистая, гексагональная, Clean Architecture, DDD, CQRS, Event Sourcing |
| languages | Идиомы и особенности PHP, Go, Python, TypeScript |
| lessons | Пошаговые разборы: от проблемы к решению |
Формат темы
<раздел>/[группа]/<тема>/
├── README.md # проблема → решение → структура → плюсы/минусы → когда не применять → отличия языков
├── php/ # реализация + тест
├── go/
├── python/
└── ts/Тема самодостаточна: код одной темы не импортирует код другой. Заготовка новой темы лежит в _template/topic/.
Требования
- PHP 8.4+ и Composer
- Go 1.25+
- Python 3.13+ и uv
- Node.js 22+ и npm
- make
Запуск
make install # зависимости всех языков
make test # тесты всех тем на всех языках
make test T=patterns/behavioral/strategy # одна тема
make test-go T=patterns # один язык, один раздел
make lint # php -l + PHPStan, gofmt + go vet, ruff, tscЯзыки без файлов в выбранном пути пропускаются (skip <lang>: no files).
Чтение в браузере
Справочник открывается на https://timcode.ru/handbook/ и собирается вместе с сайтом из папки выше:
make docs # то же, что make dev в корне: http://localhost:5180/handbook/Сайт читает темы как есть: README становится статьёй, а код открывается рядом с ней. В deck.yaml темы лежат пояснения к коду: docs над объявлением класса или метода, notes под отдельной строкой.