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

От переводчика:
Я подготовил для вас адаптированный перевод с небольшими дополнениями и исправлениями. Я сохранил несколько пропагандистский стиль оригинальной статьи, но, сама по себе, информация в ней интересная, поэтому решил, все же, перевести.

Люди часто спрашивают меня:
Зачем мне вообще использовать RxJava или Reactor, если то же самое можно сделать с помощью Streams, CompletableFutures и Optionals?

image

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

Давайте определим 8 критериев, которые помогут нам понять разницу между этими библиотеками и стандартными возможностями Java:

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

Автономер на четырех языках. Часть 1 - 1

Небольшое вступление

Я попал в мир IT относительно недавно: всего два года я занимаюсь разработкой приложений под iOS. Но кроме Objective-C и Swift меня всегда манил мир Java и C#. Периодически я выделял время, чтоб посмотреть какие-то видео, обучающие основам этих языков, но дальше простого просмотра и переписывания кода с экрана дело не заходило. И тут я вспомнил об одной математической игре, которую мне однажды посоветовал мой друг.

Суть игры заключается в следующем: вы идете по улице и смотрите на автомобильные номера. И в каждом номере считаете сумму всех цифр (например, в номере 8037 нужно посчитать 8 + 0 + 3 + 7). Это самый простой уровень игры. Второй по сложности уровень — посчитать сумму первой половины номера и второй (80 + 37). Есть еще третий уровень — умножить все цифры (нули при этом пропустив: 8 х 3 х 7) и четвертый — умножить первую половину номера на вторую (80 х 37).

В общем: эту игру (в консольном варианте) я и решил написать на четырех языках: Swift, Objective-C, Java и C#. Что из этого получилось? Давайте посмотрим.

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

Если тесты сбоят на ранее протестированном коде, то это явный признак того, что в коде появилась какая-то новая ошибка. Раньше тесты проходили успешно и код был правильный, сейчас тесты сбоят и код работает неправильно. Цель хорошего набора тестов заключается в том, чтобы сделать этот сигнал настолько ясным и чётко адресованным, насколько возможно.

Ненадёжные (flaky), то есть недетерминированные тесты ведут себя иначе. Они могут показать как положительный, так и отрицательный результат на одном и том же коде. Другими словами, сбой теста может означать, а может и не означать появление новой проблемы. И попытка воспроизвести ошибку путём перезапуска теста на той же версии кода может привести или не привести к успешному проходу теста. Мы рассматриваем такие тесты как ненадёжные, и в конце концов они теряют свою ценность. Если изначальная проблема — это недетерминизм в рабочем коде, то игнорирование теста означает игнорирование бага в продакшне.

Ненадёжные тесты в Google

В системе непрерывной интеграции Google работает около 4,2 млн тестов. Из них примерно 63 тыс. показывают непредсказуемый результат в течение недели. Хотя они представляют менее 2% от всех тестов, но всё равно ложатся серьёзным бременем на наших инженеров.
Читать полностью »

YUBITSEC CTF: Изучайте реверс или +925 очков рейтинга за несколько минут - 1
Всем доброго времени суток. Только что подошел к концу очередной CTF от YubitSec, не смотря на сложности, которые возникли в самом начале из-за обильного DDoS'а всех сайтов с заданиями, битва была довольно жесткой. Задания всё ещё доступны по ссылке.Читать полностью »

Всем, кто работал с VK API, давно известно, что доступ к любой работе с аудиозаписями ВКонтакте был закрыт 16 декабря 2016 года, а информация о голосовых сообщениях вообще отсутствует в документации.

imageНа примере моего пустого сообщества-песочницы

Так как же это делается?
Читать полностью »

Вступление

Привет, читатели! Решил поведать вам о мини-библиотеке Jerminal. Я сейчас работаю над большим коммерческим проектом на Groovy/Java. Ну и мне пришло задание — написать консольку для приложения. К сожалению, было поставлено условие: никаких сторонних решений, все только свое. Недолго думая, я сел и написал ее. Подробнее — под катом.

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

Основной принцип программирования гласит: не изобретать велосипед. Но иногда, чтобы понять, что происходит и как использовать инструмент правильно, нам необходимо это делать. Сегодня изобретаем ConcrurrentHashMap.

Сперва нам понадобятся 2 вещи. Начнем с 2х тестов — первый скажет, что у нашей реализации нет data races (на самом деле нам нужно проверить, правилен ли наш тест также путем тестирования заведомо некорректной реализации), второй тест мы будем использовать для тестирования производительности с точки зрения throughput.

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

Недавно в бой вышел первый проект, где я получил работу джуниора, и мы с коллегой запилили в нашем сервисе такой вот «калькулятор ожиданий джуна». Из первых 47 ответов мы узнали, что 91% респондентов ждет интересного проекта, а 38% — жаждет реального опыта.

Список ИТ-компаний, которые регулярно проводят стажировки для студентов юга России - 1
Пощупать и оставить свой ответ можно тут

Так и родилась идея помочь нашему джуну: взяли свой родной регион (сами мы ростовские), да и составили список тех, кто регулярно предлагает тут оплачиваемые стажировки с возможностью дальнейшего трудоустройства.
Читать полностью »

Я уже довольно давно занимаюсь проблемами машинного обучения и глубокими архитектурами (нейронные сети), и мне необходимо было сделать мини-презентацию системы, генерирующую временные ряды для эмуляции различных процессов. Поскольку на серьезные темы лучше говорить с юмором, то я решил подобрать какой либо веселый пример, чтобы выступление слушалось с улыбками на лицах. Нам крупно повезло, поскольку мы живем в одно время с великим оратором, чьи речи заставляют сердца людей биться чаще. Я говорю о Дональде Трампе. Поэтому вполне естественно было бы создать систему, которая галлюцинировала говорила бы как Трамп.

Галлюцинируй как Трамп, или мини-анализ Рекуррентных Нейронных Сетей - 1
Читать полностью »

«Меньшими силами делать больше» — Кирилл Толкачёв об Альфа-Лаборатории - 1

Кирилл tolkkv Толкачёв — вероятно, самый известный в Java-мире сотрудник Альфа-Лаборатории: он активно выступает на Java-конференциях, давно участвует в подкасте «Разбор Полётов», а осенью стал сооснователем нового подкаста «Two Devs One Ops». Но как выглядит его работа в самой Альфа-Лаборатории, и насколько активно в компании используют все те инструменты, которые он упоминает в докладах и подкастах?

Кирилл выступил на прошедшей JPoint 2017, рассказав там совместно с Евгением Борисовым о «граблях» Spring Test/Spring Boot Test, а Альфа-Лаборатория стала спонсором JPoint — и мы решили, что на конференции удобно поймать его и расспросить обо всём этом.
Читать полностью »


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