• Linter для Go для выявления переменных без явной инициализации?

    @khevse
    Иногда опечатка, но чаще - это переиспользование имён переменных при множественном присваивании значений результата некоторой функции.

    Если немного усложнить предыдущий вариант
    import "fmt"
    
    func invoke() (int, error) {
    	return 2, nil
    }
    
    func getX(src int) (int, error) {
    	var x int
    	switch src {
    	case 1:
    		x, err := invoke()
    		if err != nil {
    			return 0, err
    		}
    		fmt.Println(x)
    	}
    
    	return x, nil
    }
    
    func main() {
    	x, err := getX(1)
    	fmt.Println(x, err)
    }
    -----
    2
    0, nil
  • Нужно в VSC выделить произвольный текст и горячими клавишами обернуть его в произвольный же текст, есть такой плагин?

    @khevse
    Для разных ситуаций удобны разные инструменты. Поэтому я бы не стал однозначно говорить, что что-то однозначно лучше чего-то. Ходить и вносить одинаковые правки во многих файлах на постоянной основе предложенным мной способом, согласен, не удобно. Но и мастерить снипет, для правки в нескольких местах одного файла с добавлением биндингов на хоткеи - явно излишне.
  • Получить наглядный граф путей выполнения в golang?

    @khevse
    Я обычно чтобы разобраться в работе сервиса начинаю писать для него автотесты. И сам знания получаешь и проекту профит.
  • Как выйти из тупика, как поднять уровень?

    @khevse
    キム ファイブプラス, вероятно, что все скилы указаны для вопроса.Чтобы показать общий кругозор. У вас я думаю в навыках тоже не один язык программированияи ни одна технология. Но тут дело в том, что:
    - в резюме обычно перечисляют скилы, которые нужны для конкретной позиции. Зачем в вакансии на nodejs указывать знание c++ и т.п. (конечно если этого не требует вакансия).
    - у всех разные подходы к собеседованию. Мне например, как интервьверу будет интересен широкий кругозор человека, т.к. это говорит об обучаемости. И что касается вариантов проведения собеседований, то мне очень нравится формат, когда есть готовый кусок кода и собеседуемый рассказывает, что в этом коде не так и как нужно делать правильно.
    - предлагая тестовое задание перед собеседовнием, вы точно потеряете 99% кандидатов. Т.к. бывалые точно откажутся от него, а в 1% войдут только начинающие, которым ну очень нужна работа. Ну или ваша вакансия предлагает х2 от рыночной, что всем хочется к вам попасть.
  • Как выйти из тупика, как поднять уровень?

    @khevse
    Тестовые там не дают(по крайней мере когда я проходил год назад), но я бы не рекомендовал туда ходить без предварительных собеседований в других компаниях.
    В ozon и авито три этапа собеседований: алгоритмическая, платформа и архитектура(это по golang, по node не знаю). Каждая по час-полтора. Платформа - знание языка (как работает планировщик, работа с памятью и т.п.); архитектура - проектирование какого-нибудь сервиса типа месенджер, твитер и т.п.; про алгоритмы и так понятно.
  • Как улучшить навыки в построении архитектуры БД и проектирования систем?

    @khevse
    из-за требования регистрации посмотреть не могу, но вот эта книжка точно дает хорошие знания.
  • [golang] Как выполнить статическую линковку с++ библиотек при сборке?

    @khevse Автор вопроса
    Да, всё верно. Для линковки c++ используется swig, который рекомендуется разработчиками goolang.
    Отмечу также что динамическая линковка на данный момент работает, но при миграции собранного exe на другие машины возникает куча проблем с зависимостями.

    Немного обновил проект на github для более понятного процесса сборки.

    Спасибо.