Забыли пароль?
Регистрация
Архитектурные ошибки финансового подхода
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 боев параллельно будет попросту невозможно.



27.10.2026 ЭХ ПРОКАЧУ заработал 621555 опыта за последние сутки.
26.10.2026 Qwuack продал XaXaJlb 10.00 золотых кредитов на аукционе за 151.00 обычных.
26.10.2026 Самый мощный игрок недели - Укуренный Ёжик (максимальный рейтинг: 5112.0)
26.10.2026 Укуренный Ёжик заработал 20 тактических очков за последнюю неделю.
26.10.2026 ЭХ ПРОКАЧУ добыл 27 находок за городом за последнюю неделю.
26.10.2026 Истребитель киборгов недели - ЭХ ПРОКАЧУ. Убито 38 групп киборгов.
26.10.2026 mik заработал 57189 опыта за последние сутки.
25.10.2026 !Лис! заработал 240424 опыта за последние сутки.
24.10.2026 PHOENIX победил в клановом турнире.
24.10.2026 Виконт продал дубль три 50.00 золотых кредитов на аукционе за 701.00 обычных.
24.10.2026 ЭХ ПРОКАЧУ заработал 303186 опыта за последние сутки.
23.10.2026 Icecream продал ALIEN2005 50.00 золотых кредитов на аукционе за 751.00 обычных.
23.10.2026 ЭХ ПРОКАЧУ заработал 235323 опыта за последние сутки.
22.10.2026 Icecream продал дубль три 50.00 золотых кредитов на аукционе за 751.00 обычных.
22.10.2026 nikdor заработал 104455 опыта за последние сутки.
22.10.2026 Открыта запись на участие в клановом турнире.
21.10.2026 ЭХ ПРОКАЧУ заработал 676736 опыта за последние сутки.
20.10.2026 ЭХ ПРОКАЧУ заработал 345301 опыта за последние сутки.
19.10.2026 Самый мощный игрок недели - Укуренный Ёжик (максимальный рейтинг: 2232.7)
19.10.2026 ~HAMELEON~ заработал 22 тактических очков за последнюю неделю.
Начать игру
Рейтинг игроков
Октябрь 2026


!Лис! 12
Укуренный Ёжик 18
Militaris* 15
Qwuack 9
_ФаНтоМ_ 17
Серго 14
Мартосик 12
Baunatal_2.0 12
ЭХ ПРОКАЧУ 15
~HAMELEON~ 15
Рейтинг кланов
Октябрь 2026


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


PHOENIX 21 (13, 8)
Полиция 18 (16, 2)
Гринпис 9 (9, 0)
Волчья Стая 6 (6, 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!
Социальные сети


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