Как стать автором
Обновить
16
Карма
0
Рейтинг
Oleksandr Stefanovskyi @stefanovskyi

Java Developer

  • Подписчики 13
  • Подписки 8
  • Публикации
  • Комментарии

PWA — это просто

Разработка веб-сайтовJavaScriptКлиентская оптимизацияРазработка мобильных приложенийПроектирование и рефакторинг
image
Понятие Progressive Web Applications (PWA) на слуху давно, с весны 2018 года приложения этого класса поддерживаются всеми основными браузерами, однако распространенность технологий PWA несмотря на очевидные их «плюсы» пока очень низка.

Специалисты Google (в том числе и на Хабре) очень информативно и компетентно пишут о PWA, но их рекомендации полезны больше тем, кто уже знаком с предметом. Данная статья призвана показать, что Progressive Web Apps — это не сложно, и использовать эти технологии можно и нужно уже сейчас разработчикам любых сайтов.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Просмотры236K
Комментарии 32

Полезный обзор. 28 книг, которые повлияли на мое мышление, вдохновили или сделали лучше

Профессиональная литератураКарьера в IT-индустрии
Recovery mode


Я не люблю читать книжные рейтинги по двум причинам. Во-первых, чаще всего они представляют собой список книг, отобранных неведомым автором по неведомым критериям. Во-вторых, описания книг больше напоминают рекламные тексты издательств, которым сложно верить.

Из-за этого большинство подобных материалов мало полезны, несмотря на то, что могут содержать толковые книги. Мне давно хотелось написать полезный обзор, который не станет навязывать определенные материалы, а позволит читателю выбрать наиболее подходящие.
Читать дальше →
Всего голосов 62: ↑55 и ↓7+48
Просмотры105K
Комментарии 79

Чистая прагматичная архитектура. Мозговой штурм

Блог компании JUG Ru GroupПрограммированиеJavaООП
Закрадывалась ли вам в голову идея переписать своё жирное энтерпрайзное приложение с нуля? Если с нуля, то это ж ого-го. Как минимум кода будет раза в два меньше, верно? Но ведь пройдёт пара лет, и оно тоже обрастёт, станет легаси… времени и денег на переписывание не так много, чтобы делать идеально.

Успокойтесь, начальство всё равно не даст ничего переписать. Остаётся рефакторить. На что лучше всего потратить свои невеликие ресурсы? Как именно рефакторить, где проводить чистки?

Название этой статьи — в том числе отсылка к книге Дяди Боба «Чистая Архитектура», а сделана она на основе замечательного доклада Victor Rentea (твиттер, сайт) на JPoint (под катом он начнёт говорить от первого лица, но пока дочитайте вводную). Чтения умных книжек эта статья не заменит, но для такого короткого описания изложено весьма хорошо.

Идея в том, что популярные в народе вещи вроде «Clean Architecture» действительно являются полезными. Сюрприз. Если нужно решить вполне конкретную задачу, простой изящный код не требует сверхусилий и оверинжиниринга. Чистая архитектура говорит, что нужно защищать свою доменную модель от внешних эффектов, и подсказывает, как именно это можно сделать. Эволюционный подход к наращиванию объема микросервисов. Тесты, которые делают рефакторинг менее страшным. Вы ведь уже знаете всё это? Или знаете, но боитесь даже подумать об этом, ведь это же ужас что тогда делать придётся?

Кто хочет получить волшебную анти-прокрастинационную таблетку, которая поможет перестать трястись и начать рефакторить — добро пожаловать на видеозапись доклада или под кат.



Читать дальше →
Всего голосов 42: ↑40 и ↓2+38
Просмотры22K
Комментарии 24

Что почитать про Java прямо сейчас?

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

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

image
Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Просмотры42K
Комментарии 9

Реактивный манифест

Анализ и проектирование системПараллельное программирование
Перевод
В последние годы требования к приложениям значительно изменились. Десятки серверов, время отклика в несколько секунд, оффлайновое обслуживание, которое могло длиться часами, гигабайты данных — такими были большие приложения буквально несколько лет назад. Сегодня же приложения работают абсолютно на всём, начиная с простых мобильников и заканчивая кластерами из тысячи процессоров. Пользователи ожидают миллисекундного времени отклика и стопроцентного аптайма, в то время как данные выросли до петабайтов.

Первоначально эту нишу занимали крупные инновационные интернет-компании типа Google или Twitter, однако такие требования к приложениям начали всплывать во многих областях индустрии. Финансовые и телекоммуникационные компании первыми начали внедрять новые практики, чтобы удовлетворить новым требованиям, а теперь подтягиваются и остальные.

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

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

Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Просмотры47K
Комментарии 15

Наш вариант теста на знание SQL

SQL
У нас, как и во многих других организациях, проводится тестирование соискателей при поступлении их на работу. Основу тестирования составляет устное собеседование, но в некоторых случаях, даются также практические задания. Несколько дней назад, Руководство попросило меня подготовить набор задач на знание SQL.
Читать дальше →
Всего голосов 47: ↑38 и ↓9+29
Просмотры405K
Комментарии 125

Объект в футляре или Optional в Java 8 и Java 9. Часть 1: «Как без него прожить?»

ПрограммированиеJava
Tutorial
Объект в футляре

Наверное вам уже приходилось иметь дело с объектами, которые меняют свою структуру по законам своего внутреннего развития или в зависимости от внешних условий. На практике это означает, что части объекта для внешнего мира могут быть иногда доступны, а иногда – нет.
Какие это могут быть объекты? Многие сервисные компании, торговые предприятия и банки предоставляют различные виды услуг в зависимости от времени суток. Различные устройства могут выполнять или не выполнять те или иные действия в зависимости от своего состояния. Если вы читаете этот текст с экрана смартфона или ноутбука, он может перестать его показывать, если заряд аккумуляторов опуститься ниже определенной границы.
В этой и последующих статьях этого tutorial мы рассмотрим простые объекты с динамической структурой, способы их моделирования и использования в Java с помощью методов класса Optional.
Про использование методов этого класса написано немало, в том числе и на русском языке, в том числе и на Хабре. В этой серии статей я попытаюсь посмотреть на проблему пошире, рассмотреть преимущества и недостатки выбранного решения проблемы, а также альтернативные подходы.
В этой первой статье цикла мы поговорим о том, как не используя Optional в Java можно обходиться без NullPointerException. Я надеюсь, вы увидите, что без Optional жить можно, но с ним жизнь должна стать приятнее. Вторая статья этой серии посвящена описанию методов класса Optional в том виде, как он появился в Java 8, а третья — описанию методов класса, добавленных в Java 9. Четвертая статья посвящена необходимому (с точки зрения автора) дополнению к этому классу. Ну а в пятой статье я рассказываю о том, где внутри класса следует применять Optional, подвожу итоги и дарю каждому читателю, дочитавшему серию до конца, ценный подарок.
Читать дальше →
Всего голосов 7: ↑3 и ↓4-1
Просмотры9.4K
Комментарии 16

Разработка чат-бота для Facebook Messenger

МессенджерыPHPFacebook API
Tutorial
В настоящее время наблюдается, действительно, бум чат-мессенджеров. Один за другим платформы для обмена мгновенными сообщениями объявляют о запуске платформы для разработки ботов.
Не стал и исключением Facebook. 12 апреля на конференции F8 Facebook представила платформу для разработки ботов для своего мессенджера.
В данной статье хочу поделиться опытом разработки чат-бота для Facebook на PHP.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Просмотры85K
Комментарии 24

Адаптивные email-письма без боли и страданий

Блог компании EnglishDomCSSHTMLВерстка писем
Tutorial
Привет, Хабр! Все, кто хоть раз сталкивался с версткой email-писем, знают, что это нудно, утомительно и порой очень сильно раздражает. В большинстве случаев это обусловлено тем, что почтовые клиенты не умеют поддерживать очень многое из того, что мы используем при верстке самых простых веб-страниц. Поэтому дизайн письма делается простым или не делается вовсе, а львиная доля времени уходит на проверку и фиксы багов в многочисленных почтовиках.

В этой статье мы хотим поделиться с вами рецептами верстки красивого, на наш взгляд, и адаптивного письма, которое будет подстраиваться под экран вашего телефона даже в Gmail. А так же рассказать про нюансы, проблемы и тонкости, с которыми мы столкнулись в процессе его создания.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Просмотры33K
Комментарии 13

Постановка задач для начинающих тимлидов

Управление разработкойУправление проектамиКарьера в IT-индустрии
Tutorial
Когда люди говорят о постановке задач — они очень любят вспоминать про SMART.
Ну, дескать, цель должна быть Specific, Measurable, Attainable, Relevant, Time-bound.
И есть даже удивительные люди, которые пытаются это пихать программистам.

Но есть задачи, а есть задачи. И между ними большая разница!
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Просмотры39K
Комментарии 21

Правила хорошего тона для API

Блог компании ZeroTechСовершенный кодПроектирование и рефакторингAPI
Перенос функциональности сайта, интернет-магазина или портала в мобильное приложение имеет ряд преимуществ как для владельца онлайн-сервиса, так и для его клиентов. Владелец получает дополнительный канал связи со своей целевой аудиторией и возможность персонализировать рекламные объявления, а пользователь – более удобный интерфейс, дополнительный функционал и возможность получения своевременных оповещений.

О том, какие принципы и инструменты мы используем для добавления REST API к проектам, читайте под катом.
Читать дальше →
Всего голосов 24: ↑16 и ↓8+8
Просмотры20K
Комментарии 25

Интеграционное тестирование в Java EE, Адам Бин

Блог компании LuxoftJava
Перевод
Tutorial
Прагматичное интеграционное тестирование может повысить вашу производительность и гарантировать развертывание JavaEE-приложения.

Адам Бин (Германия) – консультант, тренер, архитектор, член экспертной группы Java EE 6 и 7, EJB 3.X, JAX-RS, и JPA 2.X JSRs. Java Champion, Top Java Ambassador 2012 и JavaOne Rock Star 2009, 2011, 2012 и 2013 гг. Автор книг «Real World Java EE Patterns–Rethinking Best Practices» и «Real World Java EE Night Hacks–Dissecting the Business Tier».

Предлагаем вам ознакомиться с переводом статьи Адама «Integration Testing for Java EE»
Читать статью
Всего голосов 11: ↑10 и ↓1+9
Просмотры27K
Комментарии 1

Как стать тимлидом и не взорваться

Блог компании Touch InstinctРазработка под iOSXcodeSwiftТестирование мобильных приложений


Два года назад я начал негласно исполнять роль iOS-lead в компании Touch Instinct и формированием стабильной работы iOS-отдела. Спустя полгода это трансформировалось в официальную должность. Из-за отсутствия опыта у меня возникало огромное количество проблем, которые вызывали жжение в области верхней части кресла. Это происходило из-за ряда факторов:


  • Нехватка опыта менеджмента.
  • Отсутствие рядом компетентного человека, уже прошедшего путь становления от новой для себя роли к человеку, который понимает устройство процессов, обязанностей и пути решения проблем.
  • Нестабильность общих процессов в компании из-за её молодого возраста на тот момент.

Если вы стали лидом и первоначальная эйфория сменилась небольшим горением и унынием, то пара советов не будет лишней.

Читать дальше →
Всего голосов 92: ↑89 и ↓3+86
Просмотры66K
Комментарии 24

Английский для собеседований в IT-компании: что нужно для старта карьеры?

Блог компании EnglishDomУчебный процесс в ITЧитальный зал

Собеседование на английском — дело непростое. Но хорошее планирование и подготовка ключевых моментов сделают этот процесс более приятным и безобидным.


Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Просмотры120K
Комментарии 33

Готовим rutracker на spring и kotlin

JavaKotlin
tutracker, kotlin, spring boot

В преддверии первого релиза языка kotlin, я хотел бы поделиться с вами опытом создания на нем небольшого проекта. Это будет приложение-сервис, для поиска торрентов в базе rutracker-а. Весь код + бонусный браузерный клиент можно найти здесь. Итак, посмотрим, что же получилось.
Под катом.
Всего голосов 23: ↑19 и ↓4+15
Просмотры37K
Комментарии 32

Деплой Java Spring приложения в PaaS-платформу Heroku за 14 минут

Разработка веб-сайтовПрограммированиеJava
Tutorial


Здравствуйте!
Продолжаю серию публикаций по проекту
Maven/Spring/Security/JPA(Hibernate)/Rest(Jackson)/ Bootstrap(CSS)/ jQuery+plugins
(исходный код на GitHub).

Предыдущие публикации:

Заключительная часть проекта: деплой в облачную PaaS-платформу Heroku

Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Просмотры21K
Комментарии 0

Руководство по работе с Redux

Блог компании Mail.ru GroupРазработка веб-сайтовJavaScriptNode.JSReactJS
Перевод
Tutorial
Сегодня Redux — это одно из наиболее интересных явлений мира JavaScript. Он выделяется из сотни библиотек и фреймворков тем, что грамотно решает множество разных вопросов путем введения простой и предсказуемой модели состояний, уклоне на функциональное программирование и неизменяемые данные, предоставления компактного API. Что ещё нужно для счастья? Redux — библиотека очень маленькая, и выучить её API не сложно. Но у многих людей происходит своеобразный разрыв шаблона — небольшое количество компонентов и добровольные ограничения чистых функций и неизменяемых данных могут показаться неоправданным принуждением. Каким именно образом работать в таких условиях?

В этом руководстве мы рассмотрим создание с нуля full-stack приложения с использованием Redux и Immutable-js. Применив подход TDD, пройдём все этапы конструирования Node+Redux бэкенда и React+Redux фронтенда приложения. Помимо этого мы будем использовать такие инструменты, как ES6, Babel, Socket.io, Webpack и Mocha. Набор весьма любопытный, и вы мигом его освоите!
Читать дальше →
Всего голосов 65: ↑59 и ↓6+53
Просмотры270K
Комментарии 51

Используем Docker и не волнуемся о vendor-lock

Блог компании Infobox
Docker в значительной мере изменил подход к настройке серверов, поддержке и доставке приложений. Разработчики начинают задумываться о том, можно ли архитектуру их приложений разделить на более мелкие компоненты, которые будут запускаться в изолированных контейнерах, что позволит достичь большего ускорения, параллелизации исполнения и надежности. Также Docker решает важную проблему снятия облачного vendor–lock и позволяет легко мигрировать настроенные приложения между собственными серверами и облаками. Все что требуется от сервера, чтобы запустить Docker – более-менее современная ОС Linux с ядром не ниже 3.8.

В этой статье мы расскажем о том, как просто использовать Docker и какие преимущества он даст сисадмину и разработчику. Забудьте про проблемы с зависимостями, запускайте на одном сервере софт, требующий разные дистрибутивы Linux, не бойтесь «загрязнить» систему неправильными действиями. И делитесь наработками с сообществом. Docker решает множество актуальных проблем и помогает сделать IaaS гораздо более похожими на PaaS, без vendor-lock.

InfoboxCloud Docker

На облачных VPS от Infobox мы сделали готовый образ Ubuntu 14.04 с Docker. Получите бесплатную пробную версию (кнопка «Тестировать 10 дней») и начните использовать Docker прямо сейчас! Не забудьте поставить галочку «Разрешить управление ядром ОС» при создании сервера, это требуется для работы Docker. В самое ближайшее время у нас появятся и другие ОС с Docker внутри.

Под катом вы узнаете, что же в Docker настолько воодушевило автора статьи, что за пару дней он перевел свои облачные сервера, автоматизирующие части процесса разработки, в контейнеры Docker.
Читать дальше →
Всего голосов 48: ↑45 и ↓3+42
Просмотры106K
Комментарии 90

Помнить всё: метод римской комнаты

Блог компании SmartProgressGTD
«Записывайте всё!» — говорит гуру GTD Дэвид Аллен. Создайте систему для записи, которой всецело доверяете, и — записывайте всё!

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

В конце концов, эту чудесную систему можно где-то потерять.

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



Читать дальше →
Всего голосов 32: ↑26 и ↓6+20
Просмотры45K
Комментарии 41

Electron: от мотивации до публикации

JavaScript
Из песочницы

— Хотел бы я иметь приложение, которое умеет что-то такое, что мне надо. Жаль такого нет.
— А почему бы тебе его самому не написать?
— Это сложно, мне потребуется куча времени, чтобы понять теорию, приступить к практике и, скорее всего, ничего хорошего не выйдет. А вообще я frontend-разработчик и привык к HTML, CSS и JS. Этот стек не позволяет писать десктопные приложения.
— Electron!

Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Просмотры30K
Комментарии 46

Информация

В рейтинге
Не участвует
Откуда
Украина
Дата рождения
Зарегистрирован
Активность