xasai.denet 
    
    
 
    
    George 
    
    
 
    
    🔥 
    
    
 
    
    George 
    
    
        
        
        
        В юзерспейсе через dpdk, если ещё чуть подробнее. Векторами, чтобы попроизводительнее. Ибо надо многие гигабиты осилить.
    
 
    
    Таршиш 
    
    
 
    
    Таршиш 
    
    
        
                    
                        
                            
                            А что вы пишете на си , если не секрет?
                        
                    
                
        
        
        В двух словах трудно сказать. В основном системы измерения и управления сложными роевыми системами. Между задачами приходится писать самому себе инструментарий, которыы может ускорить процесс работы над будущими задачами. И с этой  неопределенностью очень помогает справляться гибкость языка, его абмтракции. А когда приходит конкретная задача, я наследуюсь от абстрактых классов. То есть без ООП я бы просто завалил все сроки
    
 
 
    
    Maks 
    
    
        
        
        
        Абстрактный класс с логикой?
    
 
    
    Maks 
    
    
        
        
        
        В го же в целом можно сделать это через композицию думаю
    
 
    
    Maks 
    
    
        
        
        
        А так интерфейсы есть везде же
    
 
    
    Maks 
    
    
        
        
        
        Просто в го надо понять подход
    
 
    
    Maks 
    
    
        
        
        
        И тогда будет в целом все плюс минус так же
    
 
    
    Maks 
    
    
        
        
        
        Так же на абстракциях можно и в пхп и шарпе писать в таком случае. Они тоже получается гибкие.
    
 
    
    Maks 
    
    
        
        
        
        Единственное чего не хватает это джинериков
    
 
    
    Maks 
    
    
        
        
        
        Но и их в го скоро завести должны вроде как
    
 
    
    Maks 
    
    
        
        
        
        сел за ноут без мышки, и понял что катастрофически не хватает кнопки на клаве или тачпаде назад, как на мышке0
    
 
    
    Maks 
    
    
        
        
        
        Кстати в озоне несколько тысяч микросервисов
    
 
    
    Vitaliy 
    
    
        
                    
                        
                            
                            Если я за месяц не смогу найти нишу для Go, то уволят шестерых гошников, которые пока ещё трудоустроены
                        
                    
                
        
        
        Кажется, если так ставится вопрос, то и хорошо. Причем для самих гошников.
        Даже если найдете нишу, то у людей, которым пришлось что-то доказывать, все равно осадочек останется.
        Лучше, быть может, работать там, нде уважают? Тем более... Выходные пособия!
    
 
 
    
    Denis 
    
    
        
        
        
        Ребята, скажите, а я должен или не должен использовать vendor в проекте?
    
 
    
    Maks 
    
    
        
        
        
        всё я понял
    
 
    
    Maks 
    
    
        
        
        
        крч если у тебя есть внешние зависимости, то ты пишешь go mod vendor
    
 
    
    Maks 
    
    
        
        
        
        и он тебе либы затаскивает в проект
    
 
    
    Maks 
    
    
        
        
        
        именно в папку вендор
    
 
    
    Maks 
    
    
        
        
        
        не, вендор только локально
    
 
    
    Maks 
    
    
        
        
        
        у тебя в го мод прописывается версия библиотеки
    
 
    
    Maks 
    
    
        
        
        
        и грузится либа
    
 
    
    Maks 
    
    
        
        
        
        что бы все работали с одной либой
    
 
    
    Maks 
    
    
        
        
        
        Просто если у тебя либа будет глобально стоять, то в разных проектах могут быть разные версии этой либы
    
 
    
    Maks 
    
    
        
        
        
        Правильнее сказать пакета
    
 
    
    Vitaliy 
    
    
        
        
        
        А, видел, что в репы вендор тащат.
    
 
    
    Maks 
    
    
        
        
        
        И соответственно может что то не работать или работать не правильно, или конфликтовать
    
 
    
    Maks 
    
    
        
        
        
        Иногда в репу тащат вендор по той причине, что боятся что либа которую ты используешь пропадет из гита
    
 
    
    Vitaliy 
    
    
 
    
    Vitaliy 
    
    
        
        
        
        Или модули
    
 
    
    Vitaliy 
    
    
        
        
        
        Хз какая терминология
    
 
    
    Maks 
    
    
        
        
        
        Щас попробую узнать почему надо го вендор юзать а не го гет
    
 
    
    Vitaliy 
    
    
 
    
    Maks 
    
    
        
        
        
        крч мне говорят если у тебя модуль то он будет искать пакет в вендоре
    
 
    
    Maks 
    
    
        
        
        
        если го мод файл есть
    
 
    
    Maks 
    
    
        
        
        
        а если нет то в го пас
    
 
    
    Maks 
    
    
        
        
        
        в общем принято юзать вендор
    
 
    
    Maks 
    
    
        
        
        
        его  и юзай)
    
 
    
    Maks 
    
    
        
        
        
        Го пас типо легаси, до прихода модулей юзали
    
 
    
    Maks 
    
    
        
        
        
        Для либ
    
 
    
    Maks 
    
    
        
        
        
        Или когда ты делаешь прилу не модулем, но щас так не делают
    
 
    
    Maks 
    
    
        
        
        
        Щас нам расскажут)
    
 
    
    Maks 
    
    
        
        
        
        Все же говорят типо могут быть траблы если у тебя несколько проектов разные версии либы юзают, по этому и придумали вендор, но точно я хз
    
 
    
    Maks 
    
    
        
        
        
        sort.Slice(твойСлайс, func(i, j int) bool { return твойСлайс[i].полеСтруктуры < твойСлайс[j].полеСтруктуры})
    
 
    
    Maks 
    
    
        
        
        
        Вроде так
    
 
    
    Maks 
    
    
        
        
        
        Еще говорят для зависимостей прокси юзают, но я пока ваще не в курсе что там к чему
    
 
    
    Maks 
    
    
        
        
        
        Ага, это что бы когда либа пропадает с гита у тебя оставался кеш этой либы
    
 
    
    Maks 
    
    
        
        
        
        Но такое бывает супер редко
    
 
    
    Maks 
    
    
        
        
        
        Ага
    
 
    
    Maks 
    
    
        
        
        
        Можно глобально но лучше локально)
    
 
    
    Vladyslav 
    
    
        
        
        
        Нужно будет тогда потыкать этот вендор и поставить все по фен шуй, как в озон)
    
 
    
    Null 
    
    
        
        
        
        🔝 Интерфейсы в Go для повышения тестируемости кода
        
        https://nuancesprog.ru/p/4671/
        
        @Golang_google
    
 
    
    Maks 
    
    
        
        
        
        Но, как я уже говорил, это крайне редко и есть так называемый кеш либ таких для го
    
 
    
    Maks 
    
    
        
        
        
        Плюс можно свой сервис намутить
    
 
    
    Maks 
    
    
        
        
        
        Прокси для библиотек
    
 
    
    Maks 
    
    
        
        
        
        Который будет например в той же сиайке качать репы через проксю которая будет их кешировать
    
 
    
    Maks 
    
    
        
        
        
        Это лучше чем в репе хранить
    
 
    
    Maks 
    
    
        
        
        
        Кто имеет большой опыт в го. Почему при создании инстанса какого либо объекта(структуры) везде используют создание через метод явный, типа apiserver := apiserver.New() а не apiserver := apiserver.ApiServer{}
    
 
    
    George 
    
    
 
    
    Maks 
    
    
        
        
        
        То есть 4 способа есть для создания экземпляра с дефолтными параметрами, которые будут идентичны
    
 
    
    Maks 
    
    
        
        
        
        1. myType := new(mypackage.MyType)
        2. myType := mypackage.MyType{}
        3. myType := mypackage.New()
        4. var myType mypackage.MyType
        //mytype.go
        package mypackage
        
        type MyType struct {}
        
        func New() {
        return MyPackage{}
        }
    
 
    
    Maks 
    
    
        
        
        
        Но если нужны не стандартные значения полей структуры, подойдут больше 2 и 3 способы, которые будут аналогичны?
    
 
    
    Maks 
    
    
        
        
        
        Я в 3 тож могу указатель возвращать
    
 
    
    Maks 
    
    
        
        
        
        Точно, понял.
    
 
    
    Maks 
    
    
        
        
        
        Так я же описад функцию нью своего пакета. Ладно, мы тут вроде разобрались.
    
 
    
    George 
    
    
        
        
        
        Да, я в целом про получение объекта через функцию когда можно напрямую
    
 
    
    George 
    
    
        
        
        
        Даже при отсутствии логики инициализации
    
 
    
    Maks 
    
    
        
        
        
        Все же лучше использовать функцию я думаю глобально всегда.
    
 
    
    Maks 
    
    
        
        
        
        То есть принять что то за стандарт
    
 
    
    Maks 
    
    
        
        
        
        Что бы не было иных вариантов по коду
    
 
    
    George 
    
    
        
        
        
        Хорошая логика, консистентность наше всё