Еше децентрализация сети, когда нет блокировок по домену. Но да, все так, надо это строить. И я бы присоединился, но слишком у вас все обособленно. Один раз зайдешь и уже не вернуться)
Исключения тоже нужны, но они про какие-то общие ситуации - отсутствие сети, закончилась память или место на диске. И обрабатываются они не в бизнес логике, а на уровне приложения или инфраструктуры. В генерализованном виде, без знания о том что за запрос вообще выполнялся, создание юзера или поиск товара.
Вместо await refreshAccessToken(); можно было просто использовать кеш await (refreshAccessTokenPromise ??= refreshAccessToken());, и после await сбрасывать его. Очередь на микротасках организует рантайм бесплатно.
Интересная библиотека, спасибо. Скажите, происходит ли переподписывание при срабатывании эффекта? Если у нас есть autorun(() => state.isLoading ? null : state.data) подпишется ли он на state.data?
Я бы рад не использовать ноуты, но если посмотреть на любую крупную компанию - то почти все сотрудники используются ноутбуки. Потому что безопасность, комплаенс, политика, SOC2, ISO, командировки. Это все очень тупо, но таков мир. 400 баксов не много, но и не копейки. У меня IDE съедает 64Гб. Но это открыто несколько солюшенов, две ветки. Файлов больше миллиона, но это включая всякие node_modules.
CRDT для дерева и CRDT для текста сильно разные вещи, там разные операции. Многие CRDT для текста используют внутри дерево, но это немного другое. В вашем примере мне кажется используется CRDT для текста, например, я вижу там слово class, но в моем понимании, такого слова не должно быть в коде, должен быть объект вроде { type: NodeType.class, visibility: VisibilityType.public, name: 'App', members: [...]}. Тогда изменение visibility не влияет на изменение name и их можно мержить по Last Write Wins. Хранить name CRDT text на мой взгляд избыточно, потому что если один разраб изменил название на UserProvider, а другой на UserFactory, то нет смысла это мержить в UserProviderFactory, нужно подсветить конфликт и пусть договариваются сами. Автоматический мердж - это круто, но иногда он может спрятать лишнее. Про криптографию не понял, зачем она тут?
Есть проекты где файлов на порядок больше, есть где на два. 128gb ram 400$ стоят, не прям уж копейки. Найти ноут, куда это добро засунуть, весьма сложно.
А скажите, пожалуйста, на каком Вы языке пишете и сколько сейчас оперативной памяти? Свежий пример решаемой проблемы: сегодня разбирался в чужом коде, и нужно было понять, зачем добавили кусок кода. Залез в историю - 3 годаназад перенесли из другого файла. Приходится загружать тот коммит и снова искать по истории. А на днях ревьювил небольшой рефакторинг. Класс разбили на два и немного переименовали переменные. Нормально разобраться, что произошло - 2 часа.
Спасибо! Да, я согласен, думал и про отображение в виде блоков. Честно говоря, судя по реакции здесь, даже хранение не в текстовом виде - все еще революционная идея, хотя и не новая.
Еше децентрализация сети, когда нет блокировок по домену. Но да, все так, надо это строить. И я бы присоединился, но слишком у вас все обособленно. Один раз зайдешь и уже не вернуться)
4 сантиметра, а не мм наверное. Лобзик + фрезер. Пылесос ещё. Вместо лака масло тряпочкой. Это не сложно, но каждому свое, конечно
Можете рассказать подробнее, как html страница работала с реестром? На видео в html происходит клик по ссылке и переход на google.com, в чем подвох?
Исключения тоже нужны, но они про какие-то общие ситуации - отсутствие сети, закончилась память или место на диске. И обрабатываются они не в бизнес логике, а на уровне приложения или инфраструктуры. В генерализованном виде, без знания о том что за запрос вообще выполнялся, создание юзера или поиск товара.
Проблема действительно существует и без Next, довольно сложно это настроить правильно с первого раза.
Вместо
await refreshAccessToken();можно было просто использовать кешawait (refreshAccessTokenPromise ??= refreshAccessToken());, и после await сбрасывать его. Очередь на микротасках организует рантайм бесплатно.Интересная библиотека, спасибо.
Скажите, происходит ли переподписывание при срабатывании эффекта?
Если у нас есть
autorun(() => state.isLoading ? null : state.data)подпишется ли он наstate.data?Для AST уже написаны конвертеры в текст и обратно.
Может регулярку сделать Case Insensitive и создавать 1 раз вне функции? Или питон кеширует?
В тайпскрипте в ast есть координаты в тексте
Да Вы мастер натягивать сову на глобус)
AST Typescript превращается в AST Javascript тем же oxc. Итого минус 1 парсинг текста.
Я бы рад не использовать ноуты, но если посмотреть на любую крупную компанию - то почти все сотрудники используются ноутбуки. Потому что безопасность, комплаенс, политика, SOC2, ISO, командировки.
Это все очень тупо, но таков мир.
400 баксов не много, но и не копейки.
У меня IDE съедает 64Гб. Но это открыто несколько солюшенов, две ветки. Файлов больше миллиона, но это включая всякие node_modules.
CRDT для дерева и CRDT для текста сильно разные вещи, там разные операции. Многие CRDT для текста используют внутри дерево, но это немного другое.
В вашем примере мне кажется используется CRDT для текста, например, я вижу там слово
class, но в моем понимании, такого слова не должно быть в коде, должен быть объект вроде{ type: NodeType.class, visibility: VisibilityType.public, name: 'App', members: [...]}. Тогда изменение visibility не влияет на изменение name и их можно мержить по Last Write Wins. Хранить name CRDT text на мой взгляд избыточно, потому что если один разраб изменил название на UserProvider, а другой на UserFactory, то нет смысла это мержить в UserProviderFactory, нужно подсветить конфликт и пусть договариваются сами.Автоматический мердж - это круто, но иногда он может спрятать лишнее.
Про криптографию не понял, зачем она тут?
Есть проекты где файлов на порядок больше, есть где на два. 128gb ram 400$ стоят, не прям уж копейки. Найти ноут, куда это добро засунуть, весьма сложно.
А скажите, пожалуйста, на каком Вы языке пишете и сколько сейчас оперативной памяти?
Свежий пример решаемой проблемы: сегодня разбирался в чужом коде, и нужно было понять, зачем добавили кусок кода. Залез в историю - 3 годаназад перенесли из другого файла. Приходится загружать тот коммит и снова искать по истории. А на днях ревьювил небольшой рефакторинг. Класс разбили на два и немного переименовали переменные. Нормально разобраться, что произошло - 2 часа.
Спасибо!
Да, я согласен, думал и про отображение в виде блоков.
Честно говоря, судя по реакции здесь, даже хранение не в текстовом виде - все еще революционная идея, хотя и не новая.
Ну какой-нибудь 1Гвт*ч в месяц можно спасти
wasm не замена JS, но полезное дополнение.