Бесплатный курс для всех, кто любит качественные IT-публикации и хочет научиться интересно писать о программировании либо улучшить навыки письма.
Курс состоит из семи модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций. Ограничений на время прохождения заданий нет.
Курс будет интересен авторам, работающим в составе редакции, копирайтерам-одиночкам и просто программистам, которые хотят научиться интересно рассказывать о собственных проектах.
Материалы регулярно дополняются, обновляются и корректируется. Отвечаем на все учебные вопросы в комментариях курса.
Как стать автором «Библиотеки программиста» и получать гонорары за статьи?
➡️ Заполните анкету.
Если все ок, мы свяжемся с вами и обсудим дальнейшие шаги.
Please open Telegram to view this post
VIEW IN TELEGRAM
#вопросы_с_собеседований
Какие логические операции и операторы вы знаете?
•
•
•
•
•
•
•
•
•
•
•
•
Какие логические операции и операторы вы знаете?
•
&
: Логическое AND (И);•
&&
: Сокращённое AND;•
|
: Логическое OR (ИЛИ);•
||
: Сокращённое OR;•
^
: Логическое XOR (исключающее OR (ИЛИ));•
!
: Логическое унарное NOT (НЕ);•
&=
: AND с присваиванием;•
|=
: OR с присваиванием;•
^=
: XOR с присваиванием;•
==
: Равно;•
!=
: Не равно;•
?:
: Тернарный (троичный) условный оператор.В этом новом видео "История систем контроля версий" автор рассказывает об эволюции систем контроля версий, начиная с первых командных интерфейсов и заканчивая современными децентрализованными системами. Автор описывает основные принципы и функциональность таких систем, как SCCS, RCS, CVS, SVN и Git, рассказывает о их преимуществах и ограничениях, а также о том, как они повлияли на развитие современного программного обеспечения.
https://youtu.be/idRbHt3LE58
Please open Telegram to view this post
VIEW IN TELEGRAM
Графический интерфейс для bash, делаем работу в командной строке удобнее
Когда пишешь код в IntelliJ IDEA, привыкаешь что везде есть подсказки, везде где можно работает комплишен, всегда можно одним кликом перейти на декларацию метода или на его юсаджи.
Смотреть статью
Когда пишешь код в IntelliJ IDEA, привыкаешь что везде есть подсказки, везде где можно работает комплишен, всегда можно одним кликом перейти на декларацию метода или на его юсаджи.
Смотреть статью
Prostore — простой Event sourcing + CQRS фреймворк
На данный момент на рынке мало Event sourcing + CQRS фреймворков. А те, что есть, непопулярны и имеют слабую поддержку, поэтому многие создают свои in-house решения. В этой статье расскажу о выполненном командой «Programming Store» проекте Prostore, который может послужить примером при создании вашего собственного решения.
https://habr.com/ru/post/716218/
На данный момент на рынке мало Event sourcing + CQRS фреймворков. А те, что есть, непопулярны и имеют слабую поддержку, поэтому многие создают свои in-house решения. В этой статье расскажу о выполненном командой «Programming Store» проекте Prostore, который может послужить примером при создании вашего собственного решения.
https://habr.com/ru/post/716218/
Хабр
Prostore — простой Event sourcing + CQRS фреймворк
На данный момент на рынке мало Event sourcing + CQRS фреймворков. А те, что есть, непопулярны и имеют слабую поддержку, поэтому многие создают свои in-house решения. В этой статье расскажу о...
Что такое тернарный оператор выбора?
Тернарный условный оператор ?: - оператор, которым можно заменить некоторые конструкции операторов if-then-else.
Выражение записывается в следующей форме:
Тернарный условный оператор ?: - оператор, которым можно заменить некоторые конструкции операторов if-then-else.
Выражение записывается в следующей форме:
условие ? выражение1 : выражение2
Если условие выполняется, то вычисляется выражение1 и его результат становится результатом выполнения всего оператора. Если же условие равно false, то вычисляется выражение2 и его значение становится результатом работы оператора. Оба операнда выражение1 и выражение2 должны возвращать значение одинакового (или совместимого) типа.Экспортируем метрики в Prometheus, пишем кастомные метрики с помощью Micrometr, строим дашборды в Grafana. Поднимаем это все с помощью Docker compose.
https://youtu.be/CexiiWrZESk
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Мониторинг Spring Boot, Prometheus и Grafana(Docker compose)
Экспортируем метрики в Prometheus, пишем кастомные метрики с помощью Micrometr, строим дашборды в Grafana. Поднимаем это все с помощью Docker compose.
Repo GitHub - https://github.com/kegisa/YandexTaxiScheduler
Api Yandex Taxi - https://yandex.ru/dev/taxi/taxiapi/…
Repo GitHub - https://github.com/kegisa/YandexTaxiScheduler
Api Yandex Taxi - https://yandex.ru/dev/taxi/taxiapi/…
Руководство по обработке исключений в Java Stream
Друзья, вашему вниманию предлагается небольшое руководство по обработке исключений в Java Stream, из которого вы узнаете: 😃
✔️ Как обрабатывать проверяемые исключения, выбрасываемые методами из промежуточных операций в стримах
✔️ Как использовать блок try-catch в лямбда-выражениях
✔️ Как безопасно извлекать метод.
Также, даны рекомендации использовать Optional вместо выбрасывания значения null из извлекаемой функции.
Хорошей практики!
https://howtodoinjava.com/java/stream/handle-exceptions-in-stream/
Друзья, вашему вниманию предлагается небольшое руководство по обработке исключений в Java Stream, из которого вы узнаете: 😃
✔️ Как обрабатывать проверяемые исключения, выбрасываемые методами из промежуточных операций в стримах
✔️ Как использовать блок try-catch в лямбда-выражениях
✔️ Как безопасно извлекать метод.
Также, даны рекомендации использовать Optional вместо выбрасывания значения null из извлекаемой функции.
Хорошей практики!
https://howtodoinjava.com/java/stream/handle-exceptions-in-stream/
HowToDoInJava
Handle Exceptions Thrown in Java Streams - HowToDoInJava
Learn to handle the checked exceptions thrown from the methods used in Stream operations in Java 8 using safe method extraction and Optional.
#вопросы_с_собеседований
Как и когда происходит увеличение количества корзин в HashMap?
Помимо
Как и когда происходит увеличение количества корзин в HashMap?
Помимо
capacity
у HashMap
есть еще поле loadFactor
, на основании которого, вычисляется предельное количество занятых корзин capacity * loadFactor
. По умолчанию loadFactor = 0.75
. По достижению предельного значения, число корзин увеличивается в 2 раза и для всех хранимых элементов вычисляется новое «местоположение» с учетом нового числа корзин.#вопросы_с_собеседований
Сделайте HashMap из HashSet<Map.Entry<K, V>>.
Сделайте HashMap из HashSet<Map.Entry<K, V>>.
HashMap<K, V> map = new HashMap<>(set.size());
for (Map.Entry<K, V> entry : set) {
map.put(entry.getKey(), entry.getValue());
}
#вопросы_с_собеседований
Сделайте HashSet из ключей HashMap.
Сделайте HashSet из ключей HashMap.
HashSet<Object> set = new HashSet<>(map.keySet());
#вопросы_с_собеседований
Для чего в стримах предназначены методы flatMap(), flatMapToInt(), flatMapToDouble(), flatMapToLong()?
Метод flatMap() похож на map, но может создавать из одного элемента несколько. Таким образом, каждый объект будет преобразован в ноль, один или несколько других объектов, поддерживаемых потоком. Наиболее очевидный способ применения этой операции — преобразование элементов контейнера при помощи функций, которые возвращают контейнеры.
flatMapToInt(), flatMapToDouble(), flatMapToLong() - это аналоги flatMap(), возвращающие соответствующий числовой стрим.
Для чего в стримах предназначены методы flatMap(), flatMapToInt(), flatMapToDouble(), flatMapToLong()?
Метод flatMap() похож на map, но может создавать из одного элемента несколько. Таким образом, каждый объект будет преобразован в ноль, один или несколько других объектов, поддерживаемых потоком. Наиболее очевидный способ применения этой операции — преобразование элементов контейнера при помощи функций, которые возвращают контейнеры.
flatMapToInt(), flatMapToDouble(), flatMapToLong() - это аналоги flatMap(), возвращающие соответствующий числовой стрим.
Автор показывает, как генерировать FeignClient по swagger openapi. Часто используется в реализации микросервисов на Spring Boot.
https://youtu.be/O2CrSdhS7pM
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Генерация Spring FeignClient по Swagger openapi
Показываю как генерировать FeignClient по swagger openapi. Часто используется в реализации микросервисов на Spring Boot.
Сервис валют - https://github.com/kegisa/CurrencyCbrService
Пример проекта со SwaggerCodeGen - https://github.com/kegisa/GeneratingFeignBySwagger…
Сервис валют - https://github.com/kegisa/CurrencyCbrService
Пример проекта со SwaggerCodeGen - https://github.com/kegisa/GeneratingFeignBySwagger…
Spring: новости за прошедшую неделю / 28-е февраля
Вашему вниманию предлагается информационная подборка материалов "Spring: новости за прошедшую неделю" от Джоша Лонга (Josh Long).
Приятного чтения! 😃
Читать статью
Вашему вниманию предлагается информационная подборка материалов "Spring: новости за прошедшую неделю" от Джоша Лонга (Josh Long).
Приятного чтения! 😃
Читать статью
This Week in Spring - February 28th, 2023
Level up your Java code and explore what Spring can do for you.
Шестнадцатеричный формат
Иногда нам нужно преобразовать строки в шестнадцатеричный формат, байты или символы. Начиная с Java 17 вы можете использовать класс HexFormat. Просто создайте экземпляр HexFormat, а затем вы можете отформатировать, например, входную таблицу byte в шестнадцатеричную строку. Вы также можете, например, преобразовать входную шестнадцатеричную строку в таблицу байтов, как показано выше.
Иногда нам нужно преобразовать строки в шестнадцатеричный формат, байты или символы. Начиная с Java 17 вы можете использовать класс HexFormat. Просто создайте экземпляр HexFormat, а затем вы можете отформатировать, например, входную таблицу byte в шестнадцатеричную строку. Вы также можете, например, преобразовать входную шестнадцатеричную строку в таблицу байтов, как показано выше.
Целью проекта Leyden является сокращение времени запуска программ, сокращение времени достижения пиковой производительности, а также сокращение занимаемой памяти Java программ.
Руководитель проекта Марк Рейнхольд недавно предложил расширить программную модель Java функциями для выборочного сдвига и ограничения вычислений с помощью "конденсоров" (condensor).
В предложенном сегодня видео Николай Парлог расскажет о будущем этого проекта.
Приятного просмотра!
https://youtu.be/QPWFjNroHls
Руководитель проекта Марк Рейнхольд недавно предложил расширить программную модель Java функциями для выборочного сдвига и ограничения вычислений с помощью "конденсоров" (condensor).
В предложенном сегодня видео Николай Парлог расскажет о будущем этого проекта.
Приятного просмотра!
https://youtu.be/QPWFjNroHls
Новость для багхантеров
Финтех-компания QIWI запустила программу Bug Bounty на платформе tumar.one. Искать уязвимости можно на доменах qiwi.com, qiwi.ru, contact-sys.com и их поддоменах, а также в мобильных приложениях QIWI. За продемонстрированные атаки на найденные уязвимости в основных сервисах компании белые хакеры могут получить денежное вознаграждение вплоть до $5 тыс. С подробными правилами участия можно ознакомиться в описании программы, предварительно пройдя регистрацию на платформе.
Финтех-компания QIWI запустила программу Bug Bounty на платформе tumar.one. Искать уязвимости можно на доменах qiwi.com, qiwi.ru, contact-sys.com и их поддоменах, а также в мобильных приложениях QIWI. За продемонстрированные атаки на найденные уязвимости в основных сервисах компании белые хакеры могут получить денежное вознаграждение вплоть до $5 тыс. С подробными правилами участия можно ознакомиться в описании программы, предварительно пройдя регистрацию на платформе.