<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Архитектура ПО on Dev TLDRLSS</title>
        <link>https://dev.tldrlss.com/ru/categories/%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%BF%D0%BE/</link>
        <description>Recent content in Архитектура ПО on Dev TLDRLSS</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ru</language>
        <lastBuildDate>Sun, 02 Aug 2026 15:08:41 +0800</lastBuildDate><atom:link href="https://dev.tldrlss.com/ru/categories/%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%BF%D0%BE/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>В чем разница между Manifest, Report и Finding? Что означают термины иерархии данных в архитектуре ПО? Почему дизайн API строится по слоям? Чем отличаются Metadata, Artifact и Payload!</title>
        <link>https://dev.tldrlss.com/ru/article/2026/08/whats-manifest-report-finding-evidence-metadata-artifact-payload-data-model-hierarchy/</link>
        <pubDate>Sun, 02 Aug 2026 15:08:41 +0800</pubDate>
        
        <guid>https://dev.tldrlss.com/ru/article/2026/08/whats-manifest-report-finding-evidence-metadata-artifact-payload-data-model-hierarchy/</guid>
        <description>&lt;img src="https://dev.tldrlss.com/global-assets/article/2026/08/whats-manifest-report-finding-evidence-metadata-artifact-payload-cover.jpg" alt="Featured image of post В чем разница между Manifest, Report и Finding? Что означают термины иерархии данных в архитектуре ПО? Почему дизайн API строится по слоям? Чем отличаются Metadata, Artifact и Payload!" /&gt;&lt;p&gt;Часто ли вы сталкиваетесь с такими терминами, как &lt;code&gt;Manifest&lt;/code&gt;, &lt;code&gt;Report&lt;/code&gt;, &lt;code&gt;Finding&lt;/code&gt; и &lt;code&gt;Evidence&lt;/code&gt;, при чтении документации &lt;code&gt;API&lt;/code&gt;, отчетов сканеров безопасности или логов &lt;code&gt;CI/CD&lt;/code&gt;? Это не синтаксис конкретного языка программирования, а общепринятые в индустрии &lt;strong&gt;термины иерархии данных&lt;/strong&gt;. Что же на самом деле означают эти понятия?&lt;/p&gt;
&lt;h2 id=&#34;основная-концепция-понимание-иерархии-данных-через-медицинский-осмотр&#34;&gt;Основная концепция: Понимание иерархии данных через &amp;ldquo;Медицинский осмотр&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;Мы можем представить их как процесс прохождения &lt;strong&gt;медосмотра&lt;/strong&gt; в больнице. Эти четыре термина точно соответствуют уровням данных — от высокоуровневых сводок до сырых данных на самом нижнем уровне.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Термин&lt;/th&gt;
          &lt;th&gt;Аналогия с медосмотром&lt;/th&gt;
          &lt;th&gt;Соответствующее объяснение в архитектуре ПО&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Manifest&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Бланк регистрации на медосмотр&lt;/td&gt;
          &lt;td&gt;Декларирует список выполняемых задач, версии и конфигурации окружения; описательные данные.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Report&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Полный отчет о меdoсмотое&lt;/td&gt;
          &lt;td&gt;Полная итоговая сводка после выполнения, включающая общий статус и результаты аудита.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Finding&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Красная пометка в отчете&lt;/td&gt;
          &lt;td&gt;Конкретная находка, выделенная в отчете, например «Выявлена гипертония» или уязвимость.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Evidence&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Распечатка данных с тонометра&lt;/td&gt;
          &lt;td&gt;Первичные объективные доказательства, подтверждающие находку (логи, значения измерений).&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Эти термины не являются зарезервированными словами языков программирования, а представляют собой общепринятую модель данных.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Мы можем использовать диаграмму &lt;code&gt;Mermaid&lt;/code&gt;, чтобы проиллюстрировать отношения вложенности и потока данных между этими четырьмя понятиями:&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  graph TD
    A[&amp;#34;Manifest (Спецификация/Метаданные)&amp;#34;] --&amp;gt;|Определяет рамки и выполнение| B[&amp;#34;Report (Полный итоговый отчет)&amp;#34;]
    B --&amp;gt;|Содержит несколько| C[&amp;#34;Finding (Конкретная находка/Наблюдение)&amp;#34;]
    C --&amp;gt;|Связывает несколько| D[&amp;#34;Evidence (Объективные сырые доказательства)&amp;#34;]
&lt;/pre&gt;

&lt;!--adsense--&gt;
&lt;h2 id=&#34;зачем-нужна-слоистая-архитектура-3-главных-преимущества-иерархии-данных&#34;&gt;Зачем нужна слоистая архитектура? 3 главных преимущества иерархии данных
&lt;/h2&gt;&lt;p&gt;Почему система разделяет данные так подробно, вместо того чтобы поместить всё в один огромный объект &lt;code&gt;JSON&lt;/code&gt;? Такое проектирование дает несколько ключевых преимуществ:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Отличная архитектура API обеспечивает более плавную загрузку интерфейса и повышает достоверность и расширяемость данных.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Преимущество&lt;/th&gt;
          &lt;th&gt;Объяснение&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Разделение ответственности (Separation of Concerns)&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Фронтенд может сначала загрузить сводку &lt;code&gt;Finding&lt;/code&gt; для быстрого показа, вызывая тяжелый &lt;code&gt;Evidence&lt;/code&gt; только при необходимости.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Высокая достоверность&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Предоставление &lt;code&gt;Evidence&lt;/code&gt; доказывает, что &lt;code&gt;Finding&lt;/code&gt; не является ложным срабатыванием, значительно повышая аудируемость.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Гибкая расширяемость&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Одно &lt;code&gt;Finding&lt;/code&gt; может быть гибко связано с несколькими &lt;code&gt;Evidence&lt;/code&gt; без нарушения исходного формата данных.&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;другие-распространенные-термины-metadata-artifact-и-payload&#34;&gt;Другие распространенные термины: Metadata, Artifact и Payload
&lt;/h2&gt;&lt;p&gt;Помимо четырех основных уровней, при проектировании &lt;code&gt;API&lt;/code&gt;, построении пайплайнов или определении формата передачи вы часто встретите три термина: &lt;code&gt;Metadata&lt;/code&gt;, &lt;code&gt;Artifact&lt;/code&gt; и &lt;code&gt;Payload&lt;/code&gt;:`&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Термин&lt;/th&gt;
          &lt;th&gt;Основное определение&lt;/th&gt;
          &lt;th&gt;Бытовая аналогия&lt;/th&gt;
          &lt;th&gt;Практический пример применения в архитектуре ПО&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Metadata&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Данные, описывающие сами данные&lt;/td&gt;
          &lt;td&gt;Почтовая наклейка на посылке, EXIF-данные фотографии&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;HTTP Header&lt;/code&gt;, временная метка &lt;code&gt;timestamp&lt;/code&gt;, пагинация &lt;code&gt;page&lt;/code&gt;.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Artifact&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Физический результат, созданный после процесса&lt;/td&gt;
          &lt;td&gt;Автомобиль, произведенный на заводе, диск медосмотра&lt;/td&gt;
          &lt;td&gt;Собранный &lt;code&gt;.apk&lt;/code&gt;-файл, &lt;code&gt;Docker Image&lt;/code&gt;, аудиторский &lt;code&gt;PDF&lt;/code&gt;-отчет.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Payload&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Основные бизнес-данные, передаваемые в запросе&lt;/td&gt;
          &lt;td&gt;Смартфон, лежащий внутри коробки с посылкой&lt;/td&gt;
          &lt;td&gt;Основное бизнес-содержимое &lt;code&gt;JSON&lt;/code&gt; внутри &lt;code&gt;HTTP POST Body&lt;/code&gt;.&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;Payload&lt;/code&gt; &lt;strong&gt;похож на содержимое внутри почтовой посылки&lt;/strong&gt;, а &lt;code&gt;Metadata&lt;/code&gt; &lt;strong&gt;— это адресная наклейка снаружи&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Чтобы лучше понять совместную работу этих трех элементов, рассмотрим типичную структуру данных &lt;code&gt;API Request&lt;/code&gt;:`&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;metadata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;version&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;v1.2.0&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;2026-08-02T15:08:41Z&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;request_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;req-98765&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;payload&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;report_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;REP-2026-001&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;COMPLETED&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;artifact_url&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://example.com/artifacts/build-report.pdf&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;В этом &lt;code&gt;JSON&lt;/code&gt;-примере:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;metadata&lt;/code&gt; предоставляет контекст передачи и окружения (версия, временная метка, ID запроса).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;payload&lt;/code&gt; содержит фактические данные бизнес-логики (ID отчета, статус).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;artifact_url&lt;/code&gt; указывает на реальный файл, созданный этой задачей сборки (&lt;code&gt;Artifact&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;!--adsense--&gt;
&lt;h2 id=&#34;сила-общего-словаря-мост-для-взаимодействия-между-системами&#34;&gt;Сила общего словаря: Мост для взаимодействия между системами
&lt;/h2&gt;&lt;p&gt;Когда разные инструменты и команды используют единую модель данных (&lt;code&gt;Report&lt;/code&gt; -&amp;gt; &lt;code&gt;Findings&lt;/code&gt; -&amp;gt; &lt;code&gt;Evidence&lt;/code&gt;), затраты на коммуникацию между командами резко снижаются.&lt;/p&gt;
&lt;p&gt;Представьте, что &lt;code&gt;Report&lt;/code&gt;, сгенерированный вашим &lt;code&gt;CI/CD&lt;/code&gt;-инструментом, может напрямую и беспрепятственно передаваться в систему безопасности для анализа — в этом заключается сила интеграции общего предметного языка.&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  sequenceDiagram
    autonumber
    actor CI as CI/CD Pipeline
    participant Scanner as Сканер безопасности
    participant Dashboard as Панель управления
    
    CI-&amp;gt;&amp;gt;Scanner: Передает Manifest для сканирования
    Scanner-&amp;gt;&amp;gt;Scanner: Генерирует Report и Findings
    Scanner-&amp;gt;&amp;gt;Dashboard: Отправляет структурированный Payload (Finding + Evidence)
    Dashboard--&amp;gt;&amp;gt;CI: Отображает результаты аудита
&lt;/pre&gt;

&lt;h2 id=&#34;итог&#34;&gt;Итог
&lt;/h2&gt;&lt;p&gt;На самом деле главная цель этих терминов — решить проблемы &lt;strong&gt;коммуникации и структурирования данных&lt;/strong&gt; в крупномасштабных системах.&lt;/p&gt;
&lt;p&gt;При интеграции систем или проектировании &lt;code&gt;API&lt;/code&gt;, старайтесь внедрять эти концепции иерархии данных в структуру &lt;code&gt;Payload&lt;/code&gt;, делая дизайн вашей системы более профессиональным и расширяемым!&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
