izebit

izebit

From time to time I code and publish posts about it on my web blog

Находим утечки соединений при помощи JavaMelody

JavaMelody — это инструмент для мониторинга web приложений. Во время работы собирает различную статистику, например: количество http соединений, пользовательских сессий. количество jdbc соединений, более того можно узнать какие производились запросы и какие из них являются «горячие». Есть возможность увидить открытые в данный момент с точностью до метода из которого происходит обращение, это очень полезно для выявления так называемых утечек соединений. количество памяти и загруженность процессора и прочее. Всю эти данные он агрегируют и рисует графики в реальном времени. Более подробную…

0
Read More

Кэширование в hibernate

На днях столкнулся с задачей кэширования запросов к БД. Приложение использовало, как это не странно, hibernate. В этой статье я расскажу, о том какие бывают кэши в hibernate, каким образом их использовать и как настраивать.

0
Read More

Конвертирование дат из XMLGregrorianCalendar в GregorianCalendar

При парсинге xml файла наткнулся на следующую проблему. Даты ранее 1582 года содержащиеся в XMLGregorianCalendar некорректно конвертируются в GregorianCalendar. Вывод: Это происходит из-за перехода с Юлианского календаря на Грегорианский. Чтобы того не было, необходимо явно выставить дату. Вывод:

0
Read More

Ускоряем сборку проекта с использованием maven и git

Всем привет, хочу предложить небольшой Proof of Concept, который должен ускорить сборку сложного, многомодульного мавен проекта. Как мы обычно собираем проект? В любимом терминале вводим: mvn clean installПосле этого maven компилирует весь проект и копирует созданные артифакты в локальный репозиторий. Все тривиально, но здесь есть ряд проблем. Это долго. Даже если убрать clean, запустятся тесты, после них произойдет упаковка в jar или какой другой тип артифакта, и наконец копирование полученного артифакта в $HOME/.m2/repository Давайте подумаем над тем, как мы можем…

0
Read More

Коротко: Экстремальное программирование

Вступление. После прочтения книги Кент Бек «Экстремальное программирование» подытожу и напишу основные тезисы об этой методологии разработки. Принципы лежащие в основе методологии покажутся неновыми, так и есть, она не несет никаких волшебных пилюль. Основная идея заключается в грамотном использовании и комбинировании устоявшихся и проверенных приемов. Автор книги предлагает использовать эти методы доходя до крайностей, из за чего методология и обязана такому названию. Основные моменты. Команда не должна быть слишком большая, не более 10 человек. Увеличение численности происходит постепенно, по мере…

0
Read More

Коротко: Методология SCRUM

Вдохновленный прочтением «Scrum. Революционный метод управления проектами«, хочется немного подвести итоги и написать об основных моментах методологии scrum.

0
Read More

10 заповедей Zen программиста

1. Внимательность. Если вы работаете над решением задачи, делаете её хорошо,  на столько насколько вы можете. Не переключайтесь на другие вещи. Работайте только над чем то одним, в один момент времени. Вы не станете быстрее, если будете работать в многозадачном режиме. Если вы работаете над несколькими задачами, вы раньше устанете и сделаете больше ошибок и потратите больше времени на переключение между задачами. Это применимо к различным областям, не только к программированию. «Если вам нужен сон, спите» Кодо Саваки Не планируйте процесс разработки, когда…

0
Read More

Кидаем исключения типа Object

Всем известно, что кидать исключения можно только, если объект наследуется от класса java.lang.Throwable. Для этого предназначена инструкция байткода ATHROW. Мне стало интересно, осуществляется ли проверка типа после компиляции.Напишем небольшой метод, генерирующий нужный класс, с помощью библиотеки bcel.

0
Read More

Неочевидные оптимизации JIT

В данном посте, я расскажу про интересный случай возникший у меня работе. Есть следующий код: В методе проиcходит сериализация массива байт. Используется тот факт, что размер char в java — 16 бит, а размер byte (Внезапно 😱) — 8 бит. Но суть не в этом. Интересный момент здесь заключается в том, что метод работает гораздо медленее на массивах нечетной длины.

0
Read More