Previous Entry Share Next Entry
2016-01

продакшен

Читаю спецификацию протокола FIX.

Вот это я понимаю продакшен %) судя по количеству описанных нюансов, Recovery Scenarios и просто костылей на тему "если что-то пошло не так" :)))

Не то что вебы-шмебы, где каждый первый девелопер рассчитывает, что всё всегда получается почему-то.

В прошлый раз я так впечатлился, когда листал Boeing 747 Operations Manual :)

This entry was originally posted at http://wizzard.dreamwidth.org/457943.html. It has comment count unavailable comments. Please comment there using OpenID.

  • 1
dmytrish December 24th, 2015
Это же вам не какая-нибудь хипстерятина!

sorhed December 24th, 2015
Мне казалось, что в фиксе всё просто. Ну, реконнект, ну, seq reset. То есть проще и не сделать-то :)

wizzard0 December 24th, 2015
Ну я про всякое "если пришло ВОТ ТАКОЕ то делайте так, а если ВООТ ТАКОЕ то что-то пошло совсем не так, включайте сирену и зовите санитаров"

sergey_cheban December 24th, 2015
Фраза про санитаров напомнила мне инструкцию по уничтожению криптомаршрутизатора, которую мне когда-то удалось увидеть. Инструкция была проста и незатейлива, сводилась к выполнению каких-то несложных действий (уж не помню, было ли там что-то кроме нажатия кнопок), но заканчивалась интересной фразой: "Возможно также уничтожение в составе объекта".

wizzard0 December 24th, 2015
Ну и state change matrices же (правда за форму оформления поубивать, но лучше так, чем implied)

vit_r December 24th, 2015
Количество ньюансов зависит от цены ошибки.

_oxpa_ December 24th, 2015
Известная же штука из 69го:
Due to an error in the checklist manual, the rendezvous radar switch was placed in the wrong position. This caused it to send erroneous signals to the computer. The result was that the computer was being asked to perform all of its normal functions for landing while receiving an extra load of spurious data which used up 15% of its time. The computer (or rather the software in it) was smart enough to recognize that it was being asked to perform more tasks than it should be performing. It then sent out an alarm, which meant to the astronaut, I'm overloaded with more tasks than I should be doing at this time and I'm going to keep only the more important tasks; i.e., the ones needed for landing ... Actually, the computer was programmed to do more than recognize error conditions. A complete set of recovery programs was incorporated into the software. The software's action, in this case, was to eliminate lower priority tasks and re-establish the more important ones ... If the computer hadn't recognized this problem and taken recovery action, I doubt if Apollo 11 would have been the successful [M]oon landing it was." —Margaret Hamilton, lead Apollo flight software designer, Letter to Datamation, March 1, 1971

wizzard0 December 24th, 2015
Ага, ага.

salas December 24th, 2015
Интересно. Получается, что набор понятий HAL 9000, да чуть ли не прямо реплики, срисованы с самого очевидного прототипа?

juan_gandhi December 24th, 2015
Спасибо; отличный пример.

sorhed December 24th, 2015
Я люблю FIX, он тупой и клёвый.

egorfine December 24th, 2015
FIX — это отличный пример пиздеца в трейдинговом мире. Причем если 4.x еще постижим, то 5.x — это вот тот самый overengineering at it's best. Круче только CQG, где для тикового протокола нужна собственная реализация IP transport.

wizzard0 December 25th, 2015
Хм, надо почитать. Там синдром второй системы, да?

egorfine December 26th, 2015
Не знаю. Знаю, что в гробу я видал FIX. Особенно после того как пару раз я его реализовал в продакшне и интегрировал с разными системами. Это пиздец и clusterfuck и по мере реализации ты найдешь в нем неточности, мутные вещи и обнаружишь, что подавляющее большинство реализаций срать хотело на session recovery. Отправляяет мессадж 141 при коннекте и вперед, с нуля. Никому не нужен нафиг этот replay.

wizzard0 December 26th, 2015
> подавляющее большинство реализаций срать хотело на session recovery

Потому что in general никакой культуры работы со стэйтом у людей нету, о ней вслух-то говорить начали недавно совсем, а сама она не образовывается просто так.

В итоге реплей вызывает clusterfuck этого самого стэйта.

А, и еще правильный bandwidth-optimized реплей в сочетании с low-latency optimized основным code path сделать не то чтобы просто.

wizzard0 December 26th, 2015
> по мере реализации ты найдешь в нем неточности, мутные вещи

Собственно, уже. Эх.

egorfine December 26th, 2015
Вот. И после третьей реализации я послал все к черту и взял QuickFix. Потому что, как это обычно и бывает, спецификация живет только на бумаге, а в реальной жизни применяется одна мейнстримная реализация. И ее конкретные баги и становятся индустриальным стандартом.

(MSIE, например)

  • 1
?

Log in

No account? Create an account