Поэтому Oracle и рекомендует больше не использовать java.io.File. Вместо этого (ещё аж в Java 8) были добавлены новые классы, которые решают эти проблемы. Были, наконец, разделены "данные" и "действия". Теперь "данные" выражаются в виде неизменяемого (а значит и потокобезопасного) объекта java.nio.file.Path. А действия с файлами реализованы в классе java.nio.file.Files, который реализует логику из java.io.File, но правильно.
Будет ли вам плохо прямо сейчас, если вы продолжите использовать java.io.File? Нет. Как и любая архитектурная ошибка (которой является java.io.File), этот класс может долго лежать миной в вашем проекте и никому не мешать. Но стоит ли новые проекты начинать и продолжать со старта заражать код легаси? Для меня ответ, скорее, нет.
Oracle Legacy File I/O
Переходы: 1 • 2 • 3
Будет ли вам плохо прямо сейчас, если вы продолжите использовать java.io.File? Нет. Как и любая архитектурная ошибка (которой является java.io.File), этот класс может долго лежать миной в вашем проекте и никому не мешать. Но стоит ли новые проекты начинать и продолжать со старта заражать код легаси? Для меня ответ, скорее, нет.
Oracle Legacy File I/O
Переходы: 1 • 2 • 3
51👍5🔥1
🔴 Присоединяйтесь в 17:00 МСК: Компиляторные плагины на Kotlin
Мы будем писать свой компиляторный плагин, который будет модифицировать поведение toString() у дата-класса.
Если вы вдруг хотите написать компиляторный плагин и хотите посмотреть пример реализации на практике, заходите на стрим и пишите комментарии на Twitch!
Telegram | YouTube | Twitch
Мы будем писать свой компиляторный плагин, который будет модифицировать поведение toString() у дата-класса.
Если вы вдруг хотите написать компиляторный плагин и хотите посмотреть пример реализации на практике, заходите на стрим и пишите комментарии на Twitch!
Telegram | YouTube | Twitch
6❤5👍1
PollGenerationExtension.register(KotlinMeta)
Anonymous Poll
14%
Стрим интересный, удалось посмотреть
0%
Тема стрима интересна, не удалось раскрыть
49%
Тема стрима интересна, жду записи в среду
9%
Тема стрима мне не интересна
29%
Я и сам своего рода стример
Мы начали этот канал с целью проверки идеи: нужно ли русскоязычной аудитории контент про Kotlin без пейвола и рекламы. Сейчас видим, что нужно. Мы считаем эксперимент удачным и приняли решение продолжать ведение канала. Но во время еженедельных стримов мы отказались от наших пет-проектов, многих личных развлечений, и наработали небольшую аудиторию.
Начиная с прямо сейчас, стримы будут выходить не каждую неделю, а 2 раза в месяц. Один стрим провожу я (Алекс), а Эмиль как гость, второй стрим проводит Эмиль, а я (Алекс) сижу как гость. К чему это приведёт:
• Мы сможем лучше готовиться к стримам, т.к. у каждого из нас будет один месяц на подготовку.
• У нас будет больше свободного времени, а значит больше мотивации делать бесплатный контент для вас.
Записи стримов также переезжают, они выходить с задержкой в одну неделю. Нам нужно много времени на вырезание скучных моментов, зато записи не будут выходить посередине недели, а также в выходные. Анонсы будут выходить за одну неделю до стрима, и теперь сам день стрима может быть любым (не только выходные).
Спасибо за вашу поддержку, самое главное для нас - продолжать набирать аудиторию и улучшаться. Оставляйте фидбек, делитесь записями стримов с друзьями и коллегами, а мы обещаем и дальше доносить вести о Kotlin вам в Telegram.
Please open Telegram to view this post
VIEW IN TELEGRAM
150❤39🔥15 15 1
Всем привет! Наконец выходит видео c записью стрима о компиляторных плагиных.
Компиляторные плагины уже давно стали неотъемлемой экосистемы Kotlin. Они используются как для UI (Jetpack Copmose), так и для бекенда (Spring Boot / Kotlinx Serialization), и даже для тестирования (Power-Assert) – всё это использует компиляторные плагины. Но что такое компиляторный плагин и на что он способен? Давайте напишем свой и узнаем!
Уже скоро будет следующий стрим, следите за анонсами.
YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
🔴 Arrow.kt – функциональный Kotlin
На этом стриме разберем библиотеку Arrow, напишем проект и покажем удобство и выразительность функционального подхода на Kotlin.
• Rich Errors на уровне библиотеки и Union-типы
• Optics: что это и для чего нужны
• Чем Arrow полезен в продакшне и какие реальные кейсы его применения
Все это обсудим с приглашенным гостем - Дмитрием itzephir Дворянниковым. Присоединяйтесь в понедельник 8 числа в 18:30 МСК и задавайте вопросы!
На этом стриме разберем библиотеку Arrow, напишем проект и покажем удобство и выразительность функционального подхода на Kotlin.
• Rich Errors на уровне библиотеки и Union-типы
• Optics: что это и для чего нужны
• Чем Arrow полезен в продакшне и какие реальные кейсы его применения
Все это обсудим с приглашенным гостем - Дмитрием itzephir Дворянниковым. Присоединяйтесь в понедельник 8 числа в 18:30 МСК и задавайте вопросы!
👍17 9❤6
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤21 10🔥5 5
Kotlin Meta
🔴 Arrow.kt – функциональный Kotlin На этом стриме разберем библиотеку Arrow, напишем проект и покажем удобство и выразительность функционального подхода на Kotlin. • Rich Errors на уровне библиотеки и Union-типы • Optics: что это и для чего нужны • Чем Arrow…
🔴 Мы в прямом эфире!
Сегодня будем разбирать библиотеку Arrow.kt с приглашённым гостем — Дмитрием itzephir Дворянниковым. Присоединяйтесь на YouTube, Telegram или Twitch и задавайте вопросы.
Telegram | YouTube | Twitch
Сегодня будем разбирать библиотеку Arrow.kt с приглашённым гостем — Дмитрием itzephir Дворянниковым. Присоединяйтесь на YouTube, Telegram или Twitch и задавайте вопросы.
Telegram | YouTube | Twitch
Kotlin Meta
🔴 Arrow.kt – функциональный Kotlin На этом стриме разберем библиотеку Arrow, напишем проект и покажем удобство и выразительность функционального подхода на Kotlin. • Rich Errors на уровне библиотеки и Union-типы • Optics: что это и для чего нужны • Чем Arrow…
either { raise(KotlinMeta.Feedback()) }
Anonymous Poll
10%
Стрим интересный, удалось посмотреть
0%
Тема стрима интересна, не удалось раскрыть
63%
Тема стрима интересна, буду ждать запись
13%
Тема стрима мне не интересна
15%
Я и сам своего рода стример
Недавно в репозиторий Kotlin были запушены мои коммиты. Это исправление небольшого, но довольно бесячего меня бага при работе с Kotlin/JS в оффлайн-режиме. Нашёл проблему, залез в сорцы Kotlin, поправил её.
Но... чтобы законтрибутить в Kotlin вам не надо писать тесты! Не надо даже писать ни строчки кода. Достаточно приложить немного усилий и в следующий раз, когда столкнётесь с какой-то проблемой, помимо того, чтобы писать об этом в чатике, обязательно создавайте issue и рассказывайте о проблемах.
Вы также можете использовать ранние версии (бета, альфа, RC) Kotlin и библиотек экосистемы, чтобы помогать делать экосистему лучше. Или участвовать в различных обсуждениях, которые регулярно устраивает JetBrains.
Kotlin Issues
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤13 6🔥2👍1🌚1
На этом стриме мы разобрали библиотеку Arrow, написали проект и обсудили удобство и выразительность функционального подхода на Kotlin.
Заходите, смотрите и пишите комментарии, если хотите что-то добавить или с чем-то не согласны. Скоро будет анонс нового стрима, так что следите за анонсами и пишите фидбек!
YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7 5💘2🔥1👾1
🔴 Kotlin Scripting: используем Kotlin как замену Bash
Присоединяйтесь на стрим в воскресенье. Тема - Kotlin Scripting. Мы уже ранее немного затрагивали эту тему на стриме про плагины и AIDL, а на этом стриме разберемся с скриптами на конкретном примере.
Узнаем, как под капотом работает Gradle Kotlin DSL и как создать такой же DSL самому. Как подключать зависимости и писать код без билд-системы, и какое у этого всего будущее.
📆 28 сентября (вс) ⏳ 17:00
Telegram | YouTube | Twitch
Присоединяйтесь на стрим в воскресенье. Тема - Kotlin Scripting. Мы уже ранее немного затрагивали эту тему на стриме про плагины и AIDL, а на этом стриме разберемся с скриптами на конкретном примере.
Узнаем, как под капотом работает Gradle Kotlin DSL и как создать такой же DSL самому. Как подключать зависимости и писать код без билд-системы, и какое у этого всего будущее.
Telegram | YouTube | Twitch
Please open Telegram to view this post
VIEW IN TELEGRAM
Зачем нужны инлайн-функции?
Anonymous Poll
36%
Чтобы увеличить скорость кода
29%
Для возможности нелокального возврата из передаваемой лямбды
7%
Для suspend context propagation
33%
Для отмены стирания дженериков
9%
Чтобы увеличить размер байт-кода
8%
Для запрета возможности сохранить передаваемую лямбду
56%
Я инлайн-функция
inline функции не для оптимизаций
Главным заблуждением является то, что ключевое слово inline следует применять к функциям тогда, когда необходимо оптимизировать скорость кода. Но тогда встаёт вопрос: а почему не использовать это ключевое слово везде? Или почему разработчики языка не сделали инлайнинг всех функций по умолчанию?
На самом деле JVM именно этим и занимается в runtime для оптимизаций. Однако помимо самого инлайнинга есть ещё дополнительные фичи, ради которых можно явно воспользоваться модификатором
Главным заблуждением является то, что ключевое слово inline следует применять к функциям тогда, когда необходимо оптимизировать скорость кода. Но тогда встаёт вопрос: а почему не использовать это ключевое слово везде? Или почему разработчики языка не сделали инлайнинг всех функций по умолчанию?
На самом деле JVM именно этим и занимается в runtime для оптимизаций. Однако помимо самого инлайнинга есть ещё дополнительные фичи, ради которых можно явно воспользоваться модификатором
inline.❤6😁1