Ευγένιος
Могу быть не правым.
Je
Так а откуда плохим тоном это стало? Какая-то конкретика может быть есть? Двухэтапная сборка это совершенно нормально, собираешь и фигачить в альпину, один докер-файл
Je
Ну зависимости можно тянуть, совершено верно, а компилировать в контейнере. Ну вроде это считается плохим тоном.
Вот заметка со сборкой и копированием в минимальный образ получившегося бинарника http://dinolai.com/notes/golang/minimize-golang-executable-docker-image-with-alpine-linux.html
Je
Я питонист
Не позорь питонистов, почитай внимательнее документацию, в го скейл на уровне приложения, сущности вроде сервера приложений совершенно излишни. Начать стоит отсюда, пожалуй https://golang.org/pkg/net/http/#Server.Serve
Michael
Вот заметка со сборкой и копированием в минимальный образ получившегося бинарника http://dinolai.com/notes/golang/minimize-golang-executable-docker-image-with-alpine-linux.html
alpinelinux хорош, но в некоторых случаях можно просто го бинарь в контейнер класть, если есть такая необходимость
Michael
Я питонист
держите наркомана
Slava
Питонистом быть не зазорно
Je
если сборку можно автоматизировать, зачем это позволять делать человеку и тем самым увеличивать количество ошибок? идеально, если твой код может в течение 5 минут задеплоить человек, вырванный из толпы
Danila
держите наркомана
Почему питонисты наркоманы?
kås
Скажи мне кто твои друзья
Je
Питонистом быть не зазорно
ну такое, об этом прошлом лучше элегантно умолчать иной раз
Slava
Для кого прошлое, а кому и светлое настоящее
Michael
я тоже пишу код на питоне, но в приличных кругах воспитание не позволяет выражаться и если хочется делать как на питоне привык, то, вероятно, стоит продолжать использовать питон
Roman
Зависимости из vendor же, а сборка приложения в докере это совершенно нормально, если хочется уменьшить образ, то можно из go-образа в альпину скопировать результат сборки
"Зависимости из vendor же" из какого vendor? после go get … надо перенести зависимость в папку vendor внутри проекта? или я что-то не так понял?
Roman
dep/vgo это делают
понял, спасибо
Nikita
Glide уже не используют совсем?
Alexey
Кто-то использует. Но его не поддерживают уже давно
Zloy-Dobry
Ох
Zloy-Dobry
Перекотиться бы
Daniel
а в чем проблема-то?
Anonymous
Glide уже не используют совсем?
Используют, пока не подводил)
Nikita
Кто-то использует. Но его не поддерживают уже давно
поддерживаем но не разрабатываем получается
Alexey
Последний коммит в том году. Issues авторы не смотрят. Это не поддержка
Nikita
получается да
Vladislav
Glide уже не используют совсем?
Использую, но потому что было, а не потому что хорошо.
Alexander
Что-то пакетные менеджеры для go - уже почти как js-фреймворки. Каждый год несколько новых появляется и несколько умирает
Alexander
В скорости появления? 😀
Sergei
В скорости появления? 😀
js-фреймворки каждые несколько часов
Nazar
бляха
Nazar
Нужно от ссылки получить базовую типа
Nazar
юзаю filepath.Dir, если вывести то заместо http:// получаю http:/, если передавать уже обрезаную ссылку в http.Get получаеться http:///
Nazar
и крашет ошибка http: no Host in request URL
🏁Александр
ничего не понятно
🏁Александр
еще раз с начало
Nazar
https://golang.org/pkg/path/filepath/#Dir
🏁Александр
Nazar
есть ссылка, http://gavnozalupa.com/fnjdsnjfksd/fjdsfiosd/lolkek использую filepath.Get при выводе в log.Println получаеться http:/gavnozalupa.com/fnjdsnjfksd/fjdsfiosd при передаче этой ссылки в http.Get вылазит ошибка Get http:///gavnozalupa.com/fnjdsnjfksd/fjdsfiosd: http: no Host in request URL
Nazar
вооот
Slava
А это разве путь к файлу?
Nazar
мутки с слешами
Nazar
неа
Nazar
а как тогда?)
Slava
Что как?
Slava
Сядь спокойно и напиши код в плейграунде
Nazar
фух, отошло благодаря https://golang.org/pkg/net/url/, аж пот выступил
Nazar
просто ранее юзал схожие функции в других языках, и проблем не было)
🏁Александр
но у нас тут pythonless канал 🙂
Michael
сам удивляюсь
Andrey
я питонист
Zloy-Dobry
Peezdareekee
🏁Александр
я питонист
не тряси своим питоном тут 🙂
Andrey
ой извините :)
Anonymous
Всем, привет! Подскажите, пожалуйста, в какую сторону копать? Может есть примеры? Имеется задача, выполнять через системные вызовы запуск программы, и передачи данной программе команды, при этом результат каждой из команд необходимо анализировать отдельно.
Anonymous
img := &engine.Image{ Id: func () int {s , _ := strconv.Atoi(id); return s}(), Name: fileName, Path: userAvatarOrigin, Type: fileEndings[0], } На сколько плохо использовать это выражение? Id: func () int {s , _ := strconv.Atoi(id); return s}(),
Anonymous
Даже так Id: func () int {s , err := strconv.Atoi(id); if err != nil {return s}}(),
Daniel
не плохо
Daniel
но - зачем?
Anonymous
но - зачем?
Чтобы не занимать лишнюю строку кода для приведение типов
Daniel
а?!
Anonymous
а?!
Хотя да, можно это сделать в момент ее объявления
Michael
Даже так Id: func () int {s , err := strconv.Atoi(id); if err != nil {return s}}(),
такое видел применяют при кодогенерации обвязок над не родными библиотеками, в обычном случае просто объявить метод и ок
L
img := &engine.Image{ Id: func () int {s , _ := strconv.Atoi(id); return s}(), Name: fileName, Path: userAvatarOrigin, Type: fileEndings[0], } На сколько плохо использовать это выражение? Id: func () int {s , _ := strconv.Atoi(id); return s}(),
Ну так при получении ид, ты будешь постоянно парсить строку. Зачем, если можно сделать один раз при инициализации.
L
Или лениво при первом вызове с последующим кэшированием
Roman
Ну так при получении ид, ты будешь постоянно парсить строку. Зачем, если можно сделать один раз при инициализации.
так он же парсит строку только при присвоении, разве нет? он же в Id не функцию сохраняет, а результат этой функции
MOS2502
Коллеги, подскажите правильный способ изменить вывод программы: https://play.golang.org/p/aEiZiiv1IfZ как правильно изменить, что бы двойка с лева не сжиралась, пробовал разными способами, не получилось никак, сейчас оставил, от цикла for. Как можно элегантно решить проблему?
Daniel
я не понял вопроса
Илья
так лучше?
MOS2502
Нет, имелось ввиду 1 STP1, 2 STP3
Aleksandr
Нет, имелось ввиду 1 STP1, 2 STP3
переделай мапу на слайс
Aleksandr
у тебя же там 2 не индекс, а ключ
Aleksandr
либо выводи не ключ, а i, который отдельно считай
MOS2502
там индекс, согласен, просто откатил на начало, без каких либо манипуляций, отдельно тоже пробовал, не выходит каменный цветок