Nats

Nats

Nats Core

Нужно дописывать это решение под себя, так как это только core

Nats - Jetstream

По факту используется большинством, для запуска требуется 2+ реплики

Stream

  • Создается stream

    • Создаешь топики

    • Выбираешь тип хранения данных

      • В памяти
      • На диске
    • Указываешь ретеншн полики

      • По времени сообщения
      • По количеству общих сообщений
      • По общему количеству байт

Consumers

  • Создается consumer

    • Выбираешь паттерн взаимодействия

      • Pub / Sub

        • Идет разделение между отправителем и получателем. Отправитель может не знать кто получатель. И более того, отправитель после отправки и получения АСК, не ждёт ничего.
          • Плюсы
            • Независимостб
            • Масштабируемость
            • Гибкость
      • Request / Reply

Read more

BigO

  • Виды сложностей

  • O(1) - Константа. Быстро, круто

  • O(log(n)) - Логарифмическая. Всё равно очень крутая.

  • O(n) - Линейная. Среднячок.

  • O(n x log(n)) - Любая сортировка выдает такую сложность. В принципе не сильно хуже чем O(n)

  • O(n^2) - Квадратичная. Плохо, нужно что-то мутить, туда-сюда. Как-то хитрить.

  • O(2^n) - Экспоненциальная. Ну это пиздец, это никуда не годиться.

Почему динамический массив при Асимптотическом анализе это O(1) ?

n123456789101112
size1244888816161616
cost1231511q9101112

Док-во

Read more

Two Pointers

Задача реверснуть строку.

->
abcdef
<-
  • Решение Логика простая, ставим указатель в начало и в конец. Свапаем местами значения с указателей, потом сдвигаем указатели друг к другу до тех пор пока они не встретятся.

Чекнуть палиндром

->
ab,ccba.
<-
  • Решение Логика простая, ставим указатель в начало и в конец. Сверяем значение в указателях, если равны, то сдвигаем указатели друг к другу. Если не равны то не палиндром. При этом делаем чем, что символ находтися в a-z границах, иначе скипаем такой символ
Read more

Zettelkasten

  1. Атомарно создаешь файлы с одной идеей

    • Один файл = Одна идея
  2. Создаешь тэги на ключевые слова.

    • Создаешь тэги, и потом можешь искать по этим тэгам информацию в разных атомарных файлах/идеях.
  3. Связывать атомарные файлы между собой с помощью линков.

    • Линки это главный способ перемещения от файла к файлу.
  4. Никогда ничего не копипастить, и даже не переписывать руками

    • Только пропускание идей через себя и выписывание их так, как чувствуешь.
    • Если ты не можешь написать мысль полностью сам, скорее всего ты её не понял.

Переосмысление этих принципов

Read more