@gogolang

Страница 1547 из 1630
Александр
12.10.2018
18:35:45
по классике: /v1/user/{ID} -> { Firstname: Lastname: } /v2/user/{ID} -> { FIO: }

хотя в таком случаи уже надо будет приложение форкать хмм

Илья
12.10.2018
18:38:52
модели бд != модели внешние

ivanisimus
12.10.2018
18:44:44
здрасте! подскажите поддерживает ли tls (сервер) sslv3 и если да то как его активировать правильно, выставление Minversion в config не помогает

Google
Илья
12.10.2018
18:45:06
не тот чат?

ivanisimus
12.10.2018
18:45:38
я об https://golang.org/pkg/crypto/tls/

Никита
12.10.2018
18:51:05
Есть хорошие примеры реализации Unit of Work?

Aleksandr
12.10.2018
18:53:37
unit of work - это пометить сущность как чистую, новую, грязную, удаленную и коммит. это по сути коллекция

Илья
12.10.2018
18:59:14
при виде слова коллекция, обычно говорят, что такого на го нет

и слава богу

Никита
12.10.2018
19:06:30
unit of work - это пометить сущность как чистую, новую, грязную, удаленную и коммит. это по сути коллекция
Я правильно понимаю что сначала мы указываем какие действия мы хотим совершить и потом при вызове Complete открывается транзакция и выполняются все действия?

Илья
12.10.2018
19:07:39
наверное

несколько раз прочитал описание unit of work, и не понял проблемы, которую решают люди, отказываясь от транзакций

точнее уменьшая время транзакции

и реализация, я правильно понял, есть только на сисярп?

Google
Никита
12.10.2018
19:10:20
Интересует как это можно реализовать

Никита
12.10.2018
19:11:32
несколько раз прочитал описание unit of work, и не понял проблемы, которую решают люди, отказываясь от транзакций
Я так понимаю нет возможности работать с транзакциями с уровнем изоляции serializable

Aleksandr
12.10.2018
19:11:39
и реализация, я правильно понял, есть только на сисярп?
Это паттерн. Он на всех языках реализуется. Обычно в рамках орм

Pavel
12.10.2018
19:11:41
просто накладывают это сверху

Subbotin
12.10.2018
19:13:39
Народ подскажите пожалуйста а на go можно написать in-memory базу данных? У меня почему есть уверенность что все языки со сборщиком мусора не подходят для этого и go как язык с gc соотвественно тоже но хотелось бы уточнить. Для in-memory базы даннных важны минимальные задержки при сборке мусора а точнее даже чтобы эти задержки не зависели от количества объектов в памяти. Сейчас серверы могут иметь до 3 терабайт оперативной памяти (и еще больше терабайт если используется свап на быстрых nvme ssd дисках) и поскольку принцип работы сборщика мусора заключается в том чтобы просканировать все достижимые объекты с корня и очистить все остальные то только для сканирования 3 терабайт объектов потребуется несколько десятков секунд. Поэтому сразу возникает вопрос - умеет ли сборщик мусора в go работать инкрементально а не по принципу "stop the world" и насколько большие расходы в целом на gc в зависимости от количества объектов?
Очевидно кстати что можно делать базу не на внутренних структурах рантайма, а просто аллоцировать слайсы байт а там уже хранить что вздумается и ручками менеджить память. В любом случае это будет не сложнее чем на плюсах

Илья
12.10.2018
19:13:45
Это паттерн. Он на всех языках реализуется. Обычно в рамках орм
писал на многих языках, использовал много патернов, ни разу такого франкенштейна не видел

Никита
12.10.2018
19:13:51
Я так и не нашел реализации этого патерна на Го

Aleksandr
12.10.2018
19:14:46
Я так и не нашел реализации этого патерна на Го
Скорее всего нет смысла тебе это делать. Это действительно узкоспециализированный паттерн, не раскроющий плюсов в 99% проектов

А если и есть смысл то только в качестве части орм

Никита
12.10.2018
19:20:16
Я просто думаю о том как адекватно реализовать транзакции

Илья
12.10.2018
19:22:20
какую задачу вы решаете?

Александр
12.10.2018
19:25:13
модели бд != модели внешние
вообще то я про это и пишу

но вопрос был не в этом

Никита
12.10.2018
19:30:08
Сейчас я использую такой подход: в контроллере с юзкейсами есть структура реализующая интерфейс с методами обращения к БД и под капотом структуры лежит *sql.DB. В этом же интерфейсе есть метод NewTx который возвращает такую же структуру реализующую интерфейс но под капотом уже *sql.Tx. Насколько адекватен такой подход? tx, _ := controller.db.NewTx() userData := models.User{ FirstName: req.FirstName, LastName: req.LastName } userId, _ := tx.CreateUser(userData) sessionData := models.Session{ User: userId, Token: tokens.Generate(), } _ = tx.CreateSession(sessionData) _ = tx.Commit() Все проверки на ошибки с Rollback'ами опущены

Roman
12.10.2018
19:34:56
Pavel
12.10.2018
19:35:11
the var declaration pattern?)
error checking pattern

Google
Никита
12.10.2018
19:37:11
У меня тут интерфейс обращения к БД является по сути свалкой всех методов для всех бизнес сущностей, хотя меня это полностью устраивает

Я не представляю как можно организовать транзакции между несколькими репозиториями, разве что тот самый Unit of Work, реализации которого я так и не нашел

Pavel
12.10.2018
19:47:15
Че?

Причём тут unit of work и транзакции между разными репо?

Если у тебя данные в одной базе — просто используй транзакции.

Никита
12.10.2018
19:48:30
Окей. как решается задача транзакции между несколькими репо?

Pavel
12.10.2018
19:49:24
Если в разных — то либо 2х фазный комит или типа того, либо просто писать приложения так, что отсутствие консистенции — это норма.

Но лучше второе, чем первое.

Никита
12.10.2018
19:50:01
Печальная ситуация с виду

Pavel
12.10.2018
19:52:40
Ну из примера выше кажется видно что у тебя данные в одной базе.

Раз транзакция работает.

Ну просто её используй.

Но в этом примере даж не факт что транзакция нужна

Никита
12.10.2018
19:54:00
Тем временем в чате 2к, ?

Aleksandr
12.10.2018
19:54:45
Окей. как решается задача транзакции между несколькими репо?
Это сложно. Вкратце у тебя один юзкейс должен обслуживать один репо с одной транзакцией. Но если спроектировано не так то сверху ты можешь наложить Transaction Manager с SQL.db внутри

Vlad
12.10.2018
19:54:53
привет!

Aleksandr
12.10.2018
19:55:24
2000 юзеров

Google
Александр
12.10.2018
20:17:29
милениум

Misha
12.10.2018
22:32:19
Всем привет! Подскажите стек технологий для фронтенд части. Я по своей натуре глухой бэкендер, чувство прекрасного есть, но как-то и без прекрасного можно обойтись. Бывает, что по задаче нужен какой-то пусть и базовый, но фронтенд, не претендующий на уникальной и гениальность. Просто чтобы больно не было. Что можете посоветовать? Там bootstrap+jquery или еще что. Плюс хотелось бы писать не на js, а на ts. Тошнит от динамической типизации.

Daniel
12.10.2018
22:55:33
коллеги, если кто не спит

какой у нас лучший lru кеш?

Misha
12.10.2018
22:59:59
axios это из серии ajax?

Можешь попробовать Vue, Vuetify и axios для rest'а. Довольно таки легко войти
Выглядит на первый взгляд приятно, большое спасибо

Vladimir
12.10.2018
23:04:42
какой у нас лучший lru кеш?
я по тупому делаю! Добавляю в массив первым элементом если нет в списке и сдвигаю массив вытесняя последний! А если есть то просто переставляю его c первым без сдвигов

Vladimir
12.10.2018
23:06:14
но работает исправно, если массив небольшой

Daniel
12.10.2018
23:09:43
в github.com/hashicorp/golang-lru/simplelru используется https://golang.org/pkg/container/list/#List видимо - таки возьму его, он уже есть в проекте

Vladimir
12.10.2018
23:10:50
таки да , тоже вариант! Хотя динамику я стараюсь в таких вещах избежать , аллокаций можно насобирать

Александр
13.10.2018
02:07:24
как же долго проектировать то с нуля

боишься промазать, хрен знает как паттерны юзать, хрен знает как не тестирование ляжет

Sparrow
13.10.2018
02:30:02
Ну да, когда куча говна уже навалена, бояться нечего :)

Yo
13.10.2018
05:01:38
боишься промазать, хрен знает как паттерны юзать, хрен знает как не тестирование ляжет
Может тогда надо подтянуть теорию? Что то вроде: Go: Design Patterns for Real-World Projects https://www.packtpub.com/application-development/go-design-patterns-real-world-projects

Alexander
13.10.2018
05:24:28
потому-что IT это не академическая среда, это среда решения бизнес проблем учитывая ограниченные ресурсы
Вот именно поэтому в IT должен быть не детский сад, ибо тут не студенты свои лабы делают, но часто выглядит все именно так.

Michael
13.10.2018
05:27:25
айти не академическая среда? в эмайти переглянулись

Google
Тёма
13.10.2018
05:38:33
айти не академическая среда? в эмайти переглянулись
Так уж каждый формошлеп стал ученым

Tux
13.10.2018
05:46:35
Блять, ну почему в IT такой детский сад творится
Потому что it это не про it. it это про решение бизнесзадач лишь бы работало, посредством дешевой раб. силы, которая приходит в it за зарплатой, и чтобы не на завод. А потом на всяких фронтенд конфах ебут друг друга в жопу, кто круче фреймворк освойл. ФРЕЙМВОРК, КАРЛ! В it ценится умение решать инфраструктурные задачи. Если ты умеешь webpack'ом файлики конкатенировать или запускать всесь свой говнокод со всеви зависимостями из говна в изолированном окружении (да-да, я на тебя смотрю, мамкин девопс инженер), то это типа збс. Вот по этому мы и живём с монолитными говнобраузерами на оверлям строк кода, с сайтиками которые ждут по 250мб и 25% цпу. По этому, у нас есть говно-конференции, где невъебенные докладчики читают о том, как блеать повысить эффективность работы сайтика. Эффективность, блеать! Сайтика, блеать!!!! Вот потому, что для разработки, тонкого клиента + ui к базе юзерского контента у нас спрашивают по СТЕК ДЛЯ ФРОНТЕНДА, БЛЕАТЬ! И на бекенде то же дерьмо творится. Привет жаве с её жвмом и шарпу. Для примитивнейшей логики заводят целые проекты на спринге.

енот
13.10.2018
05:47:31
простите, если вопрос тупой. я в основном на ноде, спрошу на её примере вот в ноде есть package.json, в нем зависимости перечислены, а в golang есть что-то подобное кроме указания в импорте? Или оно подтянется само?

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