Habr.com OOP Battle
Добро пожаловать в архитектурную битву. Здесь каждое решение — не просто строка кода, а манифест парадигмы.
Реализовать простой графический редактор (MVP), который поддерживает:
- Добавление фигур: Point, Line, Circle, Rectangle, Square, Triangle, Oval, Rhombus
- Отрисовку всех добавленных фигур (через метод render)
- Один файл на каждую реализацию (
*.cpp
,*.py
,*.exs
, и т.д.) - Без фреймворков. Только стандартные библиотеки и мозг.
- Язык любой, подход — честный.
- В начале каждого файла:
// Approach: <парадигма> // Language: <язык>
Примеры подходов: `OOP`, `FP`, `Procedural`, `ECS`, `Declarative`, `DOD`
## Этапы
### 1. Палитра с нуля (MVP)
- Базовая реализация. Чистая, ясная, однострочная или многоклассовая.
### 2. Клиент кое-что захотел... (Extension)
- Требования меняются. Архитектура испытывается на прочность.
### 3. Цукерберг набирает ваш номер (Final)
- Последняя итерация. Архитектура на пределе. Сюрпризы гарантированы.
## Как участвовать
1. Форкните репозиторий
2. Добавьте свой файл (например, `username_fp_haskell.hs`)
3. Укажите подход и язык в комментарии в начале файла
4. Оформите коммит с сообщением `username oop| fp | ... cpp | java | ... initial editor`
5. Отправьте Merge Request
## Финал
- В конце все реализации сравниваются.
- Будет общий обзор решений, выводы и архитектурные мемы.
> Победителей нет. Но архитектура говорит громче всех.