Please open Telegram to view this post
VIEW IN TELEGRAM
Привет, друзья! 👋
Готовим статью «Лучшие шрифты для программирования» и хотим узнать ваше мнение! 🖥️✨
Готовим статью «Лучшие шрифты для программирования» и хотим узнать ваше мнение! 🖥️✨
Какой шрифт вы используете для написания кода? 🤓
Anonymous Poll
17%
Consolas
8%
Fira Code
69%
JetBrains Mono
4%
Source Code Pro
5%
Monaco
5%
Cascadia Code
10%
Другой (напишите в комментариях)
Что для вас самое важное в шрифте для кода? 🧐
Anonymous Poll
71%
Четкость символов
16%
Поддержка лигатур
61%
Различимость похожих символов (0 и O, 1 и l)
12%
Наличие курсивного начертания
22%
Компактность
5%
Другое (уточните в комментариях)
Поделитесь своим опытом: какой шрифт, на ваш взгляд, самый удобный для долгих сессий кодинга и почему? 💻🕰️
Ждем ваши ответы в комментариях! Самые интересные и полезные советы войдут в нашу статью. 📝💡
Ждем ваши ответы в комментариях! Самые интересные и полезные советы войдут в нашу статью. 📝💡
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🎁 256-й день года: 15 подарков, которые оценит каждый программист
Мы собрали 15 идей подарков — от практичных гаджетов до инструментов для профессионального роста. Эти подарки не только упростят рабочий процесс, но и вдохновят на новые достижения. Независимо от того, junior вы или senior, в нашем списке каждый найдёт что-то для себя.
👉 Смотреть список
Мы собрали 15 идей подарков — от практичных гаджетов до инструментов для профессионального роста. Эти подарки не только упростят рабочий процесс, но и вдохновят на новые достижения. Независимо от того, junior вы или senior, в нашем списке каждый найдёт что-то для себя.
👉 Смотреть список
Начать с вводных занятий можно здесь, ответив всего на 4 вопроса – https://proglib.io/w/3e093096
Что будет на демо?
🔹Вводный урок от CPO курса;
🔹Лекции со всеми преподавателями МГУ по темам: теория множеств, непрерывность функции, основные формулы комбинаторики, матрицы и операции над ними, градиентный спуск;
🔹Практические задания и дополнительные материалы!
Please open Telegram to view this post
VIEW IN TELEGRAM
JsonPath — это библиотека, которая позволяет извлекать данные из JSON-структур по пути, подобно тому, как это делает XPath для XML. В отличие от традиционного парсинга JSON в Java-объекты через такие библиотеки, как Jackson или Gson, JsonPath позволяет выбирать только те фрагменты данных, которые действительно нужны. Это экономит как время, так и память, что особенно важно при работе с большими JSON-документами.
Пример использования:
Допустим, у нас есть большой JSON, который представляет данные о магазине, и нужно вытащить категорию первой книги из списка:
{
"store": {
"book": [
{ "category": "fiction", "title": "The Great Gatsby" },
{ "category": "science", "title": "The Origin of Species" }
]
}
}
Вместо того, чтобы парсить весь JSON в объект, можно использовать JsonPath для выборки нужного значения:
String json = "{ \"store\": { \"book\": [ { \"category\": \"fiction\" }, { \"category\": \"science\" } ] } }";
String category = JsonPath.read(json, "$.store.book[0].category");
System.out.println(category); // Output: fiction
Обычно при парсинге JSON целиком, программа должна создать дерево объектов для всей структуры данных, даже если нужен лишь небольшой её фрагмент. JsonPath позволяет напрямую обратиться к интересующему полю, минуя необходимость обрабатывать весь JSON-объект.
▪️ Эффективность: Можно выбирать только нужные данные.
▪️ Гибкость: поддерживает мощные выражения для фильтрации и выборки данных (например, выбор элементов по условию).
▪️ Лаконичность: Вместо написания громоздкого кода для обхода JSON-структуры использунтся один понятный запрос.
▪️ Простота интеграции: Легко интегрируется с такими библиотеками, как Jackson, Gson и другими популярными парсерами.
▪️ Меньшая безопасность типов: В отличие от полной десериализации JSON в строгие Java-объекты, данные получаются в виде строк, что может привести к ошибкам при обработке типов.
▪️ Отсутствие контроля над схемой: Если схема JSON изменится, запросы могут стать неактуальными, и ошибки появятся не сразу, так как нет строгой валидации типов на уровне компиляции.
▪️ Меньше гибкости при сложной логике: Когда нужно не просто вытащить данные, а, например, выполнить дополнительные преобразования или логику на основе полей JSON, десериализация в объекты может быть более подходящей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Iterator — это поведенческий паттерн, который позволяет последовательно обходить элементы коллекции, не раскрывая ее внутреннюю структуру. Он обеспечивает единый интерфейс для работы с различными типами коллекций.
Использование:
🔹 Когда нужно обеспечить единый способ обхода элементов коллекций без зависимости от их типа.
🔹 Когда нужно скрыть внутреннюю реализацию структуры данных от кода, который с ней работает.
🔹 Для реализации паттерна "агрегат" и отделения итерации от логики самой коллекции.
Преимущества:
Недостатки:
Please open Telegram to view this post
VIEW IN TELEGRAM
На какой версии Java ваш текущий проект?
Anonymous Poll
1%
1.5
1%
7
11%
8
17%
11
41%
17
2%
19
22%
21
3%
Свой вариант (в комменты)
Oracle выпустила Java 23. Вот несколько из самых интересных нововведений:
🔹 Модульные импорты (JEP 476): Теперь можно легко импортировать все пакеты модуля, не погружаясь в детали модульной системы.
🔹 Паттерны для примитивов (JEP 455): Теперь примитивные типы можно использовать в pattern matching, instanceof и switch, что делает Java ещё более гибкой и выразительной.
🔹 Структурированная конкуренция (JEP 480): Этот API упрощает многопоточное программирование, объединяя связанные задачи в один блок работы, что повышает надежность и упрощает сопровождение кода.
🔹 Документация на Markdown (JEP 467): Теперь документацию Javadoc можно писать на Markdown, что делает её более удобной для чтения и создания.
🔹 Поколенческий режим для ZGC (JEP 474): Улучшен сборщик мусора ZGC, который теперь по умолчанию работает в поколенческом режиме, что увеличивает производительность и снижает затраты ресурсов.
Подробнее об обновлениях - ссылка.
Please open Telegram to view this post
VIEW IN TELEGRAM