Anonymous
nikita
его метод Exists тоже будет вызывать`Open`
nikita
просто единственный common кейс, когда тебе надо проверить, есть ли файл, когда ты проверяешь сразу много файлов. а тогда ты просто вычитываешь навания файлов в директории и смотришь на слайс
nikita
разве нет?
Anonymous
Короче вот тут мнение разраба
https://stackoverflow.com/questions/12518876/how-to-check-if-a-file-exists-in-go
[...] It's not actually needed very often and [...] using os.Stat is easy enough for the cases where it is required.
Anonymous
Тогда остаётся вопрос, почему нету функции простого копирования файлов.
nikita
ну он как раз пишет, что это никто не использует
Michael
nikita
nikita
даже ой
Michael
Michael
но с ос статс как-то через чур
Anonymous
Alexey 〒.
Michael
юзай команды bash
Michael
там и го не нужен для просто скопировать
nikita
Alexey 〒.
из го вызывать команды bash)
Anonymous
Dmitry
nikita
Aleksandr
ребят, а вы еще продолжаете?))) третий час подходит к концу
nikita
скучно (
Anonymous
а реализацию то)
Ты наверно не понял, про что ведём разговор. Вопрос в том, почему на такой простой функционал каждый прогер должен писать свою реализацию вместо того, чтобы вызвать свою функцию из стандартной либы.
nikita
Anonymous
Вот по поводу перемещения https://github.com/golang/go/issues/13766
Anonymous
Anonymous
Ладно, я что-то устал ))
nikita
nikita
да
nikita
Michael
на частоту сферических коней в ваккууме
Anonymous
Michael
в баре с шмузи
Michael
провели точно хорошо время
Alexey 〒.
Alexey 〒.
в случае создания не нужно париться на счет прав и флагов.
А вот проверка выполняется и без сахары просто
Anonymous
Michael
а что с виндой не так?
Michael
ругнуться на отсутствие прав и она может
Zloy-Dobry
Michael
ой, всё! (с)
Zloy-Dobry
ага да
Axm
делаю простой DI типа того, как описано в этой статье https://appliedgo.net/di/. если у меня все в разных пакетах, то куда будет по фень-шую засунуть интерфейс? т.е. пакет А с методом М1 требует интерфейс И1. структура с методом, который его реализует, находится в пакете Б. интерфейс надо куда класть? в А, Б или третий пакет?
Aleksandr
поясни, не хочу додумывать, что ты имел в виду
Aleksandr
что значит "пакет требует", кого реализовывает?
Viktor
Anonymous
субъективный вопрос
Axm
ну вот мне интересно, кто как думает
Anonymous
если все остальное в разных пакетах - то в отдельный пакет, если они все в одном пакете - то в тот же пакет
Aleksandr
смотри. ты можешь воспользоваться интерфейсом стороннего пакета (пусть и своего), можешь абстрагироваться своим интерфейсом. все зависит от того, насколько ты хочешь сделать несвязанный пакет
Aleksandr
хочешь узнать кто как бы сделал, озвучь конкретный кейс
Axm
да я сразу понял, что можно куда угодно, вопрос куда правильнее?
Aleksandr
> представь, что Poem, Notebook и Napkin в разных пакетах
это не имеет смысла
Anonymous
я бы положил все это в 1 пакет
Aleksandr
Axm
чо это? а если у меня много кода и клиенты к разным системам?
Aleksandr
Axm
есть несколько клиентов к разным третьим системам. в одном клиенте надо вызывать другой по ходу работы. в другом тоже так.
Илья
Axm
а как надо?
Axm
скажите еще, как отделить тест от пакета? чтобы переменные внутри тестов не были доступны пакету остальному. ну или как передать из TestMain нужные значения внутрь тестовых методов, не делая их глобальными?
Stepan
Aleksandr
Aleksandr
по хорошему есть вот такая крайность - каждый пакет у тебя автономная единица, для каждой зависимости имеющая свой интерфейс. и пакеты между собой общаются через адаптеры. но зачастую это оверинжинирнг
Aleksandr
package A
type Client1 struct
type Client2 interface
type Client2BDecorator struct
package B
type Client2 struct
type Client1 interface
type Client1ADecorator struct
ceiling cat
Интересно
Aleksandr
декораторы реализуют интерфейсы своего пакета, декорируя клиентов из другого пакета
Axm
не, мне так сложно сейчас не надо, это будет слишком
Aleksandr
это в полной парадигме clean arch но этого слишком много для связанных систем
Axm
в данный момент у меня один пакет (клиент) вызывает по ходу работы метод другого пакета (клиента). то есть, запрашивает данные в другой системе.