Skip to content

Тестовое задание на стажировку в VK в команду СМБ

License

Notifications You must be signed in to change notification settings

Encritary/vk_onlineStorePrototype

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vk_onlineStorePrototype

Тестовое задание на стажировку по вакансиям «PHP-разработчик» и «Бэкенд-разработчик» в команду СМБ.

Схема системы

На указанной схеме представлен прототип системы онлайн-магазина.

Прототип API по оформлению заказа

Посмотреть код прототипа API по оформлению заказа можно в папке src.

Рекомендую начать изучение с класса контроллера.

Используемые технологии

PHP

Для API предполагается использование PHP 8.x, возможно, каких-либо фреймворков для ускорения разработки.

Nginx

Для хранения медиаконтента предполагается использовать сервера Nginx, возможно выстроение целой сети CDN (Content Delivery Network), чтобы ускорить отдачу большого количества медиаконтента и улучшить загружаемость по всей территории страны.

Плюсы подхода:

  • Nginx обладает отличной производительностью, когда дело касается статического контента.
  • Легко развернуть новые сервера, например, для расширения CDN.

Минусы подхода:

  • В случае с CDN — затраты на хостинг серверов по территории всей страны.
  • Возможна ситуация с устаревшим контентом — нужно продумать момент отдачи сигнала всем инстанциям CDN о том, что нужно подтянуть новую версию файла или удалить старую.

MySQL

В качестве основной СУБД предполагается MySQL.

Её плюсы в том, что она полностью поддерживает все возможности SQL, есть возможность делать репликации для распределения нагурзки, легко настраивать и разворачивать, а также есть множество готовых решений для использования в коде.

В качестве минуса можно выделить долгий ответ на сложные SQL-запросы по очень большим таблицам. Но с этим может помочь кэш, о чём сказано далее.

Redis

В качестве кэша предполагается Redis.

Redis будет хранить кэш наиболее частых и в то же время очень тяжёлых запросов, таких как, например, запрос каталога интернет-магазина. Для этого можно указывать в качестве ключа параметры сортировки каталога, а в качестве значения — готовый сериализованный ответ для API.

Redis очень часто используется как кэш за счёт своей производительности и удобства использования.

About

Тестовое задание на стажировку в VK в команду СМБ

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages