Как я выбирал стек для White Network — и почему не Flask и не Node.js, а .NET + React
Сегодня не про идею и не про философию. Сегодня — про код. Точнее, про то, как я выбирал технологии для White Network и почему именно так, а не иначе.
Начну с главного вопроса, который мне задают чаще всего
«Алан, зачем ASP.NET Core? Ты же мог взять что-то попроще — Flask, FastAPI, Express?»
Мог. Но не стал. И вот почему.
Я учился на IT-специальности, и C# — один из первых языков, которые я взял в руки серьёзно. Писал реальные вещи, понимал, что происходит под капотом. Когда ты знаешь язык — ты думаешь о задаче, а не о синтаксисе. Это принципиально важно, когда строишь в одиночку.
Но дело не только в привычке. ASP.NET Core — это объективно сильная технология:
Это компилируемый язык на базе .NET, производительность которого в бенчмарках стоит рядом с Go и значительно обгоняет Python. Для соцсети, где в будущем будут тысячи одновременных запросов, это не мелочь.
C# — строго типизированный ООП-язык. Это значит, что архитектура кода получается чистой и предсказуемой. Меньше сюрпризов в 2 ночи, когда что-то сломалось.
Entity Framework Core — ORM, которая идёт рядом с .NET как родная. Миграции базы данных, LINQ-запросы, работа с PostgreSQL — всё это делается элегантно и без боли.
Технология активно развивается, за ней стоит Microsoft и огромное комьюнити. Это не экзотика — это реальный выбор больших компаний.
База данных
PostgreSQL как основное хранилище. Здесь выбор был очевиден — реляционная база для структурированных данных: пользователи, посты, карма, клубы. ACID, надёжность, отличная поддержка в Entity Framework.
Redis для кэширования сессий и горячих данных. Когда пользователь авторизован — не хочу каждый раз лезть в PostgreSQL за его токеном.
Архитектура
Modular Monolith. Звучит умно, но идея простая: один сервис, но внутри чётко разделённые модули — пользователи, посты, карма, AI-фильтр. Каждый модуль живёт своей жизнью, не лезет в чужие данные напрямую.
Почему не микросервисы? Потому что я один. Микросервисы — это про команды и про горизонтальное масштабирование, которое мне пока не нужно. Зато Modular Monolith даёт чистоту кода сейчас и возможность разбить на сервисы потом, если понадобится.
Фронтенд
React. Здесь без сюрпризов — популярная технология, компонентный подход, большая экосистема. Начну с веба, потом посмотрю в сторону React Native для мобилки.
Инфраструктура
Всё в Docker. Поднял PostgreSQL, Redis и бэкенд одной командой — это удобно и на локальной машине, и при деплое. Cloudflare стоит перед сайтом: защита, HTTPS, базовая защита от ботов.
Честно о том, что впереди
Стек выбран. Модели базы данных написаны. Landing page живёт на whiternet.net. Это только начало — впереди ещё много работы. Но фундамент заложен осознанно, и я понимаю каждое решение, которое принял.
Если вы разработчик — напишите в комментариях: какой стек выбрали бы вы для соцсети в одиночку? Интересно сравнить подходы.
🔗 Оставить заявку на бету: whiternet.net
С уважением,
maindeline