Pull to refresh
19
0
Владимир @r4nd0m

User

Send message

Гайд по использованию JUnit 5, Mockito и AssertJ для проверки поведения кода

Level of difficultyMedium
Reading time12 min
Views6.1K

Меня зовут Игорь Симаков, я тимлид Java-разработки в команде Маркетплейс Банки.Ру. Сегодня на практическом примере разберу использование UNIT-тестирования. Оно применяется как для тестирования состояния, так и для проверки поведения кода. В этом материале сосредоточусь на последнем аспекте. Покажу, как использовать JUnit, Mockito и AssertJ для тестирования кода, а также JaCoCo для оценки покрытия тестами на примере простого мини-сервиса.

Эта статья основана на моем внутреннем воркшопе, который я проводил для своих коллег. В моем репозитории на GitHub можно ознакомиться с текстом доклада. Там содержится обзор основных понятий, используемых в статье, а также подробное описание инструментов.

Читать далее
Total votes 6: ↑5 and ↓1+6
Comments3

Настройка HTTPS для контейнеризированных Java-сервисов

Level of difficultyMedium
Reading time7 min
Views4.1K

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

Сегодня мы попробуем разобраться с практической стороной применения сертификатов. Создадим простейшее веб-приложение на Java и доведем его до готовности к эксплуатации в виде контейнеризированного приложения, работающего по протоколу HTTPS.  

Для создания приложения мы будем использовать фреймворк Jmix, который основан на Spring Boot и Vaadin, поэтому описанные подходы будут работать также для широкого класса веб-приложений на Spring Boot. 

Мы предполагаем, что вы установили Docker актуальной версии для своей ОС, используя brew, chocolately или deb/rpm.

Читать далее
Total votes 7: ↑5 and ↓2+3
Comments2

Что нужно знать, чтобы успешно пройти System Design Interview

Reading time16 min
Views42K

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

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

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

Читать далее
Total votes 49: ↑47 and ↓2+56
Comments26

Принципы SOLID, только понятно

Level of difficultyEasy
Reading time6 min
Views77K

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

Изучить принципы
Total votes 80: ↑66 and ↓14+59
Comments94

Как составить эффективное резюме через нейросети

Reading time13 min
Views18K

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

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

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

Приятного чтения!

Читать далее
Total votes 14: ↑12 and ↓2+13
Comments8

Утечки памяти, которые не утечки

Level of difficultyMedium
Reading time10 min
Views21K

Что случилось? Авария, ужас-ужас

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

В один прекрасный день боевое сопровождение приходит с ужасной проблемой — память в контейнерах Node.js течёт, сервисы падают с OOM каждый день, все пропало!

Да, картинка действительно удручающая. Всё время, когда есть нагрузка, память в контейнере прирастает и почти не очищается при снятии нагрузки. Все остальные метрики, которые мы собирали были в норме: event loop lag, использование CPU, active request, open handles. Прирастала только используемая память и незначительно увеличивалось время отклика сервиса.

Что-ж, выглядит как классическая утечка, надо искать источник.

Читать далее
Total votes 95: ↑94 and ↓1+106
Comments15

GPT-like модель «впервые сделала научное открытие»: что, как, и куда дальше?

Level of difficultyMedium
Reading time21 min
Views106K

14го декабря в одном из самых авторитетных общенаучных журналов Nature была опубликована статья с, кажется, сенсационным заголовком: «ИИ-модели Google DeepMind превосходят математиков в решении нерешённых проблем». А в блогпосте дочки гугла и вовсе не постеснялся указать, что это — первые находки Больших Языковых Моделей (LLM) в открытых математических проблемах. Неужели правда? Или кликбейт — и это в Nature? А может мы и вправду достигли техносингулярности, где машины двигают прогресс? Что ж, давайте во всём разбираться!

Ну давай разберёмся →
Total votes 153: ↑149 and ↓4+174
Comments272

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

Level of difficultyMedium
Reading time19 min
Views24K

14 ноября 2023 года команда Google Deepmind официально представила мировой общественности свою модель прогнозирования погоды – GraphCast. Её особенность заключается в том, что она способна рассчитывать погоду на 10 дней вперёд без понимания «физики» атмосферных процессов. Учёные обучали нейросеть на цифровых исторических архивах погоды за период с 1979 по 2017 годы. Сам же прогноз рассчитывается за минуту и не требует огромных суперкомпьютерных ресурсов. В тестах GraphCast смог обойти самую передовую гидродинамическую модель прогнозирования погоды от Европейского центра среднесрочных прогнозов. Рост качества был настолько существенным и резким, что в научной среде уже говорят о революции в сфере прогнозирования погоды. К чему это может привести и где смотреть самые точные прогнозы? Давайте разбираться.

Читать далее
Total votes 89: ↑89 and ↓0+89
Comments60

Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить

Level of difficultyEasy
Reading time26 min
Views218K

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

Читать далее
Total votes 129: ↑127 and ↓2+155
Comments51

Прифронтовая разведка методами OSINT

Reading time3 min
Views30K

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

Читать далее
Total votes 48: ↑37 and ↓11+34
Comments79

Как удалить «неудаляемые» приложения со смартфона

Reading time5 min
Views261K


Чтобы увеличить привлекательность смартфонов, производители ставят на них как можно больше разных программ. Это понятно. Просто берём и удаляем ненужное… Стоп.

Оказывается, некоторые программы невозможно удалить. Например, на отдельных моделях Samsung невозможно удалить Facebook (есть только опция 'disable'). Говорят, на Samsung S9 вдобавок предустановлены «неудаляемые» приложения Microsoft.

Эти смартфоны приведены для примера. Такая же проблема и на других моделях. На многих есть неудаляемые программы от самого производителя.

Всё это надо зачистить.
Читать дальше →
Total votes 156: ↑145 and ↓11+168
Comments203

Сервисы по обработке фотографии для профиля LinkedIn

Reading time7 min
Views10K

Когда кто-то просматривает ваш профиль LinkedIn, две вещи, которые сразу же бросаются в глаза — это ваша фотография профиля и ваш фон профиля.

В этой статье вы узнаете:

? о сервисах для подготовки фотографий, которые вы можете использовать для своего профиля LinkedIn.
? 10 советов, как сделать профессиональную фотографию профиля LinkedIn
? о сервисе для поиска фотографов

Дисклеймер: технического материала в статье нет. Она рассчитана на тех, кто хочет прокачать свой профиль в LinkedIn с целью поиска работы в России или за ее пределами.

Читать далее
Total votes 13: ↑4 and ↓9-3
Comments4

Когнитивные искажения или мои мысли о том, как мы мыслим

Reading time13 min
Views33K

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

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

На русском языке когнитивные искажения часто называют “ошибками мышления”. Мне не очень нравится этот термин, потому слово “ошибка” подразумевает, что когнитивные искажения являются обязательно чем-то неправильным. Но это не совсем так, когнитивные искажения - это просто особенности мышления, которые очень часто помогают нам выживать, однако, в некоторых ситуациях могут играть не в нашу пользу.

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

Читать далее
Total votes 71: ↑70 and ↓1+82
Comments161

Как научиться чему угодно с помощью техники Фейнмана

Reading time9 min
Views208K


Ричард Фейнман был физиком, удостоенным Нобелевской премии, который внёс значительный вклад в такие области, как квантовая механика и физика частиц. Он также стал пионером квантовых вычислений и ввел понятие нанотехнологии. Он был известным лектором, преподавал в Корнелльском университете и Калифорнийском технологическом институте.

Несмотря на все свои достижения, Фейнман считал себя «обычным человеком, который много учился». Он считал, что любой человек способен при достаточных усилиях изучить даже такие сложные предметы, как квантовая механика и электромагнитные поля.

Нет никаких чудо-людей. Просто случилось так, что они заинтересовались чем-то и выучили все про это. Ричард Фейнман

Ричарда Фейнмана Ричардом Фейнманом (по крайней мере, по мнению Ричарда Фейнмана) сделал не врождённый интеллект, а систематический способ, с помощью которого он выявлял то, чего не знал, а затем бросался постигать это.

На протяжении всей своей работы и жизни, Фейнман с элегантностью и простотой давал представление о своём процессе рассмотрения сложных концепций в мире физики и изложения знаний/идей. Многие из этих наблюдений о его процессе обучения были собраны в то, что мы сейчас называем «техникой Фейнмана».

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

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

В этой статье будет представлен обзор техники Фейнмана и того, как вы можете применять её для постоянного расширения своих знаний и навыков. Короче говоря, Фейнман научит вас не только тому, как учиться, но и тому, как по-настоящему понимать.
Приятного чтения!
Total votes 64: ↑53 and ↓11+63
Comments106

Matrix Resurrections. Воскрешение франшизы?

Reading time11 min
Views12K

Вокруг этого фильма создалось неоднозначное мнение. Нет это точно не провал, как последний «терминатор». Вопросов тут теперь больше чем ответов, а теорий еще больше.

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

Но начать стоит с… «Аниматрицы», а точнее ее лжи (явных странностей сюжета).

По сюжету все истории в аниматрице рассказывает электронная библиотека зиона (а как мы помним по второй части матрицы архитектор говорил что создали зион именно роботы).

Поэтому верить в описанные причины и следствия можно с определенной долей сомнения.

Читать далее
Total votes 22: ↑11 and ↓11+5
Comments75

Ищем путь до линукс команд, как профессионалы

Reading time5 min
Views36K

Один из самых распространённых вопросов от подписчиков — как получить путь к команде Linux, которую только что установили в систему с помощью пакетного менеджера, например, команды apt или DNF. Много новых разработчиков переходит к нам из мира Windows, и для многих это первый опыт использования Linux. Некоторые используют WSL (подсистему Linux в Windows 10), а остальные работают с облачными серверами напрямую по SSH. Рассмотрим ряд распространённых команд, с помощью которых можно отобразить список команд Linux или получить к ним путь.
Читать дальше →
Total votes 33: ↑31 and ↓2+41
Comments14

Построение библиотек компонентов и их организация. Или как извлечь максимальную пользу для бизнеса c React и Angular

Reading time3 min
Views4.5K

Наша компания разрабатывает десятки продуктов. Ряд продуктов работает на Angular, ряд на React. Пользователи систем в зависимости от этапа бизнес-процесса и роли взаимодействует с определенным продуктом. Часто, в рамках бизнеса мы должны показывать одни и те же данные в разных продуктах. Эти данные отображаются в виде UI компонентов.

В этой статье мы узнаем как можно организовать библиотеки компонентов для решения задач бизнеса. Научимся переиспользовать и запускать React библиотеку внутри Angular. Таким способом мы сможем решать задачи бизнеса гибко и эффективно.

Читать далее
Total votes 4: ↑3 and ↓1+3
Comments19

Чтобы избежать профессионального выгорания, нужно просто…

Reading time5 min
Views11K

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

Читать далее
Total votes 15: ↑11 and ↓4+11
Comments11

Рутина и ноотропы: как удвоить личную эффективность, если работы по горло

Reading time10 min
Views37K

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

Фишки простые и местами банальные, так статья писалась для тех, кому нужны быстрые и рабочие советы, которые можно внедрить буквально за один день и удвоить свою продуктивность минимум в два раза. Цифра условная, сами понимаете — надо привлечь немного внимания!

Читать далее
Total votes 28: ↑18 and ↓10+16
Comments52

Фулстеки — это будущие архитекторы, а не вечные мидлы (если захотят конечно)

Reading time12 min
Views23K

Ой, а напомни как называют очень опытного программиста, там что-то такое романтично-средневековое, кажется «милорд»...

Почти три года назад на Хабре вышла статья «Фулстеки — это вечные мидлы. Не идите по этому пути, если не хотите страдать». Я еще тогда был не согласен с изложенным, но сдержался:) Однако недавно я стал свидетелем весьма примечательного случая и сразу вспомнилась та самая статья... Итак, одна команда испытывала нехватку бекенд-разработчиков и сравнительный переизбыток раработчиков на фронте. Дело осложнялось сжатыми сроками сдачи проекта. Проблема типовая, но стек..., ах если бы не стек: бек — NodeJs, фронт — React, TypeScript и там и там.

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

Может быть я старомоден, но сегодняшняя специализация порой видится мне чрезмерной. Раньше все было как-то проще: ты либо умеешь программировать, либо нет. А сейчас все кругом ищут кибер-ниндзю с опытом работы исключительно на фреймворке X не менее пяти лет (хотя фреймворк X существует четыре года). Если ты работал с фреймворком X всего три года, то с тобой не о чем разговаривать: ты — джун. Ага, т.е. известному английскому банку не впадлу нанимать на Java-проект кандидата с десятилетним опытом на .NET’е, потому что они считают, что важны фундаментальные знания, а не знания конкретной платформы (ну напорется он пару раз на стирающиеся дженерики и сравнение строк через ==, почешет репу и перестанет так делать), а ООО «Рога и Копыта Интернейшнл» может работать только с теми, кто пять лет ковырял фреймворк Х. По-моему это фигня. Кстати, тот парень в банке, что перешел с .NET'а на Java сейчас там числится синьором и находит горы проблем в мердж-реквестах разработчиков, пишущих на Java значительно дольше него.

Читать далее
Total votes 54: ↑51 and ↓3+58
Comments35
1
23 ...

Information

Rating
Does not participate
Location
München, Bayern, Германия
Registered
Activity