team-work-it-alexeyumatov

0
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
README.md

Система управления библиотекой - Командная разработка

📚 О проекте

Консольное приложение на C# для управления каталогом библиотеки с реализацией классических алгоритмов: бинарного поиска, QuickSort и рекурсивного поиска. Проект выполнен в рамках курса "VibeCode" с применением методологии трёхэтапной командной разработки.

Вариант задания: 1 - Система управления библиотекой


👥 Участники проекта

Student 1 (Specification Engineer) 🎯

  • Роль: Создание системной спецификации
  • Вклад: Разработка подробного технического задания в формате System Prompt
  • Gitverse аккаунт:
    alexeyumatov

Student 2 (Developer) 💻

  • Роль: Реализация на основе спецификации
  • Вклад: Разработка консольного приложения на C# с использованием AI-помощника
  • Gitverse аккаунт:
    confucius
  • Инструмент: GitHub Copilot (Claude Sonnet 4.5)

Student 3 (Code Reviewer) 🔍

  • Роль: Анализ качества кода и соответствия спецификации
  • Вклад: Детальное ревью с рекомендациями по улучшению
  • Gitverse аккаунт:
    Stevan

🔧 Технологии и инструменты

  • Язык программирования: C# (.NET 6.0+)
  • Тип приложения: Console Application
  • Структуры данных: List
  • Реализованные алгоритмы:
    • Бинарный поиск (Binary Search) - O(log n)
    • QuickSort с медианным pivot - O(n log n)
    • Рекурсивный поиск по частичному совпадению
  • AI-инструменты:
    • GitHub Copilot для генерации кода
    • Спецификация разработана для подачи в LLM-контекст

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

team-work-it-alexeyumatov/ ├── CONTRIBUTING.md # Требования к совместной разработке ├── README.md # Этот файл │ ├── spec/ # Работа Student 1 │ └── codex.md # Системная спецификация (System Prompt) │ ├── dev/ # Работа Student 2 │ └── solution.cs # Реализация системы управления библиотекой │ ├── review/ # Работа Student 3 │ └── code_review.md # Детальное код-ревью │ ├── demo/ # Демонстрация работы │ ├── test_results.md # Скриншоты и примеры выполнения │ └── specification_compliance.md # Соответствие спецификации │ └── tasks/ └── task_variants.md # Описание вариантов заданий

🎯 Описание реализованного функционала

Основные возможности:

  1. Управление каталогом книг

    • Добавление новых книг с валидацией данных
    • Удаление книг по ISBN
    • Отображение всего каталога в табличном формате
  2. Алгоритмы поиска

    • Бинарный поиск по ISBN (O(log n)) - требует сортировки
    • Рекурсивный поиск по частичному совпадению названия
  3. Сортировка

    • QuickSort для сортировки книг по названию в алфавитном порядке
  4. Валидация данных

    • ISBN: точно 13 цифр, проверка уникальности
    • Год издания: диапазон 1900-2025
    • Количество экземпляров: 0-1000
  5. Пользовательский интерфейс

    • Интуитивное меню с 7 опциями
    • Цветовая индикация (ошибки, успех, предупреждения)
    • Табличный вывод с выравниванием колонок

Структура кода:

Класс
Book

Представляет книгу в библиотеке с полями:

  • ISBN
    (string) - уникальный идентификатор
  • Title
    (string) - название
  • Author
    (string) - автор
  • Year
    (int) - год издания
  • Quantity
    (int) - количество экземпляров

Класс
Library

Основной класс для управления каталогом с методами:

  • AddBook(Book book)
    - добавление с валидацией
  • RemoveBook(string isbn)
    - удаление по ISBN
  • BinarySearchByISBN(string isbn)
    - O(log n) поиск
  • QuickSortByTitle()
    - сортировка алгоритмом QuickSort
  • RecursiveSearchByTitle(string titlePart, int index)
    - рекурсивный поиск
  • DisplayBooks(List<Book> books)
    - форматированный вывод
  • LoadSampleData()
    - загрузка тестовых данных

Класс
Program

Главный класс с консольным интерфейсом:

  • Main()
    - точка входа с основным циклом
  • DisplayMenu()
    - отображение меню
  • AddBookMenu()
    ,
    RemoveBookMenu()
    ,
    SearchByISBNMenu()
    ,
    SearchByTitleMenu()
    - обработка пользовательского ввода

🚀 Как запустить

Требования:

  • .NET 6.0 или выше
  • Windows, macOS или Linux

Компиляция и запуск:

Быстрый старт с .NET SDK:


📊 Процесс разработки

Этап 1: Спецификация (Student 1) - 30 минут

  • Анализ требований задания (Вариант 1)
  • Создание
    spec/codex.md
    в формате System Prompt
  • Описание структуры данных, алгоритмов и критериев приёмки
  • Подготовка примеров тестовых данных (7 книг)

Инструмент: Текстовый редактор, понимание требований VibeCode

Этап 2: Реализация (Student 2) - 40 минут

  • Загрузка спецификации в контекст GitHub Copilot
  • Генерация кода на основе System Prompt
  • Реализация трёх ключевых алгоритмов вручную
  • Создание консольного интерфейса с меню
  • Тестирование основного функционала

Инструмент: GitHub Copilot (Claude Sonnet 4.5 модель)

Подход:

  1. Скопирован System Prompt из
    codex.md
    в Copilot
  2. Постепенная реализация классов и методов
  3. Добавление UI/UX улучшений (цвета, форматирование)
  4. Интеграция всех компонентов в единое приложение

Этап 3: Код-ревью (Student 3) - 20 минут

  • Проверка соответствия спецификации
  • Анализ качества кода и читаемости
  • Оценка реализации алгоритмов
  • Выявление замечаний и рекомендаций
  • Подготовка детального отчёта в
    review/code_review.md

Формат: Структурированное ревью с секциями "Сильные стороны", "Замечания", "Рекомендации"


🎓 Образовательная ценность

Что было изучено:

  1. Алгоритмы и структуры данных:

    • Бинарный поиск и его сложность O(log n)
    • QuickSort с выбором медианного pivot
    • Рекурсивные алгоритмы с базовым случаем
  2. Работа с AI-помощниками:

    • Составление эффективных System Prompts
    • Использование LLM для генерации кода
    • Итеративная доработка с AI
  3. Командная разработка:

    • Роль спецификации в процессе разработки
    • Важность код-ревью для качества
    • Разделение ответственности между ролями
  4. C# и .NET:

    • Консольные приложения
    • ООП (классы, методы, свойства)
    • Обработка пользовательского ввода
    • Форматирование вывода в консоль

📄 Дополнительная информация

Роль Student 2 выполнялась для:

GitVerse аккаунт:

Stevan

Роль Student 3 выполнялась для:

GitVerse аккаунт:

confucius

Соответствие методологии VibeCode:

  • ✅ Трёхэтапный процесс: Specification → Development → Review
  • ✅ Использование AI-помощников на этапе разработки
  • ✅ Чёткая спецификация в формате System Prompt
  • ✅ Демонстрация работы приложения в
    /demo
  • ✅ Структурированное ревью кода

🏆 Выводы

Проект успешно демонстрирует:

  1. Эффективность VibeCode подхода - чёткая спецификация позволила AI-помощнику сгенерировать качественный код за короткое время

  2. Важность планирования - детальная спецификация Student 1 упростила работу Student 2 и Student 3

  3. Роль ревью - критический анализ Student 3 выявил важные замечания, которые улучшают качество финального продукта

  4. Практическое применение алгоритмов - реализация классических алгоритмов в реальном приложении, а не абстрактных упражнениях


📞 Контакты

Для вопросов по проекту обращайтесь к участникам команды через их Gitverse аккаунты.


Дата выполнения: 27 ноября 2025
Курс: VibeCode - Совместная разработка
Вариант: 1 (Система управления библиотекой)