Pull to refresh
64
0
Степан Медников @steff

User

Send message

Мастерим многопоточность: техники и инструменты для Java-разработчиков. Часть 1

Level of difficultyMedium
Reading time29 min
Views5.2K

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

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

Читать далее
Total votes 10: ↑9 and ↓1+9
Comments7

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

Level of difficultyMedium
Reading time12 min
Views3.5K

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

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

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

Подготовка к техническому собеседованию Senior/Team Lead backend

Level of difficultyMedium
Reading time3 min
Views16K

Недавно появились мысли походить на собеседования чем я успешно занялся. Если конкретно - смотрел лидовскую/сеньерскую позиции на Python и Golang(но статья может пригодиться backend разработчикам в целом). Не ставлю целью статьи объять все не объятное и дать какие-то гарантии. Я лишь зафиксирую данные для себя на будущее.

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

Сразу сделаю пометку, что некоторые навыки/ресурсы специфичны(по типу нарешивания Leetcode), но отталкиваемся от текущих реалий рынка.

Читать далее
Total votes 22: ↑21 and ↓1+22
Comments12

Диаграмма последовательности

Level of difficultyEasy
Reading time8 min
Views9.1K

Что такое диаграмма последовательности? Из чего она состоит? Где и как пользоваться?

А еще тут есть интересные возможности, о которых ты мог не знать.

Все это ты прочитаешь в статье
Total votes 17: ↑15 and ↓2+15
Comments7

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

Reading time16 min
Views34K

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

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

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

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

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

Reading time3 min
Views2.2K

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

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

🚀 Полезные инструменты недели

LLaMa 3 - это главный релиз недели. Новая SOTA в open-source! LLM с открытым исходным кодом, которая превосходит Claude 3 Opus... и дышит в спину GPT-4.Скорость работы составляет почти 300 токенов в секунду. LLAMA-3 - самая загружаемая модельна HF.

Torchtune - новая PyTorch-библиотека для файнтюнинга LLM. Библиотека сделана на базе PyTorch и и поддерживает LLama2 7B/13B, Mistral 7B и Gemma 2B.

LLM Reka Core - новая передовая нейросеть способна обрабатывать текст, изображения, аудио и видео, чем выделяется среди других технологий в своем классе.

VASA-1 - ананас нового ИИ генератора от Microsoft Research видео, который выглядит очень реалистично.

AutoCodeRover - это полностью автоматизированный инструмент для исправления ошибок на GitHub (исправление ошибок в разделе issues и генерации новых функций в проект).

Tkinter Designer — инструмент, который автоматически конвертирует дизайны Figma в код Tkinter GUI.

• OmniFusion 1.1. - гибридная LLM для работы с картинками

VoiceCraft: Zero-Shot - мощный редактор речи и преобразователь Text2Speech


📚 Бесплатные книги недели:

Учебник, где собрана коллекция задачек о нейросетях, параллельно даётся необходимая теория с объяснением

Читать
Total votes 9: ↑6 and ↓3+4
Comments3

Где бесплатно учить Java в 2024 году

Level of difficultyEasy
Reading time6 min
Views34K

В 2024 году изучение Java остается одним из актуальных направлений для тех, кто стремится стать профессиональным разработчиком.

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

 Изучения Java в 2024 году остается актуальным по нескольким причинам:

1. Популярность: Java является одним из самых популярных языков программирования в мире и сохранит свою популярность и в 2024 году. Множество компаний и организаций используют Java для разработки приложений и веб-сервисов, поэтому знание этого языка будет востребовано.

2. Карьерные возможности: Знание Java открывает широкий спектр карьерных возможностей. Работа с Java может предоставить вам возможность работать в таких областях, как разработка мобильных приложений, веб-разработка, разработка игр, аналитика данных и многое другое.

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

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

Читать
Total votes 13: ↑10 and ↓3+7
Comments8

Гайд для новичков по установке Kubernetes

Level of difficultyMedium
Reading time33 min
Views66K

© кадр из к/ф «Пираты Карибского моря»

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

Мы потренируемся ставить как вырожденный кластер «все-в-одном», состоящий только из одного узла, так и настоящий высокодоступный (high available) кластер с полным резервированием. В процессе работы мы рассмотрим применение различных контейнерных движков (Container Runtimes): cri-o, containerd, связки Docker + cri-dockerd plugin. Кроме этого, потренируемся настраивать отказоустойчивый балансировщик нагрузки на базе keepalived и haproxy.

Весь процесс установки будет детальным образом прокомментирован и разложен по шагам, а в реперных точках мы будем делать снимки состояния виртуальных машин (snapshots), что позволит рассмотреть различные варианты установки без необходимости делать одну и ту же работу по несколько раз.
Читать дальше →
Total votes 22: ↑21 and ↓1+24
Comments13

OpenConnect: недетектируемый VPN, который вам понравится

Level of difficultyMedium
Reading time15 min
Views234K

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

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее
Total votes 273: ↑272 and ↓1+323
Comments342

15 ресурсов по Git. Что почитать/посмотреть?

Level of difficultyEasy
Reading time2 min
Views23K

Всем привет! В этот раз собрали подборку вспомогательных материалов для изучения Git. Удобство и гибкость сделали Git стандартом для большинства современных IT-компаний. Поэтому умение работать с ним критично для любого программиста.

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

Читать далее
Total votes 12: ↑8 and ↓4+4
Comments6

20 лучших инструментов для таск-менеджмента, планирования и интеллект-карт

Reading time16 min
Views14K

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

Что делает ПО управления продуктами?


ПО управления продуктами оптимизирует управление производством, позволяя реализовывать стратегическое планирование, отслеживание прогресса, совместную работу и анализ. Также оно учитывает распределение ресурсов и организацию рабочего процесса agile. Инструменты управления продуктами упрощают командную работу и её согласованность благодаря функциям сотрудничества в реальном времени. Это приводит к эффективной расстановке приоритетов и принятию решений, повышает продуктивность и позволяет успешно справляться с целями.
Читать дальше →
Total votes 5: ↑4 and ↓1+4
Comments7

Джира для джунов, или как планировать и “не сгореть”

Level of difficultyEasy
Reading time8 min
Views17K

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

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

Произносим термины IT правильно

Level of difficultyMedium
Reading time3 min
Views53K

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

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

Читать далее
Total votes 75: ↑60 and ↓15+64
Comments229

Ортографическая проекция в фотографии и прочие интересные фокусы с объективами

Level of difficultyMedium
Reading time30 min
Views22K

С тем как работает фотоаппарат мы знакомимся еще со школьной программы. Однако привычное нам из школьного курса сведение объектива к "тонкой линзе" на самом деле не отвечает на массу практических вопросов. Например как удается создавать объективы с ортографической проекцией применяемые в системах технического зрения?

Да-да, такие тоже бывают не только в компьютерной графике, но и в фотографии: попробуйте-ка это объяснить оперируя исключительно в терминах "тонкой линзы". Размер изображения предмета в таких системах (почти) не зависит от того на каком расстоянии от объектива они находятся и это весьма удобно для измерения размеров предмета. В этой статье мы поговорим о том как этого удается добиться, как работает автофокус и пленоптические камеры и о многих других интересных вещах

Так как же работает объектив?
Total votes 132: ↑131 and ↓1+160
Comments38

Инструменты для запуска и разработки Java приложений, компиляция, выполнение на JVM

Reading time9 min
Views61K

Ни для кого не секрет, что на данный момент Java — один из самых популярных языков программирования в мире. Дата официального выпуска Java — 23 мая 1995 года.

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

* Статья подготовлена на основе доклада Евгения Фраймана — Java разработчика компании IntexSoft.
В статье присутствуют ссылки на внешние материалы
.




Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments7

«Входить в IT неспеша» или как стать Middle Java Backend разработчиком минуя ступень Junior

Level of difficultyEasy
Reading time12 min
Views39K

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

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

Давай-ка разберёмся с этим
Total votes 22: ↑17 and ↓5+12
Comments80

PostgreSQL, Spring Framework и Android для начинающего разработчика

Level of difficultyMedium
Reading time17 min
Views13K

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

В статье будут затронуты такие важные темы, как теория баз данных, реляционная база данных PostgreSQL, Spring Framework и Android разработка. Также будет рассмотрен базовый, не очень сложный пример, который поможет разобраться во всех этих темах и "потрогать" их руками.

Статья предназначена для начинающего разработчика, но имеющего базовые знания о разработке программного обеспечения и языках программирования Java и Kotlin.

Все материалы и исходный код можно найти здесь.

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

Свое мобильное приложение: от идеи до разработки, продвижения и развития

Reading time20 min
Views24K

В этой статье я объединил все свои знания и опыт, охватил все этапы разработки мобильных приложений. В статье не будет кода, она будет полезной не только для Android, iOS и Flutter-разработчиков, но также тем, у кого нет опыта в программировании.

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

Проработка идеи
Проектирование UX/UI
Разработка
Аналитика
Продвижение
Дальнейшее развитие приложения

Расскажу о том, как создать свое приложение, которое будет интересно не только вам.

Читать далее
Total votes 11: ↑8 and ↓3+6
Comments10

Человеческим языком про метрики 3: перцентили для чайников

Reading time10 min
Views101K

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

Читать далее
Total votes 19: ↑18 and ↓1+19
Comments2

Где решать задачи по программированию, чтобы пройти путь from zero to hero

Level of difficultyEasy
Reading time4 min
Views106K

Если вам о чём-то говорят фамилии Зив, Хомченко и Рымкевич, иди сюда, дай обниму, бедолага-олимпиадник, то вы наверняка знаете, как важно прорешивать задачи для полноценного, осознанного и глубокого понимания изученного материала. Когда нет или совсем мало реальной практики, задачи дают возможность покрыть практикой все теоретические знания, погрузиться в неожиданные выводы, сложности, баги, препятствия. Более того, даже если практики достаточно, задачи помогают относительно быстро, комплексно и глубоко проработать типичные и нетипичные ситуации, возникающие в разработке (любой другой науке). Это всегда безопасный (никто не взрывает лабораторию и не роняет прод), доступный и удобный способ подробно разобраться в предмете. Определённо, программирования это касается в первую очередь.

Читать далее
Total votes 42: ↑41 and ↓1+65
Comments25
1
23 ...

Information

Rating
Does not participate
Location
Пенза, Пензенская обл., Россия
Registered
Activity