Pull to refresh
-28
0
Send message

Прекращайте оправдываться

Reading time5 min
Views105K

Привет, человек, %хабраюзер%, %юзернейм%, программист.

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

Разрешите объясниться.
Total votes 326: ↑271 and ↓55+269
Comments361

15 причин, почему ты всё ещё джун

Reading time5 min
Views64K

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

Итак, что обычно мешает условному джуну подтянуться до условного мидла?

Перейти к просветлению
Total votes 67: ↑40 and ↓27+18
Comments104

Необходимые качества программиста, за которые платят

Reading time4 min
Views8.8K

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

Удобно ли расписание сеансов? Вовремя ли начался фильм? Как много было рекламы? Насколько комфортны кресла? А какое качество звука? Повезло ли с соседями – или опять чавкали и шелестели чипсами?

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

Читать далее
Total votes 34: ↑15 and ↓19+3
Comments13

Java-дайджест 5-12 декабря 2022

Reading time3 min
Views3.9K

Общее

Умер Фредерик Брукс, отец 8-битного байта, автор "Мифического человеко-месяца""Design of Design" и "Серебряной пули не существует".

Java, язык и платформа

SlashData провели опрос по состоянию экосистемы разработки и по нему видно, что использование Java выросло со времен 2020 года процентов на 10.

Новые JEP для Java 20:

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

Клубничная чудо-коробка 2.0 всё

Reading time12 min
Views53K

Продолжаю серию постов про свои клубничные приключения. В этом хочу рассказать, как дорабатывал систему выращивания клубники, с какими проблемами столкнулся, каких результатов достиг и почему решил остановить проект «Коробка 2.0».

Читать далее
Total votes 245: ↑244 and ↓1+307
Comments74

Домашняя вентиляция для гиков: что нужно знать про воздуховоды

Reading time4 min
Views39K
О том, каким воздухом мы дышим дома задумывались многие читатели Хабра. Работая часть или всё время дома и проживая в крупных городах, нельзя время от времени не задумываться о качестве воздуха, которым мы дышим, и как он влияет на нашу продуктивность и вообще качество жизни.

Проблема №1. Уровень углекислого газа CO2 напрямую влияет на продуктивность.

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

При этом каждому, кто живёт в квартирах с пластиковыми окнами знакома дилемма пластиковых окон: при закрытых окнах душно — уровень CO2 повышается до непродуктивного за два часа; при открытых — шумно, холодно, сквозняк (а иногда и насекомые). Эта статья будет полезна тем, кто планирует купить очиститель воздуха, бризер или приточку.
Читать дальше →
Total votes 26: ↑19 and ↓7+19
Comments114

RabbitMQ + Spring boot + Docker. Отправляем и получаем сообщения через Producer и Consumer. Пошаговое руководство

Reading time7 min
Views26K

Меня зовут Андрей Вербицкий и я столкнулся с тем, что мое знакомство с RabbitMQ, а в частности его запуск на локальной машине и отправка сообщений в очередь с помощью приложения на Spring Boot, вылилась в несколько дней поисков информации о том, как это вообще работает, какие есть сущности и как в итоге переслать это сообщение. Я решил собрать все это в одном месте и сделать из этого практическое руководство, которое поможет из ничего получить рабочий прототип и понять как это работает. Эта статья ориентированная на новичков, которые только хотят познакомиться с RabbitMQ. Целью я поставил максимально простыми словами и по шагам рассказать, как быстро и легко поднять все окружение локально, отправить и получить сообщения через очередь.

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

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

Reading time8 min
Views297K

Постоянно откладываешь дела на потом и не видишь в этом проблемы? Мне это знакомо. Расскажу как не повторить моих ошибок и почему пора это прекращать. Не откладывай эту статью на потом!

Начать читать
Total votes 125: ↑100 and ↓25+95
Comments174

RabbitMQ: терминология и базовые сущности

Reading time8 min
Views76K

При работе с инструментом важно знать теоретические основы. Во-первых, вам будет значительно проще искать ответы на вопросы в Google и понимать официальную документацию. Во-вторых, при обращении в профильные чаты вы будете называть вещи своими именами, что позволит быстрее получить ответ (или вообще получить его: если ваши слова и термины будут непонятны другим, вряд ли они смогут ответить вопрос). 

Алексей Барабанов, IT-директор «Хлебница» и спикер курса «RabbitMQ для админов и разработчиков», подготовил конспект, который поможет понять терминологию и базовые сущности RabbitMQ.

Читать далее
Total votes 39: ↑37 and ↓2+37
Comments5

Защищайся! Простые и не очень правила настройки безопасности для VPS/VDS на Linux

Reading time12 min
Views21K

Все, что смотрит в бесконечную даль Интернета, находится в той или иной степени под угрозой атаки вездесущими ботами, хакерами, школьниками и прочими темными сущностями глобальной сети. Это не в последнюю очередь касается мощностей арендных серверов (выделенных или VPS/VDS). Провайдер может обеспечивать базовый функционал защиты от атак на свою инфраструктуру, но то, что юзер творит со своей машиной, провайдера абсолютно не касается. Разве что за доп. плату он может добавить некоторые настройки к VPS, мониторить и фильтровать трафик, поступающий с определенной интенсивностью. Поэтому хочешь не хочешь, а приходится задуматься об обеспечении безопасности своего сервиса вот этими вот маленькими ручками, желательно с минимальными временными и материальными издержками.

Под катом рассмотрим несколько простых настроек, которые сведут к минимуму угрозу для вашего VPS, а в конце статьи рассмотрим пару более сложных, но эффективных техник защиты. Примеры команд приведены для ОС Ubuntu.

Поехали!
Total votes 16: ↑9 and ↓7+4
Comments18

Книга «Программируем на Java. 5-е межд. изд.»

Reading time15 min
Views5.9K
imageДобрый день, Хаброжители!
Пополняем коллекцию O'Reilly.

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

• Программируйте на Java с использованием компилятора, интерпретатора и других инструментов.
• Исследуйте средства управления потоками и параллельной обработки.
• Изучайте обработку текста и мощные API.
• Создавайте приложения и службы на базе современных сетевых коммуникаций или веб-технологий.
Читать дальше →
Total votes 6: ↑5 and ↓1+9
Comments4

Неблокирующий повтор (retry) в Java и проект Loom

Reading time4 min
Views7.6K

Неблокирующий повтор (retry) в Java и проект Loom


Введение


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

Читать дальше →
Total votes 17: ↑16 and ↓1+16
Comments15

Миграция на Hibernate 6

Reading time10 min
Views8.6K

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

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

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

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

User Story Mapping как подход к проектированию

Reading time11 min
Views39K

Меня зовут Наталья Кобякова, я Product owner и техлид клана аналитиков в Ak Bars Digital. В этой статье я расскажу, почему для проектирования функциональности наших продуктов вместо стандартных ТЗ мы используем методологию User Story Mapping и как это помогает нам вести разработку быстро и качественно.

Читать далее
Total votes 19: ↑17 and ↓2+15
Comments11

Поздравляю, у нас в команде человек «Всё — г… но»

Reading time7 min
Views94K

Это была самая первая встреча с командой заказчика на проекте, которым я руководил. Мы должны были провести модернизацию инфраструктуры в крупном банке. Один из участников встречи, назовем его Миша, возглавлявший у заказчика поддержку крупной ИТ-системы, начал набрасывать. Сначала проблемы с предыдущего проекта. Потом Мишу понесло, и досталось прошлой команде («криворукие умники»), архитекторам как таковым («да что эти дебилы понимают в том, что проектируют»). Его ворчание перебросилось на «тупые процессы» и «отстойный менеджмент». Это не было энергичное возмущение, скорее монотонное гудение, что «всё не так». Так я понял, что у нас в команде человек «Всё — г..но». А дальше предстояло разобраться с тем, как нейтрализовать Мишу, чтобы он не портил атмосферу в команде. Или даже обратить его суперсилу на пользу делу.

Вот как это было
Total votes 220: ↑211 and ↓9+244
Comments373

Datafaker: альтернатива использованию производственных данных

Reading time7 min
Views5.4K

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

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

Datafaker — это библиотека для JVM, предназначенная для генерации фиктивных данных, похожих на производственные данные. 

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

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

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

Что будет, если от разработчиков не отстать: умирающая команда

Reading time11 min
Views60K
Мне досталась команда, которая болела. Все понимали, что происходит, никому не нравилось, что творится в команде, и традиционно менеджеры такие команды сильно режут. Но здесь были шансы вылечить и без ампутаций.


Источник

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

Вроде бы когда-то это был настроенный конвейер, но теперь его куски — как будто в разных зданиях. Особо не заботятся о том, что было «до» и что будет «после». А если всё падает, то люди поднимают руки: «Я не виноват. Я не знаю, как поднять».

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

Почему процессы разваливались? На первый взгляд, потому, что была куча ненужных совещаний и встреч с теми, кого разработчики вообще не должны были видеть. Плюс местами странноватые KPI. Как это ни странно, но если психологически давить на разработчика пару лет, то ничем хорошим это не закончится. Руководство подразделения дало мне карт-бланш на исправления, и я начал разбираться, что же случилось.
Читать дальше →
Total votes 171: ↑167 and ↓4+205
Comments74

Хранимые процедуры, функции и триггеры на Java

Reading time14 min
Views8.1K

Всем привет! Сегодня мы расскажем о полезной возможности СУБД Ред База Данных - создании внешних подпрограмм, то есть процедур, функций и триггеров на языке Java. Например, язык PSQL не позволяет работать с объектами файловой системы или сети, а Java запросто решает такие задачи и существенно расширяет возможности встроенного языка.

Читать далее
Total votes 7: ↑6 and ↓1+8
Comments13

Развертывание Spring Boot приложения с помощью Nginx, Let's Encrypt и Docker Compose

Reading time7 min
Views21K

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

Недавно я столкнулся с задачей разработать Telegram бота. Казалось бы, что тут сложного? Ну раз надо, то разрабатывай, где тут могут быть сложности? Но вот беда, ранее я не сталкивался с задачей развертывания проекта, тем более было много вопросов касаемо получения SSL сертификата так как Telegram API работает только с HTTPS протоколом. Увы после долгих поисков я так и не нашел статьи, которая ответила бы на все вопросы, поэтому процесс деплоя затянулся из-за того, что пришлось собирать весь материал по кусочкам. Теперь, когда у меня получилось разобраться с этой проблемой, я бы хотел вам рассказать как это сделать, чтобы сэкономить вам время и бонусом 2000 рублей за SSL сертификат.

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

Параллелизм, асинхронность, многопоточность – Reactor почти всё сделает за Вас

Reading time15 min
Views11K

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

В качестве примера, предлагаю рассмотреть реализацию сервис индексации данных в ElasticSearch. Данные хранятся в MongoDB, ключевые атрибуты которых синхронизируются с ElasticSearch (функционально похоже на Logstash). В проекте используется стек: Java/Spring Boot/Reactor/WebFlux/WebClient/RabbitMQ/MongoDB. На выбор RabbitMQ и MongoDB повлияло, в том числе, наличие реактивных драйверов.

Читать далее
Total votes 6: ↑4 and ↓2+5
Comments27
1
23 ...

Information

Rating
Does not participate
Location
Беларусь
Date of birth
Registered
Activity