Логирование относится к сквозной функциональности — разбросанной по коду и, как правило, редко покрываемой юнит-тестами. Слабое покрытие тестами, очевидно, связано с тем что вывод в лог не всегда достаточно важен и воспринимается скорее как вспомогательная функция а не цель работы метода, к тому же тестировать сквозную функциональность бывает достаточно сложно.
Но когда корректность вывода в лог становится критичной или же чувство прекрасного требует от нас полного покрытия кода тестами — без тестирования логгеров становится не обойтись.
Читать полностью »
Рубрика «java» - 131
JUnit тесты для логирования
2017-12-16 в 18:58, admin, рубрики: java, junit, log4j, mockito, PowerMock, slf4j, тестированиеЗащищенность переменных в Kotlin на примере Java
2017-12-16 в 12:19, admin, рубрики: java, kotlin, Программирование, проектирование, Проектирование и рефакторингСовсем недавно у меня состоялся разговор с коллегой по поводу новых языков программирования. После того, как разговор зашел о Kotlin, мой друг обронил фразу «Там нулл нельзя передавать, если не указал, что переменная может быть nullable». Эта фраза сильно озадачила меня — а действительно ли, так важны киллер фичи Котлина в сравнении с уже известными языковыми возможностями Явы? Размышления на этот вопрос вылились в целый комплекс примеров, в рамках которых я хочу показать (в первую очередь самому себе, наверно), зачем же нужны все эти новые языковые возможности.
Самая скучная часть разработки на уже обкатанном языке — рутинные задачи. Например, показ картинок. Абсолютно рядовая задача, которая в любом проекте обрастает рядом условностей.Читать полностью »
Глубокое обучение при помощи Spark и Hadoop: знакомство с Deeplearning4j
2017-12-15 в 14:36, admin, рубрики: Apache, big data, deep learning, Hadoop, java, spark, Алгоритмы, Блог компании Издательский дом «Питер», машинное обучение, Профессиональная литература, распознавание образовЗдравствуйте, уважаемые читатели!
Мы вполне убедились в мегапопулярности глубокого обучения (Deep Learning) на языке Python в нашей целевой аудитории. Теперь предлагаем поговорить о высшей лиге глубокого обучения — то есть, о решении этих задач на языке Java при помощи библиотеки Deeplearning4j. Мы перевели для вас июньскую статью из блога компании Cloudera, где в интереснейших подробностях рассказано о специфике этой библиотеки и о глубоком обучении в Hadoop и Spark.
Приятного чтения.
Читать полностью »
PVS-Studio 2018: CWE, Java, RPG, macOS, Keil, IAR, MISRA
2017-12-14 в 17:37, admin, рубрики: 2018, 2018 год, C, c/c++, C#, c++, cwe, IAR, IBM RPG, java, KEIL, MacOS, MISRA, pvs-studio, rpg, Блог компании PVS-Studio, программирование микроконтроллеров, Разработка под OS X, си/си++
Приближается 2018 год и пора подумать о новых направлениях развития нашего статического анализатора PVS-Studio. Сейчас наибольший интерес для нас представляет поддержка языка Java. Дополнительно мы рассматриваем возможность поддержки языка IBM RPG. Не менее интересно развить анализ C, C++ C# кода в направлении выявления потенциальных уязвимостей. Ещё нам хочется поддержать анализ C и C++ кода на платформе macOS, и, наконец, доделать поддержку компиляторов от компаний Keil и IAR. Никуда мы не денемся и от поддержки стандарта MISRA. Перечислено много, и на всё одного 2018 года нам не хватит. Поэтому давайте вместе с нами пообсуждаем наши планы и выберем самые приоритетные направления.
Читать полностью »
«Я всегда должен быть на виду» — Интервью с Олегом Шелаевым из ZeroTurnaround (часть 1)
2017-12-14 в 15:37, admin, рубрики: developer advocate, java, jrebel, marketo, salesforce, xrebel, zeroturnaround, без слайдов, Блог компании JUG.ru Group, веб-аналитика, интернет-маркетинг, контент-маркетинг, маркетинг, метрики
Всем привет! Вашему вниманию — очередной выпуск шоу «Без Слайдов». На этот раз гостем стал Олег Шелаев, Developer Advocate компании ZeroTurnaround, которые делают разные продукты для Java-разработчиков. За время, которое прошло с момента интервью, произошло два важных события:
- Олег получил звание Java Champion
- Компанию ZeroTurnaround купила компания Rogue Wave Software
Поэтому сейчас — самое время для того, чтобы выпустить это интервью. Оно получилось длинным, поэтому, как и в предыдущем случае, я разбил его на две части. Первая часть — перед вами. О чём мы поговорили в ней с Олегом:
- кто такие ZeroTurnaround;
- как стать Developer Advocate;
- о правильном маркетинге;
- о продажниках и инвесторах;
- об инструментах маркетинга и продаж;
- о задачах и проблемах маркетинга.
Получилось много про маркетинг и технологии в маркетинге. А так же о том, что такое «правильный айтишный маркетинг».
Расшифровка как всегда — под катом. Приятного вам просмотра или чтения.
Как мы вооружили мерчандайзеров и наладили тотальный контроль качества дистрибуции: кейс
2017-12-14 в 9:26, admin, рубрики: android, B2B, java, Блог компании EastBanc Technologies, мерчендайзинг, разработка мобильных приложений, Разработка под android, ритейлКаждая компания хочет, чтобы её товары стояли на полках всех магазинов — чистенькие, с нормальным сроком годности, этикеткой к покупателю, на проходном месте и на удобной высоте. Бери и неси на кассу. Но жизнь, как говорится, вносит свои коррективы. Поэтому мерчандайзер регулярно объезжает магазины, чтобы проверить, как всё расставлено на самом деле.
У нашего заказчика есть продукция, которую он производит и поставляет в розничные магазины по всей России. Мерчандайзеры — его глаза и руки. Не хватало только удобного технологического инструмента, который поможет контролировать представленность товара, а случись что — оперативно сообщать о сбоях, чтобы как можно быстрее всё исправить.
Мы сделали решение на базе мобильного приложения и портала, которые оцифровали работу мерчандайзера. Ниже опишем подробности, поделимся примерами кода и техническими идеями, которые помогли упростить работу пользователей и снизили риски недобросовестного отношения и мошенничества. Мы решили рассказать всё это, потому что самим интересно посмотреть со стороны, как оцифровывается процесс с бумаги — это словно построить самолет на кульмане или в 3D-виде.
Эликсир для джавистов. Часть первая
2017-12-14 в 7:23, admin, рубрики: Elixir, Elixir/Phoenix, Erlang/OTP, java, wunsh, функциональное программирование
Не так давно я решил изменить образ мышления с помощью изучения нового языка программирования. С самого начала карьеры я работал с Джавой, и сейчас стал ощущать необходимость в совершенно другой парадигме. Так я повстречал невероятный язык под названием Эликсир.
Рубистам хорошо знакомо название этого языка, а также, возможно, имя создателя – Джозе Валима. Однако у пришедших из более многословных языков шансы быть знакомыми с Эликсиром довольно низки.
Так я решил написать несколько постов, чтобы помочь джавистам быстрее понять как устроен Эликсир. С помощью сравнения этих двух языков будет проще постичь новый для вас мир. Через эти посты я расскажу о синтаксисе, о работе языка и о ключевых особенностях, которые делают Эликсир по-настоящему потрясающим!
Советы по чистому коду новичкам в Java-Android
2017-12-13 в 10:55, admin, рубрики: android, android development, java, Блог компании SimbirSoft, разработка мобильных приложений, Разработка под android, чистый кодТеме чистого кода на одном только habrahabr посвящено тысячи статей. Никогда бы не подумал, что захочу написать свою. Но после проведения компанией курсов для желающих связать карьеру с разработкой ПО, в частности разрабатывать под Android, мое мнение поменялось.
За основу статьи взяты советы из классики “Роберт К. Мартин: Чистый код”. Отобрал из них те, которые наиболее часто встречались в виде проблем у студентов. Приведенные советы написаны с учетом моего опыта разработки коммерческих Android приложений. Поэтому не ко всем Android-проектам приведенные ниже советы подойдут, я уже не говорю про другие системы.
Советы в основном приводил с примерами кода как НЕ НУЖНО делать. Как ни странно, у большинства студентов были одни и те же ошибки. Все примеры кода были придуманы, любые совпадения с реально существующим кодом случайны.
Как я осознал, что такое распределенные системы
2017-12-12 в 14:49, admin, рубрики: akka, distributed systems, java, reactive programming, scala, акторы, Блог компании Издательский дом «Питер», книги, Программирование, Профессиональная литератураВ скором времени у нас выходит изысканная новинка для разработчиков высшего класса — "Реактивные шаблоны проектирования".
Автор книги Роланд Кун — звезда первой величины в области распределенных систем, один из разработчиков Akka. Под катом предлагаем перевод его программной статьи о распределенных системах и акторной модели, размещенной на сайте GitHub
Читать полностью »
Использование Google FireBase для создания простого чата на Android
2017-12-11 в 14:21, admin, рубрики: Android чат, java, open source, недограм, Разработка под android, хочу как Дуров, Чат на AndroidНесколько дней назад я начал разработку простейшего чата под Android, я решил использовать Firebase — простую в использовании базу данных в режиме реального времени, которая хранит свои данные в формате JSON. Несмотря на то, что Firebase предоставляет полный API-интерфейс и документацию по использованию, я обнаружил, что у него не хватает деталей при попытке применить его к шаблону архитектуры, например MVP, поэтому я решил попробовать и объяснить, как я понял реализацию на Android. Также я расширил шаблон MVP новым слоем, явно для Firebase — Interactors.
Читать полностью »


