Предусловие: 1) неудобно/ненужно (править неудобно, кода получается сильно больше) 2) performance penalty (на виртуальные вызовы) при выделении интерфейсов для всех публичных классов. Далее, если необходимо добавить в публичный класс поле с приватным объектом - приватный объект приходится тащить в публичный заголовок. Изложенный подход лишен недостатка необходимости тянуть все кишки публичного класса в общую область видимости. Ну и надо воспринимать изложенное как некоторую гиперболизацию.
>> мы имеем дело с очень разными предметными областями, подходами и даже областями
И?
>> архитектура учитывает все нефункциональные требования клиента и результирующий продукт удовлетворяет их
А зачем это надо, если есть команда, которая отвечает за end-to-end продукт? Это дело команды искать правильный trade offs. И у этой команды есть все мотиваторы, так как именно им дальше поддерживать разрабатываемое решение.
Мне кажется архитектура — не совсем системно правильная конструкция. Т.е. все, что описано выше — опирается только на good will людей. Но у людей нет мотиваторов делать правильно/неправильно. Архитектура не несет риск от принятых ими решений. И то выражается в том, что крайне сложно архитектурным подразделениям поставить хоть какие-то цели/kpi.
ну понятно же, что автор имеет в виду разницу во времени отправки первого и последнего ордера. Идеальная картина мира — все отправляется в один момент времени, но в реальности будет небольшая разницы во временах отправки, это и названо дисперсией. На мой взгляд, сравнение достаточно уместно здесь
Хороший вопрос)) я бы подошел к этому вопросу немного с другой стороны. Мне кажется, что критерии soft real time (большие материальные потери при не выполнении SLA) ~ latency-sensitive. А low-latency зависит от сложности алгоритмов, выполняющихся при реакции системы на внешний раздражитель. Т.е. для HFT, которые арбитражат стаканы биржи low-latency это одно, а для тех, у кого пересчитываются сложные модели, low-latency — совсем другое.
Лично мне проще написать какое-то узкое место на С++. Но код состоит далеко не только из таких критичных кусков. Итого, если говорить про конкретные участки кода — лично мне проще сделать из на C++. Но если говорить не только про эти супер-критичные куски то проще и быстрее сделать на Java а потом допилить до требуемой производительности, ИМХО
Интересный момент, как влияет использование try-with-resources на скорость работы сгенерированного кода. В С++ компиляторах раньше при включении исключений некоторые оптимизации просто отключались.
тут вопрос не в том, что медленнее, а в том, что предсказуемей, т.е. если на критическом пути market date'ы плодить объекты, то GC рано или поздно случится. Получается мы теряем некоторый throughput ради предсказуемого правого хвоста распределения.
Я боюсь, что даже те, кто знает ничего не скажут. Если интересно, есть хорошие мануалы от Agner Fog, которые лучше публичной документации некоторых компаний.
Никто не будет работать в стране, где могут мобилизовать
facebook
и несогласные не отвечают. боятся двушечки
Новости пусть откроют и подумают, что дополнительно должно быть сделано:
https://www.kommersant.ru/doc/5631522
он самый
Предусловие: 1) неудобно/ненужно (править неудобно, кода получается сильно больше) 2) performance penalty (на виртуальные вызовы) при выделении интерфейсов для всех публичных классов. Далее, если необходимо добавить в публичный класс поле с приватным объектом - приватный объект приходится тащить в публичный заголовок. Изложенный подход лишен недостатка необходимости тянуть все кишки публичного класса в общую область видимости. Ну и надо воспринимать изложенное как некоторую гиперболизацию.
И?
>> архитектура учитывает все нефункциональные требования клиента и результирующий продукт удовлетворяет их
А зачем это надо, если есть команда, которая отвечает за end-to-end продукт? Это дело команды искать правильный trade offs. И у этой команды есть все мотиваторы, так как именно им дальше поддерживать разрабатываемое решение.
Вообще, JUG.ru делали почтовую рассылку