Мы сейчас переводим нашу поисковую платформу из sbt в bazel. В процессе натолкнулись, что такой код перестаёт компилироваться в bazel:
Ошибка в bazel-проекте:
При этом, в sbt-проекте код компилируется.
Понятно, что в sbt-проекте компилятор подставляет
А в bazel-проекте, напротив, используется
Очевидный фикс — убрать импорт
Но добавлять это не хочется, выглядит костыльно. И непонятно, что это вообще за ерунда, почему по-разному компилится.
Помогли разобраться release notes версии 2.13.13 компилятора:
По доке становится понятно, что теперь
Минимальный reproduce лежит в этом gist. Убедиться в изменении поведения можно, как на скриншоте в комментарии к посту.
В итоге мы включили только опцию
Теперь и вы знаете, как решить эту и подобные проблемы при обновлении Scala на 2.13.13+ в проекте, если у вас включен
case class ValueIdx(idx: Int) extends AnyVal
object ValueIdx {
implicit def asInt(v: ValueIdx): Int = v.idx
}
val oops = ValueIdx(1) + 2
Ошибка в bazel-проекте:
type mismatch;
found : Int(2)
required: String
val oops = ValueIdx(1) + 2
^
При этом, в sbt-проекте код компилируется.
Понятно, что в sbt-проекте компилятор подставляет
asInt
:
asInt(ValueIdx(1)) + 2 // 3
А в bazel-проекте, напротив, используется
any2stringadd
, и компиляция падает:
// String + Int => ошибка
any2stringadd(ValueIdx(1)) + 2
Очевидный фикс — убрать импорт
any2stringadd
явно:
import scala.Predef.{any2stringadd as _, _}
Но добавлять это не хочется, выглядит костыльно. И непонятно, что это вообще за ерунда, почему по-разному компилится.
Помогли разобраться release notes версии 2.13.13 компилятора:
When upgrading to 2.13.13, existing users of-Xsource:3
should explicitly consider switching to-Xsource:3-cross
. Some behaviors of-Xsource:3
have changed; see new doc page for details
По доке становится понятно, что теперь
any2stringadd
не резолвится, только если включена опция -Xsource:3-cross
. Её нам включать было сложновато — сломалась компиляция многих классов, и quickfix под это отсутствует.Минимальный reproduce лежит в этом gist. Убедиться в изменении поведения можно, как на скриншоте в комментарии к посту.
В итоге мы включили только опцию
-Xsource-features:any2stringadd
из доки, что потребовало поправить всего 40 строк кода в монорепе на 4 миллиона строк.Теперь и вы знаете, как решить эту и подобные проблемы при обновлении Scala на 2.13.13+ в проекте, если у вас включен
-Xsource:3
😉👍17❤6👏6🤔1
Мы организуем митап по Scala в Казани, где выступят классные спикеры с тремя докладами:
Ну и, конечно, не обойдёмся без афтепати 😉
Посмотреть программу и зарегистрироваться можно здесь.
А для тех, кто не сможет прийти, мы опубликуем видеозапись с митапа в наших соцсетях.
До встречи на Scala Meetup 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥9❤6👏1
Вчера в Казани мы провели Scala-митап — было интересно, уютно и весело! Спасибо всем, кто пришёл, задавал вопросы и делился опытом
Для тех, кто не смог присоединиться, мы скоро выложим записи докладов. Stay tuned 👀
А пока мы ждём профессиональные снимки, делимся нашим мини-фотоотчётом со вчерашнего вечера.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤6👍6❤🔥1😍1
Начинаем выкладывать записи докладов со Scala-митапа — смотрите, если пропустили или хотите освежить их в памяти, и делитесь с теми, кому может быть полезно 👀
Первый доклад — Павла Аргентова:
Что мы рассказываем про FP программистам на других языках
Павел поделился размышлениями о том, как рассказывать про функциональное программирование — с примерами и байками.
В выступлении есть ответы на вопросы:
📍 Какие проблемы есть у программ и их программистов?
📍 Что в голове у программиста, как он размышляет?
📍 Как ФП влияет на программистов?
📱 YouTube
📱 VK видео
Первый доклад — Павла Аргентова:
Что мы рассказываем про FP программистам на других языках
Павел поделился размышлениями о том, как рассказывать про функциональное программирование — с примерами и байками.
В выступлении есть ответы на вопросы:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤5👍2👏1
Зачем нужно использовать ZIO Query?
Алексей Литковец и Всеволод Никитин повышают уровень дискуссии в Восточной Европе и обсуждают, для чего стоит использовать ZIO Query и его аналоги.
Особое внимание — на пиар самой библиотеки. ZIO Query часто подают как магическое решение всех проблем с перформансом, но ребята внимательно разобрали эти заявления и показали, где есть перегибы и натяжки.
Смотрите выступление, чтобы узнать о плюсах и минусах библиотек Fetch, ZIO Query и Stich(и о том, какую машину Всеволод купил на Авто.ру).
📱 YouTube
📱 VK видео
Алексей Литковец и Всеволод Никитин повышают уровень дискуссии в Восточной Европе и обсуждают, для чего стоит использовать ZIO Query и его аналоги.
Особое внимание — на пиар самой библиотеки. ZIO Query часто подают как магическое решение всех проблем с перформансом, но ребята внимательно разобрали эти заявления и показали, где есть перегибы и натяжки.
Смотрите выступление, чтобы узнать о плюсах и минусах библиотек Fetch, ZIO Query и Stich
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥5👍4
Как в Авто.ру внедряли GraphQL и что из этого вышло
Кирилл Ершов лаконично и с примерами объясняет, что вообще такое GraphQL, и рассказывает, зачем команда бэкенда Авто.ру решила начать переход на него.
В докладе — архитектура «до» и «после» (точнее, «в процессе»), а также ответы на вопросы:
📍 Почему решили переезжать на GraphQL?
📍 Как это работает под капотом?
📍 Какой прогресс есть на сегодняшний день?
📍 Что оказалось сложным?
📍 И стало ли после этого действительно удобнее работать?
📱 YouTube
📱 VK видео
Кирилл Ершов лаконично и с примерами объясняет, что вообще такое GraphQL, и рассказывает, зачем команда бэкенда Авто.ру решила начать переход на него.
В докладе — архитектура «до» и «после» (точнее, «в процессе»), а также ответы на вопросы:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤3👏2😁1
Forwarded from Evgeny Veretennikov
🚀 Объявляем Call for papers на крупнейшую конференцию по Scala и ФП в России.
F[Scala] 2025 пройдет в ноябре в Москве.
📝 Темы: Scala, ФП, бэкенд-разработка, System Design.
🎤 Чтобы выступить, подавайте заявки через форму.
Дедлайн подачи: 31 июля.
Вернемся с обратной связью к каждому в течение двух недель после подачи.
С подготовкой выступления поможем. Даже если не уверены, о чём рассказать.
По всем вопросам обращайтесь ко мне.
👥 Слушателям: страница для регистрации появится позже, сообщим об этом дополнительно.
🎥 Записи докладов прошлых лет:
— F[Scala] 2023: vk, youtube
— F[Scala] 2024: vk, youtube
🤝 Открыты к партнёрству
Хотите повысить узнаваемость вашей компании среди скалистов?
Пишите мне, и я расскажу о возможностях партнёрства.
F[Scala] 2025 пройдет в ноябре в Москве.
📝 Темы: Scala, ФП, бэкенд-разработка, System Design.
🎤 Чтобы выступить, подавайте заявки через форму.
Дедлайн подачи: 31 июля.
Вернемся с обратной связью к каждому в течение двух недель после подачи.
С подготовкой выступления поможем. Даже если не уверены, о чём рассказать.
По всем вопросам обращайтесь ко мне.
👥 Слушателям: страница для регистрации появится позже, сообщим об этом дополнительно.
🎥 Записи докладов прошлых лет:
— F[Scala] 2023: vk, youtube
— F[Scala] 2024: vk, youtube
🤝 Открыты к партнёрству
Хотите повысить узнаваемость вашей компании среди скалистов?
Пишите мне, и я расскажу о возможностях партнёрства.
🔥14❤4👏3
⚡️Последние дни call for papers на F[Scala] 2025
Напоминаем, что до 31 июля вы можете подать заявку, чтобы выступить на F[Scala] 2025.
О чём можно рассказать:
📍 Scala
📍 функциональное программирование
📍 бэкенд-разработка
📍 System Design
Если есть идея, но сомневаетесь — мы поможем с подготовкой и докрутим тему.
F[Scala] — крупнейшая конфа по Scala и ФП в России, которая пройдёт в ноябре в Москве. Это крутая возможность поделиться личным опытом с сообществом скалистов из разных компаний.
✏️ Заполняйте форму для спикеров, а по вопросам партнёрства пишите @evis_dev
Напоминаем, что до 31 июля вы можете подать заявку, чтобы выступить на F[Scala] 2025.
О чём можно рассказать:
Если есть идея, но сомневаетесь — мы поможем с подготовкой и докрутим тему.
F[Scala] — крупнейшая конфа по Scala и ФП в России, которая пройдёт в ноябре в Москве. Это крутая возможность поделиться личным опытом с сообществом скалистов из разных компаний.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤3😢1
Flatbuffers — бинарный формат сериализации, похожий на Protobuf. Отличие в том, что данные можно сразу переложить в память и работать с ними напрямую.
Приходите послушать, как проходил переезд, после которого:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤6👍2
Как я пришёл в команду девтулзов — и как туда попасть сейчас
Один разработчик спросил:
Хочу поделиться своим опытом.
🚀 С чего всё началось
8 лет назад я пришёл в Вертикали, в продуктовую команду. Делать продукт было интересно.
Но со временем я понял: меня тянет к инструментам, которыми пользуются сами разработчики.
🏃♂️ Первый шаг к тулам
При реализации задач продукта я пользовался внутренним сервисом биллинга. Он был неудобным. В компании как раз обсуждали его переделку, и я активно в этом участвовал.
Потом в команде биллинга открылась вакансия. Руководитель, который вёл и мою команду, и их, предложил мне перейти. Я согласился.
Мы серьёзно улучшили биллинг за два года — он стал гораздо удобнее для разработчиков. Для меня это был настоящий кайф.
⚙️ Монорепа и Bazel
В биллинге я работал в нашей монорепе на Bazel — и буквально фанател от неё. В компании появилось сообщество таких же увлечённых ребят, я активно туда включился.
Когда мне предложили перейти в команду монорепы — я не раздумывал.
Теперь я улучшаю инструменты для всех наших Scala-разработчиков — и это работа, которая меня очень радует.
💡 Что из этого можно вынести
Вот как можно зарабатывать на разработке инструментов:
1. Устроиться в большую компанию.
2. Замечать неудобства в инструментах, которые используешь.
3. Давать много фидбека тем, кто их развивает.
4. Не упустить момент, когда зовут присоединиться к этим командам.
Чтобы получать кайф и деньги, не обязательно писать огромные публичные фреймворки.
Иногда достаточно улучшить внутренний тул, которым пользуются десятки или сотни коллег.
🔍 Альтернативный путь
Есть и более прямой путь — если точно знаешь, чего хочешь. Можно сразу искать вакансии в командах, которые делают тулзы для разработчиков. Их меньше, но они есть.
Кстати, такая вакансия прямо сейчас есть в моей команде. Если интересно, пишите мне (@evis_dev).
❤️ А ещё есть open source
Это отличный способ поработать над инструментами.
Приносит радость, ценный опыт — и иногда открывает неожиданные двери.
Один разработчик спросил:
Вместо использования готовых фреймворков, хочу работать в команде, которая их делает. Но как зарабатывать на этом? Кажется, это невозможно.
Хочу поделиться своим опытом.
🚀 С чего всё началось
8 лет назад я пришёл в Вертикали, в продуктовую команду. Делать продукт было интересно.
Но со временем я понял: меня тянет к инструментам, которыми пользуются сами разработчики.
🏃♂️ Первый шаг к тулам
При реализации задач продукта я пользовался внутренним сервисом биллинга. Он был неудобным. В компании как раз обсуждали его переделку, и я активно в этом участвовал.
Потом в команде биллинга открылась вакансия. Руководитель, который вёл и мою команду, и их, предложил мне перейти. Я согласился.
Мы серьёзно улучшили биллинг за два года — он стал гораздо удобнее для разработчиков. Для меня это был настоящий кайф.
⚙️ Монорепа и Bazel
В биллинге я работал в нашей монорепе на Bazel — и буквально фанател от неё. В компании появилось сообщество таких же увлечённых ребят, я активно туда включился.
Когда мне предложили перейти в команду монорепы — я не раздумывал.
Теперь я улучшаю инструменты для всех наших Scala-разработчиков — и это работа, которая меня очень радует.
💡 Что из этого можно вынести
Вот как можно зарабатывать на разработке инструментов:
1. Устроиться в большую компанию.
2. Замечать неудобства в инструментах, которые используешь.
3. Давать много фидбека тем, кто их развивает.
4. Не упустить момент, когда зовут присоединиться к этим командам.
Чтобы получать кайф и деньги, не обязательно писать огромные публичные фреймворки.
Иногда достаточно улучшить внутренний тул, которым пользуются десятки или сотни коллег.
🔍 Альтернативный путь
Есть и более прямой путь — если точно знаешь, чего хочешь. Можно сразу искать вакансии в командах, которые делают тулзы для разработчиков. Их меньше, но они есть.
Кстати, такая вакансия прямо сейчас есть в моей команде. Если интересно, пишите мне (@evis_dev).
❤️ А ещё есть open source
Это отличный способ поработать над инструментами.
Приносит радость, ценный опыт — и иногда открывает неожиданные двери.
👍9🔥8❤4👏2