uz
Feedback

Firibgarlarga uchmang! Telemetrio bunday kanallarni topadi va belgilaydi 👉 Belgini ko‘rmoqchi bo‘lsangiz, obuna bo‘ling

PRO Go

PRO Go

Kanalga Telegram’da o‘tish

Изучай язык Go вместе с нами. Закрепить теорию на практике можно на курсе - https://stepik.org/a/158385/pay?promo=0dbf5c609937c00c Подготовится к собеседованиям - https://stepik.org/a/205199/pay?promo=06f35ce5ae028fa2 По всем вопросам: @Santiago_de

Ko'proq ko'rsatish
3 263
Obunachilar
-124 soatlar
-117 kun
-5030 kun
Obunachilarni jalb qilish
Noy '26
Noyabr '26
+4
0 kanalda
Oktabr '26
+20
0 kanalda
Get PRO
Sentabr '26
+30
0 kanalda
Get PRO
Avgust '26
+13
0 kanalda
Get PRO
Iyul '26
+15
0 kanalda
Get PRO
Iyun '26
+21
0 kanalda
Get PRO
May '26
+26
1 kanalda
Get PRO
Aprel '26
+44
0 kanalda
Get PRO
Mart '26
+21
0 kanalda
Get PRO
Fevral '26
+31
0 kanalda
Get PRO
Yanvar '26
+53
2 kanalda
Get PRO
Dekabr '25
+38
0 kanalda
Get PRO
Noyabr '25
+81
1 kanalda
Get PRO
Oktabr '25
+103
0 kanalda
Get PRO
Sentabr '25
+97
0 kanalda
Get PRO
Avgust '25
+92
0 kanalda
Get PRO
Iyul '25
+145
0 kanalda
Get PRO
Iyun '25
+95
0 kanalda
Get PRO
May '25
+115
0 kanalda
Get PRO
Aprel '25
+121
0 kanalda
Get PRO
Mart '25
+184
0 kanalda
Get PRO
Fevral '25
+149
0 kanalda
Get PRO
Yanvar '25
+201
0 kanalda
Get PRO
Dekabr '24
+261
0 kanalda
Get PRO
Noyabr '24
+138
2 kanalda
Get PRO
Oktabr '24
+181
2 kanalda
Get PRO
Sentabr '24
+157
0 kanalda
Get PRO
Avgust '24
+177
3 kanalda
Get PRO
Iyul '24
+234
2 kanalda
Get PRO
Iyun '24
+243
2 kanalda
Get PRO
May '24
+259
0 kanalda
Get PRO
Aprel '24
+258
0 kanalda
Get PRO
Mart '24
+288
0 kanalda
Get PRO
Fevral '24
+224
0 kanalda
Get PRO
Yanvar '24
+164
0 kanalda
Get PRO
Dekabr '23
+173
2 kanalda
Get PRO
Noyabr '23
+118
1 kanalda
Get PRO
Oktabr '23
+9
0 kanalda
Get PRO
Sentabr '23
+203
0 kanalda
Get PRO
Avgust '23
+1 043
0 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
13 Noyabr0
12 Noyabr0
11 Noyabr+1
10 Noyabr0
09 Noyabr0
08 Noyabr+1
07 Noyabr0
06 Noyabr+1
05 Noyabr0
04 Noyabr0
03 Noyabr0
02 Noyabr+1
01 Noyabr0
Kanal postlari
Что, если 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%.
Скидки на курсы Go уже действуют К акции 11.11 выбирай курсы на Stepik со скидкой 20%. На основы программирования скидка 50%. 1 350 ₽ вместо 2 700 ₽. • Основы программирования • Для продвинутых • Алгоритмы поиска и сортировки • Базовый курс по структурам данных • Алгоритмы и структуры данных До 11 ноября включительно, 23:59 МСК. Скидки применяются автоматически. На PRO Go. Базы данных сохраняется скидка 30% до 14 ноября, 23:59 МСК. Купить можно сейчас, а начать позже. Доступ остается навсегда. Нужна помощь? Напиши нашему боту.
281
3
Приложение закрылось. А данные остались 🙂 Показываем небольшой пример, собранный из материалов курса «PRO Go. Базы данных».
Приложение закрылось. А данные остались 🙂 Показываем небольшой пример, собранный из материалов курса «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. В курсе ты пройдешь его д
Курс «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
Matn yo'q...
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
#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
#memes
983