Size: a a a

2020 June 14

MW

Mr. Wh🦠er in Go-go!
я слишком много ожидаю от этого языка простого как кирпич и недальновидных авторов библиотек
источник

МП

Мимо Проходящий... in Go-go!
Локоть Анатолий
Устранение повторяющегося кода, который берет на себя orm. Да, sql не придется писать почти вообще. Только фрагменты условий where. Это очень ускоряет разработку на начальном этапе.
Заводим сущности и описываем связи между ними, и все , у нас готов полный CRUD по каждой сущности из коробки.
Что за повторяющийся код? Чет не вижу у себя. Как раз в ent и ей подобных орм на описание простейшего запроса требуется адово количество бойлерплейта, для проверки которого линтер ide бессилен ,а sql всё равно надо знать
источник

ЛА

Локоть Анатолий... in Go-go!
Мимо Проходящий
Что за повторяющийся код? Чет не вижу у себя. Как раз в ent и ей подобных орм на описание простейшего запроса требуется адово количество бойлерплейта, для проверки которого линтер ide бессилен ,а sql всё равно надо знать
Я не юзал ент, но юзал горм в го и doctrine в php.
Повторяющийся код это например список полей, которые селектируются.
Список методов create, update, delete для каждой из сущностей и их одинаковая имплементация.
источник

VM

Vladislav Milenin in Go-go!
большинство методов не нужны для каждой сущности, описывать при этом объекты в горм и с тупейшей имплементацией сталкиваться придется постоянно)
источник

ЛА

Локоть Анатолий... in Go-go!
Vladislav Milenin
большинство методов не нужны для каждой сущности, описывать при этом объекты в горм и с тупейшей имплементацией сталкиваться придется постоянно)
Описывать "объекты", в которые будем парсить результаты селектов будете в любом случае - хоть с sqlx, да и в стандартном sql. в чем конкретно оверхед?
К имплементации gorm есть много претензий, в том, что есть очень неуниверсальные решения, которые станут очевидны при очень усложненной системе, с многочисленными связями и тогда придется скорее всего не использовать модель сущностей горм, а юзать raw запросы. И даже в этом случае можно использовать функционал по конструированию запросов (даже в этом он помогает очень сильно).
источник

zl

ziggy lucid in Go-go!
подскажите, что происходит с ридером из os.File, если во время чтения другой процесс пишет в этот же файл? длина ридера тоже растет или она фиксируется при открытии файла?
источник

МП

Мимо Проходящий... in Go-go!
Ну gorm не типизированная, поэтому отстрел яиц почти гарантирован. Я бы может быть взял ent если бы она была db first и генерировала весь свой кодовый хлам сама и без моей помощи. Но будет ли такое когда нибудь.
источник

FK

Farhad Kocharli in Go-go!
Farhad Kocharli
Добрый день

Я новичек в програмирование хоть с большым опытом в системном администрирование, поэтому прошу простить если мои вопросы окажуться глупыми.

хочу поднять проект с микросервиснов архитектурой на Golang подобный на tripadvisor.
Первый вопрос заключается в том что какие микросервисы сделать REST или gRPC? или оба в зависимости от самого микросервиса?
Второй вопрос помочь подобрать либы для БД? использоавать ли ORM? хотелось бы узнать про ваш опыт про GORM?
Третий вопрос связан с выбором фреймворка. Прошу помочь с выбором одного из ниже указанных или посоветовать что то другое.
1) написать все самому и использовать только нативные библиотеки языка
2) снова написать все самому но только для роутера использовать Gorilla/Mux.
3) выбрать какой нибудь фреймворк. какой посоветуете? что думаете про Gin или Go Kit?

п.с хотелось бы получить обширный ответ который основанный в личном опыте и будет включать в себя drawback-и с которым сталкивались.
Ребята, спасибо всем кто откликнулся на это и попытался помочь. Получил много дельных советов. А то в тостер спрашивал все так начали выёживаться, умные фразы писать что другой бы отказался от идеи)) спасибо еще раз)
источник

@

@mr_tron in Go-go!
ziggy lucid
подскажите, что происходит с ридером из os.File, если во время чтения другой процесс пишет в этот же файл? длина ридера тоже растет или она фиксируется при открытии файла?
у ридера нет длины. вызовы чтения для os.File транслируются в вызовы ОС. а там уж как ос разрулит такую ситуацию. в линуксе просто прочитает свеже написанные данные
источник

zl

ziggy lucid in Go-go!
@mr_tron
у ридера нет длины. вызовы чтения для os.File транслируются в вызовы ОС. а там уж как ос разрулит такую ситуацию. в линуксе просто прочитает свеже написанные данные
неправильно выразился
признак io.EOF смещается с новыми данными?
источник

МП

Мимо Проходящий... in Go-go!
ziggy lucid
подскажите, что происходит с ридером из os.File, если во время чтения другой процесс пишет в этот же файл? длина ридера тоже растет или она фиксируется при открытии файла?
Если ридер открыт без ошибок,то не будет с ним ничего. А вот другой процесс может лососнуть тунца
источник

@

@mr_tron in Go-go!
ziggy lucid
неправильно выразился
признак io.EOF смещается с новыми данными?
кажется вы не совсем верно понимаете происходящее, но скорее всего ответ на ваш вопрос - да
источник

zl

ziggy lucid in Go-go!
а если я файл в реверсном направлении читаю, с конца? что происходит с сикером из os.File?
источник

zl

ziggy lucid in Go-go!
по идее сикер же использует смещение от начала файла? вроде ничего не должно произойти?
источник

zl

ziggy lucid in Go-go!
другой процесс дописывает в файл, а не переписывает
источник

МП

Мимо Проходящий... in Go-go!
Farhad Kocharli
Ребята, спасибо всем кто откликнулся на это и попытался помочь. Получил много дельных советов. А то в тостер спрашивал все так начали выёживаться, умные фразы писать что другой бы отказался от идеи)) спасибо еще раз)
Есть ещё полностью типизированная db first орм reform от админа чата @alek_si Возможно это то что вам нужно
источник

МП

Мимо Проходящий... in Go-go!
Вроде как её даже в badoo юзают
источник

ЛА

Локоть Анатолий... in Go-go!
Мимо Проходящий
Ну gorm не типизированная, поэтому отстрел яиц почти гарантирован. Я бы может быть взял ent если бы она была db first и генерировала весь свой кодовый хлам сама и без моей помощи. Но будет ли такое когда нибудь.
Да, вероятно, типизация благодаря кодогенерации вещь хорошая и этого нет у горма. Один мой коллега писал вариант с кодогенерацией с нуля недавно.

В целом посмотрел https://entgo.io/docs/getting-started/
Очень похож на горм по синтаксису и его как раз больше, чем в горм - декларации моделей и сущностей чуть жирнее; выборку связанных сущностей надо делать руками, что в прочем , с другой стороны является минусом горма, он предлагает ряд готовых решений, но не всегда идеально подходящих под ситуацию.
источник

SS

Stanislav Sagan in Go-go!
Подскажите, нормально, адекватно ли валидировать структуры с помошью пакета "github.com/go-playground/validator/v10" ?

И тут же второй вопрос, если я уже на поля структуры  навесил эти штучки
...
Email string `bson:"email,omitempty"`
...

Как мне на них навесить дополнительные штучки валидации?
Email string `validate:"required,email"`

(Я не знаю как эти штучки называются)
источник

C

Calculon in Go-go!
Stanislav Sagan
Подскажите, нормально, адекватно ли валидировать структуры с помошью пакета "github.com/go-playground/validator/v10" ?

И тут же второй вопрос, если я уже на поля структуры  навесил эти штучки
...
Email string `bson:"email,omitempty"`
...

Как мне на них навесить дополнительные штучки валидации?
Email string `validate:"required,email"`

(Я не знаю как эти штучки называются)
штучки называются теги
источник