Рубрика «java» - 270

Создание любого приложения требует глубокого понимания проблем, которые могут возникать в процессе его жизненного цикла: от разработки до продакшина. Когда Вы разрабатываете комплексное приложение с кастомизированной логикой и пользовательскими интерфейсами, конфигурация «на лету» и в одном окружении не имеет никакого смысла. Как правило, такие приложения разрабатываются достаточно долго и требуют более формального подхода, чтобы обеспечить их эффективную работу по назначению и удовлетворить все потребности пользователей. Даже, если проект не очень большой, все равно намного удобней иметь отдельные окружения для разработки и тестирования, где Вы можете кодить, запускать тесты, никак не влияя на конечных пользователей.

image Типичный жизненный цикл приложения включает разработку, тестирование, разворачивание и обновление. Само собой разумеется, что на стадии разработки программисты используют разного рода инструменты для анализа требований, проектирования и моделирования самого решения, а потом занимаются написанием кода приложения. Затем этот код проходит стадию тестирования и попадает на продакшн к конечному пользователю. После этого приложение постоянно обновляют, добавляют новые фичи и т.д.

Платформа Jelastic поддерживает несколько инструментов и функций, которые значительно упрощают управление жизненным циклом приложения. Например, Вы можете использовать встроенный Maven, чтобы собирать проекты прямо в облаке. Непрерывная интеграция с помощью Jenkins или Hudson позволяет идентифицировать ошибки заранее и сразу же исправлять их. Вы можете легко клонировать окружения для разработки, тестирования и продакшина так, что они будут абсолютно идентичны касательно программного стека и топологии. Так же можно легко привязывать доменные имена и переключать их между окружениями, когда это необходимо.Читать полностью »

Каждый месяц работодатели создают на hh.ru примерно 15 000 000 поисковых запросов. Мы проанализировали потребности компаний в конкретных программистах и составили рейтинг самых популярных языков программирования в запросах работодателей.
Итак, первая десятка самых востребованных программистов в Москве выглядит так:

Самые востребованные языки программирования
К десятке были очень близки axapta, flash и ruby.
Читать полностью »

Многие знают что для подстановки значений в конфигурационные файлы Spring можно использовать context:property-placeholder.

<context:property-placeholder location="classpath*:/prop/*.properties"/> <!-- здесь будут искаться property файлы -->

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg ref="mongo"/>
    <constructor-arg name="databaseName" value="${mongo.db}"/> <!-- здесь будет подставлено значение из найденных property -->
</bean>

Но, при данном подходе, можно лишь подставить различные значения параметров, но не изменить логику развертывания контекста. А ведь, в некоторых случаях, нам необходимо развернуть огромную систему, интегрированную с внешними системами, а в некоторых — просто одну маленькую заглушку.

Когда передо мной встала задача, в зависимости от окружения (dev, prod, load-test), изменить логику развертывания — я искренне попытался использовать старый проверенный способ через property.
Читать полностью »

    В статье ниже я попытаюсь кратко рассказать о том, что такое TarantoolBox и как начать его использовать в уже существующем проекте если вы программируете на Java. Если же вы программируете на другом языке, то вам могут быть интересны некоторые инструменты доступные в коннекторе, такие как возможность редактирование xlog файлов и создание snap файлов из любых данных.
Читать полностью »

    В статье ниже я попытаюсь кратко рассказать о том, что такое Tarantool и как начать его использовать в уже существующем проекте если вы программируете на Java. Если же вы программируете на другом языке, то вам могут быть интересны некоторые инструменты доступные в коннекторе, такие как возможность редактирование xlog файлов и создание snap файлов из любых данных.
Читать полностью »

Введение

В процессе отладки приложений работающих на JVM посредством дебаггера в Eclipse меня всегда впечатляло то, сколько доступа можно получить к данным приложения — потокам, значениям переменных и т.п. И в то же время периодически возникало желание «заскриптовать» некоторые действия или получить больше контроля над ними.

Например, иногда для того чтоб «мониторить» состояние какой-то переменной, меняющейся в цикле, я использовал условный брейкпойнт, условием к которому был код вроде «System.out.println(theVariable); return false». Этот хак позволял получить лог значений переменной практически не прерывая работы приложения (она, я подозреваю, всё-таки прерывалась на время выполнения кода условия, но не более). Плюс, нередко при просмотре каких-нибудь данных через вид Display порядком раздражало то, что результат евалюейшна кода в Display введённого добавлялся тут же после него.

В общем хотелось получить возможность делать всё то же самое например через Bean Shell или Groovy Shell, что в принципе аналогично программному дебагу. По логике это не должно было быть сложно — ведь делает же это как-то сам Eclipse, верно?

Проведя некоторый рисёрч я смог получить доступ к отладочной информации JVM программно, и спешу поделится примером.

Читать полностью »

Подготовка к сдаче экзамена Oracle certified JAVA associateПоиск русского гайда по сдаче на OCAJP 7 не увеньчался успехом, так что я решил написать свой.

Что это за сертификат рассказывают в этом видео. Сдавать или нет каждый решает для себя сам, но этот сертификат является базовым в иерархии Oracle для интересующихся Java.

Подготовка к сдаче экзамена Oracle certified JAVA associateДля себя я решил сдавать на OCP чтобы во-первых систематизировать знания, а во-вторых поднять привлекательность для работодателей.

Началось как обычно с чтения CodeRanch. Когда я начинал готовиться книг посвященных OCA 7 еще не было в природе. Сейчас уже появился официальный гайд. Но учитывая ценник (30$), я все же воздержался бы от покупки. Сейчас расскажу почему. Читать полностью »

Я работаю в нагрузочном тестировании относительно недолго, и одним из моих основных инструментов является Apache Jmeter. Тем не менее, большинство моих коллег не использовали Beanshell в JMeter, и в этой статье я хочу показать пару способов как он может упростить и сократить время подготовку к самим тестам. А покажу это на примере конвертации текста в base64-кодировку и простых стрельб в MongoDB.
Читать полностью »

Введение

Посетил вчера семинар по lambda-выражениям в JAVA 8. Рассказали много интересного.
Читать полностью »

Сегодня 17.10.2012 Oracle выпустила очередной апдейт Java VM где были пофиксены очередные проблемы безопасности Java. После не долго анализа исходного кода было найдено несколько из них и на быструю руку был написан эксплоит для одной из них. Целью данной статьи стало то, что в русском сегменте сети практически не освещаются технические подробности связанные с безопасностью в Java. Моя цель привлечь больше российских специалистов для решение данной проблемы и помочь людям заинтересованным в изучении этой темы.

В последнее время безопасность в Java VM обсуждается и критикуется всеми крупными ИТ специалистами в области информационной безопасность. Механизмы безопасности в Java построены так, что при неправильном их использование они дают возможность злоумышленнику получить доступ к конфиденциальным данным жертвы или установить вирусное программное обеспечение. Java — это лакомый кусок злоумышленников т.к. по статистике riastat на текущий момент Java VM установлена более чем на 1 биллионе клиентских машин. И к сожалению в последнее время уязвимостей в Java находят все больше и чаще.

Сегодня мы поговорим об одном и механизмов безопасности в Java, о так называемой песочнице. А так же рассмотрим на свежем примере примере CVE-2012-5075 как работает песочница и почему при неправильном использовании механизмов песочницы Java появляются уязвимости.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js