Skip to content

Kahelman/habr-oop-battle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

habr-oop-battle

Habr.com OOP Battle

Code 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

## Финал

- В конце все реализации сравниваются.
- Будет общий обзор решений, выводы и архитектурные мемы.

> Победителей нет. Но архитектура говорит громче всех.


About

Habr.com OOP Battle

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages