• Правда ли, что GOPATH и GOROOT больше не нужны?
    0

    Не пробовала так делать, но первое, что приходит в голову — инструкция replace. Из документации мне кажется, что если в vendor-mode работать, то результат должен быть как раз такой, как вы описываете.

  • Правда ли, что GOPATH и GOROOT больше не нужны?
    0

    Спасибо, Иван! Полезный кейс про open-source, да!

  • Правда ли, что GOPATH и GOROOT больше не нужны?
    0

    Тоже сталкивалась с проблемами с VS Code, да. Обещают, что если включить gopls, то более или менее должно заработать. Но как-то gopls у меня не прижился пока.

  • Правда ли, что GOPATH и GOROOT больше не нужны?
    +1

    В приципе, в некотором роде можно, но тогда уже не в самом файле go.mod. Можно через go get указывать бранчи, но опять же автоматически go get не будет следить за всеми обновлениями.


    Тогда ваш процесс сборки приложения будет всегда из двух шагов состоять:


    1. Вызывать go get github.com/sirupsen/logrus@master — при этом файл go.mod обновится автоматически
    2. Вызвать собственно компиляцию.

    С мажорными версиями тоже отдельная история: мажорная версия должна быть указана в пути модуля.

  • Правда ли, что GOPATH и GOROOT больше не нужны?
    +1

    В файле go.mod. Если брать пример из статьи, то в строке


    require github.com/sirupsen/logrus v1.4.2

    вместо v1.4.2 можно подставить любую другую желаемую версию. После этого можно вызвать вручную go mod tidy и go mod download, чтобы обновить транзитивные зависимости и загрузить модули согласно этим обновлениям. Также можно просто перекомпилировать приложение (команды go mod при этом будут вызваны автоматически).


    Соотственно, если вы разрабатываете бибилиотеку и выкладываете ее, например, на Github, имеет смысл использовать семантическое версионирование с тегами вида v1.2.3.


    Если семантического версионирования нет, то версии будут выглядеть а ля v0.0.0-20190422165155-953cdadca894 (что-то вроде v0.0.0-дата-хэш).


    Или вот например, с тем же logrus'ом: там сейчас есть коммиты в мастер, но тега v1.4.3 пока нет. И если посмотреть версии этой библиотеки на gocenter, помимо v1.4.2 там будут варианты а ля v1.4.3-0.20190807103436-de736cf91b92.

  • Правда ли, что GOPATH и GOROOT больше не нужны?
    –1
    Насчет lock могу ответить ссылкой: go.sum — не совсем lock file.
  • $ ls -l /home/avitotech/new_year
    0
    1. Terraform
    2. Ruby
    3. Vertica (что это?)
    4. Debian
    5. Linux вообще (пингвины)
    6. MySQL (дельфины)
    7. Слон PHP (из контейнера)
    8. Слон Postgres (идет по улице)
    9. Котлин (флажок)
    10. Python (заклинатель змей)
    11. Docker (кит с контейнерами)
    12. Kubernetes (штурвал на корабле и мужик в кепке)
    13. GitHub (октокошка на корабле)
    14. Sphinx (на киоске)
    15. Кассандра (глаз)
    16. Kibana (флажок)
    17. TeamCity (TC)
    18. React
    19. JS
    20. nSQ
    21. Grafana
    22. Prometheus (Прометей бежит)
    23. RabbitMQ (заяц бежит)
    24. Swift (розовая ласточка)
    25. Avito (шарик на елке)
    26. Go (синий гофер с длинными лапами)
    27. Redis (редиска в вегетарианском магазине)
    28. Шестиугольник на зеленом фоне… мм… Nomad?
    29. Apple (огрызки яблок)
    30. Android
    31. VLC? :)
    32. Lua (рядом с телескопом)
    33. mongoDB (зеленый лист за углом)
    34. Selenium? (Se)

    Вижу еще логотипы, но не знаю, что они означают.
  • Готовим сборку Go-приложения в продакшн
    0
    Сама я в продакшн пробовала только goose (как раз для PostgreSQL), встроить в приложение можно было, насчет локов точно не скажу, но да, в случае с несколькими инстансами проблем не было.

    Вообще, я сейчас (вот прямо сейчас) как раз пишу управление миграциями для reform, но, думаю, пока там всё будет готово к продакшн, пройдет еще какое-то время.

    Приходите к нам в русскоязычный слак — slack.golang-ru.com, у нас там есть канал #databases как раз для таких вопросов — может, кто что интересное посоветует из своего опыта.
  • Пошаговое руководство по написанию сервиса для Kubernetes
    0
    Конкретно в этом случае defer ничего не даст — у нас очень простой тест, и мы просто считываем тело ответа и сразу его закрываем. Но, вообще, строго говоря, если делать defer resp.Body.Close(), то надо делать это не после чтения данных, а сразу после получения ответа и до первого возможного выхода из функции (в нашем случае — сразу после resp := w.Result()).
  • Готовим сборку Go-приложения в продакшн
    0
    Интересный способ. По идее, каноны требуют использовать полные пути в качестве путей импорта. Но, наверное, если для конкретного проекта или конкретной команды удобнее от канонов отступить, то можно и так сделать.

    Для себя я вижу пару проблем в случае, когда не используется полный путь импорта:
    — если вендорить такой репозиторий в другой проект, то менеджер зависимостей может не разобраться, кто откуда растет и где какую зависимость искать
    — в особо редких случаях получившийся путь может совпасть с путем импорта какой-нибудь стандартной библиотеки, и это может быть не очень приятно

    Ну и в целом есть ощущение, что от отсутствия полных путей импорта головной боли будет больше, чем от их наличия. В случае, если полные пути импорта заданы, их всегда можно найти/заменить тем же sed'ом. А вот если захочется неполные пути потом изменить на полные, это будет, наверное, задача сложнее.
  • Готовим сборку Go-приложения в продакшн
    0
    Спасибо за жизненный пример и интересный вопрос.

    Чтобы работать с приватными репозиториями мы добавляем маленький хак в .gitconfig. По умолчанию go get тянет репозитории по http(s), мы подменяем на уровне git эту часть url'а на нужную нам. Наверное, не самое красивое решение, но оно работает. Примеры для github'а и абстрактного bitbucket'а:

    [url "git@github.com:"]
    insteadOf = https://github.com/

    [url "ssh://git@my-secret-bitbucket-url:1234"]
    insteadOf = https://my-secret-bitbucket-url/scm


    А вот насчет второго вопроса, пожалуй, не всё так просто. У меня всего однажды был похожий случай, когда захотелось переехать на другой хостинг, но я просто пробежалась sed'ом по нужным репозиториям, перегенерила vendor и поправила пути импорта. Ну и путей импорта в коде, по-моему, все-таки не так уж много, как может иногда показаться :)
  • Готовим сборку Go-приложения в продакшн
    0
    Да, спасибо! Почему-то я прям была уверена, что где-то видела пример с константами, но действительно не заработает :) Поправила текст.
  • Готовим сборку Go-приложения в продакшн
    0
    А мы как раз делаем FROM scratch, вот примерно так :)

    Только если сертификаты надо перегенерить, отдельно разворчаиваем alpine и копируем нужные файлы, но это нечастое действие.
  • От регионального к межконтинентальному CodeFest 2014
    +3
    Верните акут в написание последней буквы фамилии Микулича! (это была шутка для любителей южно-славянских языков)

    А если серьезно, очень-очень жду CodeFest, yeah! :)
  • Красивым городам — красивую карту
    0
    Е-е-е, славянские города рулят! Реквестирую Белград! :)
  • Прокладываем путь через желудок
    +1
    Ребята, а если я хочу найти вообще все места, где есть завтрак, что я должна сделать? Т. е. мне подходят и рестораны, и кафе, и суши-бары, лишь бы завтрак был. Куда жать? :)
  • Применение JSON-Schema в тестировании и документировании API
    0
    Ага, спасибо. У меня почему-то валидатор (jsv4-php) падал при попытке так написать. Но, видимо, дело было в чем-то другом :)
  • Применение JSON-Schema в тестировании и документировании API
    0
    Ага! А что насчет реального примера? ;)
    Интересует как раз кейс, когда параметр в ответе может принимать, например, и целочисленные значения, и null. Как это будет выглядеть в схеме?
  • Применение JSON-Schema в тестировании и документировании API
    0
    Сергей, спасибо за статью.

    И сразу вопрос.
    В документации к всевозможным API, известное дело, присутствует не только информация об ответе, но и информация о запросе. Запрос (URI, тип, параметры, ...) вы тоже с помощью JSON Schema описываете, или как-то иначе?
    И, да, хотелось бы увидеть (если это не секрет) пример схемы для реального запроса.

    Что касается библиотек и поддержки языков, могу заметить, что реализовать свой собственный валидатор JSON Schema (возможно, включив в него какие-то специфические штуки) не составляет особого труда. Так что, пожалуй, используя почти любой язык, можно смело брать JSON Schema как полезную штуку для документации/валидации/еще каких-то вещей.
  • Яндекс забил на свои карты?
    +9
    А у 2ГИС мосты на месте! :)
  • Какими онлайн-картами (не спутниковыми снимками) вы регулярно пользуетесь?
    +2
    Кажется, в описанных случаях у 2ГИС будет лучшая точность. Попробуйте.
  • Новая карта в API 2ГИС и онлайн-версии
    +13
    Теперь, кажется, карта стала очень узнаваемой. По цветам сразу можно определить, что это карта от 2ГИС :)
  • 2ГИС знает, куда пойти обедать
    0
    Тёма, меня тоже удивило, что в студенческой кафехе средний чек 750 рублей, а в лучшем ресторане города (где, по-честному, меньше чем 2.5к на человека никак не потратить) — всего 1000 рублей. Но, видимо, у самих заведений такое представление о своём среднем чеке, да :)
  • Записывайте. Ну, пожалуйста!
    0
    А я вот удовольствие получаю от записывания дел.

    Записываю всё — начиная от заданий, в которых много деталей (и действительно надо записывать, чтобы не упустить эти детали) до мелочей типа «смерджить ветку», «ответить на письмо» и «поставить такую-то задачу». Когда делаю какое-то дело — отмечаю его галочкой или зачеркиваю.

    В конце дня очень приятно посчитать количество вычеркнутых дел и сказать себе: «Вот сколько всего я успела!», или наоборот — ужаснуться количеству невычеркнутых и подумать о том, как бы их побыстрее переделать.

    И, да, очень огорчает, когда другие люди не записывают и забывают. Но, если я подозреваю человека в забывчивости, то обязательно напишу себе в одном из пунктов что-то типа: «Проверить что такой-то не забыл про задачу» :)
  • 2ГИС запускает API карт
    +7
    Ура! Дождались! Счастье есть! :)
  • Обучение it-специалистов в Сербии
    0
    Спасибо! Если все-таки окончательно надумаю — обращусь! ;)
  • Обучение it-специалистов в Сербии
    0
    А заочное отделение есть? Или вот так вот все учатся очно и посещают все занятия?

    Эх, вот интересно, после русского бакалавриата или магистратуры можно как-нибудь так взять и перевестись в магистратуру или докторантуру в Сербию?.. Мечты-мечты… :)
  • 2ГИС запускает бета-версию сервиса пробок
    +1
    Всё радуете и радуете! Спасибо! :)
  • ProfitConf — конференция веб-разработчиков в Новосибирске 25-26 сентября
    0
    что-то долго добавляете :)
  • ProfitConf — конференция веб-разработчиков в Новосибирске 25-26 сентября
    0
    Надеюсь, будет интересно :)
  • Расширение функциональности не имея исходного кода
    0
    О, мы какие-то такие штуки пробовали делать на лабах в универе :)

    Я всегда думала, что это может использоваться только как зарядка для ума… Ан-нет, и в жизни применяют, оказывается! :)
  • Практика прохождения собеседований или как я переехал в столицу
    0
    О, две мои любимые книги в рекомендациях :)
  • 2ГИС запускает API с данными о 1 000 000 организаций и возможностью заработать
    +2
    Ура, ура! Спасибо! Счастье есть! Очень ждем API карт! :)
  • Хочу эту красивую штуку
    +13
    Ох, помню мне тоже один друг рассказывал про секцию Monitor… И я бы с удовольствием за него замуж вышла бы, не будь он женат, да.
  • Ноутбук повышенной живучести
    0
    Лет 30 назад дети на портфелях катались с горок, а современные дети, видимо, на ноутбуках катаются :)
  • Модуль Drupal для работы с Яндекс.Почтой
    0
    О, вот это действительно очень актуально! :)
    Удачи Вам в разработке модуля! Надеемся увидеть готовый релиз ;)
  • Проблема трех раскладок в Linux
    +1
    Отличная идея! :)
    Как раз искала что-то такое для сербского. Использовать сербскую раскладку неудобно — слишком отличается от русской, а учить пока смысла не вижу. Поэтому 6 сербских букв (љ, њ, џ, ђ, ћ, ј) просто валялись в «Кассе символов» — ужасно неудобно было их вставлять. А теперь проблема решена. Спасибо.
  • Панорамы всех городов-миллионников России на Яндекс.Картах
    0
    В Оби (под Новосибирскомом) очень смешно смотреть панорамы — такое ощущение, что ехали в аэропорт, но заехать смогли только с 3-го раза: первый раз заехали в Новосибирскую духовную семинарию, и дорога закончилась; второй раз — поехали по улицам Оби, но на дорогу к аэропорту это так и не вывело :)
  • 30 копеек для Михалкова
    +3
    от конфет бывает кариес ;)
  • DevPoint 2. Итоги
    0
    И я, и я выражаю благодарность! Было очень 'wow!' посмотреть на серьезного дядьку Игоря Сысоева — теперь есть, с кого брать пример! Доклад Орлова слушался на одном дыхании. А Андрей Аксенов — прям просто зарядил своей энергией… Ну еще много всякого можно вспомнить :)

    В общем, получилось очень хорошо. Организаторы — молодцы!