❌ Не так страшен кэш, как его малюют
Если ранее я писал о многообразии термина "кэш", то сегодня хочу сосредоточиться на более прикладных вопросах. Мы поговорим про алгоритмы работы с ним.
👇
〰️ Стратегии кэширования (Caching Strategies) 〰️
Обеспечивают эффективное использование ресурсов путём оптимизации операций чтения и записи данных. Они позволяют снизить нагрузку на основную систему хранения и ускорить доступ к часто используемым данным. Существующие стратегии в зависимости от типа операции можно разделить на:
🟢 Стратегии для чтения
Направлены на минимизацию задержек при доступе к данным и повышение производительности системы.
🟢 🟢 Cache aside — при обращении к данным проверяется наличие их копии в кэше. Если копия отсутствует, запрашиваются данные из основного хранилища, далее они сохраняются в кэше и возвращаются клиенту.
🟢 🟢 Read through — клиентские запросы направляются непосредственно в кэш. Если данные отсутствуют, кэш самостоятельно извлекает их из основного хранилища, сохраняет и далее возвращает клиенту.
🟢 Стратегии для записи
Направлены на минимизацию задержек при сохранении изменений и обеспечение согласованности данных.
🟢 🟢 Write around — запись выполняется в обход кэша прямо в основное хранилище. Если эти данные впоследствии понадобятся для чтения, они попадут в кэш по одной из стратегий для чтения. Такой подход снижает риск потери данных при сбоях кэша, но увеличивает задержки.
🟢 🟢 Write back, или Write behind — записываемые данные сначала сохраняются в кэше, а позже асинхронно записываются в основное хранилище. Такой подход повышает производительность, но требует механизмов отслеживания состояния кэша.
🟢 🟢 Write through — данные одновременно записываются и в кэш, и в основное хранилище. Такой подход гарантирует мгновенную доступность данных, но замедляет операции записи.
〰️ Политики очистки кэша (Cache Clearing) 〰️
Определяют правила управления памятью кэша и в зависимости от цели эти политики можно разделить на две категории:
🔵 Политики вытеснения (Cache Replacement, или Cache Eviction)
Вытеснение — это автоматическое удаление старых записей кэша, чтобы освободить место для новых. Цель — эффективно использовать ограниченное пространство кэша.
🔵 🔵 FIFO (First In First Out) — удаляются данные, дольше всего находящиеся в кэше независимо от частоты использования.
🔵 🔵 LIFO (Last In First Out) — первыми удаляются недавно добавленные данные, сохраняя наиболее старые.
🔵 🔵 RR (Random Replacement) — данные для удаления выбираются случайным образом.
🔵 🔵 LRU (Least Recently Used) — удаляются данные, которые дольше всего не использовались; критерий — время последнего обращения.
🔵 🔵 LFU (Least Frequently Used) — удаляются наименее часто используемые данные; критерий — частота обращений.
🔵 Политики инвалидации (Cache Invalidation)
Инвалидация — процесс удаления устаревших или нерелевантных данных из кэша для того, чтобы он содержал только актуальную информацию. Цель — обеспечить соответствие данных, хранящихся в кэше, данным из источника.
🔵 🔵 Инвалидация при изменении — происходит сразу после обновления данных в источнике, гарантируя свежесть данных в кэше.
🔵 🔵 Инвалидация при чтении — проверяется актуальность данных при каждом запросе, что может привести к снижению производительности.
🔵 🔵 Инвалидация по истечении времени (Time To Live, TTL) — устанавливается ограничение срока жизни данных, после которого они автоматически удаляются из кэша.
❗Приведённые стратегии являются лишь частью множества существующих подходов. Для конкретных приложений и систем оптимальные решения могут различаться.
#проектирование #данные #термины
Если ранее я писал о многообразии термина "кэш", то сегодня хочу сосредоточиться на более прикладных вопросах. Мы поговорим про алгоритмы работы с ним.
👇
Обеспечивают эффективное использование ресурсов путём оптимизации операций чтения и записи данных. Они позволяют снизить нагрузку на основную систему хранения и ускорить доступ к часто используемым данным. Существующие стратегии в зависимости от типа операции можно разделить на:
Направлены на минимизацию задержек при доступе к данным и повышение производительности системы.
Направлены на минимизацию задержек при сохранении изменений и обеспечение согласованности данных.
Определяют правила управления памятью кэша и в зависимости от цели эти политики можно разделить на две категории:
Вытеснение — это автоматическое удаление старых записей кэша, чтобы освободить место для новых. Цель — эффективно использовать ограниченное пространство кэша.
Инвалидация — процесс удаления устаревших или нерелевантных данных из кэша для того, чтобы он содержал только актуальную информацию. Цель — обеспечить соответствие данных, хранящихся в кэше, данным из источника.
❗Приведённые стратегии являются лишь частью множества существующих подходов. Для конкретных приложений и систем оптимальные решения могут различаться.
#проектирование #данные #термины
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍3🏆1
Уверен, многие уже слышали — и не раз! — обсуждения того, может ли 🤖 заменить человека. Мол, он работает быстрее, лучше и точно заменит джунов.
Но знаете что? Я понял, что он точно никогда не сможет делать даже близко по качеству то, что могу я или вы. Он не сможет просто взять, махнуть на всё рукой и поехать отдыхать на море; пройтись по песочку и укрыться в тени сочной пальмы🏖
Как вы уже догадались, именно этим я и планирую заниматься в ближайшие дни. Так что не теряйте меня. Всех обнимаю! Тай, встречай! 🏝🇹🇭
Но знаете что? Я понял, что он точно никогда не сможет делать даже близко по качеству то, что могу я или вы. Он не сможет просто взять, махнуть на всё рукой и поехать отдыхать на море; пройтись по песочку и укрыться в тени сочной пальмы🏖
Как вы уже догадались, именно этим я и планирую заниматься в ближайшие дни. Так что не теряйте меня. Всех обнимаю! Тай, встречай! 🏝🇹🇭
🔥9🆒1
🍽📶 Ты не ты, когда голоден
В этот понедельник на отдыхе столкнулся со странной ситуацией. Ожидая свой заказ в ресторане, решил воспользоваться любезно предоставленным этим заведением вай-фаем.
Для подключения🤬 нужно было либо пройти регистрацию, либо аутентифицироваться через известную заморскую соцсеть. Решил пойти по второму пути, удобно же! Сделал все подтверждения и тут началась эпопея.
Сначала выдали квест пройти несколько капчей ("Выберите все машины", "Выберите все светофоры" и проч.). Осилил! 💪
Затем попросили подтвердить владение приложением этой соцсети, мол, это точно я делаю попытку, а не кто-то посторонний. Подтвердил!😡
Наконец, квесты пройдены, заведение выдало мне доступ к всемирной паутине… А секунд через пять всё закончилось.
Я повторял этот путь несколько раз, и каждый раз результат был столь же непродолжительным и плачевным. Махнув рукой на это всё, решил больше не мучаться, тем более что настало время трапезничать. Кстати, ужин удался🤗
Так вот, вернувшись вечером в гостиницу, зашёл в приложение всё той же соцсети (хотя я уже начинал сомневаться, что эта сеть вообще социальная). И тут я обомлел: уведомление твёрдо и чётко гласило, что кто-то из Таиланда завладел моими учëтными данными и пытался авторизоваться. Это, безусловно дерзкое, посягательство самым решительным образом было пресечено в зародыше, а мне следовало немедленно сменить якобы скомпрометированный пароль 🤦♂️
‼️ Всё стало ясно: в ресторане меня выкидывало из сети именно потому, что система воспринимала мои попытки подключиться как подозрительные. По какому-то нелепому алгоритму сначала приходил, условно говоря, сигнал "OK" (не зря же я светофоры и прочую ерунду тыкал), а буквально сразу (скорее всего, за это отвечает отдельный фоновый процесс) следовал бан.
Видимо, логика создателя этой системы аутентификации сводится к простому постулату: человек не должен покидать пределы своей страны и пользоваться интернетом вне дома.
Как говорится: ага, щас!😎
В этот понедельник на отдыхе столкнулся со странной ситуацией. Ожидая свой заказ в ресторане, решил воспользоваться любезно предоставленным этим заведением вай-фаем.
Для подключения
Сначала выдали квест пройти несколько капчей ("Выберите все машины", "Выберите все светофоры" и проч.). Осилил! 💪
Затем попросили подтвердить владение приложением этой соцсети, мол, это точно я делаю попытку, а не кто-то посторонний. Подтвердил!
Наконец, квесты пройдены, заведение выдало мне доступ к всемирной паутине… А секунд через пять всё закончилось.
Я повторял этот путь несколько раз, и каждый раз результат был столь же непродолжительным и плачевным. Махнув рукой на это всё, решил больше не мучаться, тем более что настало время трапезничать. Кстати, ужин удался🤗
Так вот, вернувшись вечером в гостиницу, зашёл в приложение всё той же соцсети (хотя я уже начинал сомневаться, что эта сеть вообще социальная). И тут я обомлел: уведомление твёрдо и чётко гласило, что кто-то из Таиланда завладел моими учëтными данными и пытался авторизоваться. Это, безусловно дерзкое, посягательство самым решительным образом было пресечено в зародыше, а мне следовало немедленно сменить якобы скомпрометированный пароль 🤦♂️
‼️ Всё стало ясно: в ресторане меня выкидывало из сети именно потому, что система воспринимала мои попытки подключиться как подозрительные. По какому-то нелепому алгоритму сначала приходил, условно говоря, сигнал "OK" (не зря же я светофоры и прочую ерунду тыкал), а буквально сразу (скорее всего, за это отвечает отдельный фоновый процесс) следовал бан.
Видимо, логика создателя этой системы аутентификации сводится к простому постулату: человек не должен покидать пределы своей страны и пользоваться интернетом вне дома.
Как говорится: ага, щас!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4😁2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Поступило предложение рассмотреть вакансию аналитика. Но есть нюанс...
👍3😁3🔥1
📚 Сегодня в книжной рубрике продолжу тему коммуникаций! 💬
И рассмотрю 3 книги за авторством Никиты Непряхина. Почему именно он, спросите вы, а я отвечу: это довольно известный специалист в области аргументации и коммуникации, чьи работы либо лежат в основе учебных программ по публичным выступлениям, либо, как минимум, входят в их списки дополнительной литературы.
Заинтриговал? Тогда рассмотрим следующие действительно стоящие работы:
🔷 "Аргументируй это! Как убедить кого угодно в чём угодно"
Содержательно вся книга посвящена вопросам аргументации. Здесь подробно объясняются такие вопросы, как: какие доводы не будут восприняты аудиторией, как повысить убедительность аргумента, какие ценности скрываются за теми или иными аргументами, в какой последовательности их лучше излагать, как защищать свою аргументацию и контраргументировать чужую и пр.
Если ваша цель — научиться убеждать и отстаивать свою позицию, то данную книгу прочитать точно стоит. Не зря её рекомендуют на тренинге по публичным выступлениям.
Важно сказать. Формат книги может вызвать неудобство: он немногим меньше A4, ещё и с альбомной ориентацией, отчего держать книгу, как минимум, непривычно.
🔶 "100 правил убеждения и аргументации"
По сути эта книга — сборник правил, оформленных в форме коротких тезисов. Если вы прочли "Аргументируй это!...", то половина данной книги будет выглядеть как краткое резюме без объяснений и причин, только выжимка. Означает ли это, что чтение будет пустой тратой времени? Отнюдь! Концентрированные мысли позволяют закрепить материал и впоследствии быстро вспомнить детали. А если предыдущую работу ранее читать не довелось, то "законы" из данной книги придётся просто принять на веру.
Отмечу, что у этой книги тоже есть спорное решение в части дизайна: каждый тезис/закон напечатан на отдельной странице крупным шрифтом. С одной стороны, это визуально фокусирует внимание на одной мысли, но, с другой стороны, размер книги легко мог бы быть в 5 раз меньше.
🔷 "Как выступать публично: 50 вопросов и ответов"
Вот эта книга предназначена для тех, кому предстоит выступать перед аудиторией — не важно, по велению сердца или в рамках исполнения поручения руководства.
Материал книги разбит на 50 "вопросов" — глав, посвящённых различным аспектам подготовки и проведения выступлений, как то: зачем нужно формулировать цель выступления, как выбрать тему, как подбирать материал, как правильно рассадить слушателей, как побороть страх, как начать и как завершить выступление и т.д.
Смысловое наполнение данной работы в определённой степени повторяет рассмотренную ранее книгу Н. Зверевой. Однако здесь изложение строится вокруг аспектов выступления; оно, как мне кажется, более концентрированное и утилитарное. В книге также даётся много советов, которые будут полезны тем, кто сам отвечает за выступление или попросту не может полагаться на организаторов (например, иметь запасной комплект батареек для микрофона). А такому количеству причин улыбаться, как в вопросе 42, я ранее вообще не встречал.
👉 Для сравнения: в работе Зверевой изложение строится от цели выступления. Автор признаёт ценность искренности, поднимает глубинные вопросы вида: "Действительно ли люди ждут вашего сообщения?"; рассматривает 5 принципиально разных целей выступления и 5 типов ораторов. Также в "Я говорю..." много отступлений, баек, наблюдений за манерами и поведением известных ораторов, в частности политиков и тележурналистов прошлого. Обсуждаются вопросы дикции, грамотного владения языком и сбора материалов для будущих выступлений и дресс-кода.
Лично я не жалею, что прочитал обе книги, и не стал бы отказываться от какой-либо из них. Уж больно хорошо они друг друга дополняют!
#книги #коммуникации
И рассмотрю 3 книги за авторством Никиты Непряхина. Почему именно он, спросите вы, а я отвечу: это довольно известный специалист в области аргументации и коммуникации, чьи работы либо лежат в основе учебных программ по публичным выступлениям, либо, как минимум, входят в их списки дополнительной литературы.
Заинтриговал? Тогда рассмотрим следующие действительно стоящие работы:
Содержательно вся книга посвящена вопросам аргументации. Здесь подробно объясняются такие вопросы, как: какие доводы не будут восприняты аудиторией, как повысить убедительность аргумента, какие ценности скрываются за теми или иными аргументами, в какой последовательности их лучше излагать, как защищать свою аргументацию и контраргументировать чужую и пр.
Если ваша цель — научиться убеждать и отстаивать свою позицию, то данную книгу прочитать точно стоит. Не зря её рекомендуют на тренинге по публичным выступлениям.
Важно сказать. Формат книги может вызвать неудобство: он немногим меньше A4, ещё и с альбомной ориентацией, отчего держать книгу, как минимум, непривычно.
По сути эта книга — сборник правил, оформленных в форме коротких тезисов. Если вы прочли "Аргументируй это!...", то половина данной книги будет выглядеть как краткое резюме без объяснений и причин, только выжимка. Означает ли это, что чтение будет пустой тратой времени? Отнюдь! Концентрированные мысли позволяют закрепить материал и впоследствии быстро вспомнить детали. А если предыдущую работу ранее читать не довелось, то "законы" из данной книги придётся просто принять на веру.
Отмечу, что у этой книги тоже есть спорное решение в части дизайна: каждый тезис/закон напечатан на отдельной странице крупным шрифтом. С одной стороны, это визуально фокусирует внимание на одной мысли, но, с другой стороны, размер книги легко мог бы быть в 5 раз меньше.
Вот эта книга предназначена для тех, кому предстоит выступать перед аудиторией — не важно, по велению сердца или в рамках исполнения поручения руководства.
Материал книги разбит на 50 "вопросов" — глав, посвящённых различным аспектам подготовки и проведения выступлений, как то: зачем нужно формулировать цель выступления, как выбрать тему, как подбирать материал, как правильно рассадить слушателей, как побороть страх, как начать и как завершить выступление и т.д.
Смысловое наполнение данной работы в определённой степени повторяет рассмотренную ранее книгу Н. Зверевой. Однако здесь изложение строится вокруг аспектов выступления; оно, как мне кажется, более концентрированное и утилитарное. В книге также даётся много советов, которые будут полезны тем, кто сам отвечает за выступление или попросту не может полагаться на организаторов (например, иметь запасной комплект батареек для микрофона). А такому количеству причин улыбаться, как в вопросе 42, я ранее вообще не встречал.
👉 Для сравнения: в работе Зверевой изложение строится от цели выступления. Автор признаёт ценность искренности, поднимает глубинные вопросы вида: "Действительно ли люди ждут вашего сообщения?"; рассматривает 5 принципиально разных целей выступления и 5 типов ораторов. Также в "Я говорю..." много отступлений, баек, наблюдений за манерами и поведением известных ораторов, в частности политиков и тележурналистов прошлого. Обсуждаются вопросы дикции, грамотного владения языком и сбора материалов для будущих выступлений и дресс-кода.
Лично я не жалею, что прочитал обе книги, и не стал бы отказываться от какой-либо из них. Уж больно хорошо они друг друга дополняют!
#книги #коммуникации
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🙏3🔥2🏆1
Для сегодняшнего поста я выбрал такой заголовок, потому что достаточно давно заметил одну любопытную вещь.
Когда дело доходит до обсуждения требований, буквально каждый мгновенно превращается в эксперта. Функциональные требования? Легко! Нефункциональные? Тоже окей. Но вот переходные?..
Знаете, это как мифические животные. Кто-то про них вообще ничего не слышал. А другие уверены, что они существуют, но найти их им порой оказывается труднее, чем йети или единорога.
Кроме того, если обратиться к серьёзной литературе вроде BABOK или PMBOK, то окажется, что этот вид требований если и упоминается, то удостаивается лишь нескольких предложений.
Возможно, кто-то скажет, что раз вопросу не уделяется много внимания, то его значимость минимальна. Но это не так. Практика показывает, что игнорирование переходных требований — это прямая дорога к провалу всего проекта и загубленному реноме продукта. А раз так, то с этим определённо надо что-то делать. Что делаю лично я?
К настоящему времени я провёл серьёзную работу и систематизировал знания, накопленные мною в этой сфере за годы работы. Осталось
Как это будет происходить, сообщу чуть позже. В общем, буду держать вас в курсе!
Ну а пока предлагаю вспомнить, какие бывают требования в принципе.
👉 Вспоминаем! 👈
#требования #анонсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4🤔1🏆1
В мире высоких нагрузок и быстрых приложений даже самые умные алгоритмы требуют разминки 🏋️♂️. Это помогает системе набрать рабочую скорость 🏃🏽 и встретить пиковую нагрузку во всеоружии. Такие "разминки" получили название прогревов. Рассмотрим наиболее популярные из них.
Процесс, при котором виртуальная машина (например, JVM или .NET CLR) постепенно компилирует наиболее часто используемые участки кода в машинный код с помощью JIT-компиляции (Just-In-Time). В результате приложение со временем начинает работать быстрее и отзывчивее. Правда, производительность во время прогрева может меняться неравномерно, и пиковая скорость достигается не всегда мгновенно — но в целом техника действительно ускоряет долго работающие программы.
Предварительное заполнение кэша данными, которые скоро понадобятся. Это помогает избежать задержек при первом обращении пользователей после запуска приложения, обновления сервера или при пиковых нагрузках. Самые популярные данные уже лежат в быстрой памяти и, как следствие, ответы приходят мгновенно.
Метод продления активной сессии без повторного входа. Мобильные приложения и веб‑сервисы периодически отправляют серверу сигнал (ping), чтобы сервер не закрывал сессию из-за таймаута. Обычно сессия просто продлевается, и клиент продолжает использовать тот же идентификатор. В некоторых системах при этом может выдаваться новый токен, клиенту может возвращаться заголовок Set-Cookie с новым значением Expires или что-то иное, но, при этом, главной задачей является сохранение пользователя в системе, пока он активен.
Техника для баз данных и поисковых движков. Индексы — это структуры данных, ускоряющие поиск. Их прогрев означает предварительную загрузку индексных данных в оперативную память, чтобы первые запросы после запуска системы обрабатывались максимально быстро. Часто для этого используются специальные команды (например, LOAD INDEX INTO CACHE в MariaDB) или прогревочные запросы (искусственные запросы, которые заставляют систему загрузить в память данные из критичных таблиц). Прогрев индекса фактически является частным случаем прогрева кэша, но применительно к кэшу СУБД.
#термины #данные #проектирование #архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2🎉1
Ну что, немного похулиганим? Предлагаю вспомнить народную мудрость, но уже в новом исполнении. Специально ко Дню смеха
Друзья, тоже посетило вдохновение? Тогда пишите свои шедевры в комментариях.
#юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8🔥3👍2
Смотря на происходящее вокруг и читая мнения людей о рынке труда, у меня невольно возник этот образ. Надеюсь, в историии это так и останется грустной шуткой.
P.S. Если что, имею водительское удостоверение категорий "B", "B1", "M". 16 лет водительского стажа. Предложения о работе направляйте в личку🙄
#юмор
P.S. Если что, имею водительское удостоверение категорий "B", "B1", "M". 16 лет водительского стажа. Предложения о работе направляйте в личку
#юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
😢4🔥2😁2
⚡ CodeFest 16: а поговорить?
Спешу поделиться отличной новостью!
✅ Этой весной, 30–31 мая, в Новосибирске пройдёт ежегодная ИТ-конференция CodeFest. Это уже само по себе замечательное событие, но есть и ещё одна приятная деталь.
✅ Программный комитет утвердил меня в качестве спикера трека "Архитектура и анализ". Я выступлю с докладом на тему: «AS IS → TO BE: минимизируем риски перехода».
В рамках выступления мы обсудим переходные требования: их природу, виды, возможные последствия игнорирования и многое другое. Более подробную информацию вы найдёте в описании. Приходите!
#анонсы #события #выступления #требования #проекты
Спешу поделиться отличной новостью!
В рамках выступления мы обсудим переходные требования: их природу, виды, возможные последствия игнорирования и многое другое. Более подробную информацию вы найдёте в описании. Приходите!
#анонсы #события #выступления #требования #проекты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍2👌2
Эта памятная доска прекрасно иллюстрирует идею, что иногда полезно в спецификации/ТЗ явно прописывать то, что точно не стоит ожидать после реализации ☝️🙄
Для этих целей стоит предусмотреть отдельный раздел документа, назвав его, например, "Ограничения и допущения".
Но зачем вообще описывать то, что делать не планируется? Я выделяю две основные причины.
В общем, как ни крути, сплошная польза
#требования
Please open Telegram to view this post
VIEW IN TELEGRAM
💯5👍3🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2🤝2🤩1
Сегодня хочу рассказать о нескольких ключевых словах JSON Schema, польза которых может быть на первый взгляд сомнительной. На конкретных примерах, хоть и выдуманных🙄, убедимся, что в жизни эти ключевые слова вполне могут пригодиться.
Позволяет ограничивать кратность числовых значений заданному числу. Если по-простому: проверяемое значение должно без остатка делиться указанное вами. Примеры:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"minutes" : {
"type": "integer",
"multipleOf": 15
}
}
}{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"area" : {
"type": "number",
"multipleOf": 0.1
}
}
}{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"price" : {
"type": "number",
"multipleOf": 0.01,
"minimum": 0,
"exclusiveMinimum": true
}
}
}{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"capacity" : {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true,
"maximum": 2.5,
"exclusiveMaximum": true,
"multipleOf": 0.5
}
}
}Ограничивает значение поля единственным значением. Формально использование const эквивалентно использованию enum с одним единственным значением, но const позволяет выстраивать более гибкие условия. Пример:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"role" : {
"type": "string",
"oneOf": [
{"const": "seller"},
{"const": "cashier"}
]
}
}
}Позволяет задать условия проверки полей. Например, мы можем проверить значение и в зависимости от результата проверки потребовать выполнение других условий. Пример:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"order_status": { "enum": ["pending", "processing", "paid"] },
"payment_details": {
"type": "object",
"properties": {
"account_number": { "type": "string" },
"amount_paid": { "type": "number" }
},
"required": ["account_number", "amount_paid"]
}
},
"if": {
"properties": { "order_status": { "const": "paid" } }
},
"then": {
"required": ["payment_details"]
},
"else": {}
}Позволяет запретить использование конкретных значений или целых групп значений. Использование not полезно, когда проще описать исключение, чем правило. Примеры:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name" : {
"type": "string",
"not": { "enum": ["admin", "root", "guest"] }
}
}
}{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"not": { "pattern": "^\\s*$" }
}
}
}#проектирование #интеграции #сервисы #форматы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍5🏆2
🤖 Схематрон: что это и зачем
В довольно заметной части актуальных вакансий можно натолкнуться на требования владения XML и XSD, что намекает на их стабильную востребованность. Вот чего ни разу не встречал в вакансиях — ни сейчас, ни ранее — так это упоминания Схематрона.
Тем не менее, Схематрон — чрезвычайно полезный инструмент, позволяющий проверять данные на соответствие гораздо более гибким правилам, нежели стандартные XSD-схемы.
Не берусь утверждать, что Schematron своими возможностями превосходит популярную JSON Schema для JSON, но всё же благодаря ему становится возможным выполнение комплексных проверок, зависящих от контекста данных внутри XML.
Позволю себе процитировать Википедию.
Я сам впервые столкнулся со Схематроном года четыре назад, разбираясь со свежим тогда API налоговой службы. Сейчас не скажу наверняка, применяют ли в ФНС его по-прежнему, но вполне допускаю такую возможность. Тем более что потребность в валидации данных явно никуда не исчезнет.
Если заинтересовало, то советую посмотреть эту коротенькую статью на Хабре. А далее уже можно углубляться и идти на официальный сайт (правда без посторонних инструментов с доступом к нему из РФ могут быть проблемы).
#форматы #интеграции #сервисы
В довольно заметной части актуальных вакансий можно натолкнуться на требования владения XML и XSD, что намекает на их стабильную востребованность. Вот чего ни разу не встречал в вакансиях — ни сейчас, ни ранее — так это упоминания Схематрона.
Тем не менее, Схематрон — чрезвычайно полезный инструмент, позволяющий проверять данные на соответствие гораздо более гибким правилам, нежели стандартные XSD-схемы.
Не берусь утверждать, что Schematron своими возможностями превосходит популярную JSON Schema для JSON, но всё же благодаря ему становится возможным выполнение комплексных проверок, зависящих от контекста данных внутри XML.
Позволю себе процитировать Википедию.
Schematron — язык разметки, предназначенный для проверки правильности содержимого XML документов, основанный на правилах, использует XPath и генерацию XSLT. Стандарт ISO/IEC 19757-3:2006.
Я сам впервые столкнулся со Схематроном года четыре назад, разбираясь со свежим тогда API налоговой службы. Сейчас не скажу наверняка, применяют ли в ФНС его по-прежнему, но вполне допускаю такую возможность. Тем более что потребность в валидации данных явно никуда не исчезнет.
Если заинтересовало, то советую посмотреть эту коротенькую статью на Хабре. А далее уже можно углубляться и идти на официальный сайт (правда без посторонних инструментов с доступом к нему из РФ могут быть проблемы).
#форматы #интеграции #сервисы
🔥6👍2❤1🙏1
Оказывается, месяц назад обо мне выходил пост у Hackathon Raptors 🦖 И как я это пропустил?🤔
#достижения #события #судейства
https://www.linkedin.com/feed/update/urn:li:ugcPost:7442297239508615168/
#достижения #события #судейства
https://www.linkedin.com/feed/update/urn:li:ugcPost:7442297239508615168/
LinkedIn
#sudomakeworld #systemintegration #systems #ai #llms #rag #scalability #api #sudomakeworld #hackathon #opensource #systemdesign…
⭐ Introducing our Judge — Roman Seleznev
We were honored to have Roman Seleznev, Senior/Lead Systems Analyst at Sberbank, serve as a judge for #sudomakeworld. Roman brought deep expertise in #systemintegration, AI-powered applications, and designing enterprise…
We were honored to have Roman Seleznev, Senior/Lead Systems Analyst at Sberbank, serve as a judge for #sudomakeworld. Roman brought deep expertise in #systemintegration, AI-powered applications, and designing enterprise…
🔥3👍2🤯2🏆1
🧮 Алгоритмы, структуры данных и пельмени
Когда-то давно, на одном из первых уроков УПК(про такой школьный предмет помнят разве что только олды) , нам дали определение термина "алгоритм". Я до сих пор помню его наизусть.
Сегодня я решил привести это определение не для того, чтобы похвастаться хорошей памятью. Цель в другом — поделиться своими соображениями и материалами для развития.
Если аналитик не понимает, что такое алгоритм, если он не способен структурно и пошагово изложить логику решения задачи, то польза от такого специалиста вызывает вопросы.
По этой причине, проводя собеседования, я часто прошу кандидата дать определение "алгоритму" своими словами, а после даю задание проговорить вслух простейший алгоритм вроде варки пельменей 🥟 или кипячения воды в чайнике 🫖.
Помимо этого, особенно если аналитик высокогрейдовый, будет совсем недурственно понимать, что такое сложность алгоритма, O-нотация и знать основные структуры данных. А с этим вам поможет эта статья. Рекомендую! 😉
#статьи #термины #данные #алгоритмы
Когда-то давно, на одном из первых уроков УПК
Алгоритм — это понятное и точное указание исполнителю совершить последовательность действий, направленных на выполнение поставленной задачи.
Сегодня я решил привести это определение не для того, чтобы похвастаться хорошей памятью. Цель в другом — поделиться своими соображениями и материалами для развития.
Если аналитик не понимает, что такое алгоритм, если он не способен структурно и пошагово изложить логику решения задачи, то польза от такого специалиста вызывает вопросы.
По этой причине, проводя собеседования, я часто прошу кандидата дать определение "алгоритму" своими словами, а после даю задание проговорить вслух простейший алгоритм вроде варки пельменей 🥟 или кипячения воды в чайнике 🫖.
Помимо этого, особенно если аналитик высокогрейдовый, будет совсем недурственно понимать, что такое сложность алгоритма, O-нотация и знать основные структуры данных. А с этим вам поможет эта статья. Рекомендую! 😉
#статьи #термины #данные #алгоритмы
👍4🤯2💯2
Ⓜ M-shaped: расширяем словарный запас
Наверняка многие из вас слышали, что нужно стремиться стать T-shaped специалистом. Сам я тоже часто сталкивался с этой идеей и считал её вполне обоснованной. Но буквально сегодня услышал, что теперь гораздо правильнее быть M-shaped🙈
Что это вообще означает? Думаю, пересказывать саму концепцию не лучший выход. Проще сразу поделиться полезными ресурсами👇
🙂 Если хотите быстро познакомиться с этой новой моделью, почитайте вот эту статью: https://www.rbc.ru/education/07/11/2025/6905df819a7947dd6c6fb913
🙂 Но если интересуетесь деталями и личным опытом, рекомендую посмотреть это видео: https://youtu.be/ExvUFrHuBHM?si=xP4QCkSW01oVG2dG
Мне оно очень понравилось, многое стало понятно, и точно есть над чем поразмыслить.
#карьера #статьи #видео
Наверняка многие из вас слышали, что нужно стремиться стать T-shaped специалистом. Сам я тоже часто сталкивался с этой идеей и считал её вполне обоснованной. Но буквально сегодня услышал, что теперь гораздо правильнее быть M-shaped
Что это вообще означает? Думаю, пересказывать саму концепцию не лучший выход. Проще сразу поделиться полезными ресурсами
Мне оно очень понравилось, многое стало понятно, и точно есть над чем поразмыслить.
#карьера #статьи #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
РБК
Пришло время M-shaped. Что это за специалисты и почему они вам необходимы
Научно-технический прогресс ускоряется. Это подталкивает компании к открытию новых направлений и порождает спрос на экспертов, обладающих знаниями на стыке дисциплин. Василий Лебедев (Школа инноваций
👍2🔥2🏆1
Что происходит, когда компания принимает решение прекратить развитие функционала какой-нибудь информационной системы? Казалось бы, жизнь становится проще: новые фичи не появляются, нагрузка на команду снижается, можно расслабиться... Ан нет!
Оказывается, что даже остановив развитие функциональности, команда продолжает получать постоянные задания на обновление её компонентов и приведение архитектуры в соответствие с действующими стандартами
Фокус в том, что ваша разработка не живёт в вакууме. У неё есть элементы вроде библиотек и обязательных компонентов журналирования и мониторинга, а вокруг — внешняя среда в виде политик, арх. стандартов, базовых образов и сопряжённых внешних систем.
И всё это добро живёт своей жизнью: API меняются, в сторонних компонентах находят уязвимости, после чего их надо обновлять, вводятся новые требования к эксплуатирующимся системам и т.д.
☝️ Отсюда мораль: заморозка функциональности вовсе не означает статику, а границы системы — это не предел, а источник постоянных задач.
Знакомо? Если да, поделитесь в комментариях своим опытом и впечатлениями.
#системныйподход
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1🏆1