Архив рубрики: Без рубрики

Что такое latency? Low latency? Ultra-low latency?

Для понимания понятия latency возьмем простой пример. Представьте себе некий «черный ящик» с одним входом и одним выходом. Вы подаете сигнал на вход и ожидаете появление сигнала на выходе. При проведении экспериментов вы замечаете, что при подаче сигнала на вход сигнал на выходе появляется через 1 секунду. Причем это происходит постоянно с отклонением +/- 10 миллисекунд. То есть выдача сигнала на выходе происходит с определенной задержкой. Это и есть latency — время задержки.

Читать далее

Реклама

Java для торговых приложений? Вполне!

Как вы можете использовать Java для финансовых торговых приложений? Ведь Java тормозная, жрет много памяти, сборщик мусора останавливает приложение, когда захочет. Разве Java годится для low-latency? Для этого непременно нужно писать на C, C++, а еще лучше на Verilog и использовать FPGA, не меньше! Java для high-frequency trading? Да вы шутите!? Java для алгоритмической торговли? Не смешите мои тапки!

Так или примерно так реагируют некоторые разработчики на использование Java в финансовых приложениях, где критичны скорость работы и высоки требования к latency.

Уверяю вас Java вполне подходит для финансовых торговых приложений и вот несколько причин почему.

Читать далее

Три книги по оптимизации Java

Рекомендую вам три книги, которые очень помогают разобраться во внутреннем устройстве JVM, рассказывают о факторах, влияющих на производительность приложения и предлагают различные советы по оптимизации работы вашего Java-приложения.

Эти книги особенно полезны для Java-разработчиков финансовых приложений. Ведь в финансовых приложениях как никогда верно высказывание «время — деньги». Если приложение медленно работает или зависает для выполенения какой-то фоновой задачи, например, сборки мусора, перекомиляции кода, когда требуется выставить заявку на рынок или обработать новые цены, важный момент может быть упущен и потери могут быть невосполнимыми.

Читать далее

Java-эксперты, которых надо знать в лицо

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

Читать далее

Программному архитектору в помощь

Только что закончил читать книгу Thinking Architecturally от компании Pivotal. Очень хорошо, кратко, сжато описано как программному архитектору следить за новинками и трендами в IT-индустрии, как проводить оценку новых технологий и сравнивать пригодность той или иной технологии для определенного проекта.

Читать далее

Журнал Technology Radar: ваш ориентир в джунглях информационных технологий

Каждый программист, если он хочет не отстать от жизни, должен следить за изменениями в сфере IT. Самостоятельно это делать очень трудно (но, при опеределённом усилии, можно): нужно читать новости, просматривать форумы, следить за выходом новых книг, смотреть презентации с недавно прошедщих конференций и постоянно отсеивать ценную информацию от хайпа и рекламы.

Читать далее

Понятие «Торговая система» в различных контекстах биржевой торговли

Понятие «торговая система» в различных контекстах имеет различные смыслы, поэтому, когда в разговоре или тексте вы видите это словосочетание, важно разобраться в каком контексте оно употреблено, чтобы не запутаться и понять, о чем конкретно идет речь. Читать далее

Как эффективно работать с Git

Отличная статья о Git и политике создании веток в Git-репозитарии.

По своему личному опыту Git мне сначала показался слишком сложным в сравнении с SVN. Все эти merge, reset, rebase, pull, push, commit были некими излишними концепциями, когда в Subversion было только update и commit. Но привыкание к Git наступило примерно через месяц активной работы, особенно потому, что переход на Git в нашем проекте был проведен насильно и возврата к Subversion в проекте не предполагалось. Теперь я с уверенностью могу сказать, что Git в большой команде и большом проекте — вещь просто незаменимая.

Читать далее

Top 15 вопросов по многопоточности в Java, которые могут задать на интервью в инвестиционном банке

Весьма толковый блог Java Reivisted разработчика, который работает в той же сфере, что и я. В его посте — краткая выжимка по многопоточности в Java, что может понадобиться освежить память перед интервью в инвестиционном банке.

Во имя высокой скорости обработки данных и снижения latency в брокерских отделениях банков стараются выжать из железа по-максимуму. Многопоточность тут важна и играет существенную роль, особенно в приложениях связанных с торговлей, доступом к биржам, обработкой рыночных данных, в движках алгоритмической торговли, в системах управленяи ордерами, в smart order routing системах. Чем ближе ваше приложение к рынку, тем ниже должна быть latency, тем выше требования к разработчикам, пишущим данные приложения.

Чтение на выходные: 12 факторов приложений готовых для облака

Интересный сайт 12factor.net про лучшие практики программирования приложений и выкатывания их на продакшен с упором на облачные прилодения. 

Сайт сделан в виде документа-манифеста с главами и иллюстрациями. Есть версия и на русском. Поучительное и полезное чтение.

И вот еще презентация на эту тему c демонстрацией этих принципов на Heroku, начиная с середины. Пользуясь этой презентацией, я завел пробный аккаунт на Heroku и вывел пробное Java-приложение, склееное с помощью Spring Boot. В результате я полюбил Spring Boot еще больше. Для low-latency он конечно не подойдет, но для рядовых приложений подходит прекрасно. Считаю, что Spring Boot должен освоить любой уважающий себя Java-разработчик: всегда пригодится. 

В качестве развития этой темы компания Pivotal дополнила 12 факторов еще тремя и опубликовала короткую книгу Beyond the 12 Factor App: Exploring the DNA of Highly Scalable, Resilient Cloud Applications