
Andrey
31.07.2018
10:27:39
в микросервисах вообще теряется понятие энтити, потому что нет этого самого энтити

Maksim
31.07.2018
10:27:59
Связь где? Пофиг на энтити

Andrey
31.07.2018
10:29:12
связь? то, что он смотрит на микросервисы однобоко, пытаясь строить какое-то лего, но это всего лишь один из многочисленных способов

Maksim
31.07.2018
10:29:44
Он ничего не пропускает. Просто кому-то следовало упороться кем-нить вроде эванса.

Google

Maksim
31.07.2018
10:31:06
Особенно если этот кто-то пытается строить что-то большое.

Андрей
31.07.2018
10:31:55
Блин, жёстко тут у вас однако)

Andrey
31.07.2018
10:33:37
Андрюх, дай человеку потешить ЧСВ, пропусти мимо ушей/глаз))

Maksim
31.07.2018
10:34:34
Очередной слив... взррслые-то есть.
Какой к чёрту чсв?

Андрей
31.07.2018
10:34:38
Да я вообще не в теме, я только учусь)

Andrey
31.07.2018
10:35:28
если вернуться снова к конструктиву, поделитесь, что же конкретно стоит прочитать у эванса, если он так хорош

Андрей
31.07.2018
10:35:49
Микросевис это типа докера?

Maksim
31.07.2018
10:37:38
Ты не поверишь... прочесть стоит про баундед контекст, который ты заюзал в весьма сомнителтном контексте.
Если ещё конструктивнее https://www.ozon.ru/context/detail/id/5497184/

Andrey
31.07.2018
10:38:18
вам кстати привели пример, где bounded context не сработал

Maksim
31.07.2018
10:38:18
Начни с этогл

Andrey
31.07.2018
10:38:30
если вы не согласны, поделитесь сокровенным знанием

Maksim
31.07.2018
10:38:33
Давай от обратного:что ему бы помешало сработать?

Google

Andrey
31.07.2018
10:39:30
зачем мне обратное, расскажи в чем он сработал
мне надо знать, что я пропустил в физическом дизайне данных

Maksim
31.07.2018
10:41:39
Во всем. Полностью изолированные контексты за общей аркестрацией. Изи.
Еслм захочешь предметно и конструктивно - велкам. Если снова сливы в духе чсв, можно идти работать

Andrey
31.07.2018
10:44:06
если они так изолированы, кто управляет стейтом?

Maksim
31.07.2018
10:44:23
стейтом чего?
что такое доменная модель?

Andrey
31.07.2018
10:44:43
мне нужно вывести страницу, где я должен видеть имя пользователя, платежную историю, контактные данные и историю переписки

Maksim
31.07.2018
10:44:55
сколько контекстов ты здесь видешь7

Andrey
31.07.2018
10:45:11
тебе обрисовали, нет?
вводная не менялась, все тот же случай

Maksim
31.07.2018
10:45:40
на вопрос ответь

Andrey
31.07.2018
10:45:56
он рассказывает про bounded context и пропускает факт, что многие системы имеют разное представление об объекте, например, кастомер для CRM подсистемы - это набор контактных данных + история общения, кастомер для пеймент подсистемы - payment token + история платежей, и так далее

Maksim
31.07.2018
10:46:05
ясна.
у меня плохие новости: это не он пропускает.

Bohdan
31.07.2018
10:46:31
кстати, Уди хорошо описывал подобный случай на примере того же амазона
в частности, книга, ее цена, ее комментарии....

Andrey
31.07.2018
10:49:34
ну насчет софтскиллов у макса все плохо, что поделать, оставим там, где он есть с его оценками по фотографии, он кстати не ответил ни на один из вопросов, тупо вбросы)

Maksim
31.07.2018
10:51:04
думай, как знаешь. Ты врядли чёт знаешь про контексты, но это уже детали. Если бы знал, получилось бы предметное обсуждение. Если внезапно захочешь продолжить, ответь на вопрос "сколько контекстов ты видешь в своей задаче". Если нет, заканчивай херню нести.
customers | discuss | payments
в дискусе нет связи с пользователем. Есть связь с отправителем\получателем и сообщенькой. Если айдишники участника совпадают с пользователем - изи катка. Если нет, рядом оркестрация, которая предоставляет реляцию.
что меняется во взаимодействии с платежами - вопрос риторический. Выше тебе Богдан накинул за Udi, посмотри на досуге
то, что айдишники в 1 из вариаций могут совпадать - всего лишь реализация. Это никак не влияет на связанность, ибо вся она держится на 1 скаляре, просто значении.

Dmitriy
31.07.2018
10:55:08
сложно пишешь, картинку рисуй ?

Maksim
31.07.2018
10:55:37

Google

Maksim
31.07.2018
10:59:37
Эванс, Вернон, тот же Udi... бери, читай\смотри, практикуй и будет понимание, как вопрос закрывается. Нет жешь, надо обязательно поспорить. Ради чего только :)

Roma
31.07.2018
13:17:38
Народ
Как пагинацию сделать?
Вот такая структура:
{
"total": 200,
"per_page": 15,
"current_page": 1,
"last_page": 14,
"next_page_url": "https://vuetable.ratiw.net/api/users?page=2",
"prev_page_url": null,
"from": 1,
"to": 15,
"data": [
{...},
{...}
//...
]
}

[Anonymous]
31.07.2018
14:29:27
need help
объявил тип type Cities []City
как теперь по нему итерироваться?
обратно он не кастуется в массив

Nyan
31.07.2018
14:33:23

[Anonymous]
31.07.2018
14:34:08
аа все, я забыл звездочку
спс
у меня был указатель на тот тип

Hello
31.07.2018
14:37:59
need help
https://play.golang.org/p/KnwHfvUMmJQ

Roman
31.07.2018
15:29:47
http://sweetohm.net/article/go-interfaces.en.html

Sergey
31.07.2018
18:46:55
Надоело писать мне вообщем роуты
Есть вот у меня интерфейс типа
type Controller interface {
Get(id string) (interface{}, error)
}
и как бы у меня много моделек, которые реализуют этот интерфейс(пустой интерфейс потому что разные структуры)
Так вот есть у меня роут на Get
func GetOneNote(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
id := vars["id"]
note_id := vars["note_id"]
note, err := db.Note{}.Get(id, note_id)
if err != nil {
log.Println("err is ", err)
returnLoginFailed(w)
return
}
json.NewEncoder(w).Encode(map[string]interface{}{
"success": "success",
"note": note,
})
}
роуты такие все одинаковые
просто меняется внутри моделька к которой вызывается
Get(id)
вопрос как оптимизировать, написать один роут и его использовать много раз, или лучше просто нагенерировать роутов
через go generate

Google

Sergey
31.07.2018
18:48:59
?

Roman
31.07.2018
19:06:02
странно что context.WithTimeout и прочие не принимают nil как parentContext.. есть причина тому что разрабы пришли именно к такому, опасному (becase memory access violation), интерфейсу нежели вставить банальную if ctx == nil {ctx = Background()}?

Roma
31.07.2018
19:46:47
Так
А пагинацию данных делал кто?

Roman
31.07.2018
19:53:03

User ?
31.07.2018
20:22:01
Привет, кто работал с mgo? подскажите есть ли возможность получить objectid созданного документа при Insert?

Sergey
31.07.2018
20:36:52

Roma
31.07.2018
20:45:45

User ?
31.07.2018
20:47:25


Roman
31.07.2018
20:53:23
Э, не, так нельзя. Вдруг между моим insert и моим запросом returnlastid кто-то еще успеет что-то инсертнуть
типичная проблема кэширования части динамического массива. Проблема довольно сложная, но в принципе решается так:
§ 1. в запросе на чанк списка указываются параметры: limit, sort и after. Где limit это максимальный размер чанка, sort это поле, по которому мы сортируем список и after - значение того-же типа что и поле, по которому сортируем, которое указывает на последний элемент который у нас есть.
§ 1.1. при первом запросе, скажем первых 10 элементов, after можно не указывать.
§ 1.2. если поле по которому мы сортируем - не уникальное, тогда нужно помимо значения after указывать index нашего последнего элемента
§ 2. в ответе отдаём некий revision number (это может быть уникальное число или UUID идентификатор), который указывает на версию списка.
§ 3. revision обязательно должна быть обновлена в случае обновления массива (удаление, перемещение, добавление, любые мутации)
§ 4. по revision мы определяем, актуален ли cache который мы уже имеем на стороне клиента. Если ревизии на клиенте и в очередном ответе сервера рознятся - нужно удалять все прежде закэшированные чанки массива на клиенте поскольку они уже не актуальны
§ 4.1. если речь идёт об infinite scroll'е то можно после удаления имеющихся страниц cache'а снова загрузить -1 и +1 страницы относительно актуальной страницы для улучшения UX


jack
01.08.2018
04:14:00
давно тебя не было, братан. ты каждое утро?

militska
01.08.2018
04:15:58
так надолго пропадет, начнем волноваться хД

Dmitry
01.08.2018
05:32:14
Доброго времени суток. Где можно найти примеры хороших веб-серверов? Что б можно было посмотреть как нормальные люди делают)

Maksim
01.08.2018
05:33:18

Dmitry
01.08.2018
05:38:11

Dmitri
01.08.2018
06:00:49
ща тебе swagger прорекламируют

Eldar
01.08.2018
06:11:50
rest-server? что за термин такой?

Dmitry
01.08.2018
06:12:33

Daniel
01.08.2018
06:12:48
rest api framework? хм

Eldar
01.08.2018
06:12:58
rest-service или http-server

Dmitry
01.08.2018
06:15:10
Тогда думаю я имею ввиду сервис.

Google

Eldar
01.08.2018
06:17:03
https://nordicapis.com/7-frameworks-to-build-a-rest-api-in-go/
первая ссылка гугле)