All streams
Search
Write a publication
Pull to refresh
-10
@alexesDevread⁠-⁠only

User

Send message
Пример с react средний, вынести NumberInput станет аккуратней, но это так, мелочи. React это про «learn once write anywhere» и это круто, больше ни у кого нет развитой ветки native. Как у Svelte дела?

Пока единственный здоровый плюс Svelte для меня — маленький бандл, это классно. Но такоже даёт elm, которому куча лет и тп.
Не так запомнил. У gatsby в коде была ссылка на этот issue, а сам он прямо у css-loader
github.com/webpack-contrib/css-loader/issues/406
Это антисовет, т.к. [hash:base64:5] даёт худшие результаты с gzip + затрудняет дебаг прода.
{
  loader: 'css-loader',
  options: {
    modules: true,
    localIdentName: isDev
      ? '[path][name][local]'
      : '[hash:base64:5]'
  }
}

Это обсуждалось в issue к gastby. У них жестко зашиты длинные классы.

Я уже 10 лет знаком с JS. И кажется уже все написали по статье про замыкания. Неисчерпаемая тема (нет).

CMake это не только кроссплатформенность, а простые конфиги + готовые решения + даже есть пакетные менеджеры. Если я пишу только под linux, то это не значит, что мне стоит использовать Makefile.
А можно в двух словах… почему не CMake?
Мониторить метрики приложения/бизнеса/базы можно через github.com/chop-dbhi/prometheus-sql
«5 минут не уходили смс», «скопилось много необработанных заказов», «слишком много подключений к базе» и тп
У меня же хитрый комент. Цена попыше часто значит лучшую поддержку, а не «держите тул за 130 и доку» =) А по ответу… если команда будет упорно сопротивляеться, то вы откажитесь от затеи и вернёте $?

Я проверял c++ opensource с помощью PVS-studio, понимаю, что оно на раз два заезжает в ci и уже ней уйти, но все же, мало ли бывает.
Думаю ответ где-то рядом с «цена на порядок или два больше».
Ого, презентация из целых пяти слайдов на бесплатном тарифе тильды. Впечатлен.
Я правильно понимаю, что логику создания и логику выкачивания надо в js/py скрипте сделать? Сам metacontroller только за событиями следит и запросы к скрипту делает?

Нет, выкачивает initContainer.

initContainers: [
  {
    name: 'download',
    image: 'busybox',
    command: [
      'sh',
      '-c',
      `wget -qO- ${parent.spec.archiveUrl} && tar xvf - -C /data`,
    ],
    volumeMounts: [
      {
        mountPath: '/data',
        name: 'data',
      },
    ],
  },
],
containers: [
  {
    name: 'nginx',


Это можно и руками написать, но у меня около 30 такий деплоев. Когда-то можно заменить это более оптимальным кодом, но уже год руки не доходят.
CompositeController берёт один json (CR) и перегоняет в другой json (базовые примитивы k8s) любым удобным инструментом (js удобней go тут) через webhook (pure function выходит, вся императивность реализована в metacontroller и k8s, т.е. не нашем коде, что очень классно). С DecoratorController не нужен CRD, он докинет объектов к deployment, к примеру, по label/metadata, но я такого сам не писал, только теория.
Схема с envoy похожа на nomad+consul+что-то меняющее конфиги (consul-template, env-consul) или напрямую смотреть в dns. Только эти на порядок проще k8s.
metacontroller очень сильно заходит, когда есть много однотипных деплоев. Если у вас десяток разных сервисов, то смысла мало.

Пример однотипных деплоев — статика. CR с ссылкой на s3 с tar. metacontroller создаёт deployment с nginx и initContainer, который выкачивает с s3 и распаковывает. Если файлу на s3 давайть имя «sha1 от контента», то совсем хорошо, нет лишних перекатов.

apiVersion: mycompany.ru/v1
kind: StaticSites
metadata:
  name: mobile-master
  namespace: default
spec:
  archiveUrl: https://link-to-s3.tar.gz
  host: m.mycompany.ru

UPD: CR файл не сильно отличается от values.yml у helm. Только шаблон хранится внутри куба и с ним удобней работать, чем с репозиториями или submodule у git.

UPD: CR файл не сильно отличается от vars файлов ansible, только site.yml в кубе. К слову. В общем не rocket science.
Про альтернативы… Есть metacontroller.app от гугла. Задача решается через CRD типа MyDevEnvironment, который на выходе даёт namespace + secret + ещё что нужно.

apiVersion: mycompany.ru/v1
kind: MyDevEnvironment
metadata:
  name: my-dev-environment135
spec:
  param1: value1

Декларативно. В стиле k8s.
Можно использовать std::variant и std::visit. Очень давно, когда последний раз делал что-то такое, то использовал их (только из boost).
Я написал «и друзья». yacc/bison самые известные. Как минимум postgresql использует bison и поддерживается больше 20 лет. Несмотря на ужасы наследства С кода… я буду рад увидеть yacc/bison (или любой другой кодогенератор) в проекте, куда приду работать, чем тонну недокументированного кода как бывает чаще всего… если у вас все красиво — я рад, вы попадаете в исключения.
yacc/bison с друзьми рыдают в сторонке.

Information

Rating
Does not participate
Registered
Activity