.
Ну вот мы хотим логировать что то из домена
.
Где нам это делать
Maksim
я не совсем уверен, что смогу тебе в чатике объяснить тему нескольких книг. Но давай от обратного: что для тебя домен. Попробуй привести пример какой-нибудь из жизни.
.
я не совсем уверен, что смогу тебе в чатике объяснить тему нескольких книг. Но давай от обратного: что для тебя домен. Попробуй привести пример какой-нибудь из жизни.
Вызывают у нас допустим апишку для создания поста. На уровне домена мы определяем что происходит при этом вызове, а именно: проверяем может ли делать это юзер, создаём сам пост, обновляем счётчик постов, возвращаем айди поста. В таком духе
Maksim
а что в этом кейсе бизнее логика? бизнесу не насрать, например, какой http сервер ты юзаешь, что бы получить запрос на создание поста?
.
Возьмём например эту простенькую картинку
.
Ну вот Logic tier
Maksim
на adr смахивает
Maksim
ну т.е. Logic tier у нас умеет принимать запросы, как-то их крутить, ходить за данными и давать указание на построение проекций?
Maksim
если на все вопросы ответ положительный, то мы под доменом явно понимаем разные вещи.
.
Что вы понимаете под доменом?
Aleksandr
на adr смахивает
adr - паттерн вообще другого уровня. на схеме обычное слоистое приложение, где под logic понимается домен и инфраструктура
Aleksandr
точнее смесь. logic и data - домен и инфра
Aleksandr
application пропущен, ну понятно - он между первым и вторым
Maksim
Что вы понимаете под доменом?
на этот вопрос, что бы исключить недопонимания, ответит лучше Eric Evans (искать его труды в гугле, или на озоне).
Maksim
в данной схеме логируй где хочешь. Хуже не будет. Это иллюзия какой-то архитектуры.
.
Скиньте материалов по хорошей архитектуре, я прочту
Maksim
Гамма следом)
Maksim
если твою картинку разбить на множество контекстов в рамках приложеньки, будет толк. а так, не уверен.
Alexey
Эванс, Мартин, Фаулер, Вернон
уж лучше пусть Вернона начнет, не надо ему сразу 500стр давать)
Aleksandr
эванса после вернона, если второго осилишь - иначе решишь бросить программирование) эванс очень тяжело читается без опыта чтения подобной литературы
Aleksandr
а мартин и фаулер - это один человек)
Alexey
Гамма следом)
это ты про банду 4?
Maksim
это ты про банду 4?
да) а тут уже точно в конце
Maksim
а мартин и фаулер - это один человек)
ну у него есть ещё 1 имя :)
Aleksandr
Роберт Мартин ?
а, может быть.
Maksim
ты с бобом явно попутал)
Maksim
в смысле что роберт = дядя боб
Maksim
а что касается гаммы, то его читать в самом конце. Субъективно, конечно, но он идёт просто пздц как туго.
Anonymous
подскажите. хочу сделать map[хэш]time.Time хэш надо считать от двух uint64 Как это сделать бысрее всего?
Anonymous
Или проще сделать map[uint64]map[unit64]time.Time
Anonymous
type Key struct { First, Second uint64 } map[Key]time.Tine
Ого. Забыл о такой возможности. Интересно как это внутри работает. Надо побенчмаркать.
Nikita
Или проще сделать map[uint64]map[unit64]time.Time
не проще, ведь вместо одной мапы у тебя будет дохера
Anonymous
спасибо)
Pawel
Есть 10 денег на то, чтобы построить MVP, еще 10 чтобы добить до окупаемости. Отсюда определение репозитория, которое просили, чистой архитектуры и т.п. вещей - пишешь на 10 вместо фич юнит-тесты, клин архитектуру, репозитории, еще на 10 денег яростно рефактиришь. И оказываешься с прекрасным кодом, который делает только четверть нужного для окупаемости, без денег.
Maksim
всё никак не угомонится)
Maksim
поэтому да, бесполезный набор буковок
Pawel
поэтому да, бесполезный набор буковок
то есть это ни как не связано по твоему, что сам то ты даже попытки не сделал объяснить полезность? ну ну
Алексей
все провалились
Maksim
то есть это ни как не связано по твоему, что сам то ты даже попытки не сделал объяснить полезность? ну ну
сделал, но ты не понял. Это не моя проблема и на меня свои косяки проецировать не нужно
Maksim
сиди дальше с крудами, я уважаю твой выбор.
Roman
Скиньте материалов по хорошей архитектуре, я прочту
https://github.com/qbeon/webwire-example-postboard я бы предложил такой вариант: network -> resolver -> engine
Eugenii
Подскажите насколько плохая идея назначать метод вложенному объекту, что бы получить некоторое подобие абстрактного класса? что то типа такого https://play.golang.org/p/eqcGOwQXM9T такую штуку реализовал и даже все работает, но терзают сомнения
Мерль
То же самое можно и нужно делать с интерфейсами
Kirill
Гошка из коробки не даёт маршалить и анмаршалить приватные поля
Roman
вы хотя-бы код форматируйте или на playground кидайте..
Kirill
А, там ещё код был
Nikita
в скан передан только dataSQL, а надо 7 параметров
Nikita
Оно так не умеет
Nikita
https://play.golang.org/
Roman
Ctrl+Shift+M либо обернуть в три ` да будет тебе код
Nikita
Есть, например использовать пакет sqlx, либо gorm
Eugenii
хорошо, данке шон пытался спрашивать гугл, но что то не удачно, своим решениям еще не до конца доверяю
Viktor
в конце сообщения не хватает ```, кажется
Roman
Roman Poletaev: Что даёт RunParallel в бенчмарках?
Alexey
Эванс, Мартин, Фаулер, Вернон
А что у Фаулера интересного по книгам?
Maksim
А что у Фаулера интересного по книгам?
эм, да всё интересное. начни с классики: шаблоны корп приложений
Alexey
эм, да всё интересное. начни с классики: шаблоны корп приложений
вот ее кстати, не читал, что-то интересное можно увидеть после GOF и Эванса?
Maksim
ну прям прорывного нового, нет
Alexander
вот ее кстати, не читал, что-то интересное можно увидеть после GOF и Эванса?
GOF и EIP вообще про разные паттерны. И я бы у Мартина рекомендовал "Рефакторинг" прочитать
Maksim
gof - просто справочник, по своей сути
Alexander
Гоф - про код. EIP внезапно скорее про архитектуру приложения или взаимодействия между несколькими приложениями