Интересная статья на habr.com о том, как писать на Java low-latency приложения так, чтобы в heap не создавался мусор и значит не вызывался сборщик мусора, который может привести к непредсказуемым задержкам в самый непододящий момент торгового дня. Почитайте также и комментарии.
Архив метки: programming
Epic fails: учиться на чужих ошибках никогда не поздно
Учиться программисту нужно всегда, чтобы не отстать от бешеных темпов развития технологий 21-ого века. Еще полезно программисту учиться на чужих ошибках. В качестве ежедневного чтива люблю читать следующие сайты:
Жил был программист Richard Rose
Жил был программист Richard Rose.
После работы на ведущие банки мира (Goldman Sachs, Morgan Stanley, Bank of America, UBS и прочее), он решил, что настало время уйти на вольные хлеба и реализовать свои идеи и наработки в коммерческом продукте. План состоял в том, чтобы создать движок, совмещавший OMS и соединение с рынком, который бы способен был перемещать сообщения с задержкой в микросекунды и даже меньше. Движок был написан на Java.
Java 11 и Epsilon GC
В Java 11 представлен новый экспериментальный сборщик мусора Epsilon GC. Несмотря на название, он не собирает мусор, а только аллоцирует память и не освобождает её. Соответственно, по исчерпании свободной памяти, возможен креш с OutOfMemory. Для чего такой сборшик мусора может пригодиться?
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.