Задать вопрос
  • Неточность формулировки в книге или же я не понимаю?

    Go - язык, который сознательно создавался, как очень простой язык. В Go всегда всё копируется. Если это базовый тип, то копируется базовый тип, если это структура, то копируется структура, если это массив, то копируется весь массив, если это указатель, то копируется указатель. Если это дескриптор слайса, то копируется этот дескриптор (не сами данные). И нет этих внезапных указателей, которые могут испортить жизнь джаваскриптизёру или пыхарю.

    Поэтому, в Go не надо зазубривать, какие операции что возвращают, а мы просто глядим в нашей мега-IDE, что конкретно нам возвращает time.Now()
    А возсращает она нам очень простую структурку time.Time

    type Time struct {
        wall uint64
        ext  int64
        loc  *Location
    }


    И что мы видим? Что из ссылок в этой структуре только loc, который занимается исключительно часовыми поясами, а само время хранится в обычных целочисленных переменных без всяких ссылок. А т.к., как мы говорили ранее, в Go всегда всё копируется, то внезапному указателю (ссылке) просто неоткуда взяться.

    Если вы запамятовали, и сомневаетесь, что происходит при присваивании, например, слайса, мапы или интерфейса, то лучшим способом это определить будет не зазубривать, а изучить, как устроены слайс, мапа или интерфейс изнутри, и тогда вы сами всё поймёте. И сделать это будет несложно, потому что язык Go написан на языке Go и использует свои же примитивы для своих же структур данных.

    Из всего вышеописанного мы делаем вывод, что не все книжки одинаково полезны даже для подтирания, не то что для изучения.

    Я рекомендую вам самый лучший инструмент для первоначального вкатывания в Go - это официальный курс "A Tour of Go", где вы в интерактивном режиме изучите базовые основы языка за пару дней. А дальше уже можно смотреть на книги, и уже самому находить в них такие вот несуразности. Не стесняйтесь преходить прямо в IDE на типы или определения функций, чтобы самому смотреть, что же там возвращается. Так как, на наше счастье, Go - это строго-типизированный язык, то никаких сюрпризов и подвохов там не будет.

    P.S. Нашёл отличную статью со списком материалов в дополнение: https://habr.com/ru/companies/selectel/articles/929858/
    Ответ написан
    2 комментария
  • Как найти удалённую работу с 20+ лет опыта в разработке?

    TrueBers
    @TrueBers
    Гуглю за еду
    Что я делаю не так?
    Например, всё.
    Уехать из России и искать работу на hh... ну, это очень непонятное решение, мягко говоря. Банковские карты поменял, место жизни поменял, а hh-помойку и мышление не поменял.

    Пробовал освоить Linkedin, но я устал от ботов и спама, забил на них. Выхлопа ноль.
    С ресурса, где 90% всех вакансий мира нет выхлопа? Очень странный вывод. Звучит как оправдание не искать работу. На LinkedIn есть всё. И блоги, и эйчары, и компании, и такие же соискатели. Можно общаться, буквально с любым сотрудником любой компании, достучаться хоть до CEO при желании.
    Про ботов вообще первый раз слышу. Ни разу не писали боты за 15+ лет аккаунта.
    hh по сравнению с LinkedIn просто земля и небо.

    Вижу 2 решения: либо вернуться в РФ и продолжать по накатанной как привык. Либо поменять мышление, избавившись от СНГшных принципов поиска работы. Создать нормальный аккаунт на LinkedIn, заняться откликами плотно, законнектиться с сетью единомышленников, подписаться на фиды интересующие. И будут сами писать по несколько эйчаров в неделю минимум.
    А уж получить минимальный оффер, в несколько раз превышающий по сумме СНГшный — дело пары недель.
    Ответ написан
    5 комментариев
  • Как установить драйвер mysql для golang?

    У вас проект не инициализирован, надо сделать go mod init имя
    Вы пытаетесь добавить модуль как это делалось лет 7 назад, когда в Го не было модулей. Теперь надо все проекты делать через модули.
    https://go.dev/blog/using-go-modules

    После того как сделаете init, добавляйте модуль через
    go get github.com/go-sql-driver/mysql@latest
    Ответ написан
    Комментировать
  • Как разобраться с зависимостями пакета pacman?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    После попытки установки pacman хочет интернет, что проявляется спамящим выводом в терминал.
    ...
    Задача в том чтобы pacman не пытался что то загрузить.

    pacman и не пытается что-то загрузить, почитайте внимательно выдаваемую на экран ошибку.
    Если кратко, то проблема в рефлекторе(Reflector) а точнее в reflector.service который у archiso по видимому стоит в автозапуске .
    Reflector пытается подобрать/обновить зеркала и естественно сделать этого не может из за отсутствующего интернета.
    Простым решением будет просто остановить его
    systemctl stop reflector.service

    п.с.
    по поводу офлайн инсталяции арча возможно вам будет полезна тема -- Offline installation
    Ответ написан
    3 комментария
  • Какой посоветуете фреймворк (с роутингом, orm и мидлваре) для Golang?

    Не рекомендую даже пробовать.
    В Go не принято использовать такое. Какие-то люди пишут и ORM (например Gorm), и различные роутеры, но это пользуется всё меньшей популярностью. В результате вы не получите много информации, когда вам понадобится решать какие-то проблемы с этими монстрами.
    Я когда-то приходил в Go с навыками Symfony + Doctrine ORM, и тоже не понимал, как они без этого живут. И в результате понял, что в подавляющем большинстве проектов эти монстры просто не нужны и становятся обузой, когда проект развивается. Да, поначалу всё хорошо и быстро, а когда в проект приходят новые сложные фичи, начинается борьба не только с этими фичами, но и с самим фреймворком, и, особенно, с ORM. В результате получается Франкенштейн, пляшущий на костылях. Всё это еле ворочается, а Доктрина выплёвывает такие запросы, что их даже читать страшно.

    P.S. Если вот всё же хотите пойти против системы и пользоваться наворотами, то можно рассмотреть связку Gin + Gorm
    Ответ написан
    3 комментария
  • Как правильно в bash задать регулярное выражение по sed?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    sed -En 's/.*<span. *class=\"post-b\">Исполнитель<\/span>: *([^<]*)<br.*/\1/p'
    Ответ написан
    4 комментария
  • Как организовать бэкап фото с телефонов и файлов с компьютера?

    @pfg21
    ex-турист
    Syncthing - синхронизация папок между устройствами по сети.
    p2p торрент-протокол, хеш-подпись, докачка, защита от обрывов, шифрация канала и все такое. скомпилрован под все что только можно.
    я правда перешел на ресилио синх (по функции то же самое, но коммерческий) ибо синхфинг на моем стареньком телефоне вел себя неприлично...

    синхроню между двумя линуксами (домашний десктоп + nas из старого компа на работе) виндовс на рабочем компе и андроидом на телефоне. вообще без вопросов
    Ответ написан
    Комментировать
  • Обьясните в чём суть инкапсуляции?

    Инкапсуляция защищает не от хакеров, а от неправильного использования объектов.
    Как пример - у тебя может быть класс "Заказ" и у него может быть какой-то статус (оплачен/ждёт оплаты/отменён итд).
    При этом у тебя могут быть правила типа: уже оплаченный заказ не может стать вдруг неоплаченным, а отменённый заказ нельзя взять обратно в работу.
    Тогда логично будет сделать поле статуса приватным (не доступным для изменения извне напрямую), а менять его только через методы, где будет происходить вся валидация.
    (В некоторых языках такие правила принято описывать на уровне типов, чтобы даже валидаций никаких было делать не нужно)

    Приватные поля объекта - это его состояние.
    Методы объекта - это способы его использования.

    Если у тебя в объекте появляется поле x и методы getX / setX (или авто геттеры/сеттеры в C#), то значит, что у тебя и нет явных причин делать это поле приватным, кроме соблюдения общепринятых соглашений.
    Ответ написан
    15 комментариев
  • /etc/network/interfaces No such file or directory Как пофиксить?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Абсолютные пути начинаются со слэша. Без него - относительные.
    Ответ написан
    Комментировать
  • Не могу понять, что такое VOID в С++?

    @maxyc_webber
    Web-программист
    вот видите бублик? вы выполняете функцию и сьедаете его. что у вас остается от бублика? true? false? null? void!
    Ответ написан
    5 комментариев
  • Есть ли смысл выключать 2,4Ггц на двухдиапазонном Wi-Fi роутере?

    @Drno
    особого смысла нет. у ТПлинка давно уже проблемы с перегревом вифи на некоторых моделях, так что если начнутся проблемы - проще купить нормальный роутер
    Ответ написан
    1 комментарий
  • Есть ли смысл выключать 2,4Ггц на двухдиапазонном Wi-Fi роутере?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Нет. Нагрев роутера вызывает какие-то проблемы? Зависает, тормозит и т.п.? Если да - то очевидно проблема в роутере, которая решается либо обращением к производителю/сервис (если это брак, например и он на гарантии) либо простой заменой роутера на более производительный. Ну или просто прилепить радиатор. Если проблем нет - то и незачем придумывать решение несуществующих проблем.
    Ответ написан
    1 комментарий
  • Могу ли я использовать эти дистрибутивы для повседневной жизни и разработки, и есть ли в них какие либо сборы данных и информации?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    о покупках передвижении, ведение постоянной статистики и

    Так а причем тут винда или Линукс?

    О покупках статистику будет вести соответствующий маркет, неважно это Microsoft Market или Androind или Steam или просто твой сбербанк.
    Чтобы вести жизнь, похожую как в винде, придется поставить софт, похожий как в винде. И будет тоже самое. Только чуть хуже.

    Чтобы жить комфортно в Линуксе, надо делать так, как делают Линуксоиды.
    Ответ написан
    3 комментария
  • Черный экран после установки debian ;?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Банка села.
    Подключить к заряднику, однако.
    Ответ написан
    1 комментарий
  • Как перенаправить трафик с порта на внешний ip + порт с помощью iptables?

    sholkyman
    @sholkyman Автор вопроса
    Не знаю в чем причина, но правила заработали сами по себе спустя какое-то время. Понятия не имею с чем связано, никаких дополнительных действий я не предпринимал.
    Такое ощущение, что маскарад применился не сразу.
    Ответ написан
    Комментировать
  • Как добавить Linux Ubuntu в Windows Boot Manager?

    @Drno
    Загрузчик не должен быть красивым. Он должен быть 200% надежным. Это все что от него требуется.
    Ответ написан
    3 комментария
  • Как справиться с выгоранием в профессии?

    opium
    @opium
    Просто люблю качественно работать
    От выгорания есть старый проверенный метод секс наркотики рокнролл
    Ответ написан
    2 комментария
  • Как организовать доступ по сертификату на сервер?

    CityCat4
    @CityCat4 Куратор тега Цифровые сертификаты
    Жил да был черный кот за углом...
    - Создать CA
    - Выпустить в нем сертификаты для пользователей
    - Настроить на сервере требование сертификата от определенного CA (вашего)
    - Раздать юзерам сертификаты
    - Предупредить об ответственности за имперсонацию (когда некто, знающий пароль от юзерского логина, получает доступ к профилю, в котором установлен сертификат и заходит на сайт, как если бы он был правильный юзер, то есть требование сильного пароля никто не отменял)
    Ответ написан
    Комментировать
  • Как в Golang отлавливать сетевые ошибки?

    @ghostiam
    На Go писатель, серверов пинатель.
    полное разворачивание ошибки:
    https://play.golang.org/p/FXoa3wdGj8S

    или проще, просто сравнение с ошибкой:
    https://play.golang.org/p/KeTl1QAJBMs

    узнать что за структура в ошибке, можно с помощью дебагера:
    5eee5e686a011838001374.jpeg
    Ответ написан
    Комментировать