@proGO

Страница 1610 из 1674
Daniel
03.08.2018
11:34:15
докер - микросервис, наверное

Alexander
03.08.2018
11:37:38
а есть ли разница с какой буквы - маленькой или большей писать элементы стурктуры? это как то влияет на приватные переменные? type Dimensions struct { Height int Width int }

Daniel
03.08.2018
11:37:58
ответ есть в доке

(да)

Google
Виктор
03.08.2018
11:39:19
с маленькой буквы начинаются приватные поля, с большой - паблик

Bogdan (SirEdvin)
03.08.2018
11:39:51
докер - микросервис, наверное
Люди бд пишут на pure python, но это не значит, что так стоит делать, хотя бы из-за расхода памяти

Alexander
03.08.2018
11:41:49
https://play.golang.org/p/S_ScnhOeth5 но тут у меня есть доступ и приватным и у публичным

Artem
03.08.2018
11:44:31
в одном пакете (package) можно обращаться к приватным

Виктор
03.08.2018
11:44:34
https://play.golang.org/p/S_ScnhOeth5 но тут у меня есть доступ и приватным и у публичным
это касается пользователей пакета. если ты из пакета А попробуешь вызвать приватное поле структуры, находящейся в пакете Б, то у тебя не получится это сделать

Bogdan (SirEdvin)
03.08.2018
11:47:04
успешные бд?
Ну, использовалось в опенстеке) Но популярность у нее не очень большая, да

Alexander
03.08.2018
11:47:53
Спасибо

задача. сделать несколько параллеьных запросов и получить массив ответов. хочу для этого использовать горутины. мне обязательно надо использовать каналы(чтобы там работать с ответами) или можно без них как то обойтись?

Dmitri
03.08.2018
12:31:27
http.HandleFunc("/", r(&С)) и func r(w http.ResponseWriter, r *http.Request, z *c) { не рабят
логично, что "не рабят", сигнатуры-то разные. Если уж сильно приспичило, пиши функцию, которая из себя возвращает другую функцию с нужной сигнатурой. "Замыкание" - есть такая штука

Alexander
03.08.2018
12:32:01
Смотря для чего. Если подразумевается межгорутинный обмен данным, то каналы.
да я думаю без него обойдтись. просто мне надо как то собрать ответы в массив

Google
Dmitri
03.08.2018
12:32:43
Это не тип, структура
вот зря структура не с заглавной буквы, вероятно

Alexander
03.08.2018
12:32:49
или достаточно передать в каждую горутину ссылку на массив? и как мне дождаться завершения всех созданных горутин, чтобы потом работать с полным массивом?

Zver
03.08.2018
12:39:40
Да.

Alexander
03.08.2018
12:49:42
бле, не люблю мьютексы. а в канал можно слать структуры?

отмена

Pawel
03.08.2018
13:17:31
Запись в массив нужно будет синхронизировать.
Если не писать одновременно в один индекс, то не надо

бле, не люблю мьютексы. а в канал можно слать структуры?
Зря. Это самое простое для синхронищации

Daniel
03.08.2018
13:17:50
в канал можно что угодно слать

Zver
03.08.2018
13:20:13
бле, не люблю мьютексы. а в канал можно слать структуры?
А чего их не любить, обычный инструмент для синхронизации.

Alexey
03.08.2018
13:41:53
Всем привет! Не уверен, что я в тему, но есть предложение для разработчиков/начинающих стартаперов. Я – senior дизайнер по enterprise/SaaS/веб/мобилки. Сейчас нахожусь в активном поиске работы уже несколько месяцев, потому что мне постоянно то компания, то проекты не подходят. Но я не могу не заниматься дизайном и простаивать. Я делаю или бесплатно или очень дорого. Поэтому предложение: Готов бесплатно выделять +-8 часов в неделю на разработку вашего продукта, начиная от полного проектирования по бизнес-процессам/идеям и заканчивая hi-fi мокапами. Вы разработчик, который хочет сделать проект для портфолио с крутым дизайном? Пишите мне. Вы стартапер, у которого нет бюджета на хороший дизайн? Пишите мне. С вас какие-то гарантии, что проект будет в продакшене и отсутствие NDA.

Mikhail
03.08.2018
13:49:41
?

Alexander
03.08.2018
14:02:41
а надо ли закрывать горутины и каналы? после того, как они отработают свое

Google
Artem
03.08.2018
14:02:55
каналы да

Daniel
03.08.2018
14:08:47
но обычно канал закрывают, чтобы сообщить читателям, что покра завершаться

Alexey
03.08.2018
14:16:12
каналы да
горутины тем более)

Daniel
03.08.2018
14:33:42
а что такое закрыть горутину?

Artem
03.08.2018
14:34:19
а что такое закрыть горутину?
у меня есть пару предположений...

Alexander
03.08.2018
14:54:31
хочу написать функцию, которая бы возвращала результат и ошибку. мне надо будет передавать ошибку в каждом return даже если ошибки не было?

Daniel
03.08.2018
14:55:05
да

nil надо возвращать, если ошибки не было

Alexander
03.08.2018
14:57:31
да
а как передать пустую ошибку? или ошибку которая ничего не содержит? не знаю как это правильно называется в го?

Combot
03.08.2018
14:57:48
Alexander Andreev (0) увеличил репутацию Daniel Podolsky (1)

Sergey
03.08.2018
16:08:02
жесть

Kirill
03.08.2018
16:08:20
@onokonem

Kirill
03.08.2018
16:09:28
@onokonem тут твой банхаммер нужен

Daniel
03.08.2018
16:09:48
кто-то справился уже

Kirill
03.08.2018
16:09:54
Он в списке участников остался

Daniel
03.08.2018
16:10:00
а

Google
Alexey
03.08.2018
16:12:33
а что такое закрыть горутину?
Написать ее так, чтоб она завершилась, а не продолжала висеть, например, пытаясь отправить что-то в закрытый канал)

Daniel
03.08.2018
16:16:04
попытка отправки в закрытый канал заканчивается паникой

об этом написано в доке

Alexey
03.08.2018
17:03:50
Ну, в канал, из которого никто не читает, не важно) суть сообщения в том была, что следить за ними надо)

Daniel
03.08.2018
17:17:59
за горутинами нельзя следить снаружи. они сами должны за собой следить

Dorian
03.08.2018
19:04:29
Добрый вечер. Кто-то может растолковать про мьютексы? Бывают ли паники при конкурентном чтении/записи полей структуры? Я, почему-то, встречал только при чтении/записи элементов мапа. Нужно ли блокировать поля?

Dorian
03.08.2018
19:10:06
При любых переменных бывает, хоть мапа, хоть структура, хоть интеджер
То есть чтение мапа настолько медленно, что мне "везло" при моих скромных нагрузках?

Alexey
03.08.2018
19:10:53
Я не уверен, что упадёт при параллельной записи интеджера, просто может детектор не прцматьн

Не поймать

Но данные будут битые

Поэтому защищать мьютексом надо всегда

Dorian
03.08.2018
19:12:20
Насколько скромных?
Ну может пять реквестов в секунду в среднем, не более и горутина в бэкграунде каждую минуту

Поэтому защищать мьютексом надо всегда
Вас понял, большое спасибо

Я должен был это услышать от кого-то

Alexey
03.08.2018
19:15:15
Я должен был это услышать от кого-то
Главное, если только чтение - то защищать не надо. Если и чтение, и запись - то надо. И там по обстоятельствам, либо mutex, либо rwmutex

Roman
03.08.2018
19:15:25
Google
Alexandr
03.08.2018
19:16:27
слово "замыкание" вам говорит о чем-то?
Это разве замыкание называется? А не middleware?

Maksim
03.08.2018
19:17:47
Alexandr
03.08.2018
19:18:28
а чем замыкание не middleware?)
Вопрос терминологии, я не понял что такое замыкание, но знаю middleware или wrapper

Maksim
03.08.2018
19:18:29
в данном контексте это не middleware точно)

Maksim
03.08.2018
19:18:54
просто ф-я, которая выполнится когда придёт запрос.

Alexandr
03.08.2018
19:19:58
просто ф-я, которая выполнится когда придёт запрос.
так первая функция "прокидывает" аргументы во вторую функцию

Dorian
03.08.2018
19:20:46
Главное, если только чтение - то защищать не надо. Если и чтение, и запись - то надо. И там по обстоятельствам, либо mutex, либо rwmutex
Выходит, если меня не смущает, что один из потоков может поработать с "устаревшими" данными, то и лок не нужен?

Maksim
03.08.2018
19:21:09
так первая функция "прокидывает" аргументы во вторую функцию
в определении middleware нет ничего про аргументы

Maksim
03.08.2018
19:21:19
а колбеков может быть сколько угодно

Dorian
03.08.2018
19:27:31
Насколько мне известно определение middleware выступает как паттерн промежуточной обработки реквеста, который часто реализуется через колбэк, а замыкание – определение функции, передаваемой как аргумент + нюансы с областью видимости

Maksim
03.08.2018
19:29:03
в целом верно, за исключением привязки к реквесту

Dorian
03.08.2018
19:29:39
Ну да, это субьективно мое, потому что только в контексте реквестов с мидлварами работал

Daniel
03.08.2018
19:45:02

Страница 1610 из 1674