SpectrumData dev
SpectrumData dev
  • 56
  • 91 759
Go для не гоферов - маркерные интерфейсы.
В языках с явными интерфейсами (Java/Kotlin/C#) нет утиной типизации, зато легко делать разделение сущностей по типу интерфейса.
В Golang - наоборот - в нем все построено на утиной типизации, а разделить интерфейсы с одной сигнатурой - невозможно... Или возможно?
В данном видео опишем как в Golang обеспечить (при большой необходимости) строгую типизацию на основе интерфейсов с аналогичными наборами методов.
Материалы видео:
kotlin: pl.kotl.in/K7hFuBmjn
golang: go.dev/play/p/Mi-8adAqzto
Переглядів: 466

Відео

Neo4j: графовая база данных. Особенности, применение, основы языка Cypher.
Переглядів 8 тис.Рік тому
Что такое графовые базы данных и почему вам стоит попробовать Neo4j. В этом видео мы научимся языку Cypher, используя Neo4j Bloom и попробуем применить эти знания для создания своего проекта. О вакансиях в нашей компании вы можете узнать, написав в телеграм: Власова Илона: @hrilona Катаева Нина: @Nina_Kataeva почта: vlasova@avtocod.ru #neo4j #bloom #cypher #графы
Обработка ошибок в #Golang, до и после v1.20
Переглядів 6 тис.Рік тому
Кратко рассказываю об основных способах обработки ошибок в Golang. Так же расскажу о новых возможностых для работы с ошибками, которые появились в версии 1.20. Доклад Филиппа Кулина: ua-cam.com/video/ql-uncsqoAU/v-deo.html
С чего начать, если хочется программировать? Самообразование в сфере IT.
Переглядів 427Рік тому
Не было на канале жанра "пофилософствуем", но почему бы нет. Порассуждаем на тему самообучения, свитчинга, с чего начать, какие развить личные качества и установки если хочется программировать. О вакансиях в нашей компании вы можете узнать, написав в телеграм: Власова Илона: @hrilona Катаева Нина: @Nina_Kataeva почта: vlasova@avtocod.ru #job #switch #developers
Go. Не забывайте что nil для интерфейса не всегда nil
Переглядів 543Рік тому
Для новичков в Go часто становится непонятным сюрпризом и выглядит как баг, то что при передаче по интерфейсу - откровенные nil не могут быть проверены на ` nil` потому что интерфейс реализован для указателя #shorts #golang #go #null
Kotlin. Обработка ошибок №2. Паники и ошибки.
Переглядів 955Рік тому
Так уж повелось, что среднестатистический программист из мира Java и связанного с ним мира C#/Kotlin не очень различают ошибки и паники и связанные с этим стратегии обработки, что порой очень сильно портит приложения. Кому лень смотреть можно прыгнуть на тайм код 32:20 Продолжаем рассказ об обработке ошибок, основной язык Kotlin. 01:51 общая постановка проблемы 03:57 начинаем смотреть пример, в...
Kotlin взрыв мозга №7. Пишем go-подобный defer на Kotlin
Переглядів 6312 роки тому
Смотрите также: - Взрыв мозга #1 / Интерфейс - синглетон с конструктором ua-cam.com/video/LaoDgNGUv0E/v-deo.html - Взрыв мозга #2 / Самодельный тернар ua-cam.com/video/4HNv-jsBymI/v-deo.html - Взрыв мозга #3 / DSL в стиле SQL (DDL) ua-cam.com/video/uB7Iu9VvYk4/v-deo.html - Взрыв мозга #4 / Делегированные свойства ua-cam.com/video/lD38aQp0L2U/v-deo.html - Взрыв мозга #5 / Sequence своими руками ...
Generics в Kotlin. Часть третья.
Переглядів 4542 роки тому
Видео про Дженерики в Kotlin. Часть третья. 00:00 - Интро 00:22 - Star-проекция 03:12 - Выведение типов 05:55 - Reifed Type Parameters 08:12 - Использование _ 13:13 - Класс-дженерик сам себя 14:35 - Заключение Часть 1 - ua-cam.com/video/q0ZtPFp3_F8/v-deo.html Часть 2 - ua-cam.com/video/4e3ISEKwNAE/v-deo.html Контакты для связи по вакансиям Telegram: @hrilona Илона Власова #kotlin #Spectrumdatad...
Generics в Kotlin. Часть вторая.
Переглядів 6132 роки тому
Видео про Дженерики в Kotlin. Часть вторая. 00:00 - Интро 00:30 - Интерфейсы с дженериком 03:20 - Ограничения по верхней границе иерархии 07:47 - ValidatorService из реального проекта 14:04 - Out-проекция 21:14 - In-проекция 25:37 - Заключение Контакты для связи по вакансиям Telegram: @hrilona Илона Власова #kotlin #Spectrumdatadev #generics
Generics в Kotlin. Часть первая.
Переглядів 1,5 тис.2 роки тому
Видео про Дженерики в Kotlin. Часть первая. Контакты для связи по вакансиям Telegram: @hrilona Илона Власова 00:00 Интро 01:19 Функция с дженериком 04:04 Дженерик без Т 06:49 Использование Т в параметризации 08:26 Стирание типов в runtime 13:57 Класс с дженериком 15:07 Null и дженерики 19:09 Заключение #kotlin #Spectrumdatadev #generics
Kotlin. Обработка ошибок №1. Все о finally. Разбор заблуждений и анатомии.
Переглядів 7962 роки тому
Видео полностью освещает поведение и проблемы конструкции finally, а также ее внутреннее устройство. Видео - предисловие к данному: ua-cam.com/video/CXb2IAfwMY4/v-deo.html Опросник на основе которого сделана часть контента: forms.gle/Yp2Qz9KBBV9pwm1B8 Репозиторий с исходниками, которые использовались в видео github.com/spectrum-data/errors_kotlin_finally Так как конструкция в постоянном использ...
Kotlin. Обработка ошибок. Выпуск 0. Анонс цикла и опросника
Переглядів 4472 роки тому
Kotlin. Обработка ошибок. Выпуск 0. Анонс цикла и опросника
Kotlin : Must Have / Корутины (Coroutines). Часть 6. Select, исключения, отладка
Переглядів 9312 роки тому
Kotlin : Must Have / Корутины (Coroutines). Часть 6. Select, исключения, отладка
Kotlin : Must Have / Корутины (Coroutines). Часть 5. Асинхронные потоки
Переглядів 1,1 тис.2 роки тому
Kotlin : Must Have / Корутины (Coroutines). Часть 5. Асинхронные потоки
Kotlin. Exhaustive when и полное покрытие кода тестами
Переглядів 5212 роки тому
Kotlin. Exhaustive when и полное покрытие кода тестами
Kotlin : Must Have / Корутины (Coroutines). Часть 4. Каналы
Переглядів 1,2 тис.2 роки тому
Kotlin : Must Have / Корутины (Coroutines). Часть 4. Каналы
Kotlin : Must Have / Корутины (Coroutines). Часть 3. Синхронизация доступа к памяти
Переглядів 1,9 тис.2 роки тому
Kotlin : Must Have / Корутины (Coroutines). Часть 3. Синхронизация доступа к памяти
Kotlin : Must Have / Корутины (Coroutines). Часть 2. Структурированная конкурентность
Переглядів 3,9 тис.2 роки тому
Kotlin : Must Have / Корутины (Coroutines). Часть 2. Структурированная конкурентность
Kotlin : Must Have / Корутины (Coroutines). Часть 1. Общие принципы
Переглядів 6 тис.2 роки тому
Kotlin : Must Have / Корутины (Coroutines). Часть 1. Общие принципы
Kotlin : Must Have / Встраиваемые функции (inline-functions)
Переглядів 4,9 тис.2 роки тому
Kotlin : Must Have / Встраиваемые функции (inline-functions)
Функции области видимости (scope-фукнции) в Kotlin // Must Have. Примеры и применение scope-функций.
Переглядів 3,7 тис.2 роки тому
Функции области видимости (scope-фукнции) в Kotlin // Must Have. Примеры и применение scope-функций.
Архитектура №2: Удачное решение на вырост / Опыт плод ошибок трудных #2
Переглядів 4673 роки тому
Архитектура №2: Удачное решение на вырост / Опыт плод ошибок трудных #2
Архитектура №1: Неудача с Elassandra / Опыт плод ошибок трудных #1
Переглядів 4003 роки тому
Архитектура №1: Неудача с Elassandra / Опыт плод ошибок трудных #1
Kotlin / Пример полезного делегированного свойства
Переглядів 8193 роки тому
Kotlin / Пример полезного делегированного свойства
PostgrSQL, тип RECORD
Переглядів 4003 роки тому
PostgrSQL, тип RECORD
Kotlin: взрыв мозга #6 / Генерик посложнее
Переглядів 2,7 тис.3 роки тому
Kotlin: взрыв мозга #6 / Генерик посложнее
Kotlin: взрыв мозга #5 / Sequence своими руками
Переглядів 9733 роки тому
Kotlin: взрыв мозга #5 / Sequence своими руками
Kotlin / Почему так важно изучать STDLIB
Переглядів 1,2 тис.3 роки тому
Kotlin / Почему так важно изучать STDLIB
Kotlin: конструкции, которые не следует использовать
Переглядів 7683 роки тому
Kotlin: конструкции, которые не следует использовать
Gradle уроки: пишем плагин для Gradle на Kotlin
Переглядів 1,9 тис.3 роки тому
Gradle уроки: пишем плагин для Gradle на Kotlin

КОМЕНТАРІ

  • @trashfor9407
    @trashfor9407 7 днів тому

    Не понятно ((

  • @silap151
    @silap151 12 днів тому

    Лучшее объяснение inline функций, что я видел

  • @Chekist2008
    @Chekist2008 21 день тому

    3:39 меняет когда НЕ совпали

  • @Chekist2008
    @Chekist2008 21 день тому

    Слишком круто! Спасибо!!

  • @AlexNova-rn4ve
    @AlexNova-rn4ve Місяць тому

    жаль что забросили канал( шикарный материал

  • @hhhannahmmmontana
    @hhhannahmmmontana 2 місяці тому

    если видео начинается со слов "уважаемые коллеги", значит видео будет потрясающим

  • @AK-ji3qv
    @AK-ji3qv 3 місяці тому

    "касяки"??? эх, ничто так не портит хороший доклад, как грамматические ошибки на слайдах...

    • @spectrumdatadev9193
      @spectrumdatadev9193 2 місяці тому

      в смысле "нехорошая ошибка в работе по недогляду" используюется именно слово "кАсяк", не "косяк", так выразительнее

  • @Vincent_Monroe
    @Vincent_Monroe 3 місяці тому

    Я пока ничего не понял, но буду это использовать 😂

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil 3 місяці тому

    Отлично

  • @ИванВинокуров-е3т
    @ИванВинокуров-е3т 3 місяці тому

    Отличное объяснение neo4j, за bowie отдельное увожение)

  • @user-my6yf1st8z
    @user-my6yf1st8z 4 місяці тому

    реально профи

  • @Adasan95
    @Adasan95 6 місяців тому

    Будет ли продолжение?

  • @deda_sher_
    @deda_sher_ 6 місяців тому

    лучшие шортсы по программированию, которые я видел!

  • @RayhanAyala
    @RayhanAyala 6 місяців тому

    Я попробовал. Классно работает.

  • @gian_tiaga
    @gian_tiaga 6 місяців тому

    В чём прикол так и не понял. Можно всё хранить в реляцилнной со связью многие ко многим и выбирать всё просто

    • @anvarius94
      @anvarius94 4 місяці тому

      Привет. В видео сказано что, для того чтобы найти связь через несколько нод - то придется писать рекурсивные join запросы. А это будет очень тяжёлым запросом. Как я понял, графовая бд уже хранит готовые связи и позволяет селектить по ним гораздо быстрее чем реляционных бд.

  • @tech_jp160
    @tech_jp160 7 місяців тому

    Только открыл видео, очень надеюсь найти то что мне нужно) Заранее спасибо

  • @kravgenko2
    @kravgenko2 7 місяців тому

    Что за дела, уже год нету новых видосов. У вас был уникальный материал, который невозможно было подцепить в статьях и других видеоуроках. Возвращайтесь!!!

  • @avmaksimov
    @avmaksimov 7 місяців тому

    Удивительно. Private-метод, созданный, чтобы не быть видимым извне, действительно, не виден)

  • @denislopatkin6996
    @denislopatkin6996 8 місяців тому

    X, y, t, t1… ето точно программист? )) знания глубочайшие, но для преподавания хорошо бы еще уметь обьяснять… (

  • @MinasyanDEv
    @MinasyanDEv 8 місяців тому

    капец, так хорошо рассказал я даже не заметил как видос закончился🙃😁

  • @neyasbit
    @neyasbit 8 місяців тому

    Хорошие объяснения, спасибо.

  • @YagoGachi
    @YagoGachi 8 місяців тому

    Блин это очень круто, затащил к нам в проект! Спасибо за труды.

  • @sytyluipes
    @sytyluipes 9 місяців тому

    Вадим, спасибо большое за отличные практические задания с готовыми тестами!!

  • @denislopatkin6996
    @denislopatkin6996 10 місяців тому

    Спасибо за Мудрость!

  • @bair1171
    @bair1171 10 місяців тому

    Когда я буду так же хорошо разбираться тоже наверно стану лысым

  • @denislopatkin6996
    @denislopatkin6996 10 місяців тому

    Примеры с тремя тенями: предположу что забыли упомянуть что данная контрукция только запутывает и в таком ключе использование лучше такое избегать…?

  • @denislopatkin6996
    @denislopatkin6996 10 місяців тому

    Ух… Мало понятно но жутко круто!

  • @TorinoSG
    @TorinoSG 10 місяців тому

    наоборот система try-catch позволяет для любых граничных случаев однозначно выявить ошибку в отличие от гошного возврата option(result)+option(error), при котором либо появляется неизбежный бойлерплейт либо необработанная ошибка. Идеальный подход на данный момент в котлине с его Result как возвращаемое значение. Также красиво смотрится Try or Either из вавра, но это к сожалению внешняя библиотека со своими спорными решениями

  • @ИсламСаликов-ъ2т
    @ИсламСаликов-ъ2т 10 місяців тому

    Восхищен!

  • @MyFoenix
    @MyFoenix 10 місяців тому

    хорошие примеры, спасибо

  • @MyFoenix
    @MyFoenix 10 місяців тому

    класс, смотрится на одном дыхании, как триллер про красную шапку))

  • @АндрейКалугин-э6ы
    @АндрейКалугин-э6ы 11 місяців тому

    Самый полный курс по корутинам на ютюбе

  • @ДанилФедоров-ш6с
    @ДанилФедоров-ш6с 11 місяців тому

    Братан хорош давай давай вперед контент в кайф можно еще? вообще красавчик

  • @AlexSmile-y2x
    @AlexSmile-y2x Рік тому

    всегда говорил, что котлин придумали прогеры, которые оч хотели говнокодит на джаве, но им не давали)) почитайте про паттерн стратегия, в адекватном коде никакие свитчкейсы, when и прочие костыли не нужны, все решается баналной мапой и полиморфизмом

  • @paddestoel7448
    @paddestoel7448 Рік тому

    А можна не пердящий микрофон плес... Бабки же есть, мужик😢

  • @inquisitor4894
    @inquisitor4894 Рік тому

    А где это в работе можно использовать?) Всё работает также и на варианте без SELF

    • @владимирсенцов-р1ю
      @владимирсенцов-р1ю 11 місяців тому

      interface IMutable<SELF : IMutable<SELF, TIMUTABLE>, TIMUTABLE : IIMutable<TIMUTABLE, SELF>> { fun toImmutable(): TIMUTABLE } interface IIMutable<SELF : IIMutable<SELF, TMUTABLE>, TMUTABLE : IMutable<TMUTABLE, SELF>> { fun toMutable(): TMUTABLE } data class A(val a: String) : IIMutable<A, B> { override fun toMutable(): B { return B(a) } } data class B(var b: String) : IMutable<B, A> { override fun toImmutable(): A { return A(b) } } fun <IN, OUT> covertToImmutable(b: IN): OUT where IN : IMutable<IN, OUT>, OUT : IIMutable<OUT, IN> { return b.toImmutable() } fun convertBtoA(b: B): A = covertToImmutable(b) I do not know how to use in production code ;)

  • @ВасяПупкин-т2б2п

    Нормальные видосы, так держать, Фантомас)))

  • @alexgorodecky1661
    @alexgorodecky1661 Рік тому

    DeepRecursiveFunction должна выносить аргументы со стека на heap, следовательно при больших N мы будем получать Out of memory вместо stack overflow

  • @АнтонБ-у7б
    @АнтонБ-у7б Рік тому

    Очень круто. Всё понятно. Всё доступно рассказано. Спасибо большое

  • @Zaker-o3c
    @Zaker-o3c Рік тому

    Хорошее видео, комментаторы лучше бы на заводах сидели

  • @umnikya7874
    @umnikya7874 Рік тому

    качественный контент. полезная информация, спасибо

  • @TurboKot1k
    @TurboKot1k Рік тому

    спасибо за видео!

  • @mikhaillazarev5378
    @mikhaillazarev5378 Рік тому

    Очень хорошо подан материал ❤

  • @romanfren7692
    @romanfren7692 Рік тому

    Всё норм, тока люстра в глаза)))

  • @noverton
    @noverton Рік тому

    Очень хороший урок. Лайк однозначно! Побольше бы таких материалов обучающих

  • @aleksandrsu998
    @aleksandrsu998 Рік тому

    Спасибо за видео, хотелось бы узнать, что за плагин, что показывает буфера и гит в nerd-tree? Или что за сборка. Спасибо!

    • @aleksandrsu998
      @aleksandrsu998 Рік тому

      Увидел в ответе ниже, спасибо.

  • @MentorOfMentors
    @MentorOfMentors Рік тому

    Искренне пытался досмотреть, но не смог.

  • @luyt2
    @luyt2 Рік тому

    На одном дыхании, просто не оторваться. Спасибо за труды!!!!

  • @chupa00
    @chupa00 Рік тому

    мьютексы и вэйт группы обычно объявляют как var name type