Introduction to Project Panama - Part 2: Variadic Functions
https://inside.java/2022/06/27/introduction-to-project-panama-part-2/
Во второй части статьи автор рассказывает как будет выглядеть вызов вариадичекой функции из Си. Вариадическая функция это та, у которой количество параметров и типы не указаны при объявлении. Ставим три точки в параметрах и все, можно передавать сколько угодно параметров. Например
https://inside.java/2022/06/27/introduction-to-project-panama-part-2/
Во второй части статьи автор рассказывает как будет выглядеть вызов вариадичекой функции из Си. Вариадическая функция это та, у которой количество параметров и типы не указаны при объявлении. Ставим три точки в параметрах и все, можно передавать сколько угодно параметров. Например
int printf(const char * __restrict, ...);
В проекте Панама для вариадических функций придуман дополнительный метод - asVariadic(...)
. В итоге приходится писать еще больше кода для вызова такой функции из Джавы. Автор обещает, что в будущем такой код будет генерироваться тулзой jextract
автоматически.What's a condition system and why do you want one?
http://axisofeval.blogspot.com/2011/04/whats-condition-system-and-why-do-you.html
Автор показывает как бы выглядела обработка ошибок, если блок
http://axisofeval.blogspot.com/2011/04/whats-condition-system-and-why-do-you.html
Автор показывает как бы выглядела обработка ошибок, если блок
catch
разделить на две части: поимку исключения и создания стека вызова. Вместо catch
используем ключевое слово handle
, а вот если уже нужно создать стек вызовов используем для этого throw
. Стек вызовов не всегда нужен и иногда разработчик ловит исключение, чтобы вернуть значение по умолчанию.The difficult problem of managing Java dependencies
https://renato.athaydes.com/posts/understanding-java-dependencies.html
Разработчик Ренато смотрит на зависимости в джава проекте свежим взглядом. Представьте, что вы не знаете Джаву и хотите запустить самое простое приложение, но хотите использовать какой-то сборщик проекта как в других языках. В Мавен есть "удобный" способ сгенерировать пустой проект командой
Ну не совсем простой, допустим, вы нагуглили этот способ, не по памяти же его печатать. Эта команда сгенерировала проект. В проекте буквально одна строка кода, но мавен скачал или сгенерировал около 100 файлов - jar, xml, pom. Дальше Ренато сравнивает способы разрешения конфликтов в Мавен и Гредл и предлает новый инструмент для разрешения конфликтов JBuild.
https://renato.athaydes.com/posts/understanding-java-dependencies.html
Разработчик Ренато смотрит на зависимости в джава проекте свежим взглядом. Представьте, что вы не знаете Джаву и хотите запустить самое простое приложение, но хотите использовать какой-то сборщик проекта как в других языках. В Мавен есть "удобный" способ сгенерировать пустой проект командой
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
.Ну не совсем простой, допустим, вы нагуглили этот способ, не по памяти же его печатать. Эта команда сгенерировала проект. В проекте буквально одна строка кода, но мавен скачал или сгенерировал около 100 файлов - jar, xml, pom. Дальше Ренато сравнивает способы разрешения конфликтов в Мавен и Гредл и предлает новый инструмент для разрешения конфликтов JBuild.
Mitigate the relocation degradations for cache locality improvement algorithm
https://inside.java/2022/07/01/mitigate-relocation-degradations/
Пример магистерской работы студента, который ускорил сборщик мусора ZGC. Оказывается в двух шведских университетах можно поработать на JVM. Может вы знаете еще какие-то похожие программы? Пишите в комментах
https://inside.java/2022/07/01/mitigate-relocation-degradations/
Пример магистерской работы студента, который ускорил сборщик мусора ZGC. Оказывается в двух шведских университетах можно поработать на JVM. Может вы знаете еще какие-то похожие программы? Пишите в комментах
How to implement switch exhaustiveness checker in Java 8?
https://medium.com/@Hixon10/how-to-implement-switch-exhaustiveness-checker-in-java-8-cbb234192206
Пример разработки обработчика аннотаций, который анализирует код и проверяет все ли енумы используются в блоке свитч. Наверняка такое есть в IDEA, в PMD, и в других плагинах, но все равно интересно, как самому реализовать такую фичу.
https://medium.com/@Hixon10/how-to-implement-switch-exhaustiveness-checker-in-java-8-cbb234192206
Пример разработки обработчика аннотаций, который анализирует код и проверяет все ли енумы используются в блоке свитч. Наверняка такое есть в IDEA, в PMD, и в других плагинах, но все равно интересно, как самому реализовать такую фичу.
Спонсор выпуска: Интенсив по аргументации для руководителей от Яндекс Практикума.
Выстраивать диалог с заказчиками или коллегами из смежных департаментов бывает непросто: у них свои цели и сроки, а у вашей команды — свои. Хочется и сохранить отношения, и не откладывать все дела, засиживаясь до ночи за внезапной горящей задачей.
На интенсиве по аргументации мы расскажем, как уверенно вести рабочие встречи и дискуссии, учитывая интересы обеих сторон.
Что будет на интенсиве:
◾️ Алгоритм для быстрой подготовки к рабочим встречам: как подбирать тезисы и контраргументы, представлять свою позицию и закреплять договорённости.
◾️ Пять инструментов, чтобы мягко, но настойчиво отстаивать свои интересы.
◾️ Четыре практических воркшопа с наставниками — практикующими управленцами или тренерами из бизнеса.
◾️ Разбор ваших рабочих кейсов и персональные рекомендации.
7,5 часов вебинаров, где можно отработать навыки, и бессрочный доступ к интерактивному учебнику с теорией. Интенсив длится девять дней и стоит 15 000 ₽.
Новый поток стартует 18 августа. Записаться →
Выстраивать диалог с заказчиками или коллегами из смежных департаментов бывает непросто: у них свои цели и сроки, а у вашей команды — свои. Хочется и сохранить отношения, и не откладывать все дела, засиживаясь до ночи за внезапной горящей задачей.
На интенсиве по аргументации мы расскажем, как уверенно вести рабочие встречи и дискуссии, учитывая интересы обеих сторон.
Что будет на интенсиве:
◾️ Алгоритм для быстрой подготовки к рабочим встречам: как подбирать тезисы и контраргументы, представлять свою позицию и закреплять договорённости.
◾️ Пять инструментов, чтобы мягко, но настойчиво отстаивать свои интересы.
◾️ Четыре практических воркшопа с наставниками — практикующими управленцами или тренерами из бизнеса.
◾️ Разбор ваших рабочих кейсов и персональные рекомендации.
7,5 часов вебинаров, где можно отработать навыки, и бессрочный доступ к интерактивному учебнику с теорией. Интенсив длится девять дней и стоит 15 000 ₽.
Новый поток стартует 18 августа. Записаться →
Яндекс Практикум
Курс «Навыки аргументации для руководителей»: онлайн-обучение по аргументации
Онлайн-курс по аргументации для руководителей от Яндекс Практикума. За 9 дней вы научитесь готовиться к важной встрече, переговорам, решите кейс с вашей работы. Практика с имитацией рабочих ситуаций, групповые воркшопы.
https://javaswag.github.io/episode/31
В 31 выпуске подкаста Javaswag поговорили с Антоном Батяевым о финтехе, MBA и переходе в продукт оунера
00:01:42 В чем специфика Финтеха? Что отличает от других проектов?
00:05:15 Финансовая математика на Java
00:08:17 Терминология в финтехе - деривативы, фьючерсы, опционы, свопы, риск менеджмент
00:20:46 Типовая архитектура финтех проекта
00:31:20 Почему остался в финтехе?
00:37:33 Чем отличается инвест банкинг от трейдинговой системы
00:46:01 Для чего нужен MBA?
00:51:00 Java Oracle Certificate, Java Teacher at GeekBrains
00:57:02 Revolut. Риск менеджмент с нуля. Переход в продукт оунера
01:04:23 Метрики продукт оунера
01:09:33 Технический/Бизнес бэкграунд продукт оунера
01:20:29 Бест практисы финтеха: CI/CD/QA
01:27:12 Onboarding
01:31:09 Архитектура CQRS
Ссылки от гостя:
Сайт: batiaev.com/
Финансовая математика для финтеха - https://www.youtube.com/playlist?list=PLwjJEuRWaJcIetm_s-qvqIy2_6l3YF7Qa
Современный валютный рынок - https://habr.com/ru/company/dbtc/blog/467415/
Матчинг ордеров на Java - https://github.com/fintecy/exchange-core
Маркет дата коннекторы - https://github.com/fintecy/connectors
Миллион котировок в секунду на Java - https://www.youtube.com/watch?v=j3wFOmRmSeg
CQRS и Event Sourcing от Мартина Томпсона - https://www.youtube.com/watch?v=RlwO6CJbJjQ
Event streaming Revolut Way - https://medium.com/revolut/event-streaming-the-revolut-way-9d928005ddf7
Вакансии https://jobs.lever.co/revolut/530d3bfd-bdca-4390-8f8a-bc88ddc1eb51
Гость - https://github.com/batiaev
Кип сейф! 🖖
В 31 выпуске подкаста Javaswag поговорили с Антоном Батяевым о финтехе, MBA и переходе в продукт оунера
00:01:42 В чем специфика Финтеха? Что отличает от других проектов?
00:05:15 Финансовая математика на Java
00:08:17 Терминология в финтехе - деривативы, фьючерсы, опционы, свопы, риск менеджмент
00:20:46 Типовая архитектура финтех проекта
00:31:20 Почему остался в финтехе?
00:37:33 Чем отличается инвест банкинг от трейдинговой системы
00:46:01 Для чего нужен MBA?
00:51:00 Java Oracle Certificate, Java Teacher at GeekBrains
00:57:02 Revolut. Риск менеджмент с нуля. Переход в продукт оунера
01:04:23 Метрики продукт оунера
01:09:33 Технический/Бизнес бэкграунд продукт оунера
01:20:29 Бест практисы финтеха: CI/CD/QA
01:27:12 Onboarding
01:31:09 Архитектура CQRS
Ссылки от гостя:
Сайт: batiaev.com/
Финансовая математика для финтеха - https://www.youtube.com/playlist?list=PLwjJEuRWaJcIetm_s-qvqIy2_6l3YF7Qa
Современный валютный рынок - https://habr.com/ru/company/dbtc/blog/467415/
Матчинг ордеров на Java - https://github.com/fintecy/exchange-core
Маркет дата коннекторы - https://github.com/fintecy/connectors
Миллион котировок в секунду на Java - https://www.youtube.com/watch?v=j3wFOmRmSeg
CQRS и Event Sourcing от Мартина Томпсона - https://www.youtube.com/watch?v=RlwO6CJbJjQ
Event streaming Revolut Way - https://medium.com/revolut/event-streaming-the-revolut-way-9d928005ddf7
Вакансии https://jobs.lever.co/revolut/530d3bfd-bdca-4390-8f8a-bc88ddc1eb51
Гость - https://github.com/batiaev
Кип сейф! 🖖
Javaswag
#31 - Антон Батяев - многоликий финтех, MBA и переход в продукт оунера
В 31 выпуске подкаста Javaswag поговорили с Антоном Батяевым о финтехе, MBA и переходе в продукт оунера
https://javaswag.github.io/episode/32
В 32 выпуске подкаста Javaswag поговорили с Александром Ланцовым о алготрейдинге, квант-разработчиках и Java vs C++
00:01:50 Как попал в Финтех
00:08:53 Трейдинговая платформа
00:15:18 Java vs C++, библиотека Aeron, ChronicleQueue
00:23:46 Клевые библиотеки в алготрейдинге
00:31:17 Дойч и Райф
00:37:57 Как затащить библиотеку в проект и померить количество денег
00:44:03 Про тестирование, симуляции и HDRHistorgram
00:47:07 Coordinated omission, wut?
00:51:59 Чем Джава код в трейдинге отличается от другого джава кода
00:55:28 Как померить регрессии
00:57:26 Почему протокол SBE преуспел в трейдинге?
00:59:58 Баги-баги
01:02:56 Что за лоси и что за Пи-Эн-Эл
01:06:26 Кто такой квант разработчик
01:12:09 Пригодилось ли финансовое образование
01:14:54 Финансовые модели
01:24:29 Логгинг в трейдинге
01:25:31 Планы на будущее. ГраалВМ или Джава 18
Ссылки от гостя:
Трейдинг и инвестиции с Александром Ланцовым - https://youtu.be/MU4OcFI3vok
How to design Low Latency Microservices - https://www.youtube.com/watch?v=R828U7xUggk
Микросервисы, отвечающие за несколько микросекунд — друзья и враги https://www.youtube.com/watch?v=QV-ue1YMdds
Aeron Cookbook https://aeroncookbook.com/
Центр математических финансов https://vk.com/cmf_russia
Физики и лирики в финансах https://www.youtube.com/watch?v=Hfvi17EZkvY
В зеркале супермоделей. Рассказы о моделях в финансовой экономике.
https://naukabooks.ru/knigi/katalog/v-zerkale-supermodeley-rasskazy-o-modelyakh-v-finansovoy-ekonomike-v-2-kn/
Производные Нуля: Дневник Структуратора
https://www.livelib.ru/book/1000655346-proizvodnye-nulya-dnevnik-strukturatora-vlad-goryachev
Гость - https://www.linkedin.com/in/alantsov/
Кип сейф! 🖖
В 32 выпуске подкаста Javaswag поговорили с Александром Ланцовым о алготрейдинге, квант-разработчиках и Java vs C++
00:01:50 Как попал в Финтех
00:08:53 Трейдинговая платформа
00:15:18 Java vs C++, библиотека Aeron, ChronicleQueue
00:23:46 Клевые библиотеки в алготрейдинге
00:31:17 Дойч и Райф
00:37:57 Как затащить библиотеку в проект и померить количество денег
00:44:03 Про тестирование, симуляции и HDRHistorgram
00:47:07 Coordinated omission, wut?
00:51:59 Чем Джава код в трейдинге отличается от другого джава кода
00:55:28 Как померить регрессии
00:57:26 Почему протокол SBE преуспел в трейдинге?
00:59:58 Баги-баги
01:02:56 Что за лоси и что за Пи-Эн-Эл
01:06:26 Кто такой квант разработчик
01:12:09 Пригодилось ли финансовое образование
01:14:54 Финансовые модели
01:24:29 Логгинг в трейдинге
01:25:31 Планы на будущее. ГраалВМ или Джава 18
Ссылки от гостя:
Трейдинг и инвестиции с Александром Ланцовым - https://youtu.be/MU4OcFI3vok
How to design Low Latency Microservices - https://www.youtube.com/watch?v=R828U7xUggk
Микросервисы, отвечающие за несколько микросекунд — друзья и враги https://www.youtube.com/watch?v=QV-ue1YMdds
Aeron Cookbook https://aeroncookbook.com/
Центр математических финансов https://vk.com/cmf_russia
Физики и лирики в финансах https://www.youtube.com/watch?v=Hfvi17EZkvY
В зеркале супермоделей. Рассказы о моделях в финансовой экономике.
https://naukabooks.ru/knigi/katalog/v-zerkale-supermodeley-rasskazy-o-modelyakh-v-finansovoy-ekonomike-v-2-kn/
Производные Нуля: Дневник Структуратора
https://www.livelib.ru/book/1000655346-proizvodnye-nulya-dnevnik-strukturatora-vlad-goryachev
Гость - https://www.linkedin.com/in/alantsov/
Кип сейф! 🖖
Javaswag
#32 - Александр Ланцов - алготрейдинг, кванты и почему Java
В 32 выпуске подкаста Javaswag поговорили с Александром Ланцовым о алготрейдинге, квант-разработчиках и Java vs C++
https://javaswag.github.io/episode/33
В 33 выпуске подкаста Javaswag поговорили с Алексеем Генусом о архитектуре нео-банка, протоколах и представлении времени в Java
00:01:22 О себе
00:03:37 Коннектор для Петербуржской биржи
00:06:04 Протокол, пакет, запрос
00:09:34 Netty vs NIO
Кладезь знаний о Netty https://www.amazon.de/-/en/Norman-Maurer/dp/1617291471
00:17:04 Полный дизастер
00:22:21 Паттерн Батч или "Батчевание"
00:26:08 Vivid Money
00:37:44 Пишем необанк с нуля
00:43:31 Разные стэки, Go, Java, Scala
00:51:18 Скучный стэк необанка
01:00:12 Мигрируем схемы БД
Как (не) мигрировать в postgresql https://habr.com/ru/post/582698/
01:03:07 Время, что не так?
Видео, после которого вам не захочется писать велосипеды https://www.youtube.com/watch?v=-5wpm-gesOY
Сколько способов измерить время существует? Больше, чем вы думаете https://www.ucolick.org/~sla/leapsecs/timescales.html
01:09:57 Joda-time - хороший API
Как joda time попал в jdk? https://jcp.org/en/jsr/detail?id=310
Другие API для работы со временем https://www.threeten.org/threeten-extra
01:15:28 Место откуда получаем время
Нововведения в java 17 https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/InstantSource.html
Почему в spring boot нет автоконфигурации Clock? https://github.com/spring-projects/spring-boot/issues/31397
01:25:23 Сериализация и хранение в БД LocalDateTime
Проблема 2000-го года сменяется проблемой 2038-го https://en.wikipedia.org/wiki/Year_2038_problem
Реальная ситуация с проблемой 2038-го года https://mobile.twitter.com/jxxf/status/1219009308438024200
Если надо сериализовать дату-время https://en.wikipedia.org/wiki/ISO_8601
Почему не нужно использовать timestamp в postgreqsql https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don.27t_use_timestamp_.28without_time_zone.29
Почему Алексей не знает, сколько дней в феврале? https://ru.wikipedia.org/wiki/30_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F
01:37:08 Vivid Money и время
01:42:38 Зачем придумали время?
Об истории часовых поясах во всём мире очень приятно читать у Пола Эггерта https://github.com/eggert/tz
01:46:13 java.util.Date
01:50:09 О секундах координации
Google делает это последовательно (частенько меняя правила) https://developers.google.com/time/smear
Amazon рассказывает о 2015-м https://aws.amazon.com/blogs/aws/look-before-you-leap-the-coming-leap-second-and-aws/
Bloomberg рассказывает о 2016-м https://data.bloomberglp.com/professional/sites/4/Bloomberg-Leap-Second_December-2016.pdf
Петиция от facebook https://engineering.fb.com/2022/07/25/production-engineering/its-time-to-leave-the-leap-second-in-the-past/
Часы от facebook https://engineering.fb.com/2021/08/11/open-source/time-appliance/
01:59:30 Как измерять производительность
Интересное о nanotime https://shipilev.net/blog/2014/nanotrusting-nanotime/
02:10:21 Jmh
Собственно JMH https://github.com/openjdk/jmh
О производительности JVM вообще всегда актуален https://shipilev.net/
Гость - https://www.linkedin.com/in/alexey-g-12a92333/
Кип сейф! 🖖
В 33 выпуске подкаста Javaswag поговорили с Алексеем Генусом о архитектуре нео-банка, протоколах и представлении времени в Java
00:01:22 О себе
00:03:37 Коннектор для Петербуржской биржи
00:06:04 Протокол, пакет, запрос
00:09:34 Netty vs NIO
Кладезь знаний о Netty https://www.amazon.de/-/en/Norman-Maurer/dp/1617291471
00:17:04 Полный дизастер
00:22:21 Паттерн Батч или "Батчевание"
00:26:08 Vivid Money
00:37:44 Пишем необанк с нуля
00:43:31 Разные стэки, Go, Java, Scala
00:51:18 Скучный стэк необанка
01:00:12 Мигрируем схемы БД
Как (не) мигрировать в postgresql https://habr.com/ru/post/582698/
01:03:07 Время, что не так?
Видео, после которого вам не захочется писать велосипеды https://www.youtube.com/watch?v=-5wpm-gesOY
Сколько способов измерить время существует? Больше, чем вы думаете https://www.ucolick.org/~sla/leapsecs/timescales.html
01:09:57 Joda-time - хороший API
Как joda time попал в jdk? https://jcp.org/en/jsr/detail?id=310
Другие API для работы со временем https://www.threeten.org/threeten-extra
01:15:28 Место откуда получаем время
Нововведения в java 17 https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/InstantSource.html
Почему в spring boot нет автоконфигурации Clock? https://github.com/spring-projects/spring-boot/issues/31397
01:25:23 Сериализация и хранение в БД LocalDateTime
Проблема 2000-го года сменяется проблемой 2038-го https://en.wikipedia.org/wiki/Year_2038_problem
Реальная ситуация с проблемой 2038-го года https://mobile.twitter.com/jxxf/status/1219009308438024200
Если надо сериализовать дату-время https://en.wikipedia.org/wiki/ISO_8601
Почему не нужно использовать timestamp в postgreqsql https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don.27t_use_timestamp_.28without_time_zone.29
Почему Алексей не знает, сколько дней в феврале? https://ru.wikipedia.org/wiki/30_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F
01:37:08 Vivid Money и время
01:42:38 Зачем придумали время?
Об истории часовых поясах во всём мире очень приятно читать у Пола Эггерта https://github.com/eggert/tz
01:46:13 java.util.Date
01:50:09 О секундах координации
Google делает это последовательно (частенько меняя правила) https://developers.google.com/time/smear
Amazon рассказывает о 2015-м https://aws.amazon.com/blogs/aws/look-before-you-leap-the-coming-leap-second-and-aws/
Bloomberg рассказывает о 2016-м https://data.bloomberglp.com/professional/sites/4/Bloomberg-Leap-Second_December-2016.pdf
Петиция от facebook https://engineering.fb.com/2022/07/25/production-engineering/its-time-to-leave-the-leap-second-in-the-past/
Часы от facebook https://engineering.fb.com/2021/08/11/open-source/time-appliance/
01:59:30 Как измерять производительность
Интересное о nanotime https://shipilev.net/blog/2014/nanotrusting-nanotime/
02:10:21 Jmh
Собственно JMH https://github.com/openjdk/jmh
О производительности JVM вообще всегда актуален https://shipilev.net/
Гость - https://www.linkedin.com/in/alexey-g-12a92333/
Кип сейф! 🖖
Javaswag
#33 - Алексей Генус - архитектура нео-банка и время
В 33 выпуске подкаста Javaswag поговорили с Алексеем Генусом о архитектуре нео-банка, протоколах и представлении времени в Java
https://javaswag.github.io/episode/34
В 34 выпуске подкаста Javaswag поговорили с Андреем Сундуковым о переходе c PHP на Java, чистом коде и о собеседованиях
00:00:09 Инженер дата-центра
00:02:54 Из PHP в Java
00:08:16 Что хорошего в Java с точки зрения PHP
00:11:58 PHP же тоже можно писать читаемый код
00:17:15 Зачем писать чистый код
00:33:39 Clean Code 2.0
00:42:04 Простая 300 строчная функция против чистого кода
00:49:03 Договорились писать "чистый код", что дальше?
00:58:28 Спринг мотивируют писать чистый код
01:04:13 Собеседования, курс From Junior to Middle https://education.dhabits.ru/
01:07:48 Что должно быть в резюме
01:18:29 Что спрашивают Сеньоров?
01:27:04 Систем дизайн интервью
01:32:38 Канал https://t.me/developers_mind
Ссылки от гостя:
Разбор резюме на позицию Java Dev https://www.youtube.com/watch?v=nDRXq21B4PI
Гость - https://t.me/Hcd5opza9bdcjid26fg
Кип сейф! 🖖
В 34 выпуске подкаста Javaswag поговорили с Андреем Сундуковым о переходе c PHP на Java, чистом коде и о собеседованиях
00:00:09 Инженер дата-центра
00:02:54 Из PHP в Java
00:08:16 Что хорошего в Java с точки зрения PHP
00:11:58 PHP же тоже можно писать читаемый код
00:17:15 Зачем писать чистый код
00:33:39 Clean Code 2.0
00:42:04 Простая 300 строчная функция против чистого кода
00:49:03 Договорились писать "чистый код", что дальше?
00:58:28 Спринг мотивируют писать чистый код
01:04:13 Собеседования, курс From Junior to Middle https://education.dhabits.ru/
01:07:48 Что должно быть в резюме
01:18:29 Что спрашивают Сеньоров?
01:27:04 Систем дизайн интервью
01:32:38 Канал https://t.me/developers_mind
Ссылки от гостя:
Разбор резюме на позицию Java Dev https://www.youtube.com/watch?v=nDRXq21B4PI
Гость - https://t.me/Hcd5opza9bdcjid26fg
Кип сейф! 🖖
Javaswag
#34 - Андрей Сундуков - из PHP в Java, чистый код и собеседования
В 34 выпуске подкаста Javaswag поговорили с Андреем Сундуковым о переходе c PHP на Java, чистом коде и о собеседованиях
Привет! В выпуске ожидания от Сеньор разработчиков, генерация коллизий строк и выход Джавы 19.
Mike Acton’s Expectations of Professional Software Engineers
https://adamj.eu/tech/2022/06/17/mike-actons-expectations-of-professional-software-engineers/
Майк Эктон известный в очень узких кругах разработчик игр выступил как-то на конференции с докладом "Ожидания от сеньйор разработчика". Вот, например, несколько интересных пунктов по которым вы можете проверить себя или своего коллегу:
- Я точно знаю какую проблему решаю
- Я могу объяснить эту проблему остальным
- Я могу подтвердить, что другой человек понимает решаемую проблему
- Я могу объяснить почему эта проблема важна
- Я могу объяснить сколько эта проблема займет времени и средств
- У меня есть План Б на случай если текущее решение не работает
- У меня уже реализован План Б
И там еще 40 таких пунктов. В целом лист подходит под многие ситуации.
https://adamj.eu/tech/2022/06/17/mike-actons-expectations-of-professional-software-engineers/
Майк Эктон известный в очень узких кругах разработчик игр выступил как-то на конференции с докладом "Ожидания от сеньйор разработчика". Вот, например, несколько интересных пунктов по которым вы можете проверить себя или своего коллегу:
- Я точно знаю какую проблему решаю
- Я могу объяснить эту проблему остальным
- Я могу подтвердить, что другой человек понимает решаемую проблему
- Я могу объяснить почему эта проблема важна
- Я могу объяснить сколько эта проблема займет времени и средств
- У меня есть План Б на случай если текущее решение не работает
- У меня уже реализован План Б
И там еще 40 таких пунктов. В целом лист подходит под многие ситуации.
adamj.eu
Mike Acton’s Expectations of Professional Software Engineers - Adam Johnson
In a 2019 talk/rant titled “Everyone Watching This Is Fired”, games industry veteran Mike Acton rattled off a sample of 50 things he expects of developers he works with. The title refers to his tongue-in-cheek suggestion that anyone who doesn’t meet all these…
How Valhalla Rewrites Optional
https://blog.devgenius.io/how-valhalla-rewrites-optional-a8b4008c81af
Автор изучил вопрос — что будет классом Optional после релиза проекта Valhalla? В светлом будущем будет возможно писать
https://blog.devgenius.io/how-valhalla-rewrites-optional-a8b4008c81af
Автор изучил вопрос — что будет классом Optional после релиза проекта Valhalla? В светлом будущем будет возможно писать
Optional<int>
или Optional<double>
— вообщем Optional от примитивных типов. Проблема в том, чтобы старый код работал по старому а новые Optional работали очевидным образом для разработчика. В итоге для для примитивных типов будет использоваться класс Optional.val
, который тоже будет примитивным типом.Medium
How Valhalla Rewrites Optional
What will happen to Optional after Valhalla gets in Java
Fast and Simple SPSC Queue
https://puzpuzpuz.dev/fast-and-simple-spsc-queue
SPSC(Single Producer Single Consumer) очередь — это неблокирующая очередь вида один поток поставщик, один поток приемщик. Автор показывает как такую очередь можно реализовать самому. Конечно, лучше этого не делать и для продакшена взять например очередь из https://github.com/JCTools/JCTools Также автор сравнивает производительность своей реализации
Building pathological input for Java HashMaps - hash collisions generator
https://www.andreinc.net/2022/09/01/patological-input-for-the-java-hash-tables
Что общего у строк "The byte representation of 'a' is: " и "The hashCode representation of 'a' is:"? Все верно у них одинаковый хэш код в Джаве -
https://puzpuzpuz.dev/fast-and-simple-spsc-queue
SPSC(Single Producer Single Consumer) очередь — это неблокирующая очередь вида один поток поставщик, один поток приемщик. Автор показывает как такую очередь можно реализовать самому. Конечно, лучше этого не делать и для продакшена взять например очередь из https://github.com/JCTools/JCTools Также автор сравнивает производительность своей реализации
SPSC
из JCTools
и очереди ArrayBlockingQueue
. Вот тут не совсем ясно, зачем сравнивать блокирующую и неблокирующую очереди, но почему бы и нет.Building pathological input for Java HashMaps - hash collisions generator
https://www.andreinc.net/2022/09/01/patological-input-for-the-java-hash-tables
Что общего у строк "The byte representation of 'a' is: " и "The hashCode representation of 'a' is:"? Все верно у них одинаковый хэш код в Джаве -
97
. Автор рассказывает как можно написать функцию, которая будет генерировать строки с одинаковыми хэш кодами. Для чего? Для того чтобы сложить их как ключи в хэшмапу и получить плохую производительность на вставку и на поиск.Random thoughts on concurrency, databases and distributed systems
Fast and Simple SPSC Queue
Single producer single consumer queues form the simplest type of concurrent queues. Today, we look at a fast bounded SPSC queue implemented in Java.
Embracing Virtual Threads
https://spring.io/blog/2022/10/11/embracing-virtual-threads
В Джаве 19, которая, кстати, недавно вышла появились Виртуальные потоки в режиме превью. Разработчики Спринга готовились к ним еще со времен, когда потоки назывались файберами. Ну и как результат — чтобы начать использовать файберы нужно всего перейти на другой экзекьютор потоков. Про производительность даже Спринг не может сказать ничего внятного,говорит "надо замерять".
https://spring.io/blog/2022/10/11/embracing-virtual-threads
В Джаве 19, которая, кстати, недавно вышла появились Виртуальные потоки в режиме превью. Разработчики Спринга готовились к ним еще со времен, когда потоки назывались файберами. Ну и как результат — чтобы начать использовать файберы нужно всего перейти на другой экзекьютор потоков. Про производительность даже Спринг не может сказать ничего внятного,говорит "надо замерять".
Embracing Virtual Threads
Level up your Java code and explore what Spring can do for you.
Java 19
https://habr.com/ru/post/689344/
Ну и если вы каким-то образом упустили все таки выход 19 Джавы то вот отличная статья с разбором "что там внутри". В основном все фичи в превью или в инкубаторе, что наверное хорошо — их можно попробовать. Изменения в АПИ можно посмотреть тут: https://javaalmanac.io/jdk/19/apidiff/18/
https://habr.com/ru/post/689344/
Ну и если вы каким-то образом упустили все таки выход 19 Джавы то вот отличная статья с разбором "что там внутри". В основном все фичи в превью или в инкубаторе, что наверное хорошо — их можно попробовать. Изменения в АПИ можно посмотреть тут: https://javaalmanac.io/jdk/19/apidiff/18/
Хабр
Вышла Java 19
Вышла общедоступная версия Java 19 . В этот релиз попало более двух тысяч закрытых задач и 7 JEP'ов . Release Notes можно посмотреть здесь . Изменения API – здесь . Ссылки на скачивание: Oracle...
Java-разработчик — как архитектор Эйфелевой башни. Он создаёт сервисы и приложения, которые должны выдержать огромное количество посетителей — стриминговые сервисы, маркет-плейсы и другие. Разработчик, как архитектор, мыслит творчески: придумывать, как будет выглядеть и работать его проект. А каждая его идея отражается на пользователях.
Если вам интересно работать на стыке творчества и технологии — попробуйте java-разработку. Это можно сделать бесплатно — во вводной части курса Яндекс Практикума.
Вот что в ней будет:
— Основы языка Java: переменные, условные, выражения и циклы.
— Азы объектно-ориентированного программирования: классы, конструкторы и методы.
— Ваш первый проект на Java — приложение для учёта финансов.
Узнайте, подходит ли вам java-разработка →
Если вам интересно работать на стыке творчества и технологии — попробуйте java-разработку. Это можно сделать бесплатно — во вводной части курса Яндекс Практикума.
Вот что в ней будет:
— Основы языка Java: переменные, условные, выражения и циклы.
— Азы объектно-ориентированного программирования: классы, конструкторы и методы.
— Ваш первый проект на Java — приложение для учёта финансов.
Узнайте, подходит ли вам java-разработка →
https://javaswag.github.io/episode/35
В 35 выпуске подкаста Javaswag поговорили с Алексеем Рагозиным о распределенных кэшах, сборке мусора и профилировании приложений
00:01:59 О себе
00:07:16 Сборщики мусора
00:13:25 Куда делись распределенные кэши?
00:20:14 Отказоустойчивость
00:23:14 Что с Oracle Coherence, Hazelcast, GridGain
00:27:44 Индустрия ушла в ивент стриминг
00:30:25 Ретроспектива сборщиков мусора в Джаве
00:42:13 Тюнинг сборщика мусора
00:53:15 Джава и контейнеры
01:01:06 Профилировщики
01:28:16 Сейфпонты и сисколы
01:32:36 Работы джава консультантом
01:38:43 Будущее профайлеров
Ссылки от гостя
Блог - https://blog.ragozin.info/
Эвенты - https://aragozin.timepad.ru/
Профайлер - https://github.com/aragozin/jvm-tools
Cборка мусора в Java без пауз - https://www.youtube.com/watch?v=n89CZS0u6dY
Мастер-класс по Java Mission Control - https://www.youtube.com/watch?v=wm2JNlaJJ5k
Java и Linux — особенности эксплуатации - https://www.youtube.com/watch?v=HVVsjyVxcJ8
Мастер-класс: Новые и старые возможности Java Flight Recorder в OpenJDK 11 - https://www.youtube.com/watch?v=skNOBoazKPI
Гость - https://blog.ragozin.info/
Кип сейф! 🖖
В 35 выпуске подкаста Javaswag поговорили с Алексеем Рагозиным о распределенных кэшах, сборке мусора и профилировании приложений
00:01:59 О себе
00:07:16 Сборщики мусора
00:13:25 Куда делись распределенные кэши?
00:20:14 Отказоустойчивость
00:23:14 Что с Oracle Coherence, Hazelcast, GridGain
00:27:44 Индустрия ушла в ивент стриминг
00:30:25 Ретроспектива сборщиков мусора в Джаве
00:42:13 Тюнинг сборщика мусора
00:53:15 Джава и контейнеры
01:01:06 Профилировщики
01:28:16 Сейфпонты и сисколы
01:32:36 Работы джава консультантом
01:38:43 Будущее профайлеров
Ссылки от гостя
Блог - https://blog.ragozin.info/
Эвенты - https://aragozin.timepad.ru/
Профайлер - https://github.com/aragozin/jvm-tools
Cборка мусора в Java без пауз - https://www.youtube.com/watch?v=n89CZS0u6dY
Мастер-класс по Java Mission Control - https://www.youtube.com/watch?v=wm2JNlaJJ5k
Java и Linux — особенности эксплуатации - https://www.youtube.com/watch?v=HVVsjyVxcJ8
Мастер-класс: Новые и старые возможности Java Flight Recorder в OpenJDK 11 - https://www.youtube.com/watch?v=skNOBoazKPI
Гость - https://blog.ragozin.info/
Кип сейф! 🖖
Javaswag
#35 - Алексей Рагозин - золотой век распределенных кэшей и профилировщики
В 35 выпуске подкаста Javaswag поговорили с Алексеем Рагозиным о распределенных кэшах, сборке мусора и профилировании приложений
Привет! В выпуске собираем Джава проект Базелем, публикуем библиотеку в Мавен Централ и смотрим видео с конференции Devoxx UK и JPoint