TGViewer
Channel Public Channel
devmark_ru

devmark_ru

@devmark_ru

Данный канал является частью проекта devmark.ru, который посвящён вопросам разработки программного обеспечения. Здесь вы найдёте полезные материалы по server-side разработке. Прежде всего по Java, Kotlin и Spring.
Subscribers
224
Photos
157
Videos
0
Links
121

Showing posts older than #94 · Back to latest

Older Posts 20 shown
Post #93 228
Почти через месяц, 17 мая, состоится МТС True Tech. Это IT-конференция, в которой примут участие 50 спикеров в 5 треках. Доклады будут идти весь день и закончатся вечеринкой!

Тематика докладов:
- разработка
- ИИ и машинное обучение
- облачные технологии
- наука

Возможно как онлайн-участие, так и оффлайн в Москве: МТС Live Холл (ш. Энтузиастов д. 5, стр. 2).

Регистрация на конференцию бесплатная!

Также можно принять участие в хакатоне. До 25 апреля нужно собрать команду, 26 апреля стартует хакатон. А финальный питчинг и награждение состоится на самой конференции.
  • 👍 3
  • 👎 1
Post #92 226
Давайте сегодня поговорим о мутациях. Не волнуйтесь, мой канал не сменил тематику. Пусть картинка не вводит вас в заблуждение 😁

Мутациями в GraphQL называется изменение данных в противовес чтению данных, про которое я уже писал на прошлой неделе. Мутации - это всего лишь удобная graphql-обёртка над привычными нам методами для изменения данных.

Все методы мутаций должны быть определены в graphql-схеме в типе Mutation, а все входные параметры мутаций снабжаются ключевым словом input.
  • 👍 5
Post #91 220
Если вы только начинаете разрабатывать под Linux или MacOS, вам может пригодиться следующая шпаргалка по консольным командам:

pwd           полный путь до текущей директории
ls список файлов в текущей директории
ls -la список скрытых файлов
cd или cd ~ перейти в домашний каталог
cd путь перейти в указанный каталог
history история выполненных команд
clear очистить консоль
exit закрыть консоль


Ещё больше команд вы сможете найти на моём сайте. А если чего-то не нашли - пишите в комментах.
  • 👍 6
Post #90 239
Клиент-серверное взаимодействие через GraphQL довольно удобно, т.к. во-первых предоставляет единую точку входа, а во-вторых, позволяет грузить с сервера только те данные, которые реально нужны на клиенте.

Однако стандартный набор типов данных в GraphQL крайне мал: Int, Float, String, Boolean и ID. Но что делать, если мы хотим использовать такие типы как BigDecimal или LocalDate? В этом нам поможет библиотека graphql-java-extended-scalars.

Более подробно читайте в статье GraphQL в Spring Boot, которую я немного доработал и добавил в неё новый раздел про кастомные типы данных.

Также вы можете посмотреть пример проекта на github.
  • 👍 4
Post #89 210
Доработал статью про алгоритм вычисления чисел Фибоначчи в части реализации рекурсивного алгоритма.

Может показаться не очевидным, но вычисление каждого следующего элемента последовательности в рекурсивном варианте занимает в 2 раза больше времени, чем предыдущего. Хотя сам алгоритм основан на сложении двух целых чисел, уже где-то в районе 45-го элемента последовательности возникает заметная задержка в вычислении.

Это связано с тем, что на каждом уровне рекурсии мы заново вычисляем все предыдущие числа. Чтобы этого избежать, можно кешировать уже вычисленные значения, о чём я добавил соответствующий раздел.

P.S. Спасибо Диме Вдовину, который является автором канала @yabed_news, за коммент о вычислительной сложности рекурсивного алгоритма.
  • 👍 3
Post #88 1.28K
Вчера, 19 марта 2024 года, состоялся релиз Java 22! Хоть это и не LTS-версия, но она содержит несколько интересных улучшений.

✅ Из статуса preview в статус постоянной языковой конструкции перешли неименованные переменные, которые обозначаются символом нижнего подчёркивания "_".

✅ Также появилась возможность запускать и компилировать на лету через команду java имя_класса.java не только 1 указанный файл, но и все связанные между собой файлы исходников.

В статусе preview доступны следующие фичи:

➡️ Перед вызовом конструктора базового класса можно использовать инструкции, которые не ссылаются на конструируемый объект.

➡️ Упрощённая сигнатура метода main() без необходимости создания класса.

➡️ В Stream API добавлен новый интерфейс Gatherer, позволяющий создавать собственные промежуточные (отложенные) операции.

➡️ Строковые шаблоны аналогично Java 21.

Помимо изменений в самом языке и стандартной библиотеке, было произведено несколько улучшений в механизме многопоточности, сборки мусора и управления памятью.
  • 👍 3
  • 🔥 2
Post #87 301
Хочу поделиться с вами небольшой статистикой. В прошедший уик-энд количество подписчиков в этой группе перевалило за 100!

Это не может не радовать, т.к. помимо основной аудитории на моём YouTube-канале, чуть меньшей аудитории на сайте, telegram - это третья площадка, которая медленно, но верно также развивается.

Спасибо вам за те комментарии, вопросы и предложения, которые вы пишете - это позволяет создавать более качественный контент!
  • 👍 11
  • ❤ 1
  • 🔥 1
  • 👏 1
Post #86 331
На моём YouTube-канале в комментах под видео про итераторы пользователь karakurty попросил меня рассказать также про ConcurrentModificationException в контексте данной темы.

Поэтому в статью я добавил новый раздел о том, как менять ту же коллекцию, по которой производим перебор элементов.

P.S. Мне на самом деле очень приятно, когда аудитория моего канала предлагает различные улучшения и дополнения к тому материалу, который я публикую. В своё время так уже было с видео про поиск простых чисел, когда предложенный зрителем альтернативный алгоритм оказался гораздо более быстрым, чем рассмотренная мною реализация. И это в итоге привело даже к созданию отдельной статьи.
YouTube Интерфейсы Iterator и Iterable в Java #devmark #java #collections Интерфейсы Iterator и Iterable часто используются для работы с коллекциями в Java. Они позволяют эффективно и безопасно работать с коллекциями, обеспечивая контроль над процессом перебора элементов (итерации). Iterator представляет…
  • 👍 5
Post #85 232

Forwarded from YABED - Yet Another BackEnd Digest: Java/Kotlin

🚀 Всем привет! Как вы уже знаете, наш канал выступает информационным партнёром конференции IntelliJ IDEA Conf 2024. В программе много годноты – обязательно к просмотру. Регистрируйтесь по ссылке здесь.

🏆 А мы выполняем обещание и специально к конференции проводим розыгрыш ДВУХ кодов активации для полного набора инструментов для разработки JetBrains All Products Pack!

Что нужно сделать, чтобы принимать участие?
✅ быть подписанным на наш канал
✅ нажать кнопку "Участвую"
🎯 Итоги мы подведём 29 февраля с помощью рандомайзера. Всё честно и просто.

Вперёд, за призами и присоединяйтесь к IntelliJ IDEA Conf 2024! Удачи!
#IntelliJIDEAConf
  • 👍 3
Post #84 200
В продолжение предыдущей темы, канал YABED (мои хорошие знакомые) является информационным партнёром конференции и потому проводит розыгрыш лицензий JetBrains All Products Pack! Для участия в розыгрыше достаточно подписаться на их канал и нажать кнопку "Участвую".
  • 👍 3
Post #83 259
JetBrains анонсирует онлайн-конференцию IntelliJ IDEA Conf 2024, которая пройдёт в онлайн-формате 6 и 7 марта.

Вот некоторые темы, которые будут на ней обсуждаться:
🔹Улучшении производительности IntelliJ IDEA.
🔹Функции и классы стандартной библиотеки Kotlin.
🔹Основы безопасной разработки для защиты приложений.
🔹Изменения, грядущие в Java 22 и последующих версиях.
🔹Создание приложений с использованием ChatGPT API.
🔹Освоение Java-тестирования с использованием JUnit, Mockito и AssertJ в IntelliJ IDEA.

Участие бесплатное, требуется предварительная регистрация.
  • 👍 3
Post #82 251
Новое 📺 видео на YouTube-канале!

Во многих редакторах при работе с текстовым документом вы можете видеть, сколько всего строк содержится в этом файле. Строки между собой разделяются символом перевода строки, который в каждой операционной системе (Windows, Unix, Mac) свой.

Давайте разберёмся, как быстро подсчитать количество строк в текстовом файле независимо от той ОС, в котором выполняется наш код. Более того, текстовый файл может быть сколь угодно большим, поэтому мы будем использовать буферизацию потока, чтобы не израсходовать всю доступную оперативную память.
  • 👍 5
Post #81 259
Новое 📺 видео на YouTube канале!

Давайте научимся читать большой текстовый файл построчно. При этом каждую строку будем как-то обрабатывать. Например, будем искать наибольшую длину строки.

Поскольку размер файла больше 100 МБ, его чтение происходит с небольшой задержкой. Мы рассмотрим три варианта реализации такого чтения и выберем наиболее быстрый из них.

Также данный материал доступен в виде 📗 статьи.
  • 👍 4
Post #80 231
Добавил на YouTube новое видео о том, как сохранять большие текстовые файлы на Java наиболее оптимальным образом. Текстовый вариант доступен на сайте.

Давайте сгенерируем строку из случайных символов на Java и затем сохраним её в текстовый файл. Строка должна быть очень большой (более 100 миллионов символов), чтобы мы могли легко заметить разницу во времени, которое требуется на сохранение файла.

Рассмотрим 3 варианта: обычный FileWriter, FileWriter с буферизацией и неблокирующее сохранение файла с помощью пакета java.nio. В конце подведём итоги.
  • 👍 4
  • 🔥 1
Post #79 240
В повседневной работе никто из нас не компилирует исходники ☕️ Java вручную. За нас это делают такие инструменты как maven, gradle или среда разработки типа 💡 Idea.

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

Поэтому по мотивам 📗 статьи я подготовил 📺 видео, где привожу пример компиляции исходников Java из консоли вручную.
  • 👍 10
Post #78 207
В дополнение к статье про итератор записал видео для YouTube.

Интерфейсы Iterator и Iterable часто используются для работы с коллекциями в Java. Они позволяют эффективно и безопасно работать с коллекциями, обеспечивая контроль над процессом перебора элементов (итерации).

Iterator представляет собой одноимённый шаблон проектирования «Итератор».

Iterable предоставляет более удобный способ работы с коллекциями, позволяя использовать цикл for-each для итерации по элементам коллекции.
  • 👍 5
Post #77 208
По мотивам статьи записал видео про ещё одну production-ready фичу из Java 21 - Pattern matching в switch.

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

Кроме того, pattern matching в switch работает также и для record-классов. Помимо приведения к типу, мы также автоматически получаем доступ ко всем значимым полям этого класса, что позволяет избегать громоздких вызовов get-методов.
  • 👍 5
Post #76 184
Опубликовал видео на YouTube про value-классы в Kotlin.

Иногда в процессе разработки требуется обеспечить более узкую типизацию параметров, чем позволяют стандартные типы. Особенно, если метод принимает несколько параметров одинакового типа, но каждый параметр несёт разный смысл.

В Kotlin есть особое подмножество классов, называемых value class. Они сочетают в себе высокую производительность как у примитивов и некоторые преимущества ООП, как у обычных классов.
  • 👍 6
Post #75 169
В продолжение темы SequencedCollection на YouTube выложил ролик про SequencedMap. То же самое, но в виде текста, можно прочитать здесь.

Интерфейс SequencedMap расширяет стандартный Map, добавляя в него методы для доступа и манипулирования первым и последним элементами. В отличие от SequencedCollection, здесь мы манипулируем не отдельными значениями, а сразу парой «ключ-значение», представленной Map.Entry.
  • 🔥 3
  • 👍 1
Post #74 168
Ранее я публиковал статью про новые интерфейсы SequencedCollection и SequencedSet, которые появились в Java 21. Они расширяют базовый интерфейс Collection, добавляя в него ряд полезных методов для манипуляций с первым и последним элементами, а также для инвертирования коллекции.

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

Подписывайтесь, ставьте лайки и пишите комментарии - так вы сможете поучаствовать в продвижении проекта.
  • 👍 5
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →