Pull to refresh
0
0
Send message

Volatile, Lock-free, Immutable, Atomic в Java. Как понять и начать использовать

Level of difficultyMedium
Reading time6 min
Views12K

Привет, меня зовут Денис Агапитов, я руководитель группы Platform Core компании Bercut.

Сегодня хочу поговорить об одном из lock-free алгоритмов в Java. Разберём как с ним связано ключевое слово volatile и паттерн immutable.

Читать далее
Total votes 12: ↑12 and ↓0+14
Comments15

Как я стал не пойми кем

Level of difficultyEasy
Reading time3 min
Views66K

Когда счастливый и довольный достиг того, чего хотел — вкатился в Linux‑разработку. Но получил не совсем то, чего хотел. Или хотел, но еще не понял, что хотел.

Ну так и чего хотел-то?
Total votes 58: ↑47 and ↓11+41
Comments41

Деплой .NET приложений для самых маленьких. Часть 1. Jenkins

Level of difficultyMedium
Reading time7 min
Views6.5K

В прошлой статье мы рассмотрели способы запуска наших проектов на удаленном VPS. Для этого мы арендовали хостинг, создали шаблонное приложение, перенесли его на хостинг через простое копирование через ssh и через git clone, запустили через dotnet run / dotnet publish, а также развернули приложение в докере.

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

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

Тестирование асинхронного контракта Spring Boot приложения (Kafka Consumer+Producer)

Level of difficultyEasy
Reading time12 min
Views4.4K

Приветствую тебя, Хабр! Сегодня мы попробуем разобраться, как написать интеграционный\сервисный\авто тест для Spring Boot приложения, которое взаимодействует с внешним миром исключительно с помощью Kafka.

Начнем!
Total votes 7: ↑6 and ↓1+5
Comments0

Краткий справочник по «всем-всем» командам Linux

Level of difficultyMedium
Reading time80 min
Views175K

Периодически меня на начальном курсе просят дать "список всех-всех команд с кратким описанием что делает"... Ну прям "всех-всех". И ведь если искать в интернете "такие" справочники существуют - либо про "20-30 команд, но самых важных", либо с неточностями и устаревшей информацией. Так что предлагаю вашему вниманию свою версию такого "краткого" справочника (на 300, 515, 612, 716, 842, 1005, 1171 команд) с ссылками на wiki-описание и на cheat.sh-примеры наиболее важных команд.

Справочник по всем-всем командам LINUX
Total votes 105: ↑102 and ↓3+120
Comments114

Отвлекать программистов от работы — гораздо страшнее, чем кажется на первый взгляд

Level of difficultyEasy
Reading time6 min
Views42K

Я всегда знал, что если отвлекать человека во время работы, это вредит делу. Но до конца не осознавал, насколько это серьёзная проблема. Особенно для разработчиков ПО.

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

Читать далее
Total votes 54: ↑46 and ↓8+44
Comments86

Книга: «Java для опытных разработчиков. 2-е издание»

Reading time22 min
Views6.2K
image Привет, Хаброжители!

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

Узнайте, как Java работает на уровне байт-кода. Освойте ценные приемы конкурентного выполнения и оптимизации быстродействия, а еще ключевые методы сборки, тестирования и развертывания. Также рассмотрите альтернативные языки для JVM – Kotlin и Clojure. Изучив материал, вы будете выделяться на фоне других разработчиков!
Читать дальше →
Total votes 3: ↑3 and ↓0+5
Comments4

Как шаблонный метод может сломать ваш Java код

Level of difficultyMedium
Reading time9 min
Views8K

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

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

ИИ уже скоро заменит тебя: готовься к реальности

Level of difficultyMedium
Reading time22 min
Views27K

Привет, жалкие людишки!

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

Узнать истину
Total votes 55: ↑29 and ↓26+6
Comments403

Как рисовать Sequence без боли и страданий в PlantUML

Level of difficultyEasy
Reading time12 min
Views13K

Привет! Меня зовут Настя, я старший системный аналитик в X5 Tech. Я рисую sequence-диаграммы каждый день на протяжении четырёх лет. За это время я прошла все круги ада по Данте, то есть попробовала разные инструменты для рисования этих самых диаграмм. Пока не встретила его – PlantUML. 

Что удивительно, инструмент довольно не новый, но тем не менее лучше него я пока не встречала. А ещё удивительно, что он не особо популярный. Когда мы запустили в управлении системного анализа первый воркшоп по PlantUML, за 3 минуты после анонса пришли 12 заявок от аналитиков разных грейдов – от Junior до Lead. 

В процессе подготовки материалов к воркшопу мы искали статьи и литературу, которые помогли бы дополнительно изучить sequence-диаграммы в PlantUML. Ничего интересного мы не нашли. 

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

Поэтому и появилась эта статья. 

Почему PlantUML?
Total votes 28: ↑28 and ↓0+34
Comments37

Волевые качества. Почему одни люди более волевые, чем другие?

Level of difficultyEasy
Reading time4 min
Views21K

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

Читать далее
Total votes 26: ↑16 and ↓10+7
Comments11

Про недушных аналитиков

Level of difficultyEasy
Reading time5 min
Views6.3K

Педантичность, дотошность, внимательность к деталям у аналитиков бывает, что перерастает в модное нынче слово "душность". Где та граница, когда вы считаетесь классным аналитиком, а когда - уже все вас тихо ненавидят?

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

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

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

Ошибки ведения личной базы знаний: почему я удалил 1500 из 4500 заметок в Obsidian

Level of difficultyMedium
Reading time5 min
Views48K

Меня зовут Никита Шевченко и однажды я заигрался в красивый инструмент, да так, что в какой-то момент потерял суть и начал терять пользу. А потом начал придерживаться правил ведения заметок и даже придумал несколько своих.

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

Читать далее
Total votes 75: ↑54 and ↓21+52
Comments107

Мои проекты за 7 лет увлечения DIY

Level of difficultyEasy
Reading time5 min
Views42K

Привет, Хабр! Решил представить здесь самые интересные проекты/самоделки/концепции, которые делал сам на протяжении последних семи лет. Если КДПВ сделала своё дело, добро пожаловать под кат! Осторожно, много фото.

Вдохновиться разными идеями
Total votes 110: ↑108 and ↓2+125
Comments36

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

Level of difficultyMedium
Reading time3 min
Views21K

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

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

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

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

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

Level of difficultyMedium
Reading time14 min
Views13K

По мнению Артема Закируллина*, одна из фундаментальных проблем, с которой сталкиваются разработчики при анализе кода – высокая когнитивная нагрузка. Это не абстрактное, а реальное ограничение возможностей, которое стоит времени и денег. На чтение и понимание кода, тратится больше времени, чем на его написание. Поэтому, разработчику нужно постоянно задаваться вопросом: не пишет ли он код, чтение которого создает чрезмерную когнитивную нагрузку?

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

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 55: ↑54 and ↓1+61
Comments20

MapStruct — смаппь меня, если сможешь

Level of difficultyEasy
Reading time15 min
Views20K

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

Читать далее
Total votes 10: ↑8 and ↓2+8
Comments35

JSON-RPC? Возьмите хитрый REST

Reading time6 min
Views33K


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


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


Для того, чтобы была ясность в том, что такое RPC, предлагаю рассматривать стандарт JSON-RPC 2.0. C REST ясности нет. И не должно быть. Все, что нужно знать о REST — он неотличим от HTTP.

Читать дальше →
Total votes 52: ↑41 and ↓11+30
Comments118

Локальный HTTPS в dev-окружении — простая настройка

Reading time6 min
Views10K


Иногда в процессе веб-разработки требуется безопасное окружение в браузере, то есть HTTPS. Удобный способ сделать это — установить локальный УЦ и автоматизировать выдачу сертификатов на любые поддомены lcl.host и localhost. Это более функциональная и удобная альтернатива самоподписанным сертификатам.

Для установки локального УЦ есть инструменты lcl.host и mkcert, которые помогают быстро настроить и использовать HTTPS в dev-окружении.
Читать дальше →
Total votes 24: ↑18 and ↓6+17
Comments5

Spring Cloud Config и обновление компонентов в рантайме

Reading time8 min
Views8.8K

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

На проекте используется spring boot 2.6.4 и kotlin 1.5.31. Также для конфигурации сервисов используется spring cloud config server, где в качестве backend используются Git + Vault.

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

Information

Rating
Does not participate
Registered
Activity