Забыли пароль?
Регистрация
Архитектурные ошибки финансового подхода
23.09.2024 12:03:34
Я уже упоминал, что на старте работы над Genesyx наделал архитектурных ошибок в серверном коде, потому что моя основная деятельность была связана с разработкой финансового софта, где критична точность и надежность. Подраскрою немного эту тему, ведь проблемы эти никуда не ушли и их тоже нужно будет побороть до запуска Genesyx 3D в массы.

Когда вы пишите приложения для финансовых институтов (банков, брокеров, хедж фондов и пр.), самое худшее, что можно сделать - накосячить с данными. Например два раза провести одну и ту же транзакцию, в результате чего клиент заплатит дважды, или ошибиться в запятой где-то в незаметном месте, что приведет к тому, что клиент желая потратить 1,000 каких-то денежных единиц потратит вместо этого 1,000,000. Это налагает некоторый стиль программирования, который подразумевает максимальную точность и надежность. А это всегда делается в ущерб производительности и масштабируемости. Поэтому операции в финансовых приложения обычно делят на различные модули или даже отдельные продукты, которые работают поверх различных баз данных и на разном железе, а интеграции между ними протекают в отдельных процессах.

Вот и у меня на момент начала разработки Genesyx за спиной было лет 10 опыта в разработке финансовых приложений и 0 в геймдеве, поэтому Genesyx получился очень точным и надежным, но если вопросы производительности со временем удалось решить, то вопрос масштабируемости все еще стоит ребром.

Я до сих пор с недоумением смотрю на современные игры где разработчики, выкатывая минорное обновление умудряются класть всю систему и проводить мейнтенанс в течение 6-8 часов... И это-то в эпоху Docker-контейнеров и blue-green деплоймента. В моем случае обновление всегда сводилось к перезаписи бинарей и прочих ресурсов + перезапуску приложения. На все про все - 10-15 секунд и снова все работает. При этом игроки видели подвисание на эти самые 10-15 секунд и больше ничего. Все бои продолжались, в том же состоянии, в каком были на момент перезапуска, кто ушел в пустоши продолжал там оставаться, крафт не сбрасывался (за исключением ситуаций когда я налажаю с выкатываемым кодом, в этом случае полежим минут 5-10 пока найду и решу проблемы) и т.п.. Все потому, что в любой момент времени актуальное состояние находится в базе, а значит каждый раз, когда его нужно поменять - данные читаются из базы и сразу обновляются в базе. Это дает сумасшедшую надежность, но это же и убивает масштабируемость, ведь база - самое конкурентное место, которое только может быть и в такой модели запустить даже 50 боев параллельно будет попросту невозможно.



06.10.2026 Виконт заработал 1054409 опыта за последние сутки.
05.10.2026 Icecream установил новый образ.
05.10.2026 Самый мощный игрок недели - Меф. (максимальный рейтинг: 5093.1)
05.10.2026 Одеяло заработал 18 тактических очков за последнюю неделю.
05.10.2026 Укуренный Ёжик добыл 12 находок за городом за последнюю неделю.
05.10.2026 Истребитель киборгов недели - Виконт. Убито 85 групп киборгов.
05.10.2026 Виконт заработал 1041428 опыта за последние сутки.
04.10.2026 !Лис! продал Калипсо 10.00 золотых кредитов на аукционе за 99.01 обычных.
04.10.2026 !Лис! продал Калипсо 10.00 золотых кредитов на аукционе за 151.00 обычных.
04.10.2026 !Лис! продал Калипсо 10.00 золотых кредитов на аукционе за 99.01 обычных.
04.10.2026 !Лис! продал Калипсо 28.00 золотых кредитов на аукционе за 447.01 обычных.
04.10.2026 !Лис! продал Калипсо 50.00 золотых кредитов на аукционе за 799.01 обычных.
04.10.2026 !Лис! продал Калипсо 50.00 золотых кредитов на аукционе за 799.01 обычных.
04.10.2026 !Лис! продал Калипсо 50.00 золотых кредитов на аукционе за 799.01 обычных.
04.10.2026 !Лис! продал Калипсо 50.00 золотых кредитов на аукционе за 799.01 обычных.
04.10.2026 !Лис! продал Калипсо 50.00 золотых кредитов на аукционе за 799.01 обычных.
04.10.2026 !Лис! продал ~.maks.~ 50.00 золотых кредитов на аукционе за 801.00 обычных.
04.10.2026 Skystorm и Icecream вступили в брак.
04.10.2026 Виконт заработал 358428 опыта за последние сутки.
03.10.2026 Icecream продал Псих Одиночка 100.00 золотых кредитов на аукционе за 1800.01 обычных.
Начать игру
Рейтинг игроков
Октябрь 2026


Меф. 18
!Лис! 12
Militaris* 15
Qwuack 9
Straik2025 12
Виски 9
Серго 14
Мартосик 12
mouse* 12
roma 11
Рейтинг кланов
Октябрь 2026


10 PHOENIX 1.0
9 Гринпис 1.0
8 Волчья Стая 0.0
7 Полиция 0.0
6 ANGELS 0.0
5 Эволюция 0.0
4 Immortals 0.0
3 T.R.I.A.D.A. 0.0
Все кланы
Чемпионат
Сентябрь - Ноябрь


PHOENIX 12 (4, 8)
Полиция 11 (9, 2)
Гринпис 7 (7, 0)
Волчья Стая 2 (2, 0)
ANGELS 2 (0, 2)
Сектор 13 0 (0, 0)
Мафия 0 (0, 0)
Legion 0 (0, 0)
Alkatraz 0 (0, 0)
Resident Evil 0 (0, 0)
Все кланы
Союзы


Titanium
Nuntios Caeli
Bang!
Социальные сети


Группа ВКонтакте
Дневник разработчика