PRO Go
Відкрити в Telegram
Изучай язык Go вместе с нами. Закрепить теорию на практике можно на курсе - https://stepik.org/a/158385/pay?promo=0dbf5c609937c00c Подготовится к собеседованиям - https://stepik.org/a/205199/pay?promo=06f35ce5ae028fa2 По всем вопросам: @Santiago_de
Показати більше3 263
Підписники
-124 години
-117 днів
-5030 днів
Завантажуємо дані
Схожі канали
Хмара тегів
Вхідні та вихідні згадування
---
---
---
---
---
---
Залучення підписників
листопад '26лист '26
листопад '26
+4
в 0 каналах
жовтень '26
+20
в 0 каналах
Get PRO
вересень '26
+30
в 0 каналах
Get PRO
серпень '26
+13
в 0 каналах
Get PRO
липень '26
+15
в 0 каналах
Get PRO
червень '26
+21
в 0 каналах
Get PRO
травень '26
+26
в 1 каналах
Get PRO
квітень '26
+44
в 0 каналах
Get PRO
березень '26
+21
в 0 каналах
Get PRO
лютий '26
+31
в 0 каналах
Get PRO
січень '26
+53
в 2 каналах
Get PRO
грудень '25
+38
в 0 каналах
Get PRO
листопад '25
+81
в 1 каналах
Get PRO
жовтень '25
+103
в 0 каналах
Get PRO
вересень '25
+97
в 0 каналах
Get PRO
серпень '25
+92
в 0 каналах
Get PRO
липень '25
+145
в 0 каналах
Get PRO
червень '25
+95
в 0 каналах
Get PRO
травень '25
+115
в 0 каналах
Get PRO
квітень '25
+121
в 0 каналах
Get PRO
березень '25
+184
в 0 каналах
Get PRO
лютий '25
+149
в 0 каналах
Get PRO
січень '25
+201
в 0 каналах
Get PRO
грудень '24
+261
в 0 каналах
Get PRO
листопад '24
+138
в 2 каналах
Get PRO
жовтень '24
+181
в 2 каналах
Get PRO
вересень '24
+157
в 0 каналах
Get PRO
серпень '24
+177
в 3 каналах
Get PRO
липень '24
+234
в 2 каналах
Get PRO
червень '24
+243
в 2 каналах
Get PRO
травень '24
+259
в 0 каналах
Get PRO
квітень '24
+258
в 0 каналах
Get PRO
березень '24
+288
в 0 каналах
Get PRO
лютий '24
+224
в 0 каналах
Get PRO
січень '24
+164
в 0 каналах
Get PRO
грудень '23
+173
в 2 каналах
Get PRO
листопад '23
+118
в 1 каналах
Get PRO
жовтень '23
+9
в 0 каналах
Get PRO
вересень '23
+203
в 0 каналах
Get PRO
серпень '23
+1 043
в 0 каналах
| Дата | Залучення підписників | Згадування | Канали | |
| 13 листопада | 0 | |||
| 12 листопада | 0 | |||
| 11 листопада | +1 | |||
| 10 листопада | 0 | |||
| 09 листопада | 0 | |||
| 08 листопада | +1 | |||
| 07 листопада | 0 | |||
| 06 листопада | +1 | |||
| 05 листопада | 0 | |||
| 04 листопада | 0 | |||
| 03 листопада | 0 | |||
| 02 листопада | +1 | |||
| 01 листопада | 0 |
Дописи каналу
Что, если Go-сервис спишет товар со склада, а заказ создать не успеет?
Первый запрос уменьшил остаток, а второй вернул ошибку. Заказа нет, а товар уже списан.
В Go обе операции можно выполнить в одной транзакции через
database/sql. Если создание заказа не удалось, вызываем Rollback, и списание откатывается. Если всё прошло успешно, Commit сохраняет оба изменения.
На курсе PRO Go. Базы данных разберём, как писать такие операции на Go. Для старта достаточно знать основы Go. SQL разбираем с нуля.
До 14 ноября, 23:59 МСК курс стоит 11 830 ₽ вместо 16 900 ₽.
Посмотреть программу курса на Stepik| 2 | Скидки на курсы Go уже действуют
К акции 11.11 выбирай курсы на Stepik со скидкой 20%. На основы программирования скидка 50%. 1 350 ₽ вместо 2 700 ₽.
• Основы программирования
• Для продвинутых
• Алгоритмы поиска и сортировки
• Базовый курс по структурам данных
• Алгоритмы и структуры данных
До 11 ноября включительно, 23:59 МСК. Скидки применяются автоматически.
На PRO Go. Базы данных сохраняется скидка 30% до 14 ноября, 23:59 МСК.
Купить можно сейчас, а начать позже. Доступ остается навсегда.
Нужна помощь? Напиши нашему боту. | 281 |
| 3 | Приложение закрылось. А данные остались 🙂
Показываем небольшой пример, собранный из материалов курса «PRO Go. Базы данных».
В базе всего три таблицы: пользователи, курсы и записи на курсы. Go-программа добавляет Анну, записывает ее на курс и показывает результат.
Потом мы запускаем программу заново. Она снова находит Анну и ее курс в MySQL. На картинке настоящий вывод двух запусков.
В курсе разберешь, как создать такую базу, писать запросы и работать с данными из Go. Сначала поймешь, что происходит внутри, потом попробуешь инструменты, которые сокращают код.
Если прошел «PRO Go. Для продвинутых» или знаешь Go на этом уровне, приходи. SQL изучаем с нуля.
До 14 ноября, 23:59 МСК: 11 830 ₽ вместо 16 900 ₽.
👉 Посмотреть программу со скидкой 30% | 280 |
| 4 | Что ты напишешь на курсе «PRO Go. Базы данных»?
Свою учебную базу данных Stepik и приложение на Go для работы с ней 🙂
Представь знакомую ситуацию. Ты зарегистрировался на платформе, выбрал курс и начал учиться. Откуда платформа знает, кто ты и какие курсы у тебя есть? Где все это хранится? Как показать тебе именно твой список курсов?
На курсе ты сам это реализуешь.
Сначала создашь базу данных. В ней будут пользователи, курсы и информация о том, кто на какой курс записан.
Потом напишешь приложение на Go, которое умеет добавлять пользователей, менять их данные, записывать на курсы и показывать список их курсов.
Шаг за шагом у тебя получится программа, которая работает с настоящей базой данных. Закрыл приложение, запустил снова, а пользователи и их курсы остались на месте.
Почему учимся именно так? Когда создаешь что-то знакомое, понятнее, зачем нужна каждая новая тема. Не просто написал очередной запрос, а научил свое приложение находить курсы конкретного человека.
Сначала разберешься, как все работает, а потом попробуешь инструменты, которые помогают писать меньше кода.
Если прошел «PRO Go. Для продвинутых» или знаешь Go на этом уровне, приходи. SQL будем изучать с нуля.
До 14 ноября, 23:59 МСК действует скидка 30%. Курс стоит 11 830 ₽ вместо 16 900 ₽.
👉 Посмотреть программу курса | 269 |
| 5 | Ты уже умеешь писать на Go. Но пока данные живут только в памяти программы, после перезапуска всё начинается заново 🙂
А хочется, чтобы пользователь вернулся и увидел свои заказы, сообщения или прогресс. Тут и нужна база данных.
Работа с базами — обязательный навык для Go backend-разработчика. Почти в любом сервисе придётся сохранять данные, писать запросы и разбираться, почему что-то работает медленно.
В новом курсе «PRO Go. Базы данных» пройдём этот путь вместе: начнём с SQL в MySQL, потом подключим базу к Go и научимся работать с ней из кода.
Разберём запросы, транзакции, соединения и ошибки. Попробуем database/sql, sqlx, sqlc и GORM, познакомимся с миграциями goose — и посмотрим, когда какой инструмент удобнее.
Практики тоже хватит: 286 тестов и 122 задачи на программирование с автоматической проверкой.
Курс подойдёт, если ты прошёл «PRO Go. Для продвинутых» или уже знаешь Go на этом уровне. А вот SQL заранее знать не нужно — начнём с нуля.
Учим в привычном текстовом формате: читаешь, пробуешь, решаешь задачи. В своём темпе.
В честь запуска до 14 ноября, 23:59 МСК курс стоит 11 830 ₽ вместо 16 900 ₽ — скидка 30%.
👉 Посмотреть, что будем изучать | 343 |
| 6 | Курс «PRO Go. Базы данных» открыт 🎉
Последние дни мы прошли путь от данных в памяти до базы и SQL. В курсе ты пройдешь его дальше и напишешь на Go слой доступа к данным.
Начнем с SQL на MySQL, затем разберем database/sql, sqlx, sqlc, миграции goose и GORM. Дойдем до транзакций, пула соединений, PostgreSQL и работы с базой из горутин.
Для старта нужны основы Go. SQL изучаем с нуля. Внутри 286 тестов и 122 задачи с автоматической проверкой. Основной формат текстовый, с кодом, схемами и самостоятельной практикой.
В честь запуска скидка 30%: 11 830 ₽ вместо 16 900 ₽. До 14 ноября, 23:59 по Москве.
Посмотреть курс со скидкой 30% | 359 |
| 7 | Вот и весь путь. Память, файл, база. SQL. Запросы в коде, а потом инструменты поверх них.
Если учить именно в таком порядке, каждый следующий шаг понятен, потому что ты уже видел, чем плох предыдущий. Так построен мой новый курс «PRO Go. Базы данных».
Начинаем с SQL с нуля на MySQL. Потом database/sql, дальше sqlx, sqlc и миграции, потом GORM. В конце PostgreSQL и работа с базой из нескольких горутин. К темам есть задания, а в конце вопросы с собеседований.
Уже завтра, каждый желающий сможет окунуться в мир баз данных❤️ | 396 |
| 8 | Нужен тот, кто хранит данные и следит за ними сам. Это база данных, MySQL или PostgreSQL, ты о них слышал.
Всё, что ломалось с файлом, там решено заранее. Двое пишут одновременно, и база их не перепутает. Программа упала посреди изменения, и половинчатой записи не останется, изменение либо применилось целиком, либо нет. Найти одного человека среди миллиона можно за мгновение, потому что у базы есть индексы.
Но у базы свой язык, SQL. Пара слов про него. Он почти как английский.
SELECT name FROM users WHERE city = 'Казань'; INSERT INTO users (name, city) VALUES ('Иван', 'Москва');
Основы выучиваются за вечер.
Теперь вопрос, как обратиться к базе из программы. Есть два пути.
Первый, писать SQL прямо в коде.)
rows, err := db.Query("SELECT name FROM users WHERE city = ?", city
Плюс в том, что ты видишь и контролируешь каждый запрос и можешь выжать из базы максимум.
Второй, ORM, например GORM. SQL за тебя собирают методы.
db.Where("city = ?", city).Find(&users)
Плюс в том, что кода меньше, начать быстрее, а типовые операции укладываются в одну строку.
Что выбрать, зависит от задачи. | 380 |
| 9 | Перенёс данные из памяти в файл. Теперь программа сохраняет пользователей так.
data, _ := json.Marshal(users) os.WriteFile("users.json", data, 0644)
Перезапуск больше не страшен. Закрыл, открыл, всё на месте.
Файл можно открыть глазами и посмотреть, что там лежит. И ничего не нужно ставить. Для небольшой программы такого хватает.
Дальше программой начинают пользоваться по-настоящему. Двое регистрируются в одну секунду. Оба прочитали файл, оба дописали себя, оба сохранили. Остался только один, а второго как будто и не было. Никакой ошибки, никто ничего не заметил.
Программа упала в момент записи. Половина файла записалась, а JSON обрывается на полуслове. Читать его уже нельзя, и вместе с этой записью пропали все остальные.
И каждая мелочь стоит дорого. Чтобы найти одного человека, читаешь весь файл. Чтобы поменять ему город, переписываешь весь файл целиком.
Файл хранит данные, но не следит за ними. А нужно, чтобы следил кто-то другой. | 404 |
| 10 | Ты написал первую программу, в которой есть данные. Например, учёт расходов. Добавляешь траты, смотришь итоги, всё работает.
expenses := []Expense{}
expenses = append(expenses, Expense{"кофе", 250})
Показываешь программу другу. Он вбивает туда два десятка трат. Ты замечаешь опечатку, правишь одну строчку, перезапускаешь. И список пуст.
Все траты друга исчезли вместе с процессом. Данные лежали в памяти, а память живёт ровно столько, сколько живёт программа. Упала, перезапустилась, выключили свет, и начинай заново.
И это только начало. Запустишь второй экземпляр программы, а у него свой собственный список, он ничего не знает о первом. Когда записей станет сто тысяч, они начнут есть оперативную память, а чтобы найти одну, придётся перебирать весь список.
Для первого знакомства с языком так делать нормально. Быстро, просто, ничего не нужно ставить. Но построить на этом то, чем будут пользоваться люди, не получится.
Что делают дальше? Пишут в файл | 509 |
| 11 | Снова учимся вместе 💚
Stepik вернулся. Можно продолжать занятия, решать задачи и возвращаться к планам, которые пришлось отложить.
В благодарность за терпение команда Stepik даёт скидку 25% на одну покупку любого платного курса по промокоду СНОВАВМЕСТЕ.
Действует до 1 ноября 2026 включительно. Введи промокод при покупке на Stepik.
Собрали наши курсы по Go. Можно начать с основ или перейти к более сложным темам 👇
• Основы программирования
• Для продвинутых
• Алгоритмы поиска и сортировки
• Базовый курс по структурам данных
• Алгоритмы и структуры данных
• Логические задачи
Промокод предоставляет Stepik. Срок акции с 29 октября по 1 ноября включительно. Если давно присматривался к следующему курсу, сейчас хороший момент к нему вернуться. | 611 |
| 12 | Немає тексту... | 593 |
| 13 | 🎉 Stepik снова работает!
С вечера 23 октября Stepik снова доступен.
Сейчас сайт может работать медленнее, это временно, ожидаем улучшения в течение недели. Стрики вернём к середине ноября, не переживайте 🙏️️️️️️ Ответы на частые вопросы собираем в статье https://help.stepik.org/article/89244
Спасибо, что ждали, писали нам, делились своими историями и рассказывали, почему вам важен Stepik. Мы читали каждое ваше сообщение и очень ценим вашу поддержку и обратную связь!
Спасибо, что вы с нами! 💚 | 738 |
| 14 | Как восстановить доступ к курса пока Stepik недоступен🙏
Stepik сейчас недоступен, но твоё обучение никуда не делось. Все курсы и прогресс сохранены у нас на платформе, а вернуть доступ можно за пару минут. Делаем по шагам.
Шаг 1. Зайди на платформу обучения и войди в аккаунт. Если аккаунта ещё нет, зарегистрируйся.
Шаг 2. Открой свой профиль. Там есть блок с курсами. Если курсы уже на месте, нажимай продолжить и учись с того места, где остановился. На этом всё.
Шаг 3. Курсов нет? Не переживай. Оставь заявку личному наставнику и нажми кнопку Хочу наставника. Он сам свяжется с тобой, уточнит все моменты и поможет получить доступ к твоим курсам. Искать данные заранее не нужно.
Если тебе на почту пришло письмо Восстановление пароля от платформы, всё в порядке. Это значит, что мы уже связали твой аккаунт со Stepik. Перейди по ссылке из письма, задай пароль и войди. Курсы будут на месте.
Если сегодня мы не успеем написать кому-то из вас, не волнуйтесь. Завтра с утра отработаем всех оставшихся. | 942 |
| 15 | Друзья, доброго дня!
Как многие уже заметили, Stepik уже несколько дней не работает🥺 — авария у облачного провайдера, часть инфраструктуры сейчас переносят к новому. По последнему апдейту (12 октября) восстановление идёт штатно, но точных сроков пока не называют: данных очень много — курсы, которые авторы создавали годами, и решения миллионов учеников. Как появятся сроки — команда Stepik обещала написать. Следить за новостями можно в их группе: vk.ru/rustepik
🔨А у меня тем временем — новость, которую я придерживал. Мы с командой уже давно делаем свою платформу: iron-programmer.ru
Не презентовал её раньше, потому что она была ещё в разработке. Но раз ситуация экстренная — показываю. Это тот же Stepik, только лучше: с блэкджеком и стриками 😄
Что там уже есть:
— во вкладке Мои курсы — все ваши курсы, ровно на том шаге, где вы остановились;
— общий чат с учениками и преподавателями;
— тема интерфейса — светлая или тёмная, как вам удобнее;
— за прохождение курсов начисляется не только опыт, но и своя валюта — монеты: их дают за решённые задачи, пройденные курсы, достижения и ежедневную серию. Монеты можно обменять на мерч в нашем магазине — блокноты, кружки, резиновые уточки-дебаггеры и другое;
И это только начало — платформа будет расти дальше.
Регистрируйтесь и продолжайте учиться: iron-programmer.ru
Если будут вопросы — пишите мне или своему личному наставнику. | 902 |
| 16 | #memes | 692 |
| 17 | Где хранить данные 💾
Классическая история. Написана первая серьёзная программа — консольный список задач. Добавил задачу, она появилась в списке. Работает прекрасно, пока не закрыл терминал.
Закрыл, открыл заново — список пустой. Как будто ничего и не было.
Первое, что приходит в голову почти всем — сохранять список в файл перед выходом, а при старте читать обратно. JSON-файл, читаешь — пишешь, несложно. И это действительно работает, пока список открыт из одного места.
А вот если запустить ту же программу в двух терминалах одновременно — один из них благополучно затирает то, что успел дописать второй. Оба читают файл целиком, оба пишут файл целиком, кто последний сохранил — тот и прав.
Вот тут и становится понятно, зачем вообще нужны базы данных. Не потому что файл это «неправильно», а потому что файл не умеет того, что нужно почти любому реальному проекту: пускать к данным сразу несколько программ без того, чтобы они друг друга затирали, находить одну нужную запись без перечитывания всего файла, гарантировать, что два связанных изменения либо оба применились, либо не применилось ни одно.
Файлами эту проблему можно латать довольно долго, но рано или поздно упираешься в одну и ту же стену 👴 | 677 |
| 18 | Вайбкодеры напряглись | 1 090 |
| 19 | sql.Open 🔌
Помню, как в первый раз полез из Go в базу и минут сорок не понимал, почему всё работает.
Взял пример из документации, подставил свой DSN, запустил — ошибок нет. Обрадовался, пошёл писать дальше. А потом на первом же запросе выяснилось, что пароль я вписал от другой базы. И всё это время sql.Open спокойно возвращал мне nil вместо ошибки.
Оказалось, он туда и не ходил 😅
sql.Open не подключается. Он смотрит, что драйвер с таким именем зарегистрирован, разбирает строку подключения и отдаёт объект. Если в DSN синтаксическая опечатка — вот её покажут сразу. А жив ли сервер и верный ли пароль, на этом этапе не проверяет никто. В доке так и написано, «Open may just validate its arguments without creating a connection». Для настоящего похода в базу есть db.Ping().
Меня это тогда здорово сбило, потому что в других языках открыл — значит открыл.
Ну и вдогонку, раз уж про это. То, что возвращает Open, вообще не соединение, а пул. Он сам открывает их столько, сколько нужно, сам переиспользует, лезть к нему из горутин одновременно можно. Один такой на всё приложение.
Видел код, где его звали в каждом хендлере. Вот это больно: пулы плодятся, база захлёбывается коннектами, а по коду всё выглядит опрятно. | 942 |
| 20 | #memes | 983 |
