-
Notifications
You must be signed in to change notification settings - Fork 0
/
вап
112 lines (82 loc) · 14 KB
/
вап
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
Обо мне
Я обладаю базовыми знаниями в области программирования на Python, включая объектно-ориентированное программирование (ООП) и проектирование программного обеспечения. Я изучил и применил несколько ключевых принципов и паттернов проектирования, которые помогают создавать более структурированные и поддерживаемые приложения. Вот некоторые из них:
Принципы SOLID:
SRP (Single Responsibility Principle): Я научился разделять обязанности классов, чтобы каждый класс отвечал за одну задачу, что упрощает поддержку и расширение кода.
OCP (Open-Closed Principle): Я понимаю, как проектировать классы так, чтобы они были открыты для расширения, но закрыты для модификации, что позволяет добавлять новый функционал без изменения существующего кода.
LSP (Liskov Substitution Principle): Я осознал важность обеспечения совместимости подклассов с базовыми классами, что позволяет использовать полиморфизм без риска возникновения ошибок.
ISP (Interface Segregation Principle): Я научился создавать более узкие и специализированные интерфейсы, чтобы клиенты использовали только те методы, которые им нужны.
DIP (Dependency Inversion Principle): Я применяю абстракции для уменьшения жестких зависимостей между модулями, что делает систему более гибкой.
Паттерны проектирования:
Command Pattern: Я реализовал паттерн "Команда" для управления действиями в приложении, что позволяет отделить запросы от их выполнения.
Builder Pattern: Я изучил, как использовать паттерн "Строитель" для создания сложных объектов поэтапно, что улучшает читаемость и структуру кода.
Prototype Pattern: Я понял, как создавать новые объекты на основе существующих, используя клонирование, что упрощает создание объектов с похожими характеристиками.
Работа с потоками:
Я освоил основы многопоточного программирования, включая создание и управление потоками, синхронизацию с использованием событий и блокировок, что позволяет эффективно использовать ресурсы и улучшать производительность приложений.
Структуры данных:
Я изучил различные структуры данных, такие как списки, кортежи, множества и словари, и их применение в Python. Я также применял их для решения задач, таких как поиск, сортировка и хранение данных.
Модульное тестирование:
Я освоил использование библиотеки unittest для написания тестов, что позволяет мне проверять корректность работы функций и методов, а также улучшает качество кода.
Работа с файлами:
Я научился читать и записывать данные в файлы, а также использовать сериализацию и десериализацию с помощью библиотеки pickle, что позволяет сохранять и загружать объекты Python.
MVC (Model-View-Controller):
Я реализовал паттерн проектирования MVC, который разделяет бизнес-логику, пользовательский интерфейс и управление данными, что улучшает структуру приложения и облегчает его поддержку.
Эти знания и навыки позволяют мне разрабатывать более качественные и поддерживаемые приложения на Python. Я стремлюсь продолжать изучение и применение новых технологий и паттернов, чтобы улучшать свои навыки в программировании и проектировании программного обеспечения.
Вот смотри перед тобой база знаний которые я изучил и написал теперь мне нужно это описать в своём проекте на GitHab мне нужно чтобы ты выделил все мои плюсы и знания которы есть вот так примерно выгледит описание не ограничевай себя ### 📝 Описание проекта 📝
- Tерминальная игра в жанре змейки
- Поддержка множества игровых режимов
- Динамическое управление сложностью
- Динамическое управление игрой
- 💯 Полностью самостоятельная работа 💯
### 🛠️ Технологии 🛠️
- Python Curses
- Продвинутое управление терминалом
- Интерактивный игровой движок
### ✨ Ключевые возможности ✨
- Гибкая настройка игры
- Динамическое изменение сложности
- Разнообразие типов яблок
- Адаптивный размер карты
- Интуитивное управление
- Система подсчета очков
### 🧩 Особенности реализации 🧩
- Использование библиотеки curses для создания терминального интерфейса
- Продвинутая система генерации игрового поля
- Расширенный механизм движения змейки
- Поддержка нескольких языковых раскладок управления
### 📦 Скачать игру "Snake-Termenal" 📦
<a href="https://github.com/Stervar/Snake-Termenal/releases/tag/Game">
<img src="https://img.shields.io/badge/Скачать-Snake%20Terminal-blue?style=for-the-badge&logo=python" alt="Скачать Snake Terminal">
</a>
### 📦 Основной код "Snake-Termenal" 📦
<a href="https://github.com/Stervar/Snake-Termenal">
<img src="https://img.shields.io/badge/View%20Code-Click%20Here-blue?style=for-the-badge&logo=github&logoColor=white" alt="View Code">
</a>
📝 Описание проекта 📝
Разработка многофункционального приложения для управления различными устройствами и процессами, включая кофемашины, блендеры, мясорубки и другие бытовые приборы.
Реализация паттернов проектирования (например, Command, Singleton, Observer, Prototype), что позволяет организовать код в соответствии с лучшими практиками и облегчает его поддержку и расширение.
Интерактивное взаимодействие с пользователем через консольное меню, которое предлагает пользователю различные функции, такие как создание заказов, управление ингредиентами и расчет стоимости.
Эффективное управление данными с использованием структур данных, таких как списки, множества и словари, что позволяет быстро обрабатывать и хранить информацию о рецептах, продажах и инвентаре.
🛠️ Технологии 🛠️
Python: Основной язык программирования для разработки приложения.
Модули:
threading: Для работы с многопоточностью, позволяя выполнять несколько операций одновременно.
os: Для работы с файловой системой, включая создание, удаление и изменение файлов и директорий.
shutil: Для копирования файлов и директорий, что позволяет управлять содержимым папок.
pickle: Для сериализации и десериализации объектов Python, что позволяет сохранять состояние объектов в файлы.
json: Для работы с данными в формате JSON, обеспечивая удобный способ хранения и передачи данных.
Объектно-ориентированное программирование (ООП): Использование принципов ООП для создания классов, которые инкапсулируют данные и методы, обеспечивая модульность и переиспользуемость кода.
Паттерны проектирования: Применение различных паттернов, таких как Command для инкапсуляции запросов, Singleton для обеспечения единственного экземпляра класса, и Proxy для добавления функциональности к существующим объектам.
✨ Ключевые возможности ✨
Эмуляция управления устройствами: Приложение позволяет пользователям управлять бытовыми приборами, такими как кофемашины и блендеры, через интуитивно понятный интерфейс.
Создание и редактирование рецептов: Пользователи могут создавать новые рецепты, добавлять ингредиенты, редактировать существующие рецепты и удалять ненужные.
Система управления заказами: Пользователи могут оформлять заказы на хот-доги с учетом различных добавок и соусов, а также получать информацию о стоимости заказа.
Логирование операций: Все действия пользователей записываются в лог-файл, что позволяет отслеживать использование приложения и выявлять возможные проблемы.
Работа с динамическими структурами данных: Приложение использует стеки и списки для управления ингредиентами и заказами, позволяя пользователям легко добавлять и удалять элементы.
Подсчет и отображение статистики: Приложение ведет учет проданных хот-догов, выручки и прибыли, что позволяет пользователям анализировать эффективность работы киоска.
🧩 Особенности реализации 🧩
Использование паттерна MVC (Model-View-Controller) для разделения логики приложения на три компонента: модель (данные), представление (интерфейс) и контроллер (логика управления). Это улучшает читабельность и поддерживаемость кода.
Реализация класса Recipe для управления рецептами и их ингредиентами, что позволяет пользователям легко добавлять и редактировать рецепты.
Создание класса Kiosk для управления продажами и инвентарем, который обрабатывает заказы и ведет учет выручки и прибыли.
Поддержка многопоточного программирования для выполнения операций в фоновом режиме, таких как обновление данных и обработка заказов, что делает приложение более отзывчивым и эффективным.
Интерактивное меню для удобного взаимодействия с пользователем, позволяющее легко навигировать по функциональности приложения.
📦 Скачать проект