@gogolang

Страница 381 из 1630
Michael
12.07.2017
10:37:43
хм... я про шарповый ридонли

readonly инициализируется в init, а далее ведёт себя как константа

Andrew
12.07.2017
10:39:23
а подключение к базе, логгеры, конфиг? Передавать в функции параметром? Или в каждой функции поднимать свое?
Как я понял, под "глобальные переменные" коллеги предполагают просты типы (int, string и т.п.).

Zhenja
12.07.2017
10:41:03
а, тогда статью надо переименовать в SimpleTypeGlobalVariablesAreBad

Google
Michael
12.07.2017
10:42:00
fix(Variables(Are(Bad)))

Andrew
12.07.2017
10:45:12
fix(Variables(Are(Bad)))
fix(Variables(Are(Bad(Only(Braces(Rock))))))

corpix
12.07.2017
10:49:48
а подключение к базе, логгеры, конфиг? Передавать в функции параметром? Или в каждой функции поднимать свое?
Я передаю аргументом к функции, конструирующей нужный объект. И логгеры и коннекты к базе, даже конфигурацию

Анатолий
12.07.2017
10:52:47
fix(Variables(Are(Bad(Only(Braces(Rock))))))
https://www.cis.upenn.edu/~matuszek/General/JavaSyntax/parentheses.html

Andrew
12.07.2017
10:57:43
https://www.cis.upenn.edu/~matuszek/General/JavaSyntax/parentheses.html
Соре, меня просто json покусал, там чёртовы braces ((

corpix
12.07.2017
11:18:16
а если логгер нужен вообще везде?
Значит передам его в каждое место где он нужен, явно

Axm
12.07.2017
11:18:32
во все функции проекта?

Igor
12.07.2017
11:21:29
В других языках это решается через IoC контейнер

в Go сколько не гуглил, адекватного контейнера не нашёл

corpix
12.07.2017
11:23:55
во все функции проекта?
Во все конструкторы. Я отношусь к логгеру как к данным

Димка
12.07.2017
11:43:35
Вопрос по math/rand Как сделать, что бы он генерировал случайные числа? package main import ( "fmt" "math/rand" ) func main() { fmt.Println(rand.Intn(100)) } всегда выводит число 81...

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

Google
Alexander
12.07.2017
11:44:33
https://golang.org/pkg/math/rand/#Rand.Seed

Aleksandr
12.07.2017
11:45:02
точнее, при каждом запуске программы, одно и тоже число
да, оно генерится в момент компиляции. используйте сид - ссылка выше

Димка
12.07.2017
11:46:10
ага, спасибо

Mike
12.07.2017
11:48:52
Пишем проги на одних константах ?
добро пожаловать в мир эрланга/кложура/лиспа/хаскеля/...?

Michael
12.07.2017
12:44:25
просто immutable ?

Slava
12.07.2017
15:27:37
ридонли и неизменяемые переменные действительно важны/удобны

надеюсь го в эту сторону придёт так или иначе

Евгений
12.07.2017
15:31:52
> неизменяемые переменные константы?

Vladislav
12.07.2017
15:32:33
На самом деле непонятно, что мешает просто не менять.

> неизменяемые переменные константы?
Константы формируются на этапе компиляции. Переменные в рантайме при инициализации.

Michael
12.07.2017
15:35:24
Евгений
12.07.2017
15:36:50
Пишите везде := и присваивайте по одной - компилятор сам начнет ругаться, что вы ее пытаетесь переопределить —- тут должен идти тролль-фейс ))

Slava
12.07.2017
15:41:24
На самом деле непонятно, что мешает просто не менять.
То же, что мешает людям писать код без багов

Vladislav
12.07.2017
15:51:28
То же, что мешает людям писать код без багов
Ну смотри. Не знаю как у всех, но на моем опыте баги возникают в основном из-за невнимательности или просчете в логике. Просчет иммутабельность не убирает. Невнимательно изменить переменную. Тут 2 варианта. 1: хотел изменить не ту переменную. Тут спасают грамотные названия этих самый переменных. Не должен был вообще ничего менять. Тут да. Но таких багов лично я давно не допускал.

corpix
12.07.2017
15:53:24
Ну смотри. Не знаю как у всех, но на моем опыте баги возникают в основном из-за невнимательности или просчете в логике. Просчет иммутабельность не убирает. Невнимательно изменить переменную. Тут 2 варианта. 1: хотел изменить не ту переменную. Тут спасают грамотные названия этих самый переменных. Не должен был вообще ничего менять. Тут да. Но таких багов лично я давно не допускал.
Есть разные люди. Некоторые скажут "мне надо таск закрыть, хер с ним, вставлю костыль вот тут", через пару лет от таких умников проект идёт на выброс. И тут можно сколько угодно обкладывать кодовую базу различными процессами, но правда одна - компилятор не должен позволять делать то, что явно является не правильным

Mike
12.07.2017
15:54:27
Ну смотри. Не знаю как у всех, но на моем опыте баги возникают в основном из-за невнимательности или просчете в логике. Просчет иммутабельность не убирает. Невнимательно изменить переменную. Тут 2 варианта. 1: хотел изменить не ту переменную. Тут спасают грамотные названия этих самый переменных. Не должен был вообще ничего менять. Тут да. Но таких багов лично я давно не допускал.
не, смотри в чем фишка. иммутабельность влечет за собой отказ от объектов, потому что они как раз принципиально мутабельны. тогда ты получаешь функции. когда ты пишешь функции с имутабельностью и без сайд эффектов, их легко тестировать, потому что вход однозначно мапится на выход и при этом внутри внешних объектов ничего не меняет. а тогда баги проще локализовать и соотвественно проще НАЙТИ, а не не создавать изначально. + юниттестирование чистых функций — это каеф, а объектов — жопная боль

Slava
12.07.2017
16:00:07
Если код поддерживается в течении десятилетий - тем более, уже пять поколений людей его писало

я тут во всём согласен с Дейвом https://dave.cheney.net/2017/06/15/simplicity-debt

Google
Vladislav
12.07.2017
16:04:24
Тот же, по-моему, Дейв писал о том, что нужно отказаться от глобальных переменных.

И сразу уходит глобальное состояние, которое можно менять.

Ivan
12.07.2017
16:05:51
ТО что все годами гонятт на глобальные переменные не новость

Но иногда не понятно как иначе, у меня из за этих инъектиций состояния в функции, бывает голову уже сломаешь

corpix
12.07.2017
16:08:07
Ну это дело привычки. Нужно принять что придётся не менять что-то во вселенной, а создавать новую вселенную, где уже есть нужное изменение :D

Aleksandr
12.07.2017
16:09:03
ТО что все годами гонятт на глобальные переменные не новость
угу. в других языках "глобальные переменные - зло" на уровне аксиомы, не требующей доказательств. В го же по серьезке обсуждают хорошо это или плохо. Совсем другой язык. Совсем другой взгляд на программирование.

Ivan
12.07.2017
16:41:41
Угу

Aleksandr
12.07.2017
16:42:57
это все диктуется чрезмерной лаконичностью и низкоуровневостью языка.

Ivan
12.07.2017
16:44:15
Как вот люди решают проблему большого конфига, у меня есть масштабный кофиг (на самом деле много, уровня приложения, уровня конкретного инстанса, уровня задачи) и читаю я в main и потом начинаю части его прокидывать в функции, но это уйма убогой писанины. И я постоянно думаю что сорвусь и дам пакетам своим или читать конфиг, или будут переменные глобальные

Michael
12.07.2017
16:45:38
???

Context

и в нём, что надо прокидывать

не?

Aleksandr
12.07.2017
16:47:46
Ivan
12.07.2017
16:47:48
Ну да, типа того. Но вот толи всю эту уйму конфигов пизхать в один контекст, толи делать дробить их

Google
Mike
12.07.2017
16:53:27
заодно внутри пакета можешь норм организовать конфиг по файлам

Ivan
12.07.2017
16:54:45
Пакет config есть, их как бы много. На уровне app , естьт конфиг где номер инстанса например и база, на уровне задачи например дургой конфиг , там какую таблицу процессить и тд

Admin
ERROR: S client not available

Ivan
12.07.2017
16:59:59
Пакет viper
Спасибо гляну

Т.е. в двух словах, или контексты или некий синглетон с методами getBlabla

Ivan
12.07.2017
17:50:55
А потом, сделать синглотоном? или чего с ним

corpix
12.07.2017
17:53:13
А потом использовать там где он нужен, например так: Пакет с конфигом может выглядеть так https://github.com/corpix/market-fetcher/blob/master/config/config.go#L162 Использование так https://github.com/corpix/market-fetcher/blob/master/cli/root.go#L39

Ivan
12.07.2017
17:54:34
Спасибо!

Мерлин
12.07.2017
19:16:28
[last news] Useful Constructors in Go

Aleksandr
12.07.2017
19:21:22
[last news] Useful Constructors in Go
сколько конструктором не называй, а фабрика им не станет)

Mush
12.07.2017
21:56:28
Кто-то использовал go tool trace?

Анатолий
13.07.2017
07:04:46
Парни, смотрю гайды по написанию рестапи, часто встречается горилла, норм выбор?

Daniel
13.07.2017
07:05:13
Выбор для чего?

Мерлин
13.07.2017
07:13:47
Анатолий
13.07.2017
07:15:10
Спасибо, про чи, я уже слышал в этом чяти, посмотрю на неё

Daniel
13.07.2017
07:34:54
а я повторю - что делать-то?

я вот весь свой рест пишу на сваггере

Ivan
13.07.2017
08:13:14
а Format 20160105 только уц меня вызывает отвращение?

Google
Valentin
13.07.2017
08:22:26
Да он не удобный

Американцам он привычный, откуда го)

Не понимаю, почему нельзя было сделать буквами, как в php- ddmmyyy

Анатолий
13.07.2017
08:30:37
У меня при виде этой ерунды возникло желание написать враппер, я еще больше холловорлда на написал, а обернуть это уже желание возникло.

Axm
13.07.2017
08:31:05
а Format 20160105 только уц меня вызывает отвращение?
У меня тоже. Как вообще такое можно было придумать, не понимаю.

Mike
13.07.2017
08:31:26
http://fuckinggodateformat.com

Анатолий
13.07.2017
08:32:34
Ну мотивация понятна, взять полную дату и пронумеровать все свойства

Но, оказывается, как и всегда внезапно, в мире больше одного языка, больше одной раскладки клавиатуры и больше одного стандарта написания дат

Ivan
13.07.2017
08:35:32
Всё время хочется ругаться

Страница 381 из 1630