Обложка канала

xpinjection. Страница 3

Авторский канал @xpinjection - опытный Java Tech Lead, Delivery Manager и консультант с 15+ лет опыта в IT. Я пишу о Java, распределённых системах, Agile, процессах разработки, инженерных практиках, QA, конференциях, инфраструктуре и многом другом...

  • xpinjection

    Учимся получать удовольствие от работы! :)
  • xpinjection

    Я уже несколько раз за последние пару лет затрагивал тему автоматизации примитивных задач программирования, для реализации которых по факту нанимается большая часть разработчиков уровня junior и middle (а в некоторых компаниях и senior, чего уж тут лукавить). Может кто-то пропустил очередную новость из этой области: вышел онлайн бот-ассистент ChatGPT на базе OpenAI. Я не эксперт в области AI и ML, поэтому не берусь оценивать реализацию, но я не поленился и вдоволь поисследовал бота на типовых задачах из современной разработки. Результаты меня очень удивили и порадовали. Бот с легкостью проходит типовые собеседования на middle Java разработчика, основанные на конкретных вопросах типа «как реализовать xxx?», «как работает yyy?» или «чем отличается xxx от yyy?». Причем, ответы не выглядят синтетическими, а сформулированы сбалансированно лаконично и информативно. Для большинства middle уровня задач бот дает пошаговую инструкцию и дополняет примерами кода. Код не везде идеален, но решения рабочие, я большую часть не поленился проверить. Не уверен, что junior/middle разработчик написал бы лучше. Особый интерес и удивление у меня вызвали ответы на сложные вопросы, на которые нет лаконичных ответов в документации или при поверхностном гуглении. Бот же на большинство из них выдавал вполне адекватные ответы с точки зрения подходов к решению задачи и даже пытался предложить конкретные примеры. Примеры не всегда были оптимальными, но выглядит очень круто. С чем я не успел поиграть, но видел примеры в твиттере - это разбор запутанных примеров кода и их летальных анализ (или даже попытки рефакторинга). Очень интересное поле для экспериментов. Мне кажется, что потенциальных применений в IT просто огромное количество. Я думаю, что скоро начнётся интеграция с инструментами разработки для генерации кода, генерации юнит-тестов по написанному коду, разнообразным подсказкам и т.д. Критически важным остаётся навык четкой и полной формулировки задачи или вопроса, потому что от качества входа ооочень сильно зависит результат на выходе. В интересное время мы живем. :) А вы что думаете, конец кожаных мешков в разработке уже близок?
  • xpinjection

    Хочу поделиться отличными новостями для разработчиков. На прошлой неделе вышла новая мажорная версия Intellij IDEA 2022.3. Я сразу же обновился и уже успел заценить новые крутые фичи. Вот что мне особенно понравилось: 1. Сделан очередной важный шаг в возможности вести разработку в максимально приближенной к продакшен среде (ваши сервисы в проде никогда не будут запускаться на Windows или MacOS). Это все еще не dev containers, но точно шаг в нужном направлении. Теперь можно запускать IDE на WSL и только UI иметь на Windows. 2. Начата работа над более простым и приятным UI. Чем больше возможностей в IDE, тем сложнее и запутаннее становится UI/UX. Посмотрим, выйдет ли сделать что-то интересное в дополнение к имеющимся режимам работы для фокусировки. 3. Поддержка Redis прямо в IDE. Это очень круто, потому что теперь и тут не нужно переключаться в другие приложения или консоль. 4. Поддержка новой Java 19. 5. Улучшен data flow анализ в debug режиме. Он теперь отлично предсказывает и показывает визуально какой код будет вызван дальше. 6. HTTP клиент теперь поддерживает скрипты и переменные. Это позволяет генерировать данные программно для HTTP запросов и все больше вытесняет альтернативы типа Postman. 7. Возможность запускать Docker контейнеры напрямую через Docker на WSL, а не через Docker Desktop. Еще на шаг ближе к продакшен окружениям. Полный список изменений можно глянуть в официальном релизе 2022.3. #java #IDE #idea
  • Реклама

  • xpinjection

    #job #java Сейчас на рынке труда в IT ситуация весьма неблагоприятная. Каждая вакансия на счету и многие лишились работы во время войны. :( Поэтому я буду стараться публиковать время от времени таргетные для канала вакансии. Мы с одним из моих клиентов активно нанимаем сейчас на позицию Senior Java Developer. Пару слов о компании: - классный финтех стартап; - живой продукт с реальными пользователями в разных странах; - продуктовые фича команды в LeSS; - минимум бюрократии, плоская структура. Технологический стек на бэкенде: - микросервисы, по большей части на Spring Boot; - K8S как платформа для всех компонентов системы; - GitLab и Flux CD для разработки и CI/CD; - гибридные хранилища данных (PostgreSQL, MongoDb, Redis, S3 и т.д.); - Kafka для асинхронной коммуникации; - собственное решение для оркестрации бизнес-процессов. Требования к кандидатам: - глубокое понимание принципов микросервисной архитектуры; - практический опыт написания cloud-native сервисов на Spring Boot; - навыки дизайна и поддержки API; - опыт масштабирования и обеспечения высокой доступности распределенных систем; - практические навыки написания тестов разных уровней для Spring Boot сервисов. Если вас заинтересовала вакансия, не стесняйтесь стучаться в личку.
  • xpinjection

    #реклама #job 🔥 У нас тут пропозиція, від якої неможливо відмовитись 😎 🔹 зарплатна вилка $5000–7500 🔹 команда продукту сфокусована на якості коду, використовують, зокрема, практику TDD 🔹 можливість розвиватись як фуллстек інженер 🔹 жодних пізніх мітингів 🔹 можливість впливати на рішення по розвитку продукту Інтригує, правда? Тоді скоріше читай повний опис вакансії ➡️ https://bit.ly/3hXrCaw і подавайся 🚀 📩 Або пиши @bozhenazvarych за усіма деталями 💜
  • xpinjection

    Я очень часто сталкиваюсь с ситуациями, когда разработчики начинают применять какую-то технологию, библиотеку или фреймворк, особо не разбираясь как оно устроено внутри. «Мы полагаемся на дефолтное поведение» и «ну оно же работает норм из коробки» - стандартные аргументы в такой ситуации. А на практике оказывается, что поведение по умолчанию не совсем такое, как ожидалось, или не решает изначальную задачу. В качестве отличного примера рекомендую посмотреть доклад про ошибки использования Spring Boot в продакшене. #java #SpringBoot https://youtu.be/w6lQTtyfZqY
    Hearts of Darkness: A Spring DevOps Apocalypse by Joris Kuipers @ Spring I/O 2022

    Spring I/O 2022 - Barcelona, 26-27 May Slides: https://www.slideshare.net/jkuipers/hearts-of-darksess-a-spring-devops-apocalypse In this talk Joris will share several real-life failure cases concerning running Spring applications in production. Examples include services being killed because of health check issues, Micrometer metrics getting lost, circuit breakers never closing after opening, OOM errors caused by unbounded queues and other nightmarish scenario’s. Not only will you come to understand how these problems could sneak through staging to make their way to production, you will also be given practical tips on how to avoid these things from happening to your own applications. Otto von Bismarck famously said “Fools say that they learn by experience. I prefer to profit by others’ experience”. Don’t be a fool, and profit by attending this talk!

    YouTube
  • xpinjection

    На этой неделе стартуют последние в этом году публичные тренинги "Автоматизация тестирования в мире Java микросервисов" и "Kubernetes для Java разработчиков". Есть по 2 свободных места в каждую группу для желающих запрыгнуть в последний момент. Следующий набор будет не раньше конца февраля или начала марта. Как обычно, 30-50% заработанных денег уйдет на поддержку ЗСУ.
  • xpinjection

    В продолжение темы Java, в сентябре вышла Java 19. Если у вас не было времени разобраться с новинками последних двух релизов, то рекомендую отличный обзорный доклад по Java 18-19 с множеством примеров. Все примеры доступны на github, поэтому вы сможете потыкать палочкой в интересующие фичи. Главным новшеством новой версии стали виртуальные потоки. Это на самом деле переломное изменение в мире Java разработки. Изменятся подходы и практики, появятся новые удобные библиотеки и реализации паттернов для многопоточного кода. В качестве первого примера, появилась в инкубаторе фича structured concurrency с возможностью строить связи между потоками и отменять часть из них в случае ошибки. Для глубокого погружения в тему рекомендую в дополнение такие доклады: 1. Базовый доклад о мотивации создания виртуальных потоков и их реализации в Java 19. 2. Детальный мастер-класс по всем нюансам виртуальных потоков. 3. Сравнительный анализ производительности реализаций game of life на разных потоковых моделях. Надеюсь, весной нас порадуют выходом виртуальных потоков из режима превью. Это будет начало новой эры Java. #java
    Java™ 18 & 19 What's new and noteworthy? by Piotr Przybyl

    Hey, there are two major Java versions released every year! We don’t have to wait 3 years or so for new features any more. Isn’t that cool? 😉 Java was supposed "to be slow". However, Java turns out to evolve so fast, that next releases aren't just version bumps, but might significantly change the rules of the game. That's a good reason to check out what's new in Java. To name a few changes: Pattern Matching for switch, Record Patterns, Virtual Threads, Calling native stuff, Simple Web server, what's gone and what will be gone, and other stuff. If you find them interesting, let’s dive deep together into new interesting stuff. PIOTR PRZYBYL Notorious engineer at work and after hours, tracing meanders of the art of software engineering. Remote Software Gardener, mostly working in web-oriented Java gardens. Programming usually in Java (since 1.3) and Scala, but in other languages too. Fan of agility, seen mostly as choosing the right tools and approaches after asking the right questions. Developer, trainer and conference speaker. In his talks, Piotr covers not only hardcore Java but also software architecture, computer security, and soft-skills. ------------------------------------------------------------ INTRO * visuals & editing by @Mercator * music : Avocado by Ephixa

    YouTube
  • xpinjection

    Одна из главных новостей для Java разработчиков этой осенью - это долгожданный релиз Spring 6.0 и Spring Boot 3.0. Он запланирован на конец ноября, сейчас вовсю обкатываются релиз кандидаты. Из крутых обновлений: - переход на Java 17 как минимальную версию; - полная поддержка Spring Native и GraalVM; - переход на новую версию Micrometer, которая должна заменить Sleuth и облегчить внедрение OpenTelemetry; - и много других улучшений. Полный обзор фичей я обязательно опубликую после релиза вместе с опытом перехода на новую версию. А пока можно посмотреть парочку докладов на эту тему. 1. Обзорный доклад по Spring 6.0 и Spring Boot 3.0: https://www.youtube.com/watch?v=5FWNpaiqYhw 2. Более детальный доклад по интеграции Spring Native: https://youtu.be/TS4DpYSmfXk #Java #SpringBoot #Spring
    Introducing Spring Framework 6.0 by Brian Clozel and Stephane Nicoll

    The next generation of Spring applications is almost here! Spring Framework 6.0 brings an exciting new baseline for the entire Spring ecosystem: Java 17, Jakarta EE 9+. This is the foundation for Spring Boot 3.0 and the beginning of new major themes, ranging from AOT/Native to Observability. During this presentation, Stéphane and Brian will cover the main topics of this new release: * the new Java 17 and Jakarta EE 9 baseline * the AOT/Native efforts for GraalVM native applications and efficient JVM apps * the Spring Observability initiative and what it means for various components like RestTemplate, web controllers... * the new Java interface clients for HTTP and other transports * Support for RFC 7807 problem details * and more! STÉPHANE NICOLL Stéphane has 20 years of experience in software engineering with a strong focus on API development on the JVM. After having spent more than a decade developing large scale Java enterprise applications in the geospatial, financial, or logistics sectors, he joins the core Spring Framework development team in 2014. Currently, Stéphane works on Spring Boot and leads start.spring.io, a service that helps millions of users start their next application. BRIAN CLOZEL Spring Framework, Spring Boot and Spring for GraphQL committer at VMware. ------------------------------------------------------------ INTRO * visuals & editing by @Mercator * music : Avocado by Ephixa

    YouTube
  • xpinjection

    Сегодня выходной и для разнообразия я хочу поделиться видео классного доклада с развлекательно-познавательной тематикой. Мы привыкли рассматривать программирование как работу и способ заработка. Но не все программирование такое, оно может тесно граничить с понятием искусства. Посмотрев доклад, вы сможете убедиться в этом сами. Приятного просмотра! https://youtube.com/watch?v=_T8ta3BBhc4
    The Art of Code by Dylan Beattie

    Software and technology have changed every aspect of the world we live in. At one extreme are the ‘mission critical’ applications - the code that runs our banks, our hospitals, our airports and phone networks. Then there’s the code we all use every day to browse the web, watch movies, create spreadsheets… not quite so critical, but still code that solves problems and delivers services. But what about the code that only exists because somebody wanted to write it? Code created just to make people smile, laugh, maybe even dance? Maybe even code that does nothing at all? Code that was created just to see if it was possible? Join Dylan Beattie - programmer, musician, and creator of the Rockstar programming language - for an entertaining look at the art of code. We’ll look at the origins of programming as an art form, from Conway’s Game of Life to the 1970s demoscene and the earliest Obfuscated C competitions. We’ll learn about esoteric languages and quines - how DO you create a program that prints its own source code? We’ll discover quine relays, code golf and generative art, and we’ll explore the phenomenon of live coding as performance - from the pioneers of electronic music to modern algoraves and live coding platforms like Sonic Pi. Dylan Beattie Dylan Beattie is a consultant, software developer and international keynote speaker. He’s been building web applications since the 1990s, and works primarily on Microsoft .NET, HTTP APIs, UX design, and distributed systems. Dylan lives and works in London and when he’s not writing code he plays guitar and writes songs. ------------------------------------------------------------ INTRO * visuals & editing by @Mercator * music : Avocado by Ephixa

    YouTube
  • xpinjection

    Хочу поделиться с вами очередным и просмотренных докладов с Devoxx Belgium, который мне очень понравился. Он посвящён тематике уязвимостей ваших Java приложений, связанных с сериализацией и десериализацией данных. Что понравилось: - рассматриваются не абстрактные проблемы, а вполне конкретные на простых практических примерах; - речь не только про нативную Java сериализацию, уязвимости есть и при сериализации в JSON, YAML, XML; - большая часть из проблем существует фундаментально годами и частично исправляется в свежих версиях Java, библиотеках и фреймворках (вспоминаем Log4j, через который просто вскрыли одну старую уязвимость); - даже примитивные уязвимости дают возможность получения контроля над вашей системой или даже инфраструктурой. Отдельно рекомендую посмотреть доклад сторонникам подхода «работает - не трогай» и «мы решили не обновлять версию Java/Spring Boot/библиотек, там ничего кардинально нового нет». :) https://youtu.be/WWsN9Y5OtZQ #Java #Security
    Deserialization exploits in Java: why should I care? by Brian Vermeer

    Hackers refer to deserialization in Java as “the gift that keeps on giving”. But what is actually the problem? In most cases, it is not even your own code that creates this security vulnerability. This problem is also not restricted to Java’s custom serialization framework. When deserializing JSON, XML, or YAML, similar issues can occur as well. In this talk, I explain how deserialization vulnerabilities work natively in Java and how attack chains are created. Next, I will show that deserializing XML, JSON, and YAML can also get you into trouble. And of course, we had the recent Log4j problems with deserialization. Many different problems can occur when deserializing data and in this session, I will use several demos to illustrate various security issues. How do you avoid these issues? I will give you some pointers on how to mitigate these problems in your own applications, this also includes new features in Java 17. At the end of this session, you will have an understanding of the problem space and be able to take action in your code to prevent it.

    YouTube
  • xpinjection

    На этой неделе прошла самая крутая конференция для разработчиков - Devoxx Belgium. Я уже активно смотрю записи докладов. Одним из первых мне попался live coding доклад об использовании дебаггера в IDEA. Я не так часто использую дебаггер, так как обычно исследую проблемы с помощью тестов. Но доклад мне очень понравился, в нем раскрыты реально практически полезные фичи. Я в который раз убедился, что нужно время от времени копаться глубже в привычных возможностях IDE, потому что там постоянно появляется что-то новое и полезное. #Java #IDE https://youtu.be/U0lGmE8DW9U
    Improving your skills with the debugger by Bouke Nijhuis

    This presentation is about levelling up your debugging game. Most developers only use the proverbial tip of the iceberg when working with the debugger. There is so much more to learn so lets have a look at interesting mechanisms like: - dropping frames ("going back in time") - remote debugging (why stay on your local machine?) - hot code swapping (faster than redeploying the code) - stream debugging (for those hard to debug streams) The entire presentation will be in IntelliJ. Some parts are IntelliJ specific, but most parts apply to all IDEs.

    YouTube
  • xpinjection

    Сегодня супер важный праздник! Благодаря защитникам и защитницам Украины, мы с вами можем продолжать жить и работать. Отличный повод для донатов!
  • xpinjection

    Зима 22-го - вже частина світової історії. Ми витримали потужний ворожий удар. Показали, що значить бути українцем, мати сміливість боротися за свою свободу. У жорстоких боях, під сталевим дощем російських снарядів ми тримались за кожний клаптик своєї землі. Зупинили ворожу навалу і поховали міф про непереможність російської армії. А тепер ми повертаємо своє. Ніхто і ніщо не зупинить нас. Ми обрали шлях воїнів і йдемо вперед. Весь світ захоплено і з надією дивиться на нас. Вітаю зі святом і дякую за службу! Разом до Перемоги! Слава Україні!
  • xpinjection

    #реклама Приєднуйся до NIX Coding Challenge! Здається, ми стали забувати, за що полюбляємо програмування… Запрошуємо тебе відчути кайф від невпинного кодинґу ;) Покажи, на що ти здатний, на NIX Coding Challenge! Коли: 15 жовтня, з 11:00 до 18:15 Де: онлайн На тебе чекає алгоритмічних 5 задач. Кожна наступна буде складнішою за попередню. Але ми віримо у твої сили, так само, як і в Перемогу України! Ти прокачаєш навички логічного мислення і зможеш отримати приз — сертифікат на купівлю ґаджетів! Свій результат дізнаєшся того ж дня у Telegram. Для участі необхідно: 🔹 мати практичний досвід в IT від 1,5 року; 🔹 уміти програмувати на будь-якою мовою; 🔹 знати, як розв'язувати алгоритмічні задачі. До початку змагання встанови на ноутбук чи комп'ютер інтерпретатор або компілятор тієї мови, якою будеш кодити. Приймай Ніксовий челендж уже зараз — реєструйся за посиланням!
  • Реклама

  • xpinjection

    Вера в ЗСУ такая высокая, что украинцы планируют оргию на Щекавице после потенциального ядерного удара. :) Поэтому мы решили тоже опубликовать расписание публичных онлайн тренингов до конца года: 12-24 октября пройдет тренинг "Cloud-Native микросервисы на Spring Boot" - курс об эффективной разработке настоящих, готовых к продуктивной среде, cloud-native микросервисов на Spring Boot. 8-24 ноября запланирован тренинг "Автоматизация тестирования в мире Java микросервисов". Он посвящен построению эффективной стратегии автоматизации тестирования в мире микросервисов, написанных на Java (на примере Spring Boot). Тренинг плотно насыщен практическими заданиями. 9-28 ноября состоится тренинг "Kubernetes для Java разработчиков". Отличный вариант как для освоения K8S с нуля, так и уже для имеющих какой-то опыт. В тренинге покрываются как общие аспекты, так и специфика работы с Java приложениями. Все теоретические модули подкрепляются практическими заданиями. Все тренинги будут проходить онлайн в Zoom. Продолжительность каждого занятия 3 часа, перерыв между занятиями 1-2 дня для выполнения домашнего задания. Регистрируйтесь, буду рад видеть вас в осенних группах! Напоминаю, что 30-50% заработанных денег уйдет на поддержку ЗСУ. Слава Украине! #тренинги
  • xpinjection

    Давно хотел написать на тему инфраструктурных платформ, но не доходили руки. Практически во всех компаниях, которые являются моими клиентами или где у меня есть знакомые, строят в том или ином виде внутреннюю платформу для разработки. И часто допускают одни и те же ошибки, о которых мы сегодня поговорим. Но сначала давайте разберемся, почему возникает потребность в этих самых платформах. С развитием DevOps культуры, появилось множество инструментов, позволяющих работать с инфраструктурой как кодом, а также разворачивать свои приложения и сервисы с помощью изменений ресурсов в git репозитории. И казалось, что достаточно просто настроить все эти инструменты, а дальше разработчики будут ими радостно и эффективно пользоваться. Но на практике оказалось, что все не так просто. Во-первых, разработчики не сильно захотели глубоко погружаться в мир Terraform и K8S, у них хватает пробелов и по своим основным инструментам разработки. Есть конечно исключения, но в целом среди разработчиков знания в этой области либо на нулевом либо на начальном уровне. Во-вторых, мир инфраструктурных инструментов развивается очень стремительно и разработчикам следить за ним параллельно со своим основным стеком очень сложно. Только ты научился использовать Helm с GitLab CI пайплайнами, как уже пора внедрять Argo CD или Flux CD. :) В-третьих, обучение в масштабе больших компаний - это очень медленно и дорого. А при большой текучке кадров, еще и постоянная нагрузка, которую нереально закрыть дополнительными активностями во время процедуры онбординга. Поэтому большая часть компаний приходит к идее создания внутренней инфраструктурной платформы, которая бы предоставляла командам разработки близкий к PaaS (platform as a service) или FaaS (function as a service) опыт. А отдельные платформенные команды занимались бы ее разработкой и развитием. Тогда от разработчика требовалось бы куда меньше знаний и усилий для решения типовых задач. На этом этапе появляются типовые ошибки. Первая из них в том, что инфраструктурная платформа не рассматривается как полноценный продукт с внешними стейкхолдерами в лице команд разработки. Цели, бэклог задач и приоритеты поступают не от команд разработки. Вместо этого, она развивается на усмотрение платформенных команд, в отрыве от реальных потребностей разработчиков. Получается для конечных пользователей криво и неудобно, но зато внутри "модно и молодёжно". Вторая ошибка в том, что платформа часто не проектируется изначально как self-service и оставляет в ежедневных активностях зависимость на платформенную команду. А это приводит к тому, что при росте использования платформы, растет нагрузка на ее поддержку в платформенной команде. Причем, зачастую растет нелинейно, так как уже совершена первая ошибка и для многих решений приходится вставлять костыли на ходу. Ну а дальше прямая дорога к конфронтации в стиле "мы-вы" между командами разработки и платформенными командами. Третья ошибка в том, что для платформы не продумываются метрики эффективности применения. В результате, разные люди видят разные цели существования платформы. Одни уверены, что она для экономичного использования ресурсов. А другие параллельно считают, что главная цель - это сокращение релизного цикла. Зачастую эти цели вступают в противоречие, а это дает очень плодородную почву для бюрократии и игры чье видение победит. Я недавно наткнулся на интересный тред в Twitter, который очень сильно совпадает с моим видением и опытом в данной области. В комментариях можно найти много полезных ссылок и мнений. Надеюсь, в вашей компании не повторят описанных ошибок и инфраструктурная платформа получится действительно полезной и эффективной!
  • xpinjection

    #конференции #реклама У меня для вас анонс очередной бесплатной онлайн конференции, на этот раз с тематикой DevOps и облачной архитектуры - DevOps Stage. Конференція передбачає: ✅3 потоки доповідей про хмарні технології, бази даних, архітектуру і обов’язково про складні високонавантажені системи. ✅Технічні доповіді від міжнародних ТОП спікерів із США, Європи та України, серед яких: ✔️Scott Hanselman, Partner PM at Microsoft, USA. ✔️Baruch Sadogursky, DevOps Advocacy, JFrog, USA. ✔️Peter Zaitsev, CEO & Co-founder, Percona, USA. ✔️Chris Reddington, Senior Enterprise Advocate, GitHub, United Kingdom. ✅Поглиблення знань та підвищення кваліфікації. ✅16 експертів спікерів міжнародного рівня. ✅Спілкування з 2000+ учасників. Коли: 7 Жовтня. Де: Online. Скільки: Безкоштовно. Не гайте час, реєструйтесь: https://bit.ly/3qEGc89