
Wingman
29.08.2018
19:55:05
Да, в парадигму вьезжать надо
А потом всякие там блокировки.... Особенно если куча каналов создается и убивается динамически

Алексей
29.08.2018
19:56:47
Тяжко питонисту go дается....

Аркадий
29.08.2018
19:57:07

Google

Alexander
29.08.2018
19:57:08
Ничего, привыкнешь очень быстро

Аркадий
29.08.2018
19:58:12

Pawel
29.08.2018
19:58:58
Прочёл generics draft overview. Не очень понятен радостный ажиотаж ФП-боев. Судя по тексту там больше вопросов чем ответов, совершенно не понятно появятся ли дженерики в Го-2, а если появятся, то в каком виде. Контракты в том виде, как он их описал, было бы круто конечно, но маловероятно что они будут (а без них я так понял дженерикам не бывать). Не понятно например как определить эквивалетность контрактов и как их наследовать.

Евгений
29.08.2018
19:59:52
Тут есть кто говорил что джинерики не нужны?
Что вы будете говорить после того как их введут?

Алексей
29.08.2018
20:00:09
Что, коллеги, благодарю!! Пошел осознавать :) всем доброй ночи!

Pawel
29.08.2018
20:12:54

Daniel
29.08.2018
20:13:31

Pawel
29.08.2018
20:14:46

Daniel
29.08.2018
20:16:23
не
вот @pragus говорит, что они ему были бы полезны - и я ему верю
просто он ленится объяснить, в чем :)

Google

Евгений
29.08.2018
20:19:10

Pawel
29.08.2018
20:20:22

Daniel
29.08.2018
20:20:38
какое именно мнение я не изменю?
повторяю по буквам: за 5 лет программирования на go не столкнулся с задачей, где были бы уместны генерики
так видно?
вы столкнулись, коллега?
опишите, пожалуйста, свою задачу

Stanislav
29.08.2018
20:21:18
мне больше кажется, что они хотят изобрести неудобную версию interface{} ?

Pawel
29.08.2018
20:22:33

Stanislav
29.08.2018
20:24:15
лучше бы сделали более удобным (и менее затратным) получение типа данных из интерфейса (типа чтобы я мог сделать что-то вроде `if i.Type != int { return }`). А, погодите, они же это и хотят ввести в виде type section ?
кошмарЪ

Vadim
29.08.2018
20:24:33
Привет, есть что-нибудь на го, что умеет создавать онлайн график? В gui

Pawel
29.08.2018
20:25:52

Daniel
29.08.2018
20:26:49
нет уж, не надо

Pawel
29.08.2018
20:28:16
@onokonem как вам вот это
\\ list
package list[T]
type T interface{}
type List struct {
Val T
Next *List
}
// main
package main
import (
il "list"[int]
sl "list"[string]
)
var iList = il.List{3}
var sList = sl.List{"hello"}
имхо - и рыбку съесть и овцы целы

Daniel
29.08.2018
20:29:13
этого недостатточно, к сожалению

Roman
29.08.2018
20:29:53

Pawel
29.08.2018
20:29:59

Daniel
29.08.2018
20:30:32
со всеми, надо сказать, вытекающими, вроде сдвига элементов массива при удалении первого

Евгений
29.08.2018
20:32:26

Google

Daniel
29.08.2018
20:33:05
на каком языке у вас есть задача для генериков? какая?

Nick
29.08.2018
20:34:34

Vadim
29.08.2018
20:38:17

Pawel
29.08.2018
20:40:28
на каком языке у вас есть задача для генериков? какая?
Например есть много алгоритмов из линейной алгебры, где одни и те же действия делаются с двумя похожими наборами данных (горизонтальные и вертикальные координаты), большую часть времени независимо. И хотелось бы вместо того, чтобы писать одинаковый код и следить, как бы не передать куда иксы вместо игреков, просто лифтануть имеющиеся функции, чтобы они работали сразу с парами значений. Для этого надо что-то вроде - описать, каким образом диагональный функтор (гомогенные туплы) является аппликативным. Тут бы конечно дженерики с тайпклассами сгодились. И контракты, которые они там прдлагали, зашли бы. Но задачка не слишком типичная для Го

Daniel
29.08.2018
20:42:41
угу

Pawel
29.08.2018
20:45:53
Другой пример - фин. и биржевые расчёты и аналитика, где реально возникает необходимость определять хитрые типы-суммы и каким образом они реализуют монадную bind, например. Иначе задолбаешься писать с ними однотипный код. Но опять таки - насколько это актуально для программ на Го, которые мы тут пишем - вопрос

Daniel
29.08.2018
20:46:37
а вот биржевые расчеты я делал, и тут весьма уместа кодогенерация
потому как формат описания этих расчетов хорошо бы использовать человекочитаемый

Pawel
29.08.2018
20:47:19
да, я тоже по этому пути пошёл. Вот буквально недавно наловчился писать кодогенераторы

Vadim
29.08.2018
20:50:05

Roman
29.08.2018
21:12:46

Daniel
29.08.2018
21:13:15
а тебе зачем?
если не секрет

Roman
29.08.2018
21:14:49
а тебе зачем?
Упорядоченный мап? Или вообще возможность подсунуть свой контейнер?

Daniel
29.08.2018
21:15:21
упорядоченый подсунуть

Roman
29.08.2018
21:20:06

Daniel
29.08.2018
21:26:49
примеров я могу и сам придумать
мне хочется с конкретной задачей познакомиться

Никита
29.08.2018
21:33:06
Как вы делаете валидацию данных запроса? Например, есть запрос с такими данными:
{
"token": "11111111111111111111111111111111",
"users": [{
"name": "Михайленко Денис",
"phone": "0980000000"
}]
}
Все это парсится в структуру, в которой тэгом обозначен паттерн, которому должно соответствовать поле:
type UsersUpload struct {
SessionToken string `json:"token" pattern:"^[a-zA-Z0-9]{32}$"`
Users []struct {
Name string `json:"name" pattern:"^[\\p{L}'-]+\\s[\\p{L}'-]+\\s[\\p{L}'-]+$"`
Phone string `json:"phone" pattern:"^[0-9]{10}$"`
} `json:"users"`
}
Каждое поле должно быть провалидировано.
Сейчас у меня есть самописный валидатор, но я чувствую что он написан ужасно. Что посоветуте?

Google

Stanislav
29.08.2018
21:36:29

/dev/null
30.08.2018
00:47:58
Ребят, пишу микросервис авторизации
Какую базу лучше взять для сохранения пользовательских данных (логин/пароль/еще несколько ключей) склоняюсь к Mongo, но может есть что-то более подходящее под эту задачу?

Roman
30.08.2018
01:14:00
https://youtu.be/R2RJWLcfzwc?t=13m7s
нам нужно что-то подобное в Go
что-то что анализирует изменения в экспортируемых символах пакета и автоматически определяет новый version number

Admin
ERROR: S client not available

Alexander
30.08.2018
01:33:30

Pawel
30.08.2018
04:14:06

Alexander
30.08.2018
04:15:00
лол. тут женерикосрач с прошлого утра?

Alexander
30.08.2018
04:25:46
в плюсах нет дженериков
Не придирайтесь к словам. Там есть темплейты, которые покрывают 99% кейсов, для которых нужны дженерики.

Мерлин
30.08.2018
05:45:30


Никита
30.08.2018
07:32:40
Спасибо!

Nix
30.08.2018
07:48:56
подскажите как нативно извлечь слово из текста, есть возможность ставить суфик с прфиксом $или % тримом?

Google

Roman
30.08.2018
07:59:43
Ладно, спрошу не про дженерики: что вы делаете, если ваш код медленный, а возможности по оптимизации уже исчерпаны?

Мерлин
30.08.2018
08:01:55

Nix
30.08.2018
08:03:31
Тексте есть слова экранированы "bla bla $slovo bla" нужно достать $slovo

Lesha
30.08.2018
08:03:48

Roman
30.08.2018
08:06:02

Lesha
30.08.2018
08:07:05

Roman
30.08.2018
08:08:17

Lesha
30.08.2018
08:09:18
что вы имеете ввиду под ускорить? по времени?

Alexander
30.08.2018
08:11:33
Ладно, спрошу не про дженерики: что вы делаете, если ваш код медленный, а возможности по оптимизации уже исчерпаны?
Лол. Расширяю сознание. "Медленный код" это древний миф, если код написан нормально он не может тормозить сам по себе. Тормозят либо внешние компоненты, куда ваш код бегает (база, сетевые вызовы), либо не хватает ресурсов сервера. Крайний случай, когда вы действительно что-то специфическое пишете: HFT, число-дробилки, но это уже отдельная тема и скиллы разработчика должны соответствовать сложности задачи.

Roman
30.08.2018
08:12:42

Alexander
30.08.2018
08:13:56

Roman
30.08.2018
08:14:28
Могу перефразировать: что делать когда компилятор недостаточно хорош?

Abdulla
30.08.2018
08:15:21

James
30.08.2018
08:15:54

Roman
30.08.2018
08:16:12

Виктор
30.08.2018
08:16:44

James
30.08.2018
08:16:44

Roman
30.08.2018
08:18:18

Виктор
30.08.2018
08:18:57
?
Вот только проблема в том что на сколкьо ты умнее компилятора