Pull to refresh
-2
0
Алексей @AlexeyPotopakhin

User

Send message

Справочная: что такое Continuous Delivery

Reading time4 min
Views11K
Ранее мы рассказали о Continuous Integration (CI). Продолжим с Continuous Delivery. Это — свод методов разработки ПО. Он помогает удостовериться в готовности кода к развёртыванию.

Читать дальше →

Собеседование для фронтенд-разработчика на JavaScript: самые лучшие вопросы

Reading time9 min
Views212K
Недавно мне довелось побывать на встрече участников проекта FreeCodeCamp в Сан-Франциско. Если кто не знает, Free Code Camp — это сообщество, нацеленное на изучение JavaScript и веб-программирования. Там один человек, который готовился к собеседованиям на позицию фронтенд-разработчика, попросил меня подсказать, какие вопросы по JavaScript стоит проработать. Я немного погуглил, но не смог найти подходящего списка вопросов, на который я бы мог дать ссылку и сказать: «Разбери эти вопросы и работа твоя». Некоторые списки были близки к тому, что мне хотелось найти, некоторые выглядели очень уж простыми, но все они были либо неполными, либо содержали вопросы, которые вряд ли кто станет задавать на реальном собеседовании.

image
Читать дальше →

Собеседование на должность JavaScript разработчика

Reading time4 min
Views288K


Недавно прочитал неплохой пост на тему поиска работы QA и подумал, что похожий пост был бы полезен для JavaScript разработчиков. В конечном счёте, веб движется вперед семимильными шагами, и соискателей на позицию JavaScript программиста хоть отбавляй (разумеется, хороших всегда меньше).
Читать дальше →

Межпозвоночная грыжа? Работай над ней

Reading time5 min
Views137K

Внимание! Данная статья не призывает к самолечению! Не является рекламной. Люди уникальны, единой схемы для всех нет.

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

Предыстория


В свои 22 года я стал счастливым обладателем 4 грыж поясничного отдела позвоночника. Для меня это было шоком, ведь я люблю активный образ жизни и спорт в целом. Как они появились сказать сложно. Просто, в какой-то момент начала болеть спина по нарастающей. Полагаясь на русский авось, я продолжал играть в свой любимый футбол и доигрался.
Читать дальше →

Тестирование микрокомпьютеров для IoT

Reading time3 min
Views23K
Для начала рассмотрим термин «интернет вещей». В википедии увидим следующее определение:
Интернет вещей (англ. Internet of Things, IoT) — концепция вычислительной сети физических предметов («вещей»), оснащённых встроенными технологиями для взаимодействия друг с другом или с внешней средой, рассматривающая организацию таких сетей как явление, способное перестроить экономические и общественные процессы, исключающее из части действий и операций необходимость участия человека.

Гейты


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

С ролью гейтов хорошо справляются микрокомпьютеры, которые мне хотелось бы рассмотреть подробнее. Для рассмотрения я выбрал несколько микрокомпьютеров примерно одного ценового диапазона и протестировал их.

Микрокомпьютеры


ASUS Tinker Board




Микрокомпьютер от известной всеми компании ASUS, плата с открытыми спецификациями и с размерами Raspberry Pi (о которой мы поговорим дальше). Поддерживает воспроизведение 4K/30fps.
CPU: Rockchip RK3288 (4x Cortex-A17 @ 1.8GHz)
GPU: Mali-T760
Оперативная память: 2 GB LPDDR3 RAM
Интерфейсы: GbE, WiFi, Bluetooth 4.0, 4xUSB 2.0 плюс microSD, micro-USB, HDMI, MIPI-CSI, MIPI-DSI, 40-pin разъем
Читать дальше →

Raspberry-pi-танк и GPS навигация

Reading time4 min
Views17K
После экспериментов с искуственным интеллектом автопилот моего танка решил сделать шаг назад и научиться ориентироваться по старым добрым спутникам.
Читать дальше →

Фотоотчёт с JPoint 2019 + анонс Joker 2019 в Санкт-Петербурге

Reading time11 min
Views9.1K

5-6 апреля 2019 в Конгресс-центре ЦМТ прошел JPoint — на сегодняшний день, самая большая Java-конференция в России (пока не прошел новый Joker). Давайте вспомним, как прошёл JPoint, чего интересного там случилось… и начнём готовиться к Joker.


Под катом много картинок, и, соответственно, вам понадобится много трафика. В прошлый раз хабровчане попросили пережимать всё в JPG. Теперь так и сделано, но всё равно получилось весьма объемно.


Читать дальше →

Справочная: как устроен процесс Continuous Integration

Reading time4 min
Views14K
Сегодня мы обратимся к истории термина, обсудим сложности внедрения CI и приведем несколько популярных инструментов, которые помогут с ним работать.

Читать дальше →

Обратная сторона Spring

Reading time11 min
Views176K

Неделя Spring на Хабре, судя по всему, открыта. Хочется сказать спасибо переводчику и комментаторам статьи "Почему я ненавижу Spring", которая не смотря на сильный негативный посыл в названии вызвала ряд интересных дискуссий, а так же тем, кто отреагировал на мою прошлую статью Как писать на Spring в 2017. Во многом благодаря комментариям к прошлой статье и появилась эта.


В этот раз мы погрузимся в пучины Spring фреймворка, разоблачим его магию, посмотрим как базовое веб приложение выглядит изнутри, и разберемся, какую-же задачу и как решает Spring Boot.

Читать дальше →

TDD приложений на Spring Boot: тонкая настройка тестов и работа с контекстом

Reading time6 min
Views29K

Третья статья в цикле и небольшое ответвление от основной серии — в этот раз я покажу как устроена и как работает библиотека интеграционного тестирования Spring, что происходит при запуске теста и как можно тонко настраивать приложение и его окружения для теста.

Читать дальше →

Ленивая инициализация в Spring Boot 2.2

Reading time4 min
Views13K


От переводчика: поскольку Spring Framework является одним из основных фреймворков, на которых мы строим CUBA, то новости о новых возможностях Spring не проходят незаметно для нас. Ленивая инициализация — один из способов уменьшить время первой загрузки приложения, что в наш век повсеместного использования микросервисов является важной метрикой. Для тех, кто предпочитает чтению просмотр видео, есть 10-ти минутное выступление Josh Long, посвященное теме статьи.


Недавно анонсированный первый milestone релиз Spring Boot 2.2 добавляет поддержку ленивой инициализации. В этой статье мы рассмотрим новую функциональность и объясним, как ее включить.

Читать дальше →

Распределение памяти в JVM

Reading time5 min
Views37K
Всем привет! Перевод сегодняшнего материала мы хотим приурочить к запуску нового потока по курсу «Разработчик Java», который стартует уже завтра. Что ж начнём.

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



Два вида памяти

JVM разделяет память на две основные категории: «кучу» (heap) и «не кучу» (non-heap). Куча — это часть памяти JVM, с которой разработчики наиболее знакомы. Здесь хранятся объекты, созданные приложением. Они остаются там до тех пор, пока не будут убраны сборщиком мусора. Как правило, размер кучи, которую использует приложение, изменяется в зависимости от текущей нагрузки.
Читать дальше →

Получи оффер за 1 день в backend-команду в День космонавтики

Reading time3 min
Views6.5K


Всем привет!

FunCorp продолжает расширяться в Москве: мы открываем новое направление и ищем в backend-команду Senior PHP и Senior Java разработчиков.

Нам очень понравился формат однодневного Hiring event’a, который мы проводили для QA-отдела 16 марта, поэтому мы решили провести подобное мероприятие и для backend.

Итак, FunCorp Cosmic Hiring event пройдёт 12 апреля (пятница) в московском офисе. Ссылка на мероприятие.
Читать дальше →

Проблема глубинных ссылок в HATEOAS

Reading time7 min
Views3.7K
Внешнее связывание (глубинное связывание) — в интернете, это помещение на сайт гиперссылки, которая указывает на страницу, находящуюся на другом веб-сайте, вместо того, чтобы указать на начальную (домашнюю, стартовую) страницу того сайта. Такие ссылки называются внешними ссылками (глубинными ссылками).
Википедия
Дальше будет использоваться термин «глубинные ссылки», как наиболее близкий к англоязычному «deep links». Речь в данной статье пойдет про REST API, поэтому под глубинными ссылками будут подразумеваться ссылки на HTTP-ресурсы. Например, глубинная ссылка habr.com/ru/post/426691 указывает на конкретную статью на сайте habr.com.

HATEOAS – компонент REST-архитектуры, позволяющий предоставлять клиентам API информацию через гипермедиа. Клиенту известен единственный фиксированный адрес, точка входа API; все возможные действия он узнает из ресурсов, полученных от сервера. Представления ресурсов содержат ссылки на действия или другие ресурсы; клиент взаимодействует с API, динамически выбирая действие из доступных ссылок. Подробнее о HATEOAS можно прочитать на Википедии или в этой замечательной статье на Хабре.

HATEOAS – следующий уровень REST API. Благодаря использованию гипермедиа, он отвечает на многие вопросы, возникающие при разработке API: как управлять доступом к действиям на стороне сервера, как избавиться от жесткой связности между клиентом и сервером, как изменять адреса ресурсов в случае необходимости. Но он не дает ответа на вопрос о том, как должны выглядеть глубинные ссылки на ресурсы.
Читать дальше →

Прошлое и будущее Java в интервью с Саймоном Риттером из Azul

Reading time17 min
Views11K

Представляем вам интервью с Саймоном Риттером — человеком, который работал над Java с самого начала и продолжает делать это в роли заместителя технического директора Azul — компании, работающей над виртуальной машиной Zing JVM и одним из лучших сборщиков мусора, C4 (Continuously Concurrent Compacting Collector).


  • Целая жизнь вместе с Java;
  • Как оставаться на острие прогресса и кодить, когда ты CTO;
  • Лучшие и худшие фичи JDK;
  • Участие в исполнительном комитете Java Community Process;
  • Не страшно ли что-то сломать в глобальном масштабе;
  • Переход на JDK 11/12;
  • Цена поддержки собственного форка OpenJDK;
  • С4 & Falcon vs Shenandoah & Graal;
  • Нужен ли мощный сборщик в мире микросервисов;
  • Судьба серверов приложений, Java EE / Jakarta EE и JavaFx;
  • Путешествие в Россию и свежий доклад на JPoint.
Читать дальше →

Организация поиска данных с применением Spring Data Key-Value Repositories

Reading time4 min
Views8K
В интерактивных системах используются множество различных справочников-словарей данных, это различные статусы, коды, наименования и пр., как правило их много и каждый из них не большой. В структуре у них часто бывают общие атрибуты: Код, ИД, Название и др. В прикладном коде много бывает различных поисков, сравнений по Коду, по ИД справочника. Поиски могут носить расширенный характер, например: поиск по ИД, по Коду, получить список по критерию, сортировки и др… И как следствие справочники кэшируют, уменьшая частое обращение к БД. Здесь хочу показать пример как может пригодится для этих целей Spring Data Key-Value Repositories. Основная мысль такая, это продвинутый поиск в Key-Value Repositorie и в случае отсутствия объекта, делать поиск через Spring Data Repositories в БД и далее помещать в Key-Value Repositories.
Читать дальше →

JDK 9/JEP 280: конкатенация строк никогда больше не будет прежней

Reading time9 min
Views14K
И снова здравствуйте. Как мы уже писали, на следующей неделе стартует новая группа обучения по курсу «Разработчик Java», по устоявшейся традиции делимся с вами переводом интересного материала по теме.

Начиная с JDK 9 конкатенация строк претерпела значительные изменения.

JEP 280 («Indify String Concatenation») был реализован в рамках JDK 9 и, в соответствии с разделом «Summary»: «Изменяет статическую последовательность байт-кода конкатенации строк, сгенерированную javac, для использования вызовов invokedynamic к функциям библиотеки JDK». Влияние, которое это оказывает на конкатенацию строк в Java, легче всего заметить, посмотрев на javap-вывод классов, использующих конкатенацию строк, которые скомпилированы в JDK до JDK 9 и после JDK 9.


Читать дальше →

Пришло время Java 12! Обзор горячих JEP-ов

Reading time12 min
Views33K


Прошло полгода, а значит — время устанавливать новую Java! Это был долгий путь, и до конца добрались немногие. Из интересных JEP-ов отвалились сырые строки, а вот об оставшемся мы поговорим под катом.

Читать дальше →

Serial, UART и Android, как связь с микроконтроллерами

Reading time3 min
Views17K
image

Наши испытуемые:


Планшет на Android 4.1.1 “DNS AirTab M101w” и следующие устройства:
1. Плата Tiva C Series TM4C123G LaunchPad
2. Плата Stellaris LaunchPad EK-LM4F120XL
3. Плата Arduino MEGA 2560
4. Плата MSP430 LaunchPad, M430G2553

И сейчас мы будем по очерёдности подключать все эти платы через USB OTG к планшету и пытаться установить с ними связь не прибегая к root доступу.
Читать дальше →

Information

Rating
Does not participate
Location
Донецк, Донецкая обл., Украина
Registered
Activity

Specialization

Backend Developer, Fullstack Developer
Git
JavaScript
HTML
CSS
Web development
TypeScript
Angular.js
Angular
Spring Boot
MongoDB