В этом видео поговорим про интерфейсы в Golang: что такое, для чего нужны и как ими пользоваться. Мой Twitter - / atipugin Канал в TG - t.me/someoneistyping #golang #gopherschool
Пікірлер: 155
@eximy48183 жыл бұрын
2020.12.1: На Новый Год я загадаю желание, чтобы Gopher School вернулся
@shmeleff_ural Жыл бұрын
2022 год. Смотрю ваши видео, отличное дополнение к tour of go а так же другим учебникам, что ни говори, а когда тебе разжевывают все, да еще и на русском-это прекрасно
@pubchikcplay53424 жыл бұрын
Спасибо большое! Хотелось бы увидеть работу с горутинами и каналами.
@pubchikcplay53424 жыл бұрын
и про работу с пакетами)
@sideswipeloi4 жыл бұрын
Лучшие уроки по Go, твой канал приятная находка! Спасибо
@user-ho4yl7zk6q2 жыл бұрын
Очень удачные и доходчивые примеры! Большое спасибо за Вашу работу
@dognikD4 жыл бұрын
Автор, пожалуйста, выпускайте еще больше уроков по golang, вы очень хорошо, а что более важно, ПОНЯТНО объясняете. Возвращайтесь с новыми уроками!
@GopherSchool4 жыл бұрын
Спасибо!
@pavlobezdvernyi93484 жыл бұрын
Отличные видео! Спасибо, побольше близких к реальности проектов :)
@rustam5953 жыл бұрын
Лучший канал про го. Автору респект, очень надеюсь, что будет продолжение.
@user-hq3dj6ix8g4 жыл бұрын
канал развивается, рад за тебя! не останавливайся на достигнутом.
@AronMid4 жыл бұрын
Спасибо! Наконец-то нормальное и понятное объяснение! Разобрался теперь)
@user-ls2pd2ff8t4 жыл бұрын
Как будто мысли читаете. Спасибо вам!
@georgyserga85374 жыл бұрын
Реально очень хорошее видео, понятная и удобная подача, спасибо!
@Zermond3 жыл бұрын
Отличная подача материала, жду с нетерпением выпуска новых роликов :)
@tilekasankulov50344 жыл бұрын
Спасибо большое!!! Ждём продолжения уроков
@tuqinator4 жыл бұрын
отличная подача! Я как и остальные жду новых видео ʕ༼◕ ౪ ◕✿༽ʔ
@antonnekrasov56704 жыл бұрын
Спасибо за контент. Полезное видео. Хотелось бы посмотреть на твое видео о горутинах.
@UAStriker4 жыл бұрын
По моему заказу! Спасибо огромное!
@eugenealdrin82243 жыл бұрын
искренне надеюсь что ты вернёшься. хорошо объясняешь и примеры крутые. очень мало такого материала с хорошими продакшн практиками и подачей как у тебя (да ещё и на русском). Тут очень много людей ждут твоего возвращения)
@vladimirpek4 жыл бұрын
Вы делаете полезное дело, не бросайте его :)
@GopherSchool4 жыл бұрын
Спасибо! 💪
@kent2alex4 жыл бұрын
Спасибо. очень интересно. ждем продолжения.
@last2636 Жыл бұрын
прекрасное объяснение материала) спасибо за труд
@nitroflap3 жыл бұрын
Ждем с нетерпением, возвращайся! Очень хочется побольше послушать за API & gRPC
@elvirakharunova15893 ай бұрын
Это лучшее объяснение по интерфейсам, что я видела! :) Спасибо огромное 😍😍😍
@bdud_18 күн бұрын
да соглашусь. очень лаконично и не дико заумно.
@arima9733 жыл бұрын
Можно раскрыть тему децентрализованных приложений, блокчейна и всего такого. Твоя подача продакшн материала лучшая
@serezhalotarvv9 ай бұрын
Помогли разобраться с интерфейсами, благодарю!
@Vov.a Жыл бұрын
Пример с map прям вау! Круто!
@semmamoshin57154 жыл бұрын
Очень полезно, спасибо!
@psyhonut4 жыл бұрын
Спасибо за видео. Я новичок в гошке, и было какое-то понимание про интерфейсы тут, а вы их подтвердили и укрепили. На будущее хотелось бы информацию о взаимодействии между сервисами, хотя бы по http (curl?).
@user-yj5fh7jl3n8 ай бұрын
Очень понятное объяснение. Спасибо !
@user-tu7mo7sf2v Жыл бұрын
Два вечера скитаний по интернету. А за три года ничего лучше объясняющего интерфейсы в го не появилось. Спасибо! Подписался, но как понимаю канал заброшен. Ну хоть посмотрю старые видосы)
@ideniskov2 жыл бұрын
Очень понятное объяснение, спасибо.
@EvgenyPutimtsev4 жыл бұрын
Отличные сэмплы, автору респект, в надежде что не забил в этой деятельности
@BeremPoned3 жыл бұрын
Бро, у тебя самый качественный канал по Golang на youtube. Многие ждут новых видео и готовы советовать другим. Возвращайся)
@geekdev03 жыл бұрын
Вас приятно слушать
@volodya-nrg4 жыл бұрын
Хорошо рассказал. Сегодня парился над выводом каталогов в виде дерева. Если что, запили на эту тему видос.
@davida.75862 жыл бұрын
Ну очень профессионально!!! Огромное спасибо!!!
@GopherSchool2 жыл бұрын
Спасибо!
@davida.75862 жыл бұрын
@@GopherSchool Будем ждать новых уроков!
@Georglider3 жыл бұрын
Вернись пожалуйста 😂. Прекрасное объяснение! Хотел бы увидеть создание GUI в Go
@dimayasnohurskyi28054 жыл бұрын
Было бы здорово посмотреть видео о том какие ресурсы использовал/используешь для развития в языке.
@decay99844 ай бұрын
Спасибо, очень информативно!
@eximy48183 жыл бұрын
Пожалуйста, вернись, выучил Golang только благодаря тебе! Жду тебя уже долго, счастья тебе, и надеюсь что ты вернёшься
@GopherSchool3 жыл бұрын
Спасибо! Ну после таких комментов и правда придется снимать еще :)
@eximy48183 жыл бұрын
Ну реально ведь канал классный, почему бросил?
@GopherSchool3 жыл бұрын
Сначала работа навалилась, потом что-то темы не приходили в голову. Так год и прошёл :)
@eximy48183 жыл бұрын
Темы? Ну например работа с базой данных в Golang, или геймдев в Go, а может быть даже GUI
@rtme8463 жыл бұрын
@@GopherSchool Мужик серьёзно, в Рунете лучше инфы нету, особенно от практика, я проверил). Может в частном порядке есть возможность пообщаться в телеграмме например, заодно тебе и тем набросаю, переписываю сервак с ноды (тема как вариант, довольно болезненно переходить, ощущение что проваливаешься на уровень ниже)
@eduardyuritsyn48383 жыл бұрын
Добрый день! Спасибо за видео! Хотелось бы увидеть видео по гоурутинам и каналам.
@LRXAORLOV4 жыл бұрын
Может посмотрим ещё в сторону graphql )? За видео спасибо большое !
@aleksandrshevchenko59483 жыл бұрын
Спасибо за видео. Какими расширениями VSCode вы пользуетесь при программировании на Go?
@naka_uwu.69607 ай бұрын
Ты большой молодец❤
@LeifMage3 жыл бұрын
Очень круто объясняешь, лучшие уроки. Жаль что канал не развивается.
@TheArtofDevelopment2 жыл бұрын
Немного по другому раскрыл тему интерфейсов на своем канале. Интересно будет сравнить.
@user-nz5ej4qh4f Жыл бұрын
Автор спасибо за Ваши уроки!! Если сделаете платный курс где-нибудь на stepick - я обязательно его бы купил. Например небольшое приложение с микросервисной архитектурой с общением между микросервисами по grpc бд Postgres , JWT и т.д.
@yourcommentor4 жыл бұрын
Привет! Жду следующий выпуск, надеюсь ты не забросил канал, потому что предыдущие выпуски были отличные! Хотелось бы узнать с какими реальными проектами на Go ты работаешь, какие подходы, паттерны используешь для разработки, какие актуальные пакеты, когда лучше применять / не применять конкурентность.
@GopherSchool4 жыл бұрын
Спасибо! Забрасывать не хочу, но пока маловато свободного времени и немного затык с идеями для видео :(
@BabaykaMoscow2 жыл бұрын
@@GopherSchool идеи: 1) Вложенные структуры при использовании селектов с джойнами; 2) Постраничное отображение результатов запросов к базе.
@stanislavdimitrenko3 жыл бұрын
Жаль что канал остыл. У вас получается отлично объяснять 👍
@allusio4 жыл бұрын
Пару идей: code conventions escape analysis First-class functions high-order function packages modules dependencies management debugging code optimizations dev environment configuration
@AndrewZLoDeY4 жыл бұрын
УРАААА! строкА! :)
@davida.75862 жыл бұрын
Super!!!
@yury3586 Жыл бұрын
Gopher School Спасибо!!!
@frixaco4 жыл бұрын
Спасибо огромное! Очень понятно объяснили!! Когда новые видео??
@GopherSchool4 жыл бұрын
Спасибо! Пока не знаю ¯\_(ツ)_/¯
@developmentapp Жыл бұрын
Спасибо!👍👍👍
@allall12934 жыл бұрын
То есть структуру создаваемой системы удобно представлять в виде N-мерной матрицы : По иерархии мод перечисляются интерфейсы, по одной - данные (структуры например ). На пересечениях - методы реализации интерфейсов. Если сделать такой набор матриц, которые можно крутить, рассматривать и наполнять в разных срезах общей N-мерной модели, то проектирование возможно будет нагляднее и проще чем, как обычно, писать листинг... Система разработки сама выделит части, которые следует перенести в библиотеку, да и оптимизирует весь код
@user-bf5hy5ov9h Жыл бұрын
все еще жду
@user-ts1jj5qd9b Жыл бұрын
хорошо объясняете
@ayhow9 ай бұрын
спасибо!
@Yhwach-mv9cu2 жыл бұрын
Привет, скажи пожалуйста, стоит ли ждать новых видео про го, или уже все?
@polmaksim4 жыл бұрын
Большое спасибо за урок. Уважаемый автор, подскажите пожалуйста, как сделать тоже самое, только разделив интерфейсы на пакеты и потом иметь доступ ко всем дочерним пакетам с одного родительского пакета (интерфейса). Все не могу разобраться в логике. Например есть главный интерфейс Animal, который имеет 2 дочерних интерфейса в каждом из которых определенные методы. А под главным интерфейсом есть структуры Cat и Dog, которые имеют те самые 2 дочерних интерфейса и каждая структура реализует нужные методы. Не могу понять, как построить это не в одном файле, как у вас в примерах, а разделив на пакеты. Где Animal главный пакет, а Cat и Dog два дочерних пакета. Буду очень признателен.
@ms77grz5 ай бұрын
👍👍
@eternalknight40303 жыл бұрын
Привет! Почему так долго видео не выходят? Я очень жду твоих видео, ты один из лучших контент мейкеров по го! Возвращайся!
@maksq2 жыл бұрын
2021.12.18: На Новый Год я загадаю желание, чтобы Gopher School вернулся
@jondoe86362 жыл бұрын
надо же! один раз всё таки получилось выговорить интерфЭйс вместо интерфЕйс.
@agabekshamuratov4532 Жыл бұрын
Чувак мы тебя ждем, Вернись !
@vitalyrozh67394 жыл бұрын
куда пропал? Ждемс ещё уроки! ))
@iamcasted9 ай бұрын
Также в новых обновлениях Go вместо interface{} можно использовать any
@user-cn9wq9dp7q2 жыл бұрын
Я видел, как орёл бегает!
@slavapol-v15534 жыл бұрын
Сними видео про модули, как правильно подключать пакеты. Некоторые до сих пор с PATH хороводы водят.
@MuKeXa4 жыл бұрын
А есть выбор, если имеем локальный пакет? Например у меня свои наработки, которые не хочется/нельзя показать на том же github.
@SergeySaraev-xe4fl4 жыл бұрын
Запиши урок про ссылки и указатели.
@flayers1646 Жыл бұрын
Как тема называется vs code ?
@LRXAORLOV4 жыл бұрын
Да и как вас можно поддержать/промотивировать )?
@GopherSchool4 жыл бұрын
Добавил в описание видео и канала, как это можно сделать :)
@ivanshvedov18233 жыл бұрын
Надеюсь, что ты вернешься к нам с новым видео-уроком и расскажешь что нибудь интересное, очень ждем тебя. Ты же на руби пишешь? Может и там контент интересный есть.
@GopherSchool3 жыл бұрын
У меня последнее время что-то какой-то ступор с идеями для видео ¯\_(ツ)_/¯ может стоит создать опрос на канале, и люди сами расскажут, что им интересно. Насчет руби я тоже думал, но тут наверно надо на другом канале это делать
@ivanshvedov18233 жыл бұрын
@@GopherSchool хорошая идея с опросом, да и не обязательно делать второй канал, можно в плейлисты сортировать просто языки. А так, очень ждем интересностей. Сам щас дипломную работу буду начинать на golang, хотелось бы чего нибудь узнать нового, каких то решений. Удачи тебе!
@BeremPoned3 жыл бұрын
@@GopherSchool всем будут полезны и интересны конкретные кейсы и примеры решения с объяснением разных рабочих задач, а также примеры реализации разных простых сетевых сервисов. Именно практические кейсы и реализации по шагам с объяснениями.
@UAStriker4 жыл бұрын
А в каких случаях может понадобиться возвращать интерфейс (не пустой)? Видел не раз такое, когда функция возвращает определенный интерфейс.
@GopherSchool4 жыл бұрын
Сложно сказать, надо смотреть на конкретный код. Но в общем случае интерфейс удобно возвращать тогда, когда результат функции может варьироваться. Например, если это какая-нибудь фабрика. Другой пример, это когда наша ф-ия возвращает ошибку (`func blah() error {}`). Тип `error` - это как раз интерфейс из одного метода `Error()`. Это позволяет по сути создавать и возвращать из функции свои типы ошибок.
@Ufopvl3 жыл бұрын
Возвращать пустой интерфейс крайне не рекомендуется. Принимать можно без проблем, с реализацией проверок внутри вашей функции.
@user-sz4uu1pg5y4 жыл бұрын
Почему на 5:08 ты в аргументы sayHello ты вставляешь указатели на интерфейсы, но в объявлении функции sayHello там просто интерфейс, без указателя?
@GopherSchool4 жыл бұрын
В аргументы `sayHello` передаются не интерфейсы, а структуры (точнее ссылки на них), которые реализуют этот интерфейс.
@user-sz4uu1pg5y4 жыл бұрын
@@GopherSchool но в декларации greeter без звёздочки, то есть не указатель, а в вызовах этой функции передаются указатели
@psevdochlen6544 Жыл бұрын
Так и не понял зачем в интерфейсы методы складывать, мы же и без интерфейсов можем их вызывать на объектах. Просто для структуры?
@alexandersmirnov4274 Жыл бұрын
как проверить на налл ссылку с типом интерфейсав?
@hello_world_zz Жыл бұрын
Жалко, перестали выпускать видео
@yury3586 Жыл бұрын
Возвращайтесь на канал, мы Вас ждем!)
@mukhammadrustambayev20514 жыл бұрын
покажите S.O.L.I.D. в Golang.
@TheBogdanLisichenko3 жыл бұрын
Что за тема в вс код?
@zhivulinal4 жыл бұрын
7:20 Чувак, где почитать про 5 принципов? Спасиб)
@GopherSchool4 жыл бұрын
Лучше всего SOLID описал сам Роберт Мартин в книге "Чистая архитектура", советую начать с неё.
@zhivulinal4 жыл бұрын
@@GopherSchool Спасиб)
@rolsonalister30522 жыл бұрын
Жаль конечно этого добряка - хороший был человек
@GopherSchool2 жыл бұрын
Вы о ком?)
@rolsonalister30522 жыл бұрын
@@GopherSchool , о Вас) Стоит ли ожидать камбэк, или Вы уже все по Go ?)
@GopherSchool2 жыл бұрын
@@rolsonalister3052 Наоборот, в работе снова появился Go, и есть несколько идей для видео, планирую в обозримом будущем записать новые видео) Главное, чтобы не забанили ютуб)
@rolsonalister30522 жыл бұрын
@@GopherSchool , а вот это уже отличные новости! Будем с нетерпением ждать) Если ютуб забанят, - поищите альтернативные площадки) Главное - оповестите нас об этом в случае чего, например, в телеграмме Вашем)
@maximrad1901 Жыл бұрын
Кто то может объяснить а зачем были введены интерфейсы бер и энимал если они нигде не использовались
@gosuwebwizard Жыл бұрын
куда пропал? я не понимал интерфейсы до твоего видео
@user-qg4pg8lg6l Жыл бұрын
Так и не понял, зачем нужны интерфейсы, а почему? Потому что надо было бы показать рядом, чтобы мы делали БЕЗ них, тогда в сравнении стало бы видно, зачем нужны интерфейсы. Сейчас у меня непонимание: зачем нужна лишняя прокладка в виде интерфейса, если есть методы? Метод точно так же может обращаться к полям структуры, вынимать оттуда значения и работать с ними. Метод это ведь уже универсальная сущность, в которую можно "заряжать" поочередно параметры, и получать результаты. Объекты эти держать можно в срезе, а листать циклом for-range. Так зачем же все-таки нужны интерфейсы?..
@egor.okhterov2 жыл бұрын
Почему в sayHello greeter передаётся не по указателю?
@GopherSchool2 жыл бұрын
Потому что greeter - интерфейс.
@ObjectFuture7 ай бұрын
Дайте туториал как оживлять канал Плиз
@inventor16263 жыл бұрын
Парень вернись! Такого контента нет в СНГ и не будет ещё долго, кто нам ещё расскажет про grpc и прочие классные штуки?)) Давай мы тебе поможем и подкинем несколько классных идей для видео! 1) Часто говорят про fasthttp фреймворк для go, якобы он в 10 раз быстрее обычного net/http, но максимум, что удаётся найти по нему это hello world. Его вообще кто-то использует в реальных проектах? И так ли он хорош, как про него рассказывают? 2) Давай больше практики) Практика лучшее обучение! Можно телеграм бота на GO (А почему нет? =) ) 3) На GO можно парсить? Интересно, как бы это выглядело?) 4) Что должен знать и уметь GO backend разработчик? 5) Топ 5/10 фреймворков/библиотек которые вам стоит использовать 6) Деплой GO проекта 7) best practices Обещаем ставить лайки, подписываться и прожимать колокольчик! =D Нужно популяризировать GO в России, это один из лучших языков) P.S. Я пошёл ставить лайки на все видео, а ты обещай сделать новый видос))
@MichailMishutkin2 жыл бұрын
Автор делал отличный контент!!! Если автор ещё жив и смотрит уведомления о новом комментарии - автор, сделай подписку платную, мне не жалко за проделанную работу тебе денег кидать каждый месяц. Глядишь, таких как я наберётся человек 1000 и автор почувствует мотивацию вернуться к созданию годного контента
@GopherSchool2 жыл бұрын
Спасибо! Конечно было бы неплохо иметь какую-то финансовую отдачу, но я не знаю, в каком формате это могло бы работать.
@MichailMishutkin2 жыл бұрын
@@GopherSchool посоветовать конкретику не могу, но сам лично подписан на два канала в ютубе, где выступаю спонсором(ютуб даёт прикрутить такой функционал у себя программно): там на выбор несколько вариантов обычно: 49 руб/мес, 250-300 руб/мес и для состоятельных парней 100500 рублей/мес. На каждом уровне свои плюшки - доступ к спец контенту, закрытый чат, личное кураторство и т.д. Можно прикрутить заглавный ролик, где попросить заинтересованных подписываться как спонсоры, чтобы автор был более мотивирован продолжать начатое. Восторженных комментариев хватает, думаю всё получится
@MichailMishutkin2 жыл бұрын
@@GopherSchool для примера есть канал The Art of Development. Тоже о Go разработке, активно привлекает подписчиков-спосоров и правильно делает
@GopherSchool2 жыл бұрын
@@MichailMishutkin Спасибо, звучит интересно, надо будет разобраться с этим делом :) Хотя мне конечно как-то неудобно брать за видео деньги, сразу ответственность какая-то возникает)
@MichailMishutkin2 жыл бұрын
@@GopherSchool добровольное спонсорство и продажи это всё таки про разное, годный контент надо поддерживать (иначе всё превратиться в 10 фактов о RESTapi с обнажёнкой на превью), и делать автора независимым в прямом смысле. Только в моей группе по Go со мной учится 271 человек, если мы уж заплатили по 70-100 тыс за среднего качества контент начального уровня, то уж за толковый, который нужен уже для устройства на работу и/или стажировку - 100-200 руб. в месяц это не плата, это слёзы благодарности)))
@CloudOblakoRain4 жыл бұрын
а во фронте разбираешься? по мне так было б круто подключить фронт в виде vue.js допустим в видосах, пока понятно только как гошными теймплейтами рисовать фронт по видосам Тодда
@JIexaPol4 жыл бұрын
Это получится ролик про Vuejs, а не про Го. Так как в go-части необходимо будет лишь отдать статичные html, js - пара строк кода. Ну и обработать http запросы, которые уже освещали в ранних роликах
@CloudOblakoRain4 жыл бұрын
Aleksey P все равно хотелось бы
@apikeev4 жыл бұрын
Ну вот, снова пропал:(
@alexandervolkov79163 ай бұрын
%T определяет тип без рефлекта
@valenko_ Жыл бұрын
Пожалуйста вернись на канал...
@Wivern113 жыл бұрын
Что за звездочки и амперсанды? Умников попрошу проигнорировать сей вопрос.
@yosen_animations37973 жыл бұрын
Это указатели, ты можешь прочитать в интернете, что они делают. :)
@maddimons Жыл бұрын
Я, видимо, тупой. Всё эти примеры делают хуже. Они мне лишь подтверждают, что проще написать по функции для каждого. Будет короче и проще. Зачем это всё абстрагировать, если в итоге все получается сложнее и больше? Или я тупой.
@dellmorte2917 Жыл бұрын
интерфейсы нужны для достижения полиморфизма и уменьшения количества дубляжа кода например есть два объекта(типа) с методами save() для того чтоб их использовать нужно написать две функции например func structSave(s /*структура*/) { s.save() } и так ты будешь описывать каждую функцию с разными типами структур чтоб уменьшить количество разных функций с разными структурами можно использовать интерфейс type saver interface { save() } // принимает интерфейс который описывает поведение save() func polimorf(s saver) { s.save() } polimorf(/*структура с методом save*/)
@apikeev3 жыл бұрын
Забросил уроки?
@maks1moff293 Жыл бұрын
Всё ещё не смог найти челов на русском, который бы лучше разбирался в го
@medvedvshapke4 жыл бұрын
Канал умер? Уже отписываться можно?
@GopherSchool4 жыл бұрын
Канал не умер, но отписываться можно
@medvedvshapke4 жыл бұрын
@@GopherSchool зачем мне отписываться от годного канала, если он живой. Часто люди создают каналы по тому же го, делают максимум 10 видосов и забрасывают, видимо ожидали миллион подписчиков, не знаю. Ждем новых видосов.
@GopherSchool4 жыл бұрын
Да нет, миллионов я не ждал, более того, я не думал, что наберу 1.5к на канал :) как только сойдутся идея для видео и время на запись - запилю обязательно ещё, самому уже хочется продолжить
@kirillvkrasnov3 жыл бұрын
@@GopherSchool уже подписчиков в два раза больше, а идей для видео и время для записи никак не найдутся :(