Andrey
ну гугл какие-то варианты выдает я думаю что-то можно придумать )
Akim
Это что за тесты такие, они во время запуска изменяют схему бд?
Maks
Это что за тесты такие, они во время запуска изменяют схему бд?
Функциональные автотесты в контейнере которые поднимают базу, накатыыают схему и так далее?
Илья
не fmt.Scan, а fmt.Scanln
Илья
fmt.Scan просто читает первое слово, а тебе нужно всю строку
Null
🖥 Реализация HTTP файлового сервера с нуля с использованием Golang Протокол HTTP - это протокол прикладного уровня, который обычно реализовывался на основе протокола TCP до HTTP/3. Поскольку протокол TCP является надежным протоколом потоковой связи, после установления соединения как отправители, так и получатели могут отправлять данные любой длины, и стек TCP также может выполнять нарезку данных. Таким образом, протоколы прикладного уровня на основе TCP должны согласовывать формат передачи сообщений, чтобы как отправители, так и получатели могли извлечь полное сообщение из принятого потока данных. Протокол HTTP - это одно из многих соглашений. Короче говоря, TCP - это протокол транспортного уровня, который обеспечивает потоковую связь, а HTTP определяет формат сообщения. ➡️ Читать дальше 🔩 Код @Golang_google
Кіт ✙
🖥 Реализация HTTP файлового сервера с нуля с использованием Golang Протокол HTTP - это протокол прикладного уровня, который обычно реализовывался на основе протокола TCP до HTTP/3. Поскольку протокол TCP является надежным протоколом потоковой связи, после установления соединения как отправители, так и получатели могут отправлять данные любой длины, и стек TCP также может выполнять нарезку данных. Таким образом, протоколы прикладного уровня на основе TCP должны согласовывать формат передачи сообщений, чтобы как отправители, так и получатели могли извлечь полное сообщение из принятого потока данных. Протокол HTTP - это одно из многих соглашений. Короче говоря, TCP - это протокол транспортного уровня, который обеспечивает потоковую связь, а HTTP определяет формат сообщения. ➡️ Читать дальше 🔩 Код @Golang_google
ОПА, С НУЛЯ ЭТО МЫ УМЕЕМ, ЭТО МЫ МОГЕМ
Кіт ✙
🖥 Реализация HTTP файлового сервера с нуля с использованием Golang Протокол HTTP - это протокол прикладного уровня, который обычно реализовывался на основе протокола TCP до HTTP/3. Поскольку протокол TCP является надежным протоколом потоковой связи, после установления соединения как отправители, так и получатели могут отправлять данные любой длины, и стек TCP также может выполнять нарезку данных. Таким образом, протоколы прикладного уровня на основе TCP должны согласовывать формат передачи сообщений, чтобы как отправители, так и получатели могли извлечь полное сообщение из принятого потока данных. Протокол HTTP - это одно из многих соглашений. Короче говоря, TCP - это протокол транспортного уровня, который обеспечивает потоковую связь, а HTTP определяет формат сообщения. ➡️ Читать дальше 🔩 Код @Golang_google
В статье баг, кстати. Тот break под default выйдет из цикла, а из свитча
Кіт ✙
В следствии чего, нам придётся дождаться, когда входные данные закончатся, и только потом вернём данные. Хотя их вернуть можно сразу в дефолте
Кіт ✙
Вызывающий абонент? Странная формулировка
Иван
гугл переводчик?
Илья
Вызывающий абонент? Странная формулировка
ты просто не видел другие статьи админа (нет)
Davron
Chebyrash
Где modelmocks
Илья
или modelmocks)
Feofan
Не ну это
Khalid
if innerOfInput != <-outputStream так можно?
Khalid
с учетом, что в оутпут ничего не вставляли
Khalid
то есть я вытаскиваю пустоту
Khalid
он же может вытаскивать пустоту, да? он какое-то пустое значение выведет а не крашнется?
Vladislav
if innerOfInput != <-outputStream так можно?
намного быстрее спросить компилятор или ide
xdd
Всем привет, можете подсказать литературу/статьи/видео, чтобы начать микросервисы писать, понять как они общаются между собой?
Aleksandr
grpc.io
xdd
@alekstet @illiadimura thx
Null
🖥 Devzat Devzat – реализация чата по SSH Поскольку приложения SSH есть буквально на всех платформах, даже на вашем телефоне, вы можете подключиться к Devzat на любом устройстве. Интересные особенности: • Различные комнаты! • Поддержка markdown! Таблицы, заголовки, курсив и все такое • Подсветка синтаксиса кода #Go #SSH #Interesting #Useful 🖥 Github @Golang_google
A
Подскажите плз, как в Goland настроить, чтобы можно было запускать через Shift + F10 текущий открытый файл?
A
У настройках вижу только 3 типа запуска. По директории, файла, и пакету..
( ͡❛ ෴ ͡❛)
Ребят не знаете почему в рекурсии не работает нормальный аппенд и надо копию мэйкать у массива?
( ͡❛ ෴ ͡❛)
if target == 0 { cpyTmp := make([]int, len(arr)) copy(cpyTmp, arr) *res = append(*res, cpyTmp) return }
( ͡❛ ෴ ͡❛)
if target == 0 { *res = append(*res, arr) return }
( ͡❛ ෴ ͡❛)
Первое работает второе - криво
Andrey
Первое работает второе - криво
для начала я тебе посоветовал бы разобраться что такой массив и что такое слайс (и да, у тебя слайс), в чем его особенности и принцип работы
Илья
если через Shift+10, то нужно настраивать отдельно запуск для каждого файла
Aleksandr
есть еще https://github.com/cosmtrek/air
Michael
Привет. Я ищу инструмент для создания графа пакетов в моем коде. Что бы вы посоветовали
Michael
да
Илья
https://github.com/Helcaraxan/gomod#gomod-graph
Илья
можно взять визуализатор для go mod graph, но по факту он здесь под капотом
Michael
что то не пашет с workspace. попробую починить
( ͡❛ ෴ ͡❛)
Может скинешь весь код в плейграунд?
Сори, но что такое плейграунд?
A
Вопрос по конструкторам)) часто встречал примеры, когда есть не экспортируемая структура, и для нее написан экспортируемый конструктор. И таким образом, инкапсулируется сложность и детали инициализации. Я попробовал сделать так же, но у меня ide подсвечивает ошибку, что я не могу создать не экспортируемую структуру.
A
Подскажите плз, в чем проблема?
A
я понимаю, но в чем проблема? Так нельзя делать? или так не принято? Почему ide считает что это плохо?
Илья
Плохо, потому что возвращется неэкспортируемая структура
Илья
которая не должна быть вне пакета
A
но это нормальный подход? так принято делать?
Илья
Не принято
Илья
но такое используют в очень специфичных кейсах
Sergey
но это нормальный подход? так принято делать?
Если хотите так извращаться, то опишите интерфейс с нужными методами, которые реализует ваша структура и возвращайте её как интерфейсный тип. Но вообще, многие не рекомендуют в простых случаях добавлять ненужные абстракции
Oleg
2 строчка какая-то странная
Khalid
криво вызвал мейк
Khalid
пасиб
Florian Geyer von Giebelstadt
Привет. У меня есть задача по организации пинга серваков и докер-контейнеров. Пинг серверов выглядит примерно так: Нужно разобраться в TCP руками собирать пакеты, сделать так, чтобы мы слали SYN, принимали SYN, ACK, а затем просто не отвечали ответным SYN. Подскажите что можно почитать/посмотреть по этой теме. С сокетами и пакетами в го не доводилась работать ещё.
Tonny 🐍
https://www.udemy.com/course/go-programming-language-crash-course/ нормальный курс?
Khalid
package main import "fmt" func calculator(arguments <-chan int, done <-chan struct{}) <-chan int { outputChan := make(chan int) go func(op chan int) { sum := 0 defer close(outputChan) for { select { case <- arguments: sum += <- arguments case <- done: outputChan <- sum return } } }(outputChan) return outputChan } func main(){ arguments := make(chan int) done := make(chan struct{}) result := calculator(arguments, done) for i := 0; i < 10; i++ { arguments <- 1 } close(done) fmt.Println(<-result) } Посмотрите в дебаг, пожалуйста, почему i проскакивает и в sum в итоге не 10, а 5 получается
Khalid
на 10 i, sum равно 5
Khalid
а должно 10 вроде как
Igor
https://www.udemy.com/course/go-programming-language-crash-course/ нормальный курс?
смотря чего ожидать. Скорее всего пересказ стандартной доки и все. Если лень пройти Go Tour то как вариант. Если нормально выучить язык то лучше читать книгу и документацию
Khalid
func merge2Channels(fn func(int) int, in1 <-chan int, in2 <-chan int, out chan<- int, n int) { } можете объяснить синтаксис первого параметра, второго, третьего и четвертого
Khalid
первое это функция фн которая принимает и возвращает инт да?
Oleg
Про каналы , там просто фиксируется , что каналы только для чтения или записи(стрелочками)