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

Язык Java появился в уже далёких в 1990-х годах и менее чем за 5 лет стал одним из трёх самых популярных языков на планете. Сегодня, в том числе благодаря развитию мобильного мира, Java продолжает быть современным и невероятно востребованным представителем мира IT.

Но популярность вкупе с возрастом имеет и обратную сторону медали — за эти 23 года было издано огромное количество литературы. Некоторые книги стали настоящей классикой, поэтому именно на них ориентируются преподаватели на учебных курсах даже сегодня в 2018 году. Однако это не означает, что за последние годы не издавалось хороших книг. В подтверждение этого, автор GeekBrains Илья Бубнов изучил онлайн-магазины, чтобы найти десяток самых рейтинговых книг по Java, изданных или переизданных на русском языке за последний год.
Читать полностью »

Всем привет!

А мы тут плюшками балуемся запускаем второй поток курса «Разработчик Java Enterprise». Бессменный создатель и преподаватель курса — Виталий Иванов, написал вот по этому поводу статью даже, которая, как надеемся, покажется вам полезной :)

Так что поехали :)

Данная статья посвящена изучению API к спецификации JavaEE Concurrency (JSR 236), определяющий стандарт выполнения параллельных задач в JavaEE контейнере, используя концепцию управляемых ресурсов. Выход седьмой версии JavaEE сделал возможным запуск параллельных задач в Enterprise-контейнерах, предоставляя разработчику удобные средства и утилиты для работы с многозадачностью. До того самого момента, вся многозадачность отдавалась на откуп конкретной реализации используемого сервера приложений, самостоятельно принимающего решение об оптимизации выполнения задач. Нарушение этого принципа расценивалось как плохая практика построения архитектуры Enterprise-приложений. Вследствие чего, разработчику не рекомендовалось создавать новые потоки, а иногда и запрещалось подобное поведение на уровне контейнера.

Java EE Concurrency API - 1

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

Реализация Spring Framework API с нуля. Пошаговое руководство для начинающих. Часть 1 - 1

Spring Framework является одним из самых сложных фремворков для понимания и изучения. Большинство разработчиков изучают его медленно, через практические задачи и гугл. Этот подход не эффективен, так как не даёт полной картины и при этом требует больших затрат.

Я хотел бы предложить вам принципиально новый подход к изучению Спринга. Он заключается в том, что человек проходит через серию специально подготовленных туториалов и самостоятельно реализует функционал спринга. Особенность этого подхода в том, что он, помимо 100%-го понимания изучаемых аспектов Spring даёт ещё большой прирост в Java Core (Annotations, Reflection, Files, Generics).

Статья подарит вам незабываемые ощущения и позволит почувствовать себя разработчиком Pivotal. Шаг за шагом, вы сделаете ваши классы бинами и организуете их жизненный цикл (такой же, как и в реальном спринге). Классы, которые вы будете реализовывать — BeanFactory, Component, Service, BeanPostProcessor, BeanNameAware, BeanFactoryAware, InitializingBean, PostConstruct, PreDestroy, DisposableBean, ApplicationContext, ApplicationListener, ContextClosedEvent.
Читать полностью »

Привет! Представляю вам перевод статьи автора Paulo Sato на тему использования Kotlin Coroutines вместо RxJava в своих Android проектах.

RxJava как базука, большинство приложений не использует и половины её огневой мощи. В статье пойдет речь о том, как заменить её корутинами (сопрограммами) Kotlin.

Я работал с RxJava в течении нескольких лет. Это определенно одна из лучших библиотек для любого Android проекта, которая и сегодня в ударе, особенно, если вы программируете на Java. Если же вы используете Kotlin, то можно сказать, что в городе новый шериф.

Большинство использует RxJava только для того, чтобы контролировать потоки и для предотвращения callback hell (если вы не знаете, что это такое, считайте себя счастливчиком и вот почему). Дело в том, что мы должны иметь ввиду, что реальная мощь RxJava — это реактивное программирование и backpressure. Если вы используете её для контроля асинхронных запросов, вы используете базуку, чтобы убить паука. Она будет делать свою работу, но это перебор.

Одним заметным недостатком RxJava является количество методов. Оно огромно и имеет тенденцию расползаться по всему коду. В Kotlin вы можете использовать корутины для реализации большей части поведения, которое вы ранее создавали, используя RxJava.

Но… что такое корутины?

Корутин — это способ обработки конкурентных задач в потоке. Поток будет работать пока не остановлен и контекст будет меняться для каждого корутина без создания нового потока.
Корутины в Kotlin всё еще являются эксперементальными, но они вошли в Kotlin 1.3, так что я написал ниже новый класс UseCase (для clean architecture), использующий их. В этом примере, вызов корутин инкапсулирован в одном файле. Таким образом, другие слои не будут зависеть от выполняемых сопрограмм, обеспечивая более разъединенную архитектуру.
Читать полностью »

Если хочешь в чем-то разобраться — учись сразу у лучших. Сегодня на мои вопросы отвечает бог корутин и concurrency, Рома elizarov Елизаров. Мы поговорили не только о Kotlin, как вы могли бы подумать, но ещё и о куче смежных тем:

  • Golang и горутины;
  • JavaScript и его применимость для серьезных проектов;
  • Java и Project Loom;
  • олимпиадное программирование на Kotlin;
  • как правильно обучаться программированию;
  • и другие волнующие вещи.

«Мы даже не пытаемся запустить старый код, такой задачи у нас не стоит в принципе» — Роман Елизаров о разработке Kotlin - 1
Читать полностью »

Ad Exchange в рамках Real-Time Bidding (RTB) — одно из AdTech-решений, видоизменяющих рынок онлайн-рекламы. Его основная функция — стыковка большого количества SSP и DSP, которые не имеют прямой интеграции между собой, а также перепродажа разнообразного рекламного трафика между ними.

Благодаря заказу для рынка США мы с головой погрузились в специфику построения платформы Ad Exchange. И в этой статье представляем некоторые идеи и результаты.

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

Всем привет!

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

Курс «Разработка на Java» от Mail.Ru Group на канале Технострим - 1

Этой весной мы выложили на канале Технострим запись курса по Java. Уже несколько семестров подряд он читается в рамках образовательного проекта Техносфера, реализуемого компанией Mail.Ru Group совместно с МГУ им. М. В. Ломоносова. Курс включает все темы, необходимые начинающему разработчику в мире Java. Авторы не углубляются в детали синтаксиса, а сразу берутся за практические задачи: разработку игры с консольным интерфейсом и функционального чата. В конце курса разбираются частые вопросы из собеседований на позиции junior и middle Java-developer.

Записи лекций и материалы курса бесплатны и доступны всем желающим.

Большинство домашних заданий можно выполнить и проверить в репозитории курса.
Читать полностью »

Красивый и привлекательный UI — это важно. Поэтому для Android существует огромное количество библиотек для красивого отображения элементов дизайна. Часто в приложении требуется показать поле с числом или какой-либо счетчик. Например, счетчик количества выделенных элементов списка или сумму расходов за месяц. Конечно, такая задача легко решается с помощью обычного TextView, но можно ее решить элегантно и еще анимацию изменения числа добавить:

demo

На YouTube доступно Demo-видео.

В статье пойдет рассказ о том, как все это реализовать.

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

image

Часто приложения развиваются посредством множества небольших улучшений, но наступает момент, когда множество частностей выстраивается в цельную картину, реализация которой требует качественных и масштабных изменений. И здесь только одной хорошей идеи недостаточно. Не менее важны организационная и техническая составляющие вопроса. Как подготовиться и осуществить архитектурные изменения в работающей системе? Мы хотим поговорить о глобальном рефакторинге, повышении производительности систем, оптимизации кода, подходах работы с базами данных и многих других вещах.
Читать полностью »


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