- 56
- 91 759
SpectrumData dev
Russia
Приєднався 19 лют 2021
Spectrumdata dev - канал, созданный компанией Spectrumdata.
Мы разработали маркет-плейс данных для бизнеса, объединяем несколько федеральных ИТ-сервисов, и готовы делиться своим опытом, знаниями, ошибками и боевыми историями с техническими специалистами, которые интересуются:
разработкой в сфере обработки и анализа данных;
возможностями Kotlin;
особенностями работы с базами данных в высоконагруженных и отказоустойчивых системах
Наши ребята из команды разработки находятся в уникальной ситуации, они работают со зрелыми сервисами, и при этом сохраняют динамику стартапа, мы активно взаимодействуем со внешней средой (агрегируем и валидируем данные из разных открытых источников), и нам приходится постоянно держать руку на пульсе всех изменений! Поэтому наши продукты “живые”, постоянно находятся в стадии развития и совершенствования, разработке скучать не приходится. У нас много полезных кейсов для профессионального сообщества, которыми мы готовы делиться :) Подписывайтесь!
Мы разработали маркет-плейс данных для бизнеса, объединяем несколько федеральных ИТ-сервисов, и готовы делиться своим опытом, знаниями, ошибками и боевыми историями с техническими специалистами, которые интересуются:
разработкой в сфере обработки и анализа данных;
возможностями Kotlin;
особенностями работы с базами данных в высоконагруженных и отказоустойчивых системах
Наши ребята из команды разработки находятся в уникальной ситуации, они работают со зрелыми сервисами, и при этом сохраняют динамику стартапа, мы активно взаимодействуем со внешней средой (агрегируем и валидируем данные из разных открытых источников), и нам приходится постоянно держать руку на пульсе всех изменений! Поэтому наши продукты “живые”, постоянно находятся в стадии развития и совершенствования, разработке скучать не приходится. У нас много полезных кейсов для профессионального сообщества, которыми мы готовы делиться :) Подписывайтесь!
Go для не гоферов - маркерные интерфейсы.
В языках с явными интерфейсами (Java/Kotlin/C#) нет утиной типизации, зато легко делать разделение сущностей по типу интерфейса.
В Golang - наоборот - в нем все построено на утиной типизации, а разделить интерфейсы с одной сигнатурой - невозможно... Или возможно?
В данном видео опишем как в Golang обеспечить (при большой необходимости) строгую типизацию на основе интерфейсов с аналогичными наборами методов.
Материалы видео:
kotlin: pl.kotl.in/K7hFuBmjn
golang: go.dev/play/p/Mi-8adAqzto
В 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 / Пример полезного делегированного свойства
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
Не понятно ((
Лучшее объяснение inline функций, что я видел
3:39 меняет когда НЕ совпали
Слишком круто! Спасибо!!
жаль что забросили канал( шикарный материал
если видео начинается со слов "уважаемые коллеги", значит видео будет потрясающим
"касяки"??? эх, ничто так не портит хороший доклад, как грамматические ошибки на слайдах...
в смысле "нехорошая ошибка в работе по недогляду" используюется именно слово "кАсяк", не "косяк", так выразительнее
Я пока ничего не понял, но буду это использовать 😂
Отлично
Отличное объяснение neo4j, за bowie отдельное увожение)
реально профи
Будет ли продолжение?
лучшие шортсы по программированию, которые я видел!
Я попробовал. Классно работает.
В чём прикол так и не понял. Можно всё хранить в реляцилнной со связью многие ко многим и выбирать всё просто
Привет. В видео сказано что, для того чтобы найти связь через несколько нод - то придется писать рекурсивные join запросы. А это будет очень тяжёлым запросом. Как я понял, графовая бд уже хранит готовые связи и позволяет селектить по ним гораздо быстрее чем реляционных бд.
Только открыл видео, очень надеюсь найти то что мне нужно) Заранее спасибо
Что за дела, уже год нету новых видосов. У вас был уникальный материал, который невозможно было подцепить в статьях и других видеоуроках. Возвращайтесь!!!
Удивительно. Private-метод, созданный, чтобы не быть видимым извне, действительно, не виден)
X, y, t, t1… ето точно программист? )) знания глубочайшие, но для преподавания хорошо бы еще уметь обьяснять… (
капец, так хорошо рассказал я даже не заметил как видос закончился🙃😁
Хорошие объяснения, спасибо.
Блин это очень круто, затащил к нам в проект! Спасибо за труды.
Вадим, спасибо большое за отличные практические задания с готовыми тестами!!
Спасибо за Мудрость!
Когда я буду так же хорошо разбираться тоже наверно стану лысым
Примеры с тремя тенями: предположу что забыли упомянуть что данная контрукция только запутывает и в таком ключе использование лучше такое избегать…?
Ух… Мало понятно но жутко круто!
наоборот система try-catch позволяет для любых граничных случаев однозначно выявить ошибку в отличие от гошного возврата option(result)+option(error), при котором либо появляется неизбежный бойлерплейт либо необработанная ошибка. Идеальный подход на данный момент в котлине с его Result как возвращаемое значение. Также красиво смотрится Try or Either из вавра, но это к сожалению внешняя библиотека со своими спорными решениями
Восхищен!
хорошие примеры, спасибо
класс, смотрится на одном дыхании, как триллер про красную шапку))
Самый полный курс по корутинам на ютюбе
Братан хорош давай давай вперед контент в кайф можно еще? вообще красавчик
всегда говорил, что котлин придумали прогеры, которые оч хотели говнокодит на джаве, но им не давали)) почитайте про паттерн стратегия, в адекватном коде никакие свитчкейсы, when и прочие костыли не нужны, все решается баналной мапой и полиморфизмом
А можна не пердящий микрофон плес... Бабки же есть, мужик😢
А где это в работе можно использовать?) Всё работает также и на варианте без SELF
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 ;)
Нормальные видосы, так держать, Фантомас)))
DeepRecursiveFunction должна выносить аргументы со стека на heap, следовательно при больших N мы будем получать Out of memory вместо stack overflow
Очень круто. Всё понятно. Всё доступно рассказано. Спасибо большое
Хорошее видео, комментаторы лучше бы на заводах сидели
качественный контент. полезная информация, спасибо
спасибо за видео!
Очень хорошо подан материал ❤
Всё норм, тока люстра в глаза)))
Очень хороший урок. Лайк однозначно! Побольше бы таких материалов обучающих
Спасибо за видео, хотелось бы узнать, что за плагин, что показывает буфера и гит в nerd-tree? Или что за сборка. Спасибо!
Увидел в ответе ниже, спасибо.
Искренне пытался досмотреть, но не смог.
На одном дыхании, просто не оторваться. Спасибо за труды!!!!
мьютексы и вэйт группы обычно объявляют как var name type