Anonymous
Хотя Make sure the service has a functional systemd init script located at ...
Anonymous
Это вопрос?
Нет, статья выше расчитано на то, что уменя уже есть systemd unit
Anonymous
Нет, статья выше расчитано на то, что уменя уже есть systemd unit
https://m.habrahabr.ru/company/southbridge/blog/255845/ Напиши, в чём проблема то 😄
Anonymous
Quiet
"Размер (длина) массива является частью типа, поэтому размер массива не может быть изменен." и как же тогда дописать в массив если его длинна заполнена?
Anonymous
Изменить размер массива никак нельзя.
Quiet
Сам язык в этом случае пересоздает массив, увеличивая вдвое его длину
т.е. стирается старый массив и создается новый с х2 длинной, и записывается в старую переменную?!
Anonymous
Сам язык в этом случае пересоздает массив, увеличивая вдвое его длину
Это я про функцию append(). Но это можно делать и руками
Anonymous
var oldVar = &newHiddenArr?!
Пс, https://golang.org/doc/effective_go.html
Anonymous
https://blog.golang.org/go-slices-usage-and-internals даже ещё лучше и конкретно про массивы и слайсы
Aleksandr
s := d[:]
Oleg
Можно через аппенд!! https://play.golang.org/p/bnFsmYsRD3
Oleg
... или копирует один слайс в конец другого
Oleg
https://play.golang.org/p/Bmg6K1JmRF Да, copy лучше :)
Slava
Одну ссылку на элемент и капасити в нём
Anonymous
Друзья, скиньте пример бест практис по написанию счетчика посещения страницы(hit counter), если это будет с драйвером postgresql , вообще шик
Michael
i++
Michael
на всех платформах
Ashot
двумерный массив?
Mike
Вхат
Mike
Это массив ([]) массивов ([]) строк (string)
Mike
Писать свою структуру и в нее анмаршаллить
Mike
Привет типы
Mike
В твоих других языках тоже массивы массивов
Mike
Они просто неявные
Mike
А тут явные
Anonymous
О , было бы норм посмотреть сие творение
Mike
interface{} или рекурентно парсить и создавать новые типы по ходу
Anonymous
Ок
Mike
Или не отправлять с апи слишком усложненные структуры
Mike
Произвольная вложенность редко нужна
Anonymous
Есть 2 варианта, писать на другом языке с динамической типизацией или изначально знать все структуры данных которые тебе будут приходить и анмаршалить в их
Mike
Вообще не надо решать задачи для которых язык не предназначен например
Mike
Конечно лол
Mike
Не на го тоже лол
Mike
Структура же поменяется
Anonymous
Слайс же делать нужно, не? Он же резиновый
Ashot
Тебе надо сначала убить в себе говнокодера :(
Anonymous
Спасибо
Ashot
:(
Anatoly
Парни, подскажите: разбил свой main.go на три файла, запускаю go run *.go, а он мне ошибку выдает странную: D:\go\src\project>go run *.go GetFileAttributesEx *.go: The filename, directory name, or volume label syntax is incorrect.
Aleksandr
main.go запускай
Anatoly
я же говорю, я его разделил на три файла, прописав в них один package, go run main.go ругается что не видит функции которые я вынес
Aleksandr
выноси в другой пэкэдж. из main читать не будет насколько я понимаю
Aleksandr
оставь main.go, остальное вынеси
Anatoly
неуместно другой package создавать
Slava
Go run принимает список файлов для компиляции
Slava
Указывай каждый или через звездочку
Aleksandr
неуместно другой package создавать
main.go - это точка входа. уместно все вынести в другой пэкэдж
Anatoly
хм, тоесть вообще весь свой проект вынести в другой package, а main.go оставить в package main?
Anatoly
Звучит логично впринципе
Anatoly
Но я точно помню, что во время моего прохождения туториала go run *.go работал, а сейчас перестал
Anatoly
Ну да, я понял, это работает не в cmd и ps, это работает в линуксовых терминалах
Anatoly
Надо передать список всех файлов и взлетит
Anatoly
go run $(gci *.go | select -exp name) вот так работает в powershell
Dmitry
хм, тоесть вообще весь свой проект вынести в другой package, а main.go оставить в package main?
Я например вот так делаю в каждом приложении https://github.com/corpix/market-fetcher/blob/master/market-fetcher/market-fetcher.go
Anatoly
@corpix я не понел
Anatoly
хотя нет, немного понел
Anatoly
да, ясно, интересно, спасибо за наводку
Dmitry
Ну я вообще люблю все сущности в программе поделить на отдельные пекеджи. Типа есть отдельный пекедж, который описывает CLI приложения, отдельный для конфигурации и т.п.
Dmitry
Но все они внутри одного репозитория с приложением сложены
Anatoly
ну да, я с тобой коллинеарен в этом желании, но у меня кли и мне что делить?)
Anatoly
единственный минус - для всех твоих пакетов нужна такая запускалка или надо хостить пакет внутри пакета
Anatoly
это не плохо вроде, но как-то странно
Anatoly
мне нравится как ты пишешь, я поизучаю твой гитхаб. не то чтобы я спрашиваю разрешения, просто уведомляю =)
Dmitry
Зависит от твоей предметной области :) Вот например в https://github.com/corpix/market-fetcher у меня следующая задача: затягивать данные с кучи криптовалютных бирж. Соответственно у меня там есть компоненты, которые оборачивают scheduler, который запускает задачи(которые могут быть сконфигурированны на уровне приложения, так что для них тоже есть отдельный компонент внутри, который оборачивает задачи scheduler). Ещё я хочу запускать задачи в пулле горутин и конфигурировать с уровня приложения его поведение, соответственно есть обертка для пулла(executor). Мои объяснения могут быть не очень понятными, лучше просто посмотреть код
Dmitry
единственный минус - для всех твоих пакетов нужна такая запускалка или надо хостить пакет внутри пакета
Я всё хосчу внутри репозитория, потому что пакеты, которые там представлены, имеют смысл только в рамках этого приложения. Если я нахожу что-то что хочется реиспользовать в другом приложении то вытаскиваю это в отдельный репозиторий
Slava
https://www.howtographql.com/
Slava
ничё себе
Dmitry
Люблю мейкфайлы :)
Dmitry
Обновил свой генератор Makefile для go проектов https://github.com/corpix/go-makefile#usage Самое важное изменение - переезд на glide, плюс теперь он умеет генерить мейкфайл: - для приложения/пакета(они немного отличаются по содержимому); - который поставит не только дефолтные тулзы, но и что-то кастомное на ваш вкус; - с инклюдами других мейкфайлов; - цели которого можно доопределять; - сохраняя или читая конфиг для генерации; И ещё некоторые кастомизации(смотрите --help у инструмента).