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

В практике java программиста бывает, что очень хочется изменить поведение программы или «подхачить» пару классов без перепаковки приложения, собрать метрики или протестировать java приложение в недрах сторонней библиотеки или jdbc драйвера без исходного кода. Существует несколько способов сделать это. Я расскажу про open source проект aspectj-scripting, который позволяет решать такие задачи в jvm.

Напильники бывают разные или повествование про «напильник» для java программ - 1

Рассказ про aspectj-scripting будет в нескольких публикациях. Начнем с практики! Под катом модификация поведения maven-changes-plugin без его пересборки и перекомпиляции для выгрузки списка задач из JIRA в файлы xml и json
Читать полностью »

205 шпаргалок для разработчика - 1

Гуляя по просторам интернета, наткнулся на потрясающие шпаргалки для разработчика.

Все шпаргалки любезно предоставлены сайтом refcardz.dzone.com. Материалы представлены бесплатно, но доступны после простой регистрации. Для тех, кому лень и не хочется тратить время на регистрацию, я подготовил архив, который можно скачать с Яндекс.Диска.
Читать полностью »

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

Когда (уже достаточно давно) в одном из своих проектов я столкнулся с необходимостью выбора в настройках одного из трех параметров, решение было очевидно — RadioButton. Но по ряду причин, типа экономии места на экране и некоторых других, возникло желание использовать нечто вроде ToggleButton. Поскольку стандартный Toggle имеет лишь два состояния, был использован костыль в виде программной обработки некоей циклично меняющейся переменной, в зависимости от которой менялись свойства стандартного элемента вроде обычной Button или ImageButton – уже даже не помню. Способ вполне работоспособный, однако не без греха. Первый и самый главный – нарушается Генеральная линия партии, призывающая к раздельному хранению ресурсов и программного кода. Ну и при большом количестве подобных элементов управления код теряет всю свою изящность и привлекательность. Инкапсуляция, опять же, жутко страдает. Посему было решено создать кастомный элемент.
Читать полностью »

Дешифрация TLS трафика Java приложений с помощью логов - 1

Отладка защищенных по SSL/TLS интеграций у Java приложений порой становится весьма нетривиальной задачей: соединение не ставится/рвется, а прикладные логи могут оказаться скудными, доступа к правке исходных кодов может не быть, перехват трафика Wireshark'ом и попытка дешифрации приватным ключом сервера (даже если он есть) может провалиться, если в канале применялся шифр с PFS; прокси-сервер вроде Fiddler или Burp может не подойти, так как приложение не умеет ходить через прокси или на отрез отказывается верить подсунутому ему сертификату…

Недавно на Хабре появилась публикация от ValdikSS о том, как можно с помощью Wireshark расшифровать любой трафик от браузеров Firefox и Chrome без обладания приватным ключом сервера, без подмены сертификатов и без прокси. Она натолкнула автора нынешней статьи на мысль — можно ли применить такой подход к Java приложениям, использовав вместо файла сессионных ключей отладочные записи JVM? Оказалось — можно, и сегодня, уважаемые однохабряне, я расскажу, как это сделать.
Читать полностью »

IT NonStop — большой айтишный праздник в Воронеже - 1
Международная айтишная конференция IT NonStop добралась и до Воронежа! Настоящий технический праздник для всех, кому небезразличны самые современные технологии, подарили нашему городу DataArt, Воронежский государственный университет и факультет ПММ. Около 400 программистов, тестировщиков и других причастных собрались в ВГУ 21 марта, чтобы пообщаться с коллегами, поделиться опытом и послушать интересные доклады. Перед гостями выступили крутаны из самых разных технических областей.

Фотоотчет можно посмотреть уже сейчас. А вскоре поделимся видео докладов и другими материалами. Следите за нашим блогом и страницами в социальных сетях!

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

В этой статье я расскажу о решении проблемы кодогенерации при разработке приложений для СУБД Oracle. Хотя написанное ниже можно частично применить и к другим СУБД, и для генерации не только кода.

Проблема

При разработке приложений иногда возникают ситуации, когда требуется написать много похожих кусков кода, которые в силу различных ограничений нельзя заменить одной универсальной программной единицей. Следуя принципу DRY, вместо того чтобы копировать похожие фрагменты кода вручную с заменой отличающихся частей, лучше воспользоваться техникой кодогенерации из статичных заготовок на основе метаданных, вносящих разнообразие в получившиеся экземпляры кода. К кодогенерации приходится прибегать как в develop/deploy-time (когда все вариации известны заранее и есть возможность создать весь спектр экземпляров кода в статичном виде), так и в runtime, когда код генерируется на основе неизвестных заранее данных и сразу же исполняется.

Специфика кодогенерации при разработке приложений для СУБД состоит в том, что метаданные, как правило, хранятся в ней же.

Приведу несколько примеров задач, в которых востребована кодогенерация:

  • формирование SQL/DML/DDL-выражений на основе пользовательского выбора;
  • создание процедуры загрузки в систему-приемник очередного источника данных по его метаописанию в удаленной (remote) системе-источнике;
  • разворачивание системы в разных окружениях, версиях и редакциях СУБД, где необходимо (де)активировать некоторые опции или создать вспомогательные объекты: например, при разворачивании Oracle-приложения на редакции EE секционировать таблицы и строить локальные индексы; или при разворачивании на версии Oracle ниже 11 вместо виртуальных колонок и индексов по ним создавать представления-обертки с дополнительными вычислимыми колонками и строить function-based-индексы.

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

Итак, вы работаете на Java с самого её появления? Вы помните те дни, когда она называлась «Oak», когда про ООП говорили на каждом углу, когда сиплюсплюсники думали, что у Java нет шансов, а апплеты считались крутой штукой?
Держу пари, что вы не знали как минимум половину из того, что я собираюсь вам рассказать. Давайте откроем для себя несколько удивительных фактов о внутренних особенностях Java.
Читать полностью »

Как стать автоматизатором тестирования? - 1

Добрый день!

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

Эта статья полезна не только для мануальных тестировщиков, желающих автоматизировать свои рутинные проверки, но и для бизнеса и HR-ов, которые ввиду отсутствия каких-либо общепринятых критериев, как правило, понятия не имеют кто есть QA Automation Engineer и в большинстве случаев принимают решение на основании «хороший человек».

Бывает ещё хуже – руководитель/PM/etc… приходят к своим мануальным тестировщикам и говорят: «слушай, а может мы автоматизируем наше тестирование – это сэкономит нам кучу времени и денег. Скажи, какие книги тебе нужны и какие курсы».

0. Начнём с ошибок, которые не надо допускать:

  • Дайте мне книгу умную, которая всё за меня сделает
  • Дайте мне курсы платные, которые всему меня научат
  • Дайте мне форумы специализированные, которые ответят мне на все интересующие вопросы
  • Дайте мне сертификацию полезную, с которой меня везде примут

Это всё хорошо, но лишь в дополнение к рецепту, который описан ниже. Ни в коем случае нельзя с этого начинать.
Читать полностью »

В данной статье я бы хотел поделиться с сообществом «Хабрахабр» стихом «Письмо Онегина к Татьяне» переводом статьи от Matthias Nehlsen“«A farewell note to a programming language». Автор рассказывает о своем опыте разработки на Scala в стиле «Я к вам пишу – чего же боле?»

Прощальная записка языку программирования - 1
Читать полностью »

Минкомсвязи и Институт развития интернета одновременно работают над мерами поддержки российских разработчиков программного обеспечения. Глава Минкомсвязи на встрече с представителями отрасли предложил еще одну меру: IT-компаниям, которые не работают в Крыму, могут запретит участвовать в госзакупках, сообщает РБК. До 27 марта проект ведомства находится в стадии публичного обсуждения.
Читать полностью »


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