Как стать автором
Обновить
18
0

Разработчик

Отправить сообщение

А как вы решаете проблему, когда нужно записать в базу и сразу сделать чтение данных с учетом записанных? Если писать только в мастер, а читать из слейвов, то есть риск не получить данные. Если и писать и читать из мастера - то не получится подразмазать нагрузку. Как вы решаете такие проблемы, особенно с учетом синхрониус коммит офф? Буду благодарен за инфу :)

Нет, слайс увеличивается не всегда в 2 раза. Автор забыл упомянуть изменения в go 1.14 и 1.20 (и в 1.21 вроде как планируются еще изменения по оптимизации).

Формула роста такова:

starting cap    growth factor 
256             2.0 
512             1.63 
1024            1.44 
2048            1.35 
4096            1.30

Следить за ней можно вот тут в исходниках: go/src/runtime/slice.go

https://go.googlesource.com/go/+/2dda92ff6f9f07eeb110ecbf0fc2d7a0ddd27f9d вот тут изменения

на эту тему тут на хабре есть хорошая статейка - https://habr.com/ru/articles/525940/

если коротко - зависит от ситуации и от того что будет делать функция в которую передается этот слайс.

еще бы в сравнение gloo-edge

Спасибо за ответ :) про vault понял. За delay спасибо, не натыкался, посмотрю. Ну и по pgeon надеюсь все таки выложат. Вообще с CDC в пг все сложно))) это не тарантул 😂

Спасибо за статью! Интересно было бы еще посмотреть на вашу обертку открытия соединений с чтением из vault, и разделяете ли вы соединения с мастером и слейвом, если да то как? 2 соединения и пакет для работы с конкретной базой куда передается 2 соединения и выбирается в зависимости от того что делает метод (читает или пишет). Или реплика только для фейловера (HA), а не для балансировки нагрузки?

По поводу контекста, чтобы копировать, но без cancel можно вытащить код detach метода, вроде так называется, из пакета context (почему он там приватный так и не понял, крайне полезная штука), позволяет копировать контекст (все что в нем, включая трейс, логгер и прочие переменные) не боясь что он отменится (приходилось с таким играться в errgroup).

Люблю разные новые тулзы находить и тут увидел pgeon - что это и где можно почитать? Гугл мне что-то не очень в этом помог :)

А про нормальные апи гейтвеи не слышали? Тот же kong, krakend и тд. У того же кракена есть интеграция с кроликом. Более того в вашем примере рейтлимит, проверку авторизации и прочие ништяки апи гейтвеев реализовывать будет адски геморройно, что есть из коробки у решений которые под это заточены.

для гитлаба есть аналог (для локального запуска пайплайнов) - https://github.com/firecow/gitlab-ci-local - сам не тестировал, но недавно наткнулся.

Спасибо за статью и огромную работу, взял себе на заметку. А по поводу опенсорса - не изменились ли ещё эти планы (скоро 9 месяцев :))? Очень уж интересно посмотреть на экшены внутри более подробно, чем в этой статье. Или хотя бы в виде статьи с описанием уже самой внутрянки экшена с парой тройкой примеров (например цепочку коммит, канико, релиз).

Очень странное сравнение... Сравнивать protobuf, который является IDL, то есть просто описанием структур и методов, и конкретные сериализаторы... Эта статья выглядит по сути как сравнение инструкции (protobuf) по которой собирают машину и гаечных ключей, которыми собирают ту же машину. Короче теплое с мягким. Ну и никто не мешает написать ген-плагин к протобафу для перегонки прото файлов в те же MsgPack методы и структуры. Да можно даже готовые взять, тот же генератор документации и подсунуть нужный шаблон, или gotemplate генератор, и подсунуть полноценный шаблон и генерировать вообще что хочешь. Да и gob прикрутить при желании можно. Ч не говорю о совместимости с протобафом в котором есть своя реализация, но дополнить ее никто не мешает.

Быстрее flatbuffers от того же гугла?

Для куба возможно подошёл бы лейаут в стиле среды разработки, то есть слева/справа небольшой сайдбар, например на 1/3 экрана, где список сущностей (джобы, стейты и тд), вверху выпадающий список неймспейсов, а в центральной части сделать отрисовку элементов выбранной сущности, под ней можно держать подобие консоли. То есть по сути скопировать вид куб-дашборда, ленза и тд, но в стилистики диалога. Ну и аналогичное для простого докера было бы здорово, такой локальный портейнер :) да и для ссш было бы здорово совместить такой лейаут с консолью в середине и сайдбаром (аля xshell)... но боюсь что диалог это все не потянет и нужен уже какой нибудь ncurses...

Напомнило поговорку: "никогда не сдавайся - позорься до конца"...

Присоединяюсь к комментариям, что стоило прочитать комментарии к прошлому посту, сделать работу над ошибками... Но нет...

Более того это описано в официальной доке и в куче примеров от телеги.

качество перевода) что автор оригинальной статьи тот еще приколист, что переводчик)
просто коммент в топ про автора)))
7-ой пункт меня просто убил…

а языки, больше ориентированные на удобство разработчика, вроде JavaScript, Python и Java, наоборот, остаются популярными


Серьёзно? Удобство разработчика? JavaScript? Java? Вы хоть раз на них писали? Вы хоть раз собирали проект на JavaScript или Java? Среду разработки под них настраивали? А уж количество фреймворков и смен парадигм, всякие кофе скрипт, тайп скрипт и еще фиг знает сколько стандартов, которые сменяют друг друга и далеко не всегда совместимы на сколько нибудь адекватно. Нет, я конечно согласен на счет питона, порог входа в него не высокий и в целом неплохой язык для своих целей. Но говорить про Java и JavaScript что они удобны для разработчиков… Это что же нужно курить… Тогда уж и ассемблер туда можно запихнуть… ну а что, все по сути на нем работает… (утрирую). В общем статейка жесть, имхо.

Предлагаю продолжить тему кэпства от медузы. В данной новости они говорят, что любой голос можно расшифровать… если есть ключ от конкретного голоса в конкретном браузере (как бы для этого и сделано). Ну что же, начну первым:


Медуза провела исследование и выяснила, что любую квартиру можно обнести, если у вас есть от нее ключ!


Медуза провела исследование и выяснила, что любую машину можно угнать, если оставить машину открытой, а ключ в замке зажигания!


Предлагайте ваши варианты )))

Как раз хотел написать комментарий в этом стиле )))

И все описанное в "заметке" решается гораздо быстрее и проще с любым сервером очередей…
1) ставите реббит
2) апишка для постановки задач в реббит
3) консьюмеры для выполнения с простейшими конфигами


И делается это за 1 день, максимум 2. Что тут можно делать неделю, мне не понятно. Качество кода… Оставляет желать лучшего. Смысла данного поста я так и не понял, кроме как попиарить кривой код (а он реально кривой) и показать из серии "смотрите какой я молодец, я сделаль".

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Backend Developer, Software Architect
Lead
От 9 000 $
Git
PostgreSQL
Linux
Docker
Redis
Nginx
MongoDB
High-loaded systems
Kubernetes