Выбор стека
Как сделать приложение?
Создание бэкенд-приложения с нуля требует предварительных знаний и планирования. Первым шагом является выбор стека технологий.
Основные факторы выбора стека технологий.
-
Поддерживаемость: выбирай технологии и библиотеки, которые активно поддерживаются и развиваются сообществом.
-
Производительность: выбирай технологии и библиотеки, которые позволяют быстро выполнять задачи и обрабатывать большое количество запросов.
-
Расширяемость: выбирай технологии и библиотеки, которые легко масштабируются и расширяются в зависимости от развития проекта.
-
Документация и сообщество: выбирай технологии и библиотеки с хорошей документацией и активным сообществом, чтобы иметь возможность получать поддержку и находить решения проблем.
-
Опыт больших компаний: пользуйся опытом больших компаний. Никто не придумает лучше, чем компании, вливающие в разработку миллиарды долларов. Конечно, можно улучшать отдельные части, но не весь каркас приложений.
В нашем случае выберем стек, состоящий из языка Go, базы данных PostgreSQL и кеша Redis.
Go — высокоуровневый язык программирования (но в сравнении с языками php, python, java более низкоуровневый) с открытым исходным кодом, который предлагает высокую производительность и легкость разработки. Это позволяет нам создавать быстрые и надежные приложения.
PostgreSQL — мощная и гибкая объектно-реляционная СУБД, которая поддерживает множество функций и позволяет хранить большое количество структурированных данных. Слово реляционная (relational, где relation переводится как отношение) означает, что данные хранятся в виде таблиц, между которыми устанавливаются связи. Поэтому можно искать информацию, основываясь на этих связях.
Redis — оперативная СУБД, которая предлагает высокую скорость доступа и обработки данных. Это позволяет нам хранить и использовать данные в реальном времени.
Мы выбрали этот стек, потому что он позволяет создавать быстрые, надежные и расширяемые приложения, поддерживающие работу с большим потоком данных под большой нагрузкой. Так как SQL-решения работают со структурированными данными с поддержкой типов, Postgres отлично подойдет для работы в связке с Golang (строго типизированным языком, работающим c данными в виде структур). Redis поможет снизить нагрузку с БД, уменьшив количество однотипных запросов, таких как, например, получение пользователя по его id или номеру телефона. Вышеприведенный стек имеет большое сообщество разработчиков и множество инструментов и библиотек, которые помогут нам эффективно производить горизонтальное масштабирование, а также улучшать и расширять функциональность нашего приложения.
Самое главное — мы можем воспользоваться опытом bigtech-компаний, которые уже решали сложные задачи в данном стеке.