@gogolang

Страница 1432 из 1630
Aleksandr
20.09.2018
14:29:21
точнее смесь. logic и data - домен и инфра

Aleksandr
20.09.2018
14:29:58
application пропущен, ну понятно - он между первым и вторым

Maksim
20.09.2018
14:30:36
Что вы понимаете под доменом?
на этот вопрос, что бы исключить недопонимания, ответит лучше Eric Evans (искать его труды в гугле, или на озоне).

Google
Maksim
20.09.2018
14:31:45
в данной схеме логируй где хочешь. Хуже не будет. Это иллюзия какой-то архитектуры.

Никита
20.09.2018
14:32:06
Скиньте материалов по хорошей архитектуре, я прочту

Maksim
20.09.2018
14:32:54
Гамма следом)

если твою картинку разбить на множество контекстов в рамках приложеньки, будет толк. а так, не уверен.

Алексей
20.09.2018
14:34:58
Эванс, Мартин, Фаулер, Вернон
уж лучше пусть Вернона начнет, не надо ему сразу 500стр давать)

Aleksandr
20.09.2018
14:34:58
эванса после вернона, если второго осилишь - иначе решишь бросить программирование) эванс очень тяжело читается без опыта чтения подобной литературы

Maksim
20.09.2018
14:35:47
Aleksandr
20.09.2018
14:36:10
а мартин и фаулер - это один человек)

Алексей
20.09.2018
14:36:10
Гамма следом)
это ты про банду 4?

Maksim
20.09.2018
14:36:21
это ты про банду 4?
да) а тут уже точно в конце

Alexander
20.09.2018
14:37:27
Maksim
20.09.2018
14:37:29
а мартин и фаулер - это один человек)
ну у него есть ещё 1 имя :)

Google
Aleksandr
20.09.2018
14:37:46
Роберт Мартин ?
а, может быть.

Maksim
20.09.2018
14:38:05
ты с бобом явно попутал)

в смысле что роберт = дядя боб

а что касается гаммы, то его читать в самом конце. Субъективно, конечно, но он идёт просто пздц как туго.

Лемур
20.09.2018
14:42:09
подскажите. хочу сделать map[хэш]time.Time хэш надо считать от двух uint64 Как это сделать бысрее всего?

Или проще сделать map[uint64]map[unit64]time.Time

Лемур
20.09.2018
14:44:51
type Key struct { First, Second uint64 } map[Key]time.Tine
Ого. Забыл о такой возможности. Интересно как это внутри работает. Надо побенчмаркать.

Mykyta
20.09.2018
14:44:55
Или проще сделать map[uint64]map[unit64]time.Time
не проще, ведь вместо одной мапы у тебя будет дохера

Лемур
20.09.2018
14:45:15
спасибо)

Pawel
20.09.2018
14:45:56
Есть 10 денег на то, чтобы построить MVP, еще 10 чтобы добить до окупаемости. Отсюда определение репозитория, которое просили, чистой архитектуры и т.п. вещей - пишешь на 10 вместо фич юнит-тесты, клин архитектуру, репозитории, еще на 10 денег яростно рефактиришь. И оказываешься с прекрасным кодом, который делает только четверть нужного для окупаемости, без денег.

Maksim
20.09.2018
14:47:28
всё никак не угомонится)

Maksim
20.09.2018
14:49:04
поэтому да, бесполезный набор буковок

Pawel
20.09.2018
14:50:04
поэтому да, бесполезный набор буковок
то есть это ни как не связано по твоему, что сам то ты даже попытки не сделал объяснить полезность? ну ну

Google
Maksim
20.09.2018
14:50:29
то есть это ни как не связано по твоему, что сам то ты даже попытки не сделал объяснить полезность? ну ну
сделал, но ты не понял. Это не моя проблема и на меня свои косяки проецировать не нужно

сиди дальше с крудами, я уважаю твой выбор.

Roman
20.09.2018
14:52:28
Скиньте материалов по хорошей архитектуре, я прочту
https://github.com/qbeon/webwire-example-postboard я бы предложил такой вариант: network -> resolver -> engine

Eugenii
20.09.2018
14:53:32
Подскажите насколько плохая идея назначать метод вложенному объекту, что бы получить некоторое подобие абстрактного класса? что то типа такого https://play.golang.org/p/eqcGOwQXM9T такую штуку реализовал и даже все работает, но терзают сомнения

Макс
20.09.2018
14:58:41
подскажите в чем ошибка type rawDataSQL struct { id sql.NullInt64 title sql.NullString tag sql.NullString img sql.NullString imghover sql.NullString createdAt sql.NullString updatedAt sql.NullString } type dataSQLStruct struct { ID int json:"id" Title string json:"Title" Tag string json:"Tag" Img string json:"Img" Imghover string json:"Imghover" CreatedAt string json:"CreatedAt" UpdatedAt string json:"UpdatedAt" } var ( dataSQL rawDataSQL result []dataSQLStruct err error ) rows, err := postgres.DB.Query("SELECT * FROM categories") if err != nil { log.Println("Get categories error #1", err) return } defer func() { if err != nil { ctx.SetCode(http.StatusServiceUnavailable) } else { ctx.JSON(result) } err = rows.Close() if err != nil { log.Println("Get categories error #2", err) } }() for rows.Next() { err = rows.Scan( &dataSQL, ) if err != nil { log.Println("Proplan getCountBotPaymentTimeAll error #1", err) continue } data := dataSQLStruct{ ID: int(dataSQL.id.Int64), Title: dataSQL.title.String, Tag: dataSQL.tag.String, Img: dataSQL.img.String, Imghover: dataSQL.imghover.String, CreatedAt: dataSQL.createdAt.String, UpdatedAt: dataSQL.updatedAt.String, } result = append(result, data) } Proplan getCountBotPaymentTimeAll error #1 sql: expected 7 destination arguments in Scan, not 1

Kirill
20.09.2018
14:59:39
А, там ещё код был

Макс
20.09.2018
15:00:27
Макс
20.09.2018
15:00:50
Mykyta
20.09.2018
15:00:50
Макс
20.09.2018
15:01:34
Оно так не умеет
т.е. надо создать необходимое кл-во переменных и другого способа нет

Mykyta
20.09.2018
15:01:41
извиняюсь не умею
https://play.golang.org/

Roman
20.09.2018
15:01:42
извиняюсь не умею
Ctrl+Shift+M либо обернуть в три ` да будет тебе код

Mykyta
20.09.2018
15:02:01
Макс
20.09.2018
15:02:02
спасибо огромное

Google
Eugenii
20.09.2018
15:06:20
хорошо, данке шон пытался спрашивать гугл, но что то не удачно, своим решениям еще не до конца доверяю

Макс
20.09.2018
15:10:17
сделал так ``` type rawDataSQL struct { id sql.NullInt64 title sql.NullString tag sql.NullString img sql.NullString imghover sql.NullString createdAt sql.NullString updatedAt sql.NullString } type dataSQLStruct struct { ID int json:"id" Title string json:"Title" Tag string json:"Tag" Img string json:"Img" Imghover string json:"Imghover" CreatedAt string json:"CreatedAt" UpdatedAt string json:"UpdatedAt" } var ( dataSQL rawDataSQL result []dataSQLStruct err error ) rows, err := postgres.DB.Query("SELECT * FROM categories") if err != nil { log.Println("Get categories error #1", err) return } defer func() { if err != nil { ctx.SetCode(http.StatusServiceUnavailable) } else { ctx.JSON(result) } err = rows.Close() if err != nil { log.Println("Get categories error #2", err) } }() for rows.Next() { err = rows.Scan( &dataSQL.id, &dataSQL.title, &dataSQL.tag, &dataSQL.img, &dataSQL.imghover, &dataSQL.createdAt, &dataSQL.updatedAt, ) if err != nil { log.Println("Proplan getCountBotPaymentTimeAll error #1", err) continue } data := dataSQLStruct{ ID: int(dataSQL.id.Int64), Title: dataSQL.title.String, Tag: dataSQL.tag.String, Img: dataSQL.img.String, Imghover: dataSQL.imghover.String, CreatedAt: dataSQL.createdAt.String, UpdatedAt: dataSQL.updatedAt.String, } result = append(result, data) }

https://play.golang.org/p/v8sdrLYCH6Q

Виктор
20.09.2018
15:11:27
в конце сообщения не хватает ```, кажется

Макс
20.09.2018
15:11:30
спасибо

понял

Roman
20.09.2018
15:19:26
Roman Poletaev: Что даёт RunParallel в бенчмарках?

Admin
ERROR: S client not available

Алексей
20.09.2018
15:32:45
Эванс, Мартин, Фаулер, Вернон
А что у Фаулера интересного по книгам?

Maksim
20.09.2018
15:33:38
А что у Фаулера интересного по книгам?
эм, да всё интересное. начни с классики: шаблоны корп приложений

Алексей
20.09.2018
15:34:40
эм, да всё интересное. начни с классики: шаблоны корп приложений
вот ее кстати, не читал, что-то интересное можно увидеть после GOF и Эванса?

Maksim
20.09.2018
15:35:11
ну прям прорывного нового, нет

Alexander
20.09.2018
15:39:21
вот ее кстати, не читал, что-то интересное можно увидеть после GOF и Эванса?
GOF и EIP вообще про разные паттерны. И я бы у Мартина рекомендовал "Рефакторинг" прочитать

Maksim
20.09.2018
15:39:44
gof - просто справочник, по своей сути

Alexander
20.09.2018
15:40:29
Гоф - про код. EIP внезапно скорее про архитектуру приложения или взаимодействия между несколькими приложениями

Alexander
20.09.2018
15:41:09
Ентерпрайз Интегрейшн Паттернз

Google
Maksim
20.09.2018
15:41:17
Enterprise Integration Patterns

Kirill
20.09.2018
15:42:19
Ethereum Improvement Proposal

Fastumkruk ✅
20.09.2018
15:43:24
Всем привет. А почему рандом всегда одни и те же цифры выдает? https://play.golang.org/p/fkGMsoe9hvO

Ilia
20.09.2018
15:43:44
ограничение песочницы

Stanislav
20.09.2018
15:44:06
Всем привет. А почему рандом всегда одни и те же цифры выдает? https://play.golang.org/p/fkGMsoe9hvO
потому что: 1. Песочница, скорее всего 2. https://golang.org/pkg/math/rand/#New

Alexander
20.09.2018
15:44:15
EIP очень хорошо заходит, если есть в языке или экосистеме фреймворк или либа, которая их реализует. Например в джяве есть отличный Apache Camel. Ну в целом можно и так паттерны EIP знать, чтобы в случае чего не велосипедить именно с точки зрения проектирования

Stanislav
20.09.2018
15:44:27
где инициализация?

Fastumkruk ✅
20.09.2018
15:45:03
где?
В лайт иде

где инициализация?
Из примера взял

Stanislav
20.09.2018
15:45:59
инициализации ручной нет - уникальность не гарантируется

Fastumkruk ✅
20.09.2018
15:51:53
rand.Seed(time.Now().UnixNano()) fmt.Println(rand.Intn(1000))
Всегда ноль на старте, то же самое по сути

Fastumkruk ✅
20.09.2018
15:52:27
eugene
20.09.2018
15:52:57
да
а если у себя скомпилите\запустите?

Aleksandr
20.09.2018
15:53:01
да
в реальных условиях проверяй

Nyan
20.09.2018
15:54:01
в плейграунде функция получения текущего времени всегда возвращает 1257894000000000000

Fastumkruk ✅
20.09.2018
15:54:19
а если у себя скомпилите\запустите?
отлично, работает, спасибо!

Страница 1432 из 1630