SILLYFEED

Java: fill the gaps

@java_fillthegaps · 12.6K подписчиков

Открыть канал в Telegram

Посты канала Java: fill the gaps в SillyFeed: единая лента публичных Telegram-каналов со ссылками на оригиналы.

Привет! Меня зовут Диана, и я занимаюсь разработкой с 2013. Здесь пишу просто и понятно про джава бэк🔥Тот самый курс по многопочке🔥https://fillthegaps.ru/mtКомплименты, вопросы, предложения:@utki_letyat

Посты канала

Java: fill the gaps
Аннотация Scheduledзапускает в спринге задачи по расписанию. Сегодня расскажу 2 кейса, когда со Scheduled возможны проблемы. И как их решить, конечно же.🚨 Ситуация 1: у сервиса несколько задач по расписаниюПо умолчанию все Scheduled задачи выполняются одним потоком, то есть последовательно. Это долго, плюс заданный интервал не соблюдается.Поэтому если один сервис выполняет несколько задач по расписанию, увеличьте размер пула параметром:spring.task.scheduling.pool.size=5Задачки будут летать параллельно и не блокировать друг друга👯‍♀️🚨Ситуация 2: у сервиса несколько экземплярова задача по расписанию должна выполниться один раз. Какие решения я видела:🕳 Отдельный сервис для скедьюлд задач🕳 Синхронизация через базу или ShedLock, чтобы решить, какой сервис выполнит задачу. На одном проекте для этой цели использовался leader election в Zookeeper🙈Всё это интересно реализовать и вписать красивую строчку в резюме, но есть способ проще. Смысл в том, чтобы разделить полезную работу и вызов по расписанию. Например:▫️ Делаем в сервисе нужный метод▫️ Добавляем контроллер, который его вызывает▫️ Внешний компонент следит за расписанием и дергает контроллерКто этот внешний компонент? Кто угодно, в инфраструктуре полно инструментов для регулярных задач. Начиная от CronJobs в Kubernetes до баш скрипта с crontab. Проблемы со Scheduled задачами часто проявляются не сразу и не явно. Если миграция данных в другую систему запустилась слишком поздно, данные в разных системах разойдутся. А если задача вообще не выполнилась? Я такое разгребала неоднократно, поэтому совет от души: когда добавляете задачу по расписанию, учтите 2 момента из этого поста. Сэкономите проекту десятки человекодней🔥
Java: fill the gaps
Протекающая абстракцияМагические числа в вопросе выше — это порты. В этом посте расскажу, зачем они нужны и что с ними не так.Немного теории. Компьютеры обмениваются данными по модели OSI. Каждый запрос проходит через 7 этапов(уровней) на компьютере отправителя, передаётся по сети, потом проходит те же этапы на компьютере получателя в обратном порядке. Упрощённо, процесс выглядит так:▫️Пользователь шлёт select запрос в БД▫️▫️Запрос разбивается на TCP пакеты⚡️⚡️⚡️Пакеты передаются по сети и прибывают на сервер БД▫️▫️TCP пакеты собираются в select запрос▫️Запрос выполняется в базе данныхПо сети передаются миллиарды пакетов вперемешку. Чтобы понять, какие пакеты к чему относятся, в каждый пакет добавляется поле "порт". Получатель собирает пакеты с полем 5432 и преобразует их в SQL запрос. Хорошая абстракция скрывает детали реализации и упрощает жизнь пользователю. Если пользователю приходится учитывать детали реализации, такая абстракция называется протекающей (leaky abstraction).Порт — яркий пример протекающей абстракции.Теоретически в модели OSI каждый уровень занят своим делом и рассматривает данные соседнего уровня как чёрный ящик. Порты нарушают эту стройную систему. Они нужны на этапе отправки-получения пакетов, но прописываются на уровне приложения. Надо указывать какие-то магические числа в конфигах, "прокидывать" порты при работе с докером, и нельзя просто так запустить два одинаковых сервиса. К самому приложению это число не имеет никакого отношения.Есть другие транспортные протоколы и схемы адресации, которым достаточно только IP-адреса. Но стек TСP/IP самый распространённый, хорошо работает, да и к портам все привыкли:)Ответ на вопрос перед постом. Основная группа — это порты сервисов по работе с данными: 5432 - Postgres, 6379 - Redis, 9092 - Kafka, 9200 - ElasticSearch. Порт 2181 использует Zookeeper, он занимается координацией сервисов👩‍✈️
Java: fill the gaps
Java 25: новый формат конструктораСегодня расскажу про новую фичу в осенней джаве. Суть простая - this и super не обязательно должны идти первой строкой в конструкторе. Зачем это нужно? Чтобы упростить валидацию.Сейчас, чтобы добавить проверку аргументов, приходится оборачивать аргументы в методы:class Employee extends Person {  private static int verifyAge(int value) {  if (age < 18)    throw new IllegalArgumentException(...);    return value;  }  Employee(int age) {     super(verifyAge(age));  }}С новым JEP эти костыли не нужны, нужные проверки пишем в начале конструктора:class Employee extends Person {  Employee(int age) {  if (age < 18)   throw new IllegalArgumentException(...);  super(age);  }}Области кода вокруг this/super называются очень литературно: пролог и эпилог🥰public Person {   // prologue   super();   // epilogue}В пролог нельзя вставить любой код:❌ Нельзя обращаться к переменным родителя❌ Нельзя вызывать нестатические методы❌ Нельзя вызвать return✅ Можно присвоить поля текущего классаОсобо не разгуляешься, всё же основной сценарий фичи — валидация входных параметров.Ещё из интересного:1️⃣ В JVM не пришлось ничего менятьПотому что правила "this обязательно первый" в JVM нет. Это ограничение только на уровне языка, чтобы упростить работу компилятора:)2️⃣ Меняется ответ на частый собесный вопрос "в каком порядке инициализируются переменные". Раньше порядок для нестатических полей был такой:Поля Parent - Конструктор Parent - Поля Child - Конструктор ChildВ Java 25 поля наследника можно инициализировать ДО вызова конструктора родителя:Employee(int age, String officeID) {   this.officeID = officeID;    super(age);}Общая схема с этими прологами-эпилогами очень усложняется.3️⃣ Фича называется Flexible Constructor Bodies. Я не смогла придумать адекватный перевод, поэтому очень интересно, как её переведут в статьях-обзорах:)

Ещё по теме «Карьера и маркетинг»

Карьера и маркетинг
#Продажник
А вот, если бы ты был дизайнером? Вот как бы ты искал клиентов и вообще, чтобы делал? Пишу не как творческий, пишу как продажник:Я бы отписался от коллег, оставил бы не более 5 близких и подписался бы на профи уровнем выше, чтобы «набирать» опыт и смотреть за тенденциями. «Хочешь быть орлом, не водись с индюками» и «скажи мне на кого ты подписан и я скажу кто ты». Понимаю, что комфортнее быть в толпе, страдать в толпе, охать в толпе, мусолить в толпе, «дружить», но в этой толпе нет роста. Толпа забирает Фокус и внимание. Толпа это у подъезда с пивом постоять. 2.Я бы конечно подписался на блогеров, разных социальных слоев и увлечений, чтобы «читать» что смотрит народ и мониторить реакции народа, для того чтобы понимать как люди делают выбор, какие критерии самые важные и какие есть страхи. Страх это рычаг для продаж.3.Я бы отказался от 80% мероприятий. Мероприятие это «выход в свет», но надо понимать цель этого выхода. Увидеть «толпу», это 4 часа времени и обсудить эту же толпу, это СПАМ. 4 часа можно потратить на СЕБЯ, на обучение, на восстановление, на планирование, в конце концов на бассейн и СПА. При получении приглашения я бы честно сам себе отвечал на вопрос: «Я иду, для того чтобы что?» 4.Ловля клиентов. Здесь 2 пути. Если бы я был совсем без опыта, я бы пошел в студию или бюро и работал бы там больше, чем другие, я бы просил доп. работу, чтобы набрать знаний. Я бы все записывал и фиксировал. И за то, что я работаю больше, чем другие, я бы не просил добавку к зп, я бы получил лояльность от руководителя и как следствие получил доступ к его опыту. Второй путь, если бы у меня был опыт, я бы определил портрет клиента( с кем я хочу работать), его путь( поведенческие сценарии), изучил бы его базовую стратегию поведения и нашел бы 2-3 «рыбные ямы».Безусловно я бы знакомился, наверняка бы я услышал: «да пошел ты на хуй Дизайнер», но я бы продолжал бы знакомиться. Понимаю, что это звучит дико, но это продажи,а это люди с разным настроением, со своим восприятием и кто как «отстрелит» непонятно. Пока ты не высоко и пока ты не бренд: «ТЫ НИКОМУ НЕ НУЖЕН!» да и как показывает практика, даже брендам надо быть в тонусе. Появляются более энергичные, решительные, смелые. Ключевое в поиске клиентов- это четкая фокусировка: Что я хочу получить и кого я хочу получить. Если в голове помехи в виде: «хотелось бы творить», «хотелось бы признание», я бы устранил это с помощью внутреннего диалога: «Что именно я хочу».Я хочу уважение и понимание это от лукавого. Нельзя сказать: «люби меня» и «уважай меня» и то и другое надо заслужить. А может я вообще хочу сцену и выступать перед людьми. А может я хочу просто рубить деньги на мебели. Но тогда это спикерство и комплектация. #продажник
Первая помощь
Ростех выпустил сувенир на фоне отключений интернета в России — это УКВ радиоприемник стилизованный под радиостанцию времен Великой ОтечественнойХолдинг «Росэлектроника», принадлежащий «Ростеху», на днях выпустил сувенирный УКВ-приемник «СЕВЕР», который имитирует оригинальную радиостанцию времен Великой Отечественной войны.Сувенир прорекламировали роликом со следующими словами:«Когда не получается быть в курсе новостей, узнать прогноз погоды. Когда чувствуешь себя отрезанным от всего мира и отсутствует подключение к интернету, вспоминаешь о том, что есть всегда — радиостанция "Север"»В исторической статье о радиостанции «Росэл» пишет, что в преддверии майских праздников приемник приобретает «особое символическое значение», напоминая о «значении связи в годы войны».P.S. Стоимость радиоприёмника более 20 тысяч рублей. На мой взгляд есть гораздо лучшее и более дешевые варианты как оставаться на связи во время её блокировки в России. ⚠️ Тот кто будет лишён доступа к актуальной и достоверной информации, тот погибнет первым. В ближайшей перспективе блокировок интернета и связи в России будет всё больше и больше.
Всё о пенсии
Информация для общего понимания: Депутаты планируют принять закон о праве граждан на доступ к интернету В Госдуму внесли проект нового федерального закона "О государственных гарантиях цифровых прав граждан Российской Федерации". Документ закрепляет основные принципы госполитики в цифровой среде и систему правовой защиты россиян при пользовании интернетом. Проект содержит определения некоторых понятий – цифровые права граждан, цифровая среда, цифровая платформа и др. Так, цифровой платформой авторы документа предлагают считать информационную систему или программу для электронных вычислительных машин, посредством которой пользователи обмениваются информацией или получают доступ к контенту, при условии, что совокупно выполняется не менее двух из следующих критериев:▫️число зарегистрированных пользователей в РФ превышает 500 000 человек;▫️среднесуточное число активных пользователей в РФ превышает 100 000 человек;▫️ресурс включен в реестр организаторов распространения информации, который ведет Роскомнадзор;▫️ресурс занимает лидирующие позиции в соответствующем сегменте рынка по данным ФАС России.Документ провозглашает следующие принципы государственной политики в сфере цифровых прав:Доступность – каждый гражданин РФ имеет право на доступ к интернету. Это право авторы считают неотъемлемым элементом права на получение информации, предусмотренного ст. 29 Конституции РФ.Нейтральность – равное отношение к пользователям и информации в цифровой среде;Соразмерность – ограничения цифровых прав допустимы лишь в той мере, в какой это необходимо для защиты конституционно значимых ценностей;Максимальная защита – при наличии коллизии в законодательстве применяется норма, предоставляющая больший объем правовой защиты гражданину;Прозрачность – государственные органы обязаны раскрывать основания и порядок любых ограничений цифровых прав.Согласно законопроекту, ограничение доступа к интернету допускается исключительно на основании решения суда либо при одновременном соблюдении следующих условий:▫️возникла подтвержденная и документально зафиксированная кибератака на объекты критической информационной инфраструктуры РФ, угрожающая жизнеобеспечению населенных пунктов или безопасности критических систем управления;▫️факт атаки подтвержден письменным актом ФСТЭК России или ФСБ России с конкретным указанием атакуемых объектов;▫️ограничение носит целевой, а не общий характер и распространяется исключительно на ресурсы, через которые осуществляется атака;▫️не позднее 24 часов с момента введения ограничения соответствующие материалы передаются в суд для предоставления им оценки законности или незаконности такого решения;▫️срок действия внесудебного ограничения не может превышать 48 часов. Продление возможно исключительно на основании судебного решения.Кроме того, документ гарантирует гражданам свободу выражения мнений и выбора способа общения в цифровой среде (включая выбор мессенджеров и социальных сетей) и право на анонимность.Мониторинг соблюдения цифровых прав авторы инициативы предлагают возложить на Уполномоченного по правам человека в РФ и Роскомнадзор. За нарушения в этой сфере предусматривается дисциплинарная, административная, уголовная и гражданско-правовая ответственность.Инициаторы законопроекта в пояснительной записке отмечают, что 67% россиян считают доступ к интернету значимым элементом качества жизни и обеспокоены ограничениями доступа к цифровым платформам, мессенджерам и соцсетям. Ну вот и полезло.....
ТТ / Сообщество по управлению персоналом
Привет, коллеги!Пишет Надя Коновалова, HRD, Goodt | LANSOFT.«Заколебали со своей человекоцентричностью!» - я слышу эту экспрессию все чаще в бизнес-сообществах. От собственников. От CEO. От руководителей, которые устали от бесконечных «поговорим о чувствах» из каждого утюга вместо работы над реальными задачами. И знаете - я их понимаю. Бизнесу надоели декорации. Wellbeing-программы, которые не двигают метрики. Опросы вовлечённости, которые ничего не дают. «Человекоцентричность», за которой стоит только красивое слово.Но есть нюанс. Крайность «только эффективность, забудьте про людей» - это не решение. Это другая проблема.Давайте честно. В IT, где я работаю, люди ценят две вещи: эффективность процессов и уважение к себе как к личности. Не конфетно-букетный период. Не обязательные созвоны «как дела». А простые вещи: прозрачные правила, свобода выбора формата работы, уважение к границам и времени.Я пробовала обе крайности. Сначала была HR-романтиком - хотела всех «вовлечь», «услышать», провести опрос счастья. Результат? Команды закатывали глаза. Интроверты ненавидели меня втихую.Потом я стала жестким прагматиком. Только цифры. Грейды, KPI, воронки. И что? Через полгода ушел ключевой разработчик. Не из-за денег. А потому что его руководитель ни разу не спросил, как у него дела. Система работала, но люди выключались.Теперь моя позиция простая:✨Человекоцентричность не должна быть декорацией. ✨Но и эффективность без человечности - это дорога в никуда.Идеальный HR (или руководитель) - это не тот, кто выбирает между P&L и эмпатией. А тот, кто умеет соединять. Прийти к CEO с расчётом: «Вот сколько мы теряем на каждом уволившемся. Вот корень проблемы - не в деньгах, а в том, что у людей нет пространства для инициативы. Вот три шага, которые стоят столько-то и окупаются за квартал». И это работает.А с командой говорить на другом языке: «Давайте уберем из вашей работы то, что вас бесит. Не надо благодарностей - просто сделайте так, чтобы мне не мешали. И замечайте, когда я сделал что-то крутое».Поэтому моя позиция - человекоцентричность без сантиментов, но с уважением.Она выглядит так:➖Никаких обязательных тимбилдингов и «вовлекающих активностей».➖Прозрачные карьерные карты - чтобы человек понимал, за что получает деньги и как расти.➖Возможность сказать «нет» встрече, если нужно дофигачить задачу.➖Признание результатов - публичное, конкретное, без «молодец, так держать».➖ И главное - способность услышать, что за «всё нормально» стоит выгорание. И не предлагать «попить водички», а реально убрать задачи.Сейчас рынок зыбкий. Многие сокращают косты. Логика понятна - выживаем. Но я видела кризисы. Компании, которые сохранили костяк и уважение к людям, выходили из турбулентности быстрее. А те, кто превратился в бездушную машину, потом годами восстанавливали репутацию работодателя.Я не против эффективности. Я за то, чтобы эффективность не убивала в людях желание оставаться.Если вы устали от декоративной человекоцентричности - давайте её уберём. Но не заменяйте её равнодушием. Замените на уважение. Это дешевле и работает лучше.#блогиЗеркало комьюнити в VKПредложить пост @radugatesh
Круто об искусстве
Механические сороконожки Тео Янсена, которые Strandbeest зовутся. Или «Пляжные звери» (Strandbeest; strand - пляж; beest - зверь). Потому что «Стены между искусством и инженерией существуют только в наших умах» (Тео Янсен)▪Симпсоны. 28 сезон 10 серия.
Бизнес и ИБ - Петухов Алексей
#мышление #решение #развитиеНестандартные решения✨ Чтобы быть лидером, нужно формировать лучшую модель бизнеса (/продукта). 🟢 Пока модель/продукт закрывают максимум потребностей клиентов за минимум вложений, он будет лучшим.📰 На днях была новость, в которой компания Х предложила решение для борьбы с высоким энергопотреблением ИИ ЦОД путём преобразования выделяемого тепла снова в электричество. По сути через рециркуляцию электричества понизить потребление энергии.➡️ В этой модели есть здравое зерно, ведь идея: вложить деньги в снижение затрат на энергию и окупить их быстро, - выглядит отлично.♦️Но на мой взгляд есть нюансы:1️⃣ Такое решение реализуется при проектировании зданий, поэтому многие существующие ЦОД для них не приемлемы.2️⃣ Это решение предполагает серьёзную энергетическую установку, постройка ИИ ЦОД и так сейчас в мире ограничивается кадровыми возможностями "электриков", способных поддерживать такие системы.3️⃣ Эта модель подразумевает, что энергопотребление будет только расти, но уже сейчас есть предел генерации электроэнергии во всём мире.⭐ Модель должна не только давать решение актуальной проблемы, но и иметь задел на будущее.⚜️ В этом плане, изменение самих принципов вычислений, и создание под новые принципы нового типа вычислители - подходящий пример.Если есть проблема с энергопотреблением, значит нужно дать решение, которое будет потреблять в 1 000 раз меньше. Отличный пример - нейроморфные технологии. Они позволяют сохранить всю привычную инфраструктуру и темп развития, но значительно снижают энергопотребление. А в локальных задачах, ещё могут повысить скорость вычислений и снизить объём потребляемых ресурсов. Да, нужно сделать много (миграций существующих) приложений и развить такого уже уровня популярность и доступность технологий. Но такие "рывки" делали MacOS, android, Linux. Это уже не кажется сложным.Хотя ещё конечно важны ресурсы. Но говорят ресурсы - дело наживное.🤞
Крымский Влог
Самый опасный дикий пляж на Фиоленте-Царский пляж 🌅 Крым Царский пляж на Фиоленте в Севастополе-это одно из тех мест, где кажется, что ты оказался где-то вне времени. Здесь нет привычной инфраструктуры, зато есть главное - это дикая природа, чистейшая вода и пейзажи, которые сложно сравнить с чем-то ещё.Главная особенность этого пляжа, его невероятные виды. Скалы, уходящие в бирюзовое море, ощущение уединённости и тот самый одинокий мыс. С одной стороны, более открытая бухта, с другой более камерное пространство, будто спрятанное от всего мира. Но попасть сюда, отдельное приключение. К пляжу ведёт длинный спуск с металлической лестницей примерно в 150–180 ступеней, после тропы по склону. И именно эта дорога делает Царский пляж не для всех. Лестница считается одной из самых опасных в этом районе: сыпучие склоны, камни и сложный рельеф требуют внимательности на каждом шаге. За последние годы ситуация только подчёркивает характер этого места, здесь уже сходили селевые потоки, что напоминает: природа здесь не декорация, а живая и мощная сила.📍 44.508973, 33.480898
Иванов на связи
Один из самых мощных способов продвигать приложения – это…UGC [контент от пользователей].Каждую неделю анализирую зарубежный тик-ток и вижу, как много контента создается с переливом трафика на приложения.Причем абсолютно в любых нишах от приложений до антиквариата. Причем видел кейсы, где всего лишь один залетевший ролик дает десятки тысяч скачиваний.У кого-то уже есть свои фермы с ai-блогерами на разные языки и страны и там цифры тоже очень крутые.Мы сейчас тоже активно капаем в этом направлении, чтобы быстрее выйти на зарубежный рынок. Как будут результаты обязательно поделюсь.Но 100% есть четкое ощущение, что нужно сразу мыслить масштабом всего мира, а не только СНГ.50🔥 и расскажу подробнее, как это работает
Обухов.PRO
PRO «отказ от ответственности» граждан за использование VPN-подключений. Минцифры письменно зафиксировало позицию.📩 Минцифры письменно ответило на наш с Денисом Парфёновым депутатский запрос о VPN📌7 апреля 2026 года депутаты фракции КПРФ в Госдуме Обухов и Парфенов направили Министру цифрового развития М.И. Шадаеву запрос № ОБП-4/508 о ситуации с массовым ограничением доступа к интернет-ресурсам через VPN-подключения, начавшимся в крупнейших российских онлайн-сервисах с середины апреля.Запрос содержал пять конкретных вопросов, в том числе — планируется ли ответственность граждан за использование VPN-технологий.✅ Получен прямой и недвусмысленный письменный ответ министра:«Минцифры России не планирует и не поддерживает введение такой ответственности».Это первая письменная фиксация позиции ведомства, направленная депутатам Государственной Думы и в копии — в Аппарат Правительства Российской Федерации. Ранее такие заявления звучали только в публичных интервью.Что это означает:▪️ Любые будущие возможные законопроекты об общей ответственности граждан за VPN — теперь будут сопоставляться нами с учётом письменно зафиксированной позиции профильного министерства.▪️ Правда, нужно помнить: уже действующая ст. 13.53 КоАП РФ (за умышленный поиск экстремистских материалов) этим не отменяется — она работает с 1 сентября 2025 года и предусматривает штраф 3–5 тыс. руб.▪️ Речь именно об общей ответственности «за сам факт включённого VPN», которой в законодательстве нет, и которую — судя по ответу — Минцифры вводить не собирается.В следующих публикациях подробно расскажу, что ещё содержится в ответе министра, что осталось без ответа, и какие новые запросы мы направляем.#Обухов #КПРФ #VPN #ГосДума