Skip to content

sdvuuv/Templates

Repository files navigation

Промежуточный результат

Редакция: 2024-04-25

Исходный код по курсу Шаблоны проектирования после проведения двух секций занятий. Разобраны следующие темы:

  • Шаблон Одиночка
  • ООП : Наследование, Инкапсуляция
  • Git : Основы работы
  • Json: Основы работы
  • Разработаны основные модели данных
  • Созданы Фабричные методы для генерации данных
  • Разработан абстрактный класс для формирования отчетности
  • Разработаны наборы класссов для выгрузки данных в разныее форматы
    • Json
    • Csv
    • Markdown
  • Шаблон Фабрика для создания нужного объекта для построение отчетности.
  • Подключена библиотека Flask
  • Добавлена Фабрика для реализации процессов обработки транзакций
  • Добавлен расчет оборотов.
  • Добавлен универсальный сервис для реализации CRUD операций
    • на примере работы с Номенклатурой
    • с использованием Postman
  • Добавлена система десериализации данных
    • на примере класса storage
    • на примере класса settings_manager
  • Продемонстрированы варианты работы с интеграционным тестированием
  • Реализован механизм хранения и учета предподготовленных данных с использованием свойства blocked_period
  • Шаблон Наблюдатель
    • Построена базовая реализация шаблона
    • Разработан постобработчик
    • Добавлена система логирования
  • Архитектурный шаблон: CQRS

Структура

Файл Назначение
settings_manager.py Менеджер управления настройками
settings.py Модель настроек
reference.py Абстрактный класс для наследования справочников
errors.py Файл с классами для хранения и обработки ошибок
exceptions.py Файл с классами для генерации собственных исключений
.\Models Набор моделей
.\Tst Модульные тесты nunit
.\Src\Logics Набор классов для инкапсуляции бизнес логики
.\Src\Data Наборы классов для хранения данных
.\Src\Storage Каталог для хранения данных

Разворачивание

  1. Отредактировать файл settings.prod.json
  2. Запустить сборку образа
sudo docker build -t patterns . 
  1. Запустить образ
sudo docker-compose up -d
  1. Установить Portainer
sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

Запуск: https://localhost:9443

Проверка

  1. Запускаем команду
curl http://127.0.0.1:5001/api/nomenclature
  1. Создаем файл delete.json и включаем в него Json текст любого элемента номенклатуры

  2. Формируем запрос

curl -X DELETE  -H "Content-Type: application/json" -d @delete.json http://127.0.0.1:5002/api/nomenclature
  1. Зафиксируем изменения
curl http://127.0.0.1:5002/api/nomenclature/accepted
  1. Получим новый список
curl http://127.0.0.1:5001/api/nomenclature

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published