Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

Степан И

  • 20
    вклад
  • 6
    вопросов
  • 21
    ответ
  • 57%
    решений
Комментарии
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как импортировать отсутствующие адреса в локальный OSM Tile Server?

    Степан И @micronull
    Данные из DaData загружать в OSM нельзя по лицензионному соглашению.
    А вот таблицу из росреестра можно.

    Вы можете выложить таблицу в открытый доступ, например на github, и создать тему на форуме об импорте адресов.

    Ещё есть вопрос по поводу запроса в росреестра. Вы это с помощью официального письма делали? Это была платная услуга?
    Написано 31 мая
  • Как импортировать отсутствующие адреса в локальный OSM Tile Server?

    Степан И @micronull
    От куда изначально была получена база?
    Написано 31 мая
  • Почему байт в строку выводит пустоту или какие-то смайлики?

    Степан И @micronull
    Владимир, потому что ты один раз считываешь из канала.

    Можно воспользоваться `for`:
    for val := range ch {
    	fmt.Println(val)
    }
    Написано 15 дек. 2022
  • Не получается создать Docker image через docker-compose c кодом на GO?

    Степан И @micronull
    SSSSTTTTAAAASSSS, если наберёшь команду `go build --help`, то ты увидешь:
    `usage: go build [-o output] [build flags] [packages]`

    Попробуй убрать main.go. Ещё можешь указать путь до дирректории где у тебя находится пакет main.
    Написано более года назад
  • Не получается создать Docker image через docker-compose c кодом на GO?

    Степан И @micronull
    SSSSTTTTAAAASSSS, можно обойтись без multi-stage.
    Golang приложения всегда необходимо предварительно компилировать.

    multi-stage позволяет делать контейнеры которые содержат только бинарный файл. Что очень удобно.
    Написано более года назад
  • Как сгенерировать время истечения срока?

    Степан И @micronull
    wohejo, с помощью time.Date ты задаёшь конкретное число и время.

    С помощью time.Now ты получаешь текущее число и время.

    Если тебе нужно получить текущий день с 00:00, то можешь сделать как тут: https://go.dev/play/p/jnFuZxruKm
    Написано более года назад
  • Как сгенерировать время истечения срока?

    Степан И @micronull
    wohejo, `time.June` это константа. Ты можешь подставить вместо time.June число 6 и будет то же самое.

    Для сравнения времен можно воспользоваться методами After и Before: https://pkg.go.dev/time#Time.After
    package main
    
    import (
    	"fmt"
    	"time"
    )
    
    func main() {
    	year2000 := time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)
    	year3000 := time.Date(3000, 1, 1, 0, 0, 0, 0, time.UTC)
    
    	isYear3000AfterYear2000 := year3000.After(year2000) // True
    	isYear2000AfterYear3000 := year2000.After(year3000) // False
    
    	fmt.Printf("year3000.After(year2000) = %v\n", isYear3000AfterYear2000)
    	fmt.Printf("year2000.After(year3000) = %v\n", isYear2000AfterYear3000)
    
    }
    Output:
    
    year3000.After(year2000) = true
    year2000.After(year3000) = false

    package main
    
    import (
    	"fmt"
    	"time"
    )
    
    func main() {
    	year2000 := time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)
    	year3000 := time.Date(3000, 1, 1, 0, 0, 0, 0, time.UTC)
    
    	isYear2000BeforeYear3000 := year2000.Before(year3000) // True
    	isYear3000BeforeYear2000 := year3000.Before(year2000) // False
    
    	fmt.Printf("year2000.Before(year3000) = %v\n", isYear2000BeforeYear3000)
    	fmt.Printf("year3000.Before(year2000) = %v\n", isYear3000BeforeYear2000)
    
    }

    Output:
    
    year2000.Before(year3000) = true
    year3000.Before(year2000) = false
    Написано более года назад
  • Верно ли то что в go нет конкретной структуры проекта?

    Степан И @micronull
    loljapanes, стройте приложение из библиотек как конструктор, придерживаясь project-layout. И все у вас будет в порядке.
    В Go библиотеки (на сколько я понимаю) не могут тебе диктовать структуру проекта.
    Написано более года назад
  • Верно ли то что в go нет конкретной структуры проекта?

    Степан И @micronull
    loljapanes, mux и gin это библиотеки. gin хоть и определяет себя как фреймворк, но если вы работали с фреймворками в Java или PHP, то понимаете почему это не так)
    Написано более года назад
  • Верно ли то что в go нет конкретной структуры проекта?

    Степан И @micronull
    loljapanes, в большинстве языков есть фреймворки, которые определяют структуру проекта. В Go фреймворками не принято пользоваться, из-за чего многие теряются.
    Придерживайтесь project-layout.
    Если пишете какой-то пакет, то можно вообще обойтись двумя файлами - сам пакет и тесты.
    Написано более года назад
  • Верно ли то что в go нет конкретной структуры проекта?

    Степан И @micronull
    Конкретной структуры вроде ни в одном языке нет.
    Написано более года назад
  • Go. Как у экземпляра структуры получить доступ к методам самой структуры, но не к методам интерфейса?

    Степан И @micronull
    AnonymFromInternet, в вашем примере было так:

    Два пакета.
    1. Описывает контракт (интерфейсы, в т.ч. Jumping).
    2. Пакет user, который бы имел одну публичную функцию (в конкретно вашем примере), которая бы называлась `NewJumper(name, surname string)` и возвращала интерфейс `Jumping` из первого пакета.
    Однако вам ни что не мешает пойти другим путем, и сделать структуру User публичной, тогда в функции NewJumper не будет надобности.

    В конаничном Go коде вообще отказались бы от первого пакета с контрактами и тупо делали проверку на `Jump`:
    func FooBar(f any) {
    	if j, ok := f.(interface{Jump()}); ok {
    		j.Jump()
    	}
    	
    	if s, ok := f.(interface{Swim()}); ok {
    		s.Swim()
    	}
    }

    Но в случае с базами этот подход не подойдет, КМК.
    Написано более года назад
  • Go. Как у экземпляра структуры получить доступ к методам самой структуры, но не к методам интерфейса?

    Степан И @micronull
    AnonymFromInternet, это инкапсуляция.
    Обратите внимание что структура `postgresDBRepo` является приватной, в то время как функция возвращает имплементацию публичного интерфейса. В итоге вы работаете со строго определенными контрактами в пакете.

    Таким образом может быть один контракт, а базы разные. Например MySQL, SQLite.
    Написано более года назад
  • Go. Как у экземпляра структуры получить доступ к методам самой структуры, но не к методам интерфейса?

    Степан И @micronull
    AnonymFromInternet, почитайте про утиную типизацию и со временем станет понятней.

    Интерфейсы можно так же возвращать, если вы оперируете абстрактными данными.
    Написано более года назад
  • Как добавить Array в map?

    Степан И @micronull
    Почему вы используете `map`, а не `struct`?
    Написано более года назад
  • Как хранить большую таблицу с одинаковыми значениями?

    Степан И @micronull Автор вопроса
    Да. Изначально рассматривал этот вариант. Видимо придется именно так делать.
    Написано более двух лет назад
  • Как хранить большую таблицу с одинаковыми значениями?

    Степан И @micronull Автор вопроса
    Миллионы строк)
    Ну и так для саморазвития интересно решение.
    Написано более двух лет назад
  • Почему в контейнере alpine:latest программа на Го ведет себя по другому чем в golang:1.15?

    Степан И @micronull
    Попробуй компилить через
    RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
    Написано более двух лет назад
  • Как отключить автоматическое создание очередей в ActiveMQ?

    Степан И @micronull
    Ты про автоматическое создание адреса (destination)?
    Написано более двух лет назад
  • Почему в Firefox на Android событие input срабатывает дважды?

    Степан И @micronull
    Стабильная версия firefox или Nightly? Тоже недавно наблюдал проблемы с событиями, перешел на стабильную и всё встало на место.
    Написано более трёх лет назад
  • 1
  • 2
  • 3
  • Следующие →
Самые активные сегодня
  • UthvfyV
    • 18 ответов
    • 0 вопросов
  • AshBlade
    Сергей Соловьев
    • 6 ответов
    • 0 вопросов
  • ewgenc
    • 4 ответа
    • 0 вопросов
  • Vindicar
    Vindicar
    • 4 ответа
    • 0 вопросов
  • Drno
    • 3 ответа
    • 0 вопросов
  • asmelnik
    • 3 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации