
Kirill
12.06.2017
16:38:28

Ywein
12.06.2017
16:38:39

Eldar
12.06.2017
16:38:41
хотя в некоторых случаях особенно на первых началах от незнания это и недостаток, потому что может получиться не то чего ожидаешь)))

Alexey
12.06.2017
16:38:51

Google

Eldar
12.06.2017
16:39:22
я пришел в многопоточность поле php так что очень мучался и до сих пор не все понимаю))

Kirill
12.06.2017
16:39:28
Так, мнения разделились)
Я тоже сначала склонялся к функции которая принимает *io.Reader

Alexey
12.06.2017
16:39:33
func countChar(input io.Reader) (uint64, error)

Ywein
12.06.2017
16:40:00
там есть кластеризация конечно, но она помогает ограниченно

Kirill
12.06.2017
16:41:56

Pawel
12.06.2017
16:42:14

Alexey
12.06.2017
16:42:27

Kirill
12.06.2017
16:42:43

Alexey
12.06.2017
16:44:48
Норм, спасибо.
А в тестах давать strings.NewReader("blablabla") ей на вход

Kirill
12.06.2017
16:45:05
О, класс)

Google

Kirill
12.06.2017
16:45:13
Я тут уже свой начал пилить
Супер

Pawel
12.06.2017
16:47:20

Alexey
12.06.2017
16:48:11
Указатель на интерфейс вроде даже не скомпилируется..

Kirill
12.06.2017
16:48:46
Его же возвращает bufio.NewReader()

Alexey
12.06.2017
16:49:27

Pawel
12.06.2017
16:49:44

Alexey
12.06.2017
16:50:22

Sergey
12.06.2017
16:59:12
Привет ребят! Не подскажите хороший способ заменить один из стандартных пакетов, своим? Например debug/elf заменить полностью своей реализацией. Пробовал положить копию debug/elf в GOPATH, но все равно используется старый.

Kirill
12.06.2017
16:59:39

Pawel
12.06.2017
16:59:41

Kirill
12.06.2017
17:00:01
И да, приходится уточнять тип аргумента до *bufio.Reader, потому что в обычном io.Reader нет функции ReadRune().

Alexey
12.06.2017
17:01:00
Покажи CharCount определение:)

Kirill
12.06.2017
17:01:37

Alexey
12.06.2017
17:01:45
bufio.Reader - это структура
io.Reader - интерфейс
тебе надо в функцию передавать (in io.Reader)
А внутри делать
r := bufio.NewReader(in)

Google

Kirill
12.06.2017
17:02:35
Хм...
Не знал что так можно)

Alexey
12.06.2017
17:03:00
И тогда в функцию можно передавать всё, что реализует io.Reader (а его всё нужное реализует)
Т.е. туда можно будет передавать строчные ридеры, байтовые ридеры, тело ответа http и так далее.

Kirill
12.06.2017
17:03:41
Да, это оно, огонь

Pawel
12.06.2017
17:06:39

Kirill
12.06.2017
19:22:27
Функция, возвращающая три значения в качестве результата - это нормально, или лучше в этом случае использовать структуру?

Pawel
12.06.2017
19:37:17
а какие 3 типа она возвращает? обычно всё же два значения. первое - результат. воторое - error или bool

Kirill
12.06.2017
19:39:03

Stanislav
12.06.2017
19:39:32
Я в питоне всегда так делаю

Kirill
12.06.2017
19:40:03
Ну, питон это питон.
Но выглядит так, что тут эти три значения к месту.

Ywein
12.06.2017
19:40:20
Если они всегда вместе можно и стракт
А так не вижу ничего ужасного в 3 возвращаемых значениях

Pawel
12.06.2017
19:40:57
получается просто 3 инта. я бы всё же struct сделал. так проще потом понять ху из ху
ну и есть ещё момент - из канала/в канал ты 3 инта ни как не впихнёшь
а так конечно ничего ужасного нет в 3 значениях

Kirill
12.06.2017
19:46:00
Против структуры следующие аргументы:
- она едва ли где-то будет использоваться(во всяком случае в текущей реализации программы)
- два из трех результатов зачастую опускаются

Google

Kirill
12.06.2017
19:48:01
Хотя зависит конечно от юзкейза

Pawel
12.06.2017
19:50:14
поскольку все 3 типа разные, попутать их нельзя, через каналы они не проходят и в другой package не идут - лучше 3 значения.

anton
13.06.2017
09:12:48

Subbotin
13.06.2017
09:32:17
это вопрос к самой SQLite https://sqlite.org/threadsafe.html
ну вот. вроде собирается он потокобезопасным. и даже в коде есть вот такая проверка.
func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
if C.sqlite3_threadsafe() == 0 {
return nil, errors.New("sqlite library was not compiled for thread-safe operation")
}
но сука базу корёжит при паралельной записи

Oleg
13.06.2017
10:58:18
без регистрации и смс?

Maxim
13.06.2017
11:06:17
Что скажете?

Admin
ERROR: S client not available

Maxim
13.06.2017
11:06:17
Теория современного Go
? перевод
? Хабрахабр: Go
tl;dr магия это плохо; глобальные состояние это магия → глобальные переменные в пакетах это плохо; функция init() не нужна
Самое главное и лучшее свойство Go это то, что он, по-сути, антимагический. Не считая пары исключений, простое чтение Go кода не оставляет двусмысленности в определениях, зависимостях или поведении рантайма. Это делает Go относительно легким для чтения, что, в свою очередь, делает его легким для поддерживания, что является самым главным свойством в индустриальном программировании.
Но всё же есть пару мест, где магия может просочиться. Один из, к сожалению, распространённых путей это использование глобального состояния. Объекты, определенные в глобальном пространстве пакета могут хранить ...
Автор оригинала: Peter Bourgon
Читать далее ➡ https://shbr.xyz/hh330786


Aleksandr
13.06.2017
11:09:13
Теория современного Go
? перевод
? Хабрахабр: Go
tl;dr магия это плохо; глобальные состояние это магия → глобальные переменные в пакетах это плохо; функция init() не нужна
Самое главное и лучшее свойство Go это то, что он, по-сути, антимагический. Не считая пары исключений, простое чтение Go кода не оставляет двусмысленности в определениях, зависимостях или поведении рантайма. Это делает Go относительно легким для чтения, что, в свою очередь, делает его легким для поддерживания, что является самым главным свойством в индустриальном программировании.
Но всё же есть пару мест, где магия может просочиться. Один из, к сожалению, распространённых путей это использование глобального состояния. Объекты, определенные в глобальном пространстве пакета могут хранить ...
Автор оригинала: Peter Bourgon
Читать далее ➡ https://shbr.xyz/hh330786
все верно в целом


Michael
13.06.2017
11:34:36
что ты делаешь в коде?
Теория современного Go
? перевод
? Хабрахабр: Go
tl;dr магия это плохо; глобальные состояние это магия → глобальные переменные в пакетах это плохо; функция init() не нужна
Самое главное и лучшее свойство Go это то, что он, по-сути, антимагический. Не считая пары исключений, простое чтение Go кода не оставляет двусмысленности в определениях, зависимостях или поведении рантайма. Это делает Go относительно легким для чтения, что, в свою очередь, делает его легким для поддерживания, что является самым главным свойством в индустриальном программировании.
Но всё же есть пару мест, где магия может просочиться. Один из, к сожалению, распространённых путей это использование глобального состояния. Объекты, определенные в глобальном пространстве пакета могут хранить ...
Автор оригинала: Peter Bourgon
Читать далее ➡ https://shbr.xyz/hh330786
ага, верно
про Init & Global state цитата из оф доков
To import a package solely for its side-effects (initialization), use the blank identifier as explicit package name:
import _ "lib/math"
Хочь побочные эффекты - используй, не хочешь - не используй
тут тоже кмк всё нормально смотрится


Subbotin
13.06.2017
11:38:50
ну обычный http сервер на фреймворке echo

Michael
13.06.2017
11:39:16
одно подключение на все-все потоки-рутины?

Subbotin
13.06.2017
11:40:25
ну да
я всегда думал, что фраза Type DB is a database handle representing a pool of zero or more underlying connections. It's safe for concurrent use by multiple goroutines. значит, что так можно делать


Alexey
13.06.2017
11:43:16
Теория современного Go
? перевод
? Хабрахабр: Go
tl;dr магия это плохо; глобальные состояние это магия → глобальные переменные в пакетах это плохо; функция init() не нужна
Самое главное и лучшее свойство Go это то, что он, по-сути, антимагический. Не считая пары исключений, простое чтение Go кода не оставляет двусмысленности в определениях, зависимостях или поведении рантайма. Это делает Go относительно легким для чтения, что, в свою очередь, делает его легким для поддерживания, что является самым главным свойством в индустриальном программировании.
Но всё же есть пару мест, где магия может просочиться. Один из, к сожалению, распространённых путей это использование глобального состояния. Объекты, определенные в глобальном пространстве пакета могут хранить ...
Автор оригинала: Peter Bourgon
Читать далее ➡ https://shbr.xyz/hh330786
У чувака NewObject ходит в базу. Дальше не читал.

Oleh
13.06.2017
11:44:45
?

Alexey
13.06.2017
11:45:30

Google

Subbotin
13.06.2017
11:46:58
и че? делать mutex на insert и update?

Oleh
13.06.2017
11:48:53
sqlite юзаешь?
если да, то используй gorm
у меня проблем не было

Michael
13.06.2017
11:49:32

Alexey
13.06.2017
11:49:32

Oleh
13.06.2017
11:50:26

Michael
13.06.2017
11:51:20

Subbotin
13.06.2017
11:51:27
ну вот вроде флаг есть

Alexey
13.06.2017
11:51:48
Ну тогда magic :-/

Michael
13.06.2017
11:51:59
не, до магии далеко
пул подключений ограничивается каким либо значением?

Subbotin
13.06.2017
11:52:36
поставить еденичку предлагаешь?

Michael
13.06.2017
11:53:18
резонно проверить
я б начал с 10
просто цифра хорошая

Kirill
13.06.2017
11:54:43