Pull to refresh
48
0
Artemiy R @Flaker

User

Send message
Да, вы правы, сейчас это так. Хотел скорее написать, что на становление Erlang сильно оказала влияние теория Хоаровского CSP, и практическая реализация Smalltalk и Prolog.

Robert Virding (один из отцов Erlang) про это написал так: "Actually we had never heard of the actor model, not before ppl told us we had implemented it" (https://twitter.com/rvirding/status/766242280592277504)

Более подробное обсуждение можно вот тут почитать: elixirforum.com/t/does-earlier-erlang-concurrency-model-stem-from-csp/16905

Спасибо за ваше замечание, я поправлю текст!)
> абстрагировать бизнес логику от инфраструктурного слоя.
Так как мы работу с базой делаем сразу отдельным слоем (что-то вроде паттерна repository, но без фанатизма), то необходимости в ORM не возникает. Собственно, из-за того, что gopg чуть переусложнена, не хочется её использова. Ну и опыта с pgx просто больше)
Спасибо! Вы правы, в данном случае экранирование делает сам драйвер. Я надеюсь найти время, закоммитить в pgx передачу параметров в бинарном виде. Но, кстати, этот протокол не стандартизирован и может быть изменен в следующих версиях постгреса. Впрочем, это не так страшно, так как переезд на новую версию дело долгое и можно будет подготовить драйвер к этому.

Как преимущество, с simple query меньше запросов в сеть и ниже latency)
Я воспринимаю пул как ведро) Мы в него кладём соединения если их не используем и забираем оттуда, когда нужно заиспользовать. Но когда в ведре нет соединений — приходится устанавливать новое соединение с базой.
Спасибо за такое хорошее уточнение!)
Просто потому что приложении много и, даже при использовании пула внутри, все вместе они могут породить соединений больше чем порог деградации.

В issue глянул — с ходу не нашел. Возможно еще не осознали, что пора.

Кроме примера из треда, могу еще вот такой PR показать https://github.com/lib/pq/pull/714. О том, что библиотека заброшена пишут даже люди имеющие статус Collaborator.


Основными людьми, поддерживающими жизнь в библиотеке остаются ребята из cockroachdb. Но, например mjibson пишет


It is indeed sad this has no active maintainers. Open source has its problems.
I don't have permissions to grant permissions so I'm not able to do anything. A few of us from cockroach just asked the last time this was a problem and they gave us commit here. We just keep limping along.

Мне кажется, правильным решением будет пометить библиотеку как deprecated, заархивировать проект и забыть о нём. pgx давно обогнал. А с 4 версии станет совсем хорошо)

Аудитория у gorm, действительно, большая. Я это объясняю только тем, что люди переходя с других языков тащат за собой практику использовать orm.

Но, по разным причинам, в Go чуть меньше распространены orm.

А в целом, у постгри много функциональности, которая слабо покрывается orm'ками: мощные cte, насыщенная система типов, функции для работы индексами, мощная индексация по json (а в 12 версию закоммитили jsonpath www.postgresql.org/docs/12/datatype-json.html#DATATYPE-JSONPATH) и большое кол-во других вещей, которые делают использование orm неразумным.

orm-холивар предлагаю не разводить. Отличный вопрос, мне понравился, спасибо!)
Зависимости для сборки держать на хост машине не удобно. Процесс билда при использовании CI становится прозрачнее, на агентах достаточно иметь только Docker. Имхо, правильнее, собирать проект в том окружении, в котором он будет запускаться.
Думаю, что сейчас никаких поддержек для новой фичи в docker-compose нет, просто потому что еще даже в самом Docker не зарелизили.

Правда, есть практика использовать по одному Dockerfile на сервис. Поэтому, если есть общая часть какая-то, то может стоит вынести её в родительский image?
С docker-compose всё по старому, ведь по сути процесс билда не изменился, так что можно смело пользовать!
Вполне рабочий вариант! Многие так делают. При таком подходе обычно уменьшают размер финального образа вызывая `apt-get clean` после установки зависимостей.

Best practice и при использовании новой фичи остаются актуальны: https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/
При использовании стадий сборки промежуточные слои остаются полностью функциональны, так что кеширование есть.
Большое спасибо за дополнение! Это самый минималистичный вариант из возможных!
Зависит от реализации. Stateless решения вполне могут удовлетворять всем требованиям.
1

Information

Rating
Does not participate
Works in
Date of birth
Registered
Activity