Golang | Все Основы за 4 Часа Для Начинающих
Вставка
- Опубліковано 5 тра 2024
- Roadmap по каналу - bit.ly/3yKtxWf
Курс GOLANG NINJA - bit.ly/3VWKfu3
Instagram - / zhashkevych
LinkedIn - / zhashkevych
GitHub - github.com/zhashkevych
00:00 - Настройка окружения и выбор редактора
08:05 - Базовая программа
17:23 - Переменные
27:39 - Комментарии
29:26 - Типы переменных и нулевые значения
38:45 - Множественное присвоение
42:33 - Область видимости и функции
59:20 - Условный оператор if, обработка ошибок и множественные возвращаемые значения
01:19:00 - Конструкция switch case
01:28:04 - Неограниченное к-во аргументов в функции
01:34:35 - Анонимные функци. Замыкания
01:41:07 - Функция init()
01:44:11 - Ссылки и указатели
01:59:55 - Массивы и слайсы
02:22:10 - Матрицы. Цикл for
02:41:31 - panic(), recover(), defer
02:50:29 - Мапы
03:02:25 - Структуры
03:25:30 - Интерфейсы
03:46:18 - Пакеты и модули
#go #golang #языкgo #урок #дляначинающих
Максим, спасибо тебе большое за видео. Очень полезно, особенно если уже программировал на другом языке до этого. Мир твоему дому!
Смотрю сейчас твой урок! Спасибо большое!
на х2 хорошо зашло)
спасибо. было полезно. некоторых вещей не знал)
Спасибо тебе боьшое. Я выучил уже много golang слушая твои видео.
Спасибо! Очень хорошо объясняешь.
26:26 - "поскольку GO является динамически типизированным языком ..." - наверное, статически всё же?
.ШЕДЕВРАЛЬНО! Великое вам СПАСИБО!
Топ контент подкатил =) спасибо, Макс!
Класс! Столько информации , суппер
Спасибо за крутой контент!
Дякую за корисний матеріал. Коли вже знаєш хоча б одну мову програмування, то дивитися вже значно простіше. Тому швидкість ввімкнув на x1,5 і навіть пропускав деякі місця. Тим паче що вже трохи на го писав.
🔥🔥🔥спасибо!!!
Сам GO не занимаюсь, но напишу коммент для поддержки в знак благодарности тебе за мотивацию🤝
Спасибо. Хорошо легло на мой хеллоуворлдный опыт
Очень полезно, спасибо!!
Спасибо, крутая информация
Молодец будем смотреть
Спасибо большое)
Спасибо!!!
Максим, спасибо за видео и огромную проделанную работу. Как человек, который уже знаком с go не один день но никогда не уделявший большого внимания теоретическим основам, хотел использовать ваше видео для того, чтобы шлифануть знания и понимание некоторых моментов. Видео отлично справилось с задачей. Особенно понравились модули про массивы/слайсы и пустые интерфейсы.
Кстати про overhead при использовании defer - вроде как это изменили в какой-то из версий. В моем случае бенчмарки в версии 1.17
показали минимальную деградацию производительности - в разы меньше той, что демонстрируют статьи на эту тему.
Теперь we need to go deeper :)
Bratan
Спасибо! Очень хорошо объясняешь.💪
Спасибо за разъяснение разницы методов - указатель или значение. В книге которую читаю по умолчанию принимается указатель и не разъясняется различие.
С другой стороны - правильно ли в методах менять структуру? Мне кажется это может спровоцировать ошибки и лучше изменение структуры делать вне методов.
Спасибо Максим за видео очень полезно и понятно
привет! Было всё супер, но последняя часть про пакеты не особо понятна с разделением, да вы говорили на 5ой неделе разберёте, но всё же, хотелось менее простое объяснение, как вариант на примере простых функции итд. Это всего лишь моё мнение. Спасибо большое за ролик!!!
Спасибо!
Спасибо, за видео. Есть опыт написания скриптов на golang, но решил посмотреть, где пробелы в теории. Очень полезная информация.
А что за скрипты на GO ты писал?
@@denver-GO Аналог bash-скриптов на серверах Линукс. Также написал парсер мониторингов grafana и kibana, для проверки и блокировки ddos атак на наши сервера. И написал бота binance, который неплохо торгует около полгода. Сейчас переписываю этого бота в многопоточном стиле - с каналами и горутинами.
Вот это ты удачно дропнул контентища, как раз Junior Go вакансию ищу, пожелайте мне успеха лайком! Каждую секунду внимательно отсмотрю и паралельно с тобой делать буду!
Удачи!
Удачи!)
@Serhii Kravchenko если go не первый язык на джунов не идут, идут на мидлов.
@@alienspro ?
Как успехи?
от душа благодарю за отличный видеоряд, все понятно, доступно, мира тебе счастья
Максим, привет! Я только начал изучать этот язык.
Спасибо тебе большое за видео и твою душу, которую ты вложил в это все.
Прям очень благодарен...
Как успехи?
@@host_admm неплохо, освоил базовый синтаксис. Изучаю алгоритмы, параллельно решаю задачки на литкоде
@@Alikhan.Umarbekov а где ещё подскажете решать задачки для закрепления материала на го?
@@2UsserName leetcode / codewars
как там успехи?)
От души старина
Хочу поправить насчет defer. В Go 1.14 оптимизировали defer так что он не создает почти никаких накладных расходов.
This release improves the performance of most uses of defer to incur almost zero overhead compared to calling the deferred function directly. As a result, defer can now be used in performance-critical code without overhead concerns.
Спасибо! не знал
@@MaksimZhashkevych хотел приложить ссылку на пруф, но ютюб удалял камент. Такое поведение задано в настройках канала? (Конечно можно использовать разные хаки чтоб обойти фильтр, но не стал)
@@UAStriker нет, это особенности ютуба
О, спасибо. Это полезная инфа для новичка. Буду иметь в виду)
классное видео. нормально и доступно все... но но с СЫ надо как то бороться :)
Здравствуйте! Когда набор примерно след. на курс планируете?
"Гайд о том как нарисовать кошку. Рисуем круг, а потом кошку"
Вот точно такие же ощущения, когда затрагивается тема с указателями) Сейчас уже понимаю для чего они, а в 16 лет тоже были проблемы с ними
Сижу здесь после C++, то есть умею работать с памятью. Даже не представляю как бы я мучился будучи совсем новичком.
@@alikhan_pypl Учить подобные языки типа Go, JS или питона первым языком - гиблое дело. А начинать с Java или поколения С прекрасная идея
@@YukiRin-zc3hl , а в Си нет указателей , да? Здесь суть в том, что новичку очень сложно понять суть указателя, а Си на них построен
Лайк с ходу!
Про паттерны хочется, их так сложно понять. Сложно потому что примеры не real life examples, а всякие abc(). Хотелось бы на примерах реальных проектов или прямо бегать по гитхаб проектам на Го и показывать как определять паттерн и почему выбрали именно его, плюсы, минусы.
Паттерны такое же говно как и GO... Неужели ты думаешь что Unix, Linux, Windows писались по паттернам? Смешной ты... Паттерны в программировании, это как физики-теоретики в физике... 😊
В реальном проекте вам понадобится сто часов для изучения структури проекта
Большое спасибо за объемное и содержательное видео. Вы проделали большую работу. От себя хочу пожелать Вам не сомневаться в адекватности русскоязычной профессиональной терминологии и смело использовать такие понятия как срезы, карты, хэш-таблицы и прочие. Даже те, которые не встречаются в общепринятой терминологии и на первый взгляд режут слух: приемники значений и приёмники указателей. Ведь, если разобраться, для неподготовленного слуха и слово "переменная" слышится странно, но мы все уже давно привыкли к этому слову. Спасибо еще раз и успехов в вашем деле!
Афигенно
Чёт призадумался; GO как и любой C like язык - напоминает лютого франкенштейна из Java C и js. Вроде его основное преимущество - очень удобное распараллеливание процессов, собсна из-за этого и думаю двинуть к нему в будущем (пляски с бубном вокруг питоновского threads, multiprocessing и acyncio - чёт больше тоски вызывают).
Пасиб за контент - возможно осилю в будущем) и да - по поводу динамической типизации - её стараются обходить стороной в разработке на питоне +- крупных проектов; тайпхинтинг - рулит👌
Дуже корисно! Супер! Дякую!
🙌
@@MaksimZhashkevych тобі ще сусід з 30 хвилини як на зло почав ремонт робити))) Буває)
Класс❤
Максим, спасибо за видео. Скажи одного плагина в VSCode достаточно для полноценной работы? Если нет, то не мог бы ты записать небольшое видео о настройке VSCode для Go разрабочика, плагины, переменные окружения и пути для macos
, ubunta и т.д. Полноценных роликов об этом я не нашел. И как тебе вообще VSCode для работы, его можно назвать полноценной заменой Goland?
я могу тебе Goland установить
2:21:00 Можете пожалуйста скинуть ссылку на статью/видео по этой теме. В интернете ничего не могу найти. Очень заинтересован. Буду признателен!
Будет ли видос про безопасное использование unsafe?
спс
Привет, Максим. Не могли бы Вы создать курс - создание интернет магазина на Go и показать еще как привязать платежную систему. Я бы такой курс у Вас купил.
45:00 Любимые соседи сверлят
Скажите с полного 0 стоит изучать?
Или этот язык нужен как дополнение к какому либо языку?
Мне уже больше 30 лет, имею далёкую от IT профессию, такие видео по программированию смотрю по большей части узнать что то новое. Так вот во многих видео, как и в этом не нравится, что объяснение многих аспектов языка происходит на примерах каких то абстрактных вещей. Например, тут у нас вводные данные понедельник, тут клуб, тут массив из трёх - по итогу какая то каша. По моему неплохо было бы сразу придумать какую нибудь легенду, что у нас так скажем интернет магазинчик, или база данных по какой нибудь игре и тд. И каждый новый урок рассказывать новую тему, с учётом как мы можем её применить к нашему проекту. Так намного проще, как по мне запоминать. Надеюсь доходчиво объяснил, возможно ответите - может я не прав. А так удачи вам!
Говорю вам как человек из разработки - если описывать бизнес кейсами- то становится еще запутаннее и не понятнее. Регулярно по работе упрощаю для себя же абстрации.
Ну и другой вопрос что обучив базовым вещам вы разберетесь как работают сложные. В обратную сторону не работает.
Если хочется прям понимание нужно смотреть, пробовать, сначала скопировать переписывая под видео, потом сломать-починить-изменить-улучшить и через время придет понимание)
это как и на первой работе - вроде понятно что все делают обычные вещи, но как оно работает все вместе не понятно, через время приходит понимание. И кажется как все просто.
В программировани точно так же)
@@kislax545 вот тут адски плюсую, абстракции упрощают понимание и взаимодействие всего в мире. А что касается обучения, так тем более. Бизнес кейсы, это не только синтаксис и возможности языка, это архитектурные решения, часто реализация в стеке с несколькими языками. К тому же есть люди далекие от технических специальностей, по этому чем больше людей начнёт понимать базовые принципы, тем больше вероятность того, что у человека появится интерес. А реализацию кейсов интересно смотреть, когда core знаешь и набираешься опыта в каком-то продакшене, когда начинаешь писать свой пет проект.
"Тренируйся вон, на кошках" (r)
идея понятна но это так не работает, это другой мир , и тут другие абстракции.
Не смотри такие видео. Автор 20 минут объяснял что такое замыкание, я так и не услышал, что это такое. По его словам:вам сейчас будет очень сложно понять... Он сам видимо ещё не понял.
Мне 14 лет, учусь и параллельно ищу себе путь в программирование. Пробовал много языков, и при этом ничего не получалось(более-менее вышло с питоном)
Теперь выбрал Го в качестве языка, и он мне очень даже зашел! Спасибо автору за это великолепное видео)
Эй! Мне тоже 14, учил Python в 11 лет - забил, учил год назад - забил, но после того как забил пошёл учить JavaScript(вышло очень средне, на codwars нечего сам не решу, но я хотя бы немного понимаю что на нём пишут), в итоге я ненадолго остановился, потом конечно же вернусь к js
Мне тоже по какой-то непонятной причине понравился go (на самом деле я выбрал его чтобы написать блокчейн для школьного проекта, долгая история)
Я сбился с какой попытки пытаюсь освоить программирование, но я понял главное - нельзя забивать, нужно пересматривать, переписывать и практиковать (хотя иногда так больно и не хочется). Удачи, у тебя скоро всё выйдет
@@user-tb1kr3sf7s привет. Мне 26 учу питон уже полгода по книге марка лутца. 2й том заканчиваю. Что могу сказать так это то, что в книге говорится все прям с азов и если не бросать и пытаться понять что написано то окупается потом при прочтении будущих глав. Тут в чем вся соль так в том что пока тебе не понятно что ты делаешь и почему так ты это делаешь, но если продолжать то через определенное время все как то само собой начинает складываться в голове. Вот читаешь главу, и не понимаешь предложение какое то. Ты его 10 раз перечитываешь пока не поймёшь. Либо возвращаешься назад и пытаешься сложить пазл. С примерами тоже самое. Пока не поймёшь то разбираешь его по строчно, пытаешься понять причину и следствие что откуда берётся. Потом поймёшь что такое мышление очень помогает разбираться в коде и понимать новые темы намного быстрее. Главное тренироваться с примерами нарабатывать себе привычку искать причину следствие. Где объект, что он делает, где используется, что должен возвращать итд. Это как конструктор. Чтоб его собрать нужно его сначала разобрать. На мелкие детали. А потом заново собирать.
@はぽいそび мммм golang... Классный язык)
@はぽいそび та ты мля полиглот лол))) И по итогу нихерна кроме говнокода создать не можешь! Я прв?
Дело в том что пробовать много языков толку норль. Как ты из попробовал? Написал стартовую программу Hello World? И что не получилось? сОЗДАТЬ ПЕРЕМЕННУЮ? Обявить функцию или создать обьект класса?
Если не получилось с "много языков" то с Go точно не полуится. Это на первый взгляд он изи. Корутины, обьектная модель и тд... ты не заташищь это если не полулось с другими языками.
Задумайся пока не поздно о своем пути в качестве продавца, менеджера или плиточника облицовщика.
а видео-склейки еще выйдут со второго потока? камон ёще побольше про go!
Давай про паттерны всякие или про grpc!)
+ патерны конкурентности и gRPC
+
Блин! Если бы это объяснение про указатели встретилось мне два года назад.
Макс круто!
Включил на скорости х2 и познал Go за 2 часа!
Смотрел наоборот с 0.5.
На 15 минуте на теме переменних голова закипела
начал изучать GO/ смотрю видео уже недели две. параллельно гуглю много всего. Пока смог только написать вывод 10 числа Фибоначи. До этого ничего не изучал. Если к зиме научусь писать ботов для телеги. то это будет успех. Стараюсь уделять более 5 часов в неделю
проблема в том, что вы забиваете гвоздь микроскопом. Для телеграм ботов только питон с его либами, лучше этого ничего нет
1:37:55 - Вот здесь сначала взорвало мой Сишный мозг, но потом выяснилось, что компилятор создает не локальную переменную, а переменную сразу в куче( heap ), поэтому она не уничтожается после выхода.
Для вас лично во сколько раз Go лучше чем PHP для клиент-серверных веб-сервисов. или по 10 бальной шкале.
Прочитал твою книгу за три часа, норм)
Бро, а где его книгу можно скачать/прочитать?
Судя по количеству объяснений элементарных вещей, курс рассчитан на новичков. Но вы используете много слов, которые вводят этих новичков только в "конфьюз". Например, слова "аллоцировать" или "итерировать" (о да, среди моих друзей не-программистов есть те, кто не знает, что это значит). Также есть проблемы с произношением английских слов (особенно режет слух "defer" - дифЭ, а не дефер). Еще по поводу рефакторинга: меня в универе учили, что нельзя использовать переменные вот так: car, car2, car3... Если есть car2, значит где-то должен быть car1. Не знаю, как в ГО, но из моего опыта программирования, функции и методы должны звучать, как глаголы, а-ля "CalculateArea", "CalculatePerimeter", а не "Area" и "Perimeter" (хотя можно притянуть за уши, сказав что в английском имена существительные часто обозначают глаголы, всё равно неоч). Новичков надо учить писать правильно сразу, а то потом будут переучиваться
А вообще, спасибо за видео, я узнал для себя что-то новое
П.С. повеселили ваши украинизмы в речи (але це не означає, що українська мова якась смішна чи щось таке)
2:19:00 вот это взрыв мозга, открытие для меня. Разрабы позаботились под капотом за нас, чтобы иметь простой синтаксис и код, чуть-чуть жертвуя скоростью.
Вопрос по анон функциям, почему надо инициализировать через переменную inc, а нельзя сделать println(increment()), вместо println(inc())
еще вопрос, слайс это по сути обертка для массива?
Подскажите а что за вторая неделя и где ее смотреть?
следующим, какой курс/урок посоветуете?
на экране не всё видно, что показываешь
Привет, Максим
Спасибо за подробный разбор.
Я Frontend dev, вот решил расширить горизонты и выбор пал на Go 😁
Очень доходчиво все рассказал) Если уже знаешь хотя бы один язык - то ничего сложного, все концепции похожи или вообще одинаковы)
В x2 посмотрел на одном дыхании за пару часов 🔥
Ага, тоже с фронта решил расширить горизонты. Пишу на Ангуляре, держу в курсе)))
@@bukanaka Я с вами) Работаю на Вью
@@rustam-hr1qy Тоже фронт. React && Vue
Максим, много чего рыл по го, но ты красавчик. Очень интересно, мало воды)))
Спасибо! Подскажите, пожалуйста, какую базу надо иметь для того, чтобы приступить к Go? С нуля. Html, css?
для чего тебе нужен этот яп?
Html, css никак не связанны с GoLang. Чтобы начать изучать Go - достаточно только желания. Никаких прямых зависимостей нет.
Если в программировании совсем опыта нет, то лучше попробовать начать в Python. Это наиболее дружелюбный к новичкам язык.
Go, в свою очередь, обманчиво прост. У него простой и скудный синтаксис, который можно выучить за пару вечеров, но при этом он имеет довольно много подводных камней, которые сложно осознать новичку.
Но если и начинать изучать Go, то первый обязательный шаг - Tour of Go (легко гуглится)
@@nikolay_tuzov по мне так пхп самый простой для вхождения
@@ivankozlov5305 Python более гибкий и универсальный. На PHP сейчас из серьезного только бэнэнд веба делают, да и то многие компании с него на Go переходят. А на Python и веб, и множество других вещей, вплоть до Data Science. И в ряде областей он всё ещё остаётся актуальным.
Для новичка это огромный плюс - как правило, на старте человек ещё не понимает, чем хочет заниматься. А питон будет хорошим стартом в разные области.
ого автор упомянул cs50 + уважение почему то никто о нем обычно не говорят почему то
go то актуально учить при нынешних событиях или нет?
1:00:13, welcome to the club body!
а будут ли еще видео на ютубе из курса ниндзя?
нет
Поставил свежий golang, работает без import "fmt"
Спасибо за замыкания :) (но электрики конечно не одобрят)
целочисленное число это сильно)) на 23.40. Новички оценят
Комент для рейтингов
Признаюсь, эта неявная взаимосвязь между интерфейсами и структурами - вот, что взрывает мозг (или это вина примера). В любом случае, выглядит, как что-то, что не стоит использовать в больших проектах. Придя с ts реакт/ноды: там, что на фронте, что на бэке закопаешься в импортах-экспортах, а если еще начнешь по аналогу здешнему всё собирать по тонким нитям взаимосвязей -- сразу стреляйся. Да и в целом ооп в го выглядит... странно. Оно конечно миленькое, если взять небольшую программу, но раздувать классовую архитектуру определенно интуитивно не хочется, а главное для меня достоинство ооп - это как раз более структурированный и приятный код
Круто, доступно, понятно, но.. произношение как у заядлого травокура просто вырубает))
опа, лайк
Нет
@@Fucktheyoujin Да
у меня при сохранении файла удаляется импорт и соответственно не работают команды оттуда, ибо неоткуда их брать. я и файл пересоздавал. все равно при сохранении файла удаляет импорт
В видео сказано, что у нас должен быть бэкграунд в других языках. Просто интересно, к чему это было сказано, потому что у меня, например, такого нет. Получается, голанг не для новичков?
Начни с C++... Все остальные языки - шелуха, ну кроме VBA для продуктов от МS... Все остальные языки - дикий микс C/C++ и basic'a...
Вроде как на 53 минуте речь о замыканиях идёт?
Не только лишь все могут объяснять, не каждый может это делать😂
Главное - не покупать курс на Udemy. Для преподавания все-таки желательно хотя бы школу закончить, наверное.... мысли лектора скачут как блохи в майский полдень ))))
33:00 Bool по-моему помимо true и false ещё имеет третье значение это NaN
в go только true и false
nan - not a number. bool никак такое значение принимать не может
а каналы в следующем видео?*
Мне 34, последние 8 лет я в айти, являюсь сис админом, 6 месяцев обучаюсь на девопс инженера в нетологии, сейчас в ci/cd проходим jenkins/gitlab/git… я делаю вывод что язык го окажется мне более полезным чем пайтон, в планах выучить один из двух, пока мучаюсь с докером/кубером/энсибл/терраформ, учусь писать пайплайны и тд.
как дела?
@@redfox6179 збс)
@@redfox6179 отлично, с каких пор тебе интересны мои дела?)
I have no idea what he's saying but I'm watching the whole thing
ahahaha nice bro
только начал изучать программирование, вообще ничего не понятно, так и должно быть? Сейчас просто повторяю за автором, если код не работает ищ ошибку исправляю. Но что как и почему все равно не доходит. Может кто подскажет с чего начать чтобы проще было. Другие языки не предлагать, хочу изучить этот язык.
Если не понятен туториал (обучение) - то искать другой, более понятный. Если и более понятный сложно понимать - искать в разных источниках интересующую тебя тему
Лично я считаю, что для новичков Go не подходит. Советую попробовать что-нибудь попроще, например JavaScript ( не Java!!! ) или Python.
Receiver это не приемник, это - получатель. Получатель по значению, получатель по ссылке.
2:25:37. Пересоздавать внутренние слайсы на каждой итерации y это сильно.
♂️enterTheClub♂️
1:10:30 ахахахах автор настолько политкорректен, что уточнил, что 45 лет - это отличный возраст😂
Подскажите кто знает, не плохо ли будет учить связку Python-Go ?
А зачем
Учи один язык, но хорошо
@@misteranderson6058 В этой связке основной - Python, с дальнецшец перспективой выучить Go.
Досмотрел до конца, видос неплох. Сам пишу на JS, очень сложно называть функции не с маленького регистра :)
если для тебя это сложно, то программирование не твое
А как же функции в названиях компонентов React?
В Пітоні взагалі лишній таб і рухнула ієрархія!
На 28% увеличивается с числа которые фактически могут привысить 2048 при увеличении.
Зато ты попробуй к строке прибавить число, Python выведет ошибку, а JS сконкатенирует, в этом заслуга сильной типизации Python. Но она динамическая, да
строгая а не сильная
@@folium5725 нет такого понятия "строгая" типизация. Сильная/слабая типизация, статическая/динамическая. Строгая - термин который нигде не задокументирован и чаще означает статическую
Прикольный франкештейн java с удобством python и производительностью c++, присвоение из паскаля :=😄, var из с#
выдаёт какую-то ошибку по поводу настройки папок пробовал искать её в Гугле но там что-то другое нашёл плохо когда не у кого спросить сразу хочется плюнуть и всё бросить
2.33.17 нраиться создадим 100 массивов, когда нужно 10