В последние годы огромное значение в развитии малого и среднего бизнеса играли такие платформы как Instagram*[1], Facebook*, Twitter и многие другие. Однако в связи с тенденцией мирового сообщества наша страна столкнулась с множеством санкций других государств, в частности европейской части мира. Ограничения затронули множество веб-приложений в том числе социальные сети (Instagram*, Facebook*, Twitter), различные интернет-издания и множество других информационных площадок. Таким образом, масса людей и компаний остались без работы, а также без возможности показать свои достижения миру. Вследствие чего творческие люди больше не могли искать клиентов из-за закрытия Instagram, так как многие работали и продвигали свои продукты именно через это веб-приложение. Также стоить отметить, что самым важным является то, что людей ограничили в возможности общения друг с другом.
Из-за наложенных санкций большинство людей столкнулось с проблемой коммуникации друг с другом. Малый бизнес остался без возможности прорекламировать свои продукты с помощью различных интернет-площадок. Помимо этого, стоит отметить, что масса компаний потеряла огромные средства, вложенные на продвижение своих товаров среди пользователей.
На текущий момент времени Instagram*, разработанный компаний Meta[2], является одной из самых популярных социальных сетей во всем мире. Согласно данным, опубликованным 14 марта 2022 года главой Instagram*, более 80 миллионов уникальных пользователей из нашей страны заходили ежемесячно на эту платформу. Если верить этой статистике, то тогда Instagram* является самой востребованной социальной сетью в России. Однако данный продукт имеет массу проблем. Одним из основных недостатков данного продукта является отсутствие полноценного веб-приложения для загрузки фотографий. Также стоить отметить, что в данном приложении не производится проверка пользователей, что существенно увеличивает количество недействительных аккаунтов.
В связи с этим был создан российский аналог Россграм. Однако в данном продукте существует масса проблем. От пользователей поступило большое количество жалоб на медленную работу веб-приложения, а основной проблемой является то, что за регистрацию нового пользователя просили заплатить деньги.
При разработке российского конкурентно-способного аналога необходимо реализовать полноценное веб-приложение, в котором будет предусмотрена возможность загрузки фотографий через обычный браузер. Также нужно осуществить проверку аккаунта с помощью активационного кода, который будет отправлен на электронную почту при регистрации пользователя. Для хранения и работы с данными должна использоваться быстрая и безопасная СУБД.
Так, перед началом работы надо определить, какая именно система управления базами данных будет использоваться. Ниже, на рисунке 1, показан график сравнение производительности добавления записей с индексом.
Рис. 1. Производительность СУБД
Таблица 1
Сравнение систем управления баз данных
Oracle |
MongoDB |
MySQL |
|
Представление данных |
В виде строк и столбцов |
В виде JSON документов |
В виде строк и столбцов |
Поддержка SQL и JOIN запросов |
Да |
Нет |
Да |
Поддержка XML |
Да |
Нет |
Да |
API и другие методы доступа |
ADO.NET, JDBC, ODBC |
Протокол где используется JSON |
ADO.NET, JDBC, ODBC |
Обращение к нескольким БД |
Да |
Нет |
Да |
Схема данных |
Все таблицы имеют строгую типизацию |
Каждый объект может содержать разные поля |
Все таблицы имеют строгую типизацию |
Коммерческий продукт |
Да |
Нет |
Нет |
Масштабируемость |
Используется в среднем и крупном бизнесе |
Используется в среднем и малом бизнесе |
Используется в среднем, малом и крупном бизнесе |
Обобщая вышеприведенные данные в таблице 1, можно сделать вывод о том, что MySQL — хороший выбор, если:
– ваша база данных мало масштабируется;
– необходима высокая скорость передачи данных;
– безопасность данных — главный приоритет;
– будут использоваться SQL и JOIN запросы;
– будут использоваться такие соединения с СУБД как JDBC.
MongoDB — хороший выбор, если:
– не требуется обработка SQL и JOIN запросов;
– вам нужна возможность мгновенно восстановить данные;
– вы работаете с нестабильной схемой.
Так как веб-приложение должно обеспечивать быструю передачу данных и при разработке будут использоваться SQL запросы, то использование такой СУБД как MongoDB не является наилучшим вариантом. Использование Oracle в текущей обстановке невозможно. Вследствие чего, можно сделать вывод о том, что MySQL является самым подходящим вариантам для разработки веб-приложения.
Для повышения производительности и скорости разработки готового продукта, необходимо выбрать подходящий веб-фреймворк. Ниже, в таблице 2, представлены самые актуальные и востребованные каркасы.
Таблица 2
Сравнение веб-фреймворков
Spring Boot |
Django |
Laravel |
|
Аппаратная платформа |
Java |
Python |
PHP |
Поддержка ORM |
Да |
Да |
Да |
Поддержка MVC |
Да |
Да |
Да |
Популярность |
1,4 миллиона |
700 тысяч |
507 тысяч |
Интеграция |
Простая (Легко совместить с ORM и другими) |
Тяжелая |
Тяжелая |
Встроенные серверы |
Да |
Нет |
Нет |
Безопасность |
Защита от XSS и CSRF |
Защита от XSS и CSRF |
Защита от XSS и CSRF |
Исходя из вышеперечисленного можно сказать, что принципиальной разницы между фреймворками нет. Однако Spring Boot отличается тем, что интеграция с Hibernate ORM или Spring Security будет проходить значительно быстрее, так как для подключения того или иного фреймворка нужно просто добавить зависимости в конфигурационном файле.
Разработка данного веб-приложения позволит создать конкурентоспособный российский аналог социальной сети, при этом расширив и улучшив функциональные возможности, а также сократить количество недействительных аккаунтов, что значительно повысит степень безопасности данного продукта.
Литература:
- Chris Schaefer, Clarence Ho, Iuliana Cosmina, Rob Harrop. Pro Spring 5, 5th Edition, 2017. — 1122 p.;
- Клеппман Мартин Высоконагруженные приложения. Программирование, масштабирование, поддержка, 2017. — 640 с.
[1] * Meta Platforms Inc. признана экстремистской организацией и запрещена в РФ
[2] признана экстремистской организацией и запрещена в РФ