<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Нагрузим IT!</title><subtitle>📊 Нагрузочное тестирование для всех
Добро пожаловать в мир тестирования систем под нагрузкой! 🔍</subtitle><author><name>Нагрузим IT!</name></author><id>https://teletype.in/atom/lets_load</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/lets_load?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@lets_load?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lets_load"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/lets_load?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-05-25T01:05:10.142Z</updated><entry><id>lets_load:failure-analysis</id><link rel="alternate" type="text/html" href="https://teletype.in/@lets_load/failure-analysis?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lets_load"></link><title>7 способов подготовить стратегию тестирования на 2026: чек-лист успеха для QA-лидеров</title><published>2026-01-13T09:53:08.160Z</published><updated>2026-01-13T12:12:23.867Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/c0/36/c036b400-0841-4869-a7dd-da805e6864ee.png"></media:thumbnail><category term="perevody" label="Переводы"></category><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/3f/65/3f65a924-32df-42bb-9c4f-53c2d7c468cb.png&quot;&gt;Вольный перевод оригинальной статьи: New Year, Better Tests: 7 Tips to Set your 2026 Testing Strategy up for Success</summary><content type="html">
  &lt;figure id=&quot;1oMf&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3f/65/3f65a924-32df-42bb-9c4f-53c2d7c468cb.png&quot; width=&quot;1376&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;ynLn&quot;&gt;Вольный перевод оригинальной статьи: &lt;a href=&quot;https://saucelabs.com/resources/blog/new-year-better-tests-7-tips-to-set-your-2026-testing-strategy-up-for&quot; target=&quot;_blank&quot;&gt;New Year, Better Tests: 7 Tips to Set your 2026 Testing Strategy up for Success&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Np2i&quot;&gt;Начало года — лучшее время, чтобы подготовить свою стратегию тестирования. Если прошлый год был крутым (или наоборот), самое время проанализировать, что сработало, а что пора менять. Мы собрали 7 практических советов на основе опыта 2025 года, которые помогут вам выстроить стратегию тестирования.&lt;/p&gt;
  &lt;p id=&quot;qhF2&quot;&gt;Неважно, ловите ли вы баги в спешке или проектируете стратегию развития на весь год — эти инсайты помогут вам ускорить процесс обеспечения качества и снизить боль от нестабильных тестов.&lt;/p&gt;
  &lt;h2 id=&quot;1-начните-с-данных-а-не-с-желаний&quot;&gt;1. Начните с данных, а не с &amp;quot;хотелок&amp;quot;&lt;/h2&gt;
  &lt;figure id=&quot;ga5R&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/f1/bcf124db-a77f-4de6-a48e-cb9aca84fec3.png&quot; width=&quot;1376&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;TIDp&quot;&gt;&lt;strong&gt;Проблема&lt;/strong&gt;: Много команд тестирования строят планы на интуицию: &amp;quot;надо больше автотестов&amp;quot;, &amp;quot;нужны AI-инструменты&amp;quot;, &amp;quot;переходим на Playwright&amp;quot;.&lt;/p&gt;
  &lt;p id=&quot;fCRs&quot;&gt;&lt;strong&gt;Решение&lt;/strong&gt;: Выкопайте метрики из 2025:&lt;/p&gt;
  &lt;ul id=&quot;I53E&quot;&gt;
    &lt;li id=&quot;xPzB&quot;&gt;&lt;strong&gt;Time to Value&lt;/strong&gt; — сколько времени проходит от запуска тестов до того, как команда поняла результаты и действует&lt;/li&gt;
    &lt;li id=&quot;PlDV&quot;&gt;&lt;strong&gt;Flakiness rate&lt;/strong&gt; — процент ложноположительных падений (идеально &amp;lt; 3%)&lt;/li&gt;
    &lt;li id=&quot;rRdI&quot;&gt;&lt;strong&gt;Bug escape rate&lt;/strong&gt; — сколько багов прошли в прод&lt;/li&gt;
    &lt;li id=&quot;Y211&quot;&gt;&lt;strong&gt;Coverage&lt;/strong&gt; — покрытие кода и критичных пользовательских сценариев&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Lxnd&quot;&gt;Затем определите 2-3 конкретные цели на 2026:&lt;/p&gt;
  &lt;ul id=&quot;ULh4&quot;&gt;
    &lt;li id=&quot;MFb8&quot;&gt;Ускорить полный регресс с 4 часов до 1.5 часов?&lt;/li&gt;
    &lt;li id=&quot;aAwU&quot;&gt;Внедрить эй-ай-анализ падений и сэкономить 10 часов/неделю на отладку?&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;7i44&quot;&gt;&lt;strong&gt;Почему это работает&lt;/strong&gt;: Данные убеждают руководство, а чёткие цели дают направление.&lt;/p&gt;
  &lt;h2 id=&quot;3-возьмитесь-за-exploratory-testing-всерьёз&quot;&gt;2. Возьмитесь за исследовательское тестирование всерьёз&lt;/h2&gt;
  &lt;figure id=&quot;t6Gd&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/22/35/2235dcad-08c2-4d14-9a15-70a3ae6aef4b.png&quot; width=&quot;1344&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;bqyl&quot;&gt;&lt;strong&gt;Миф&lt;/strong&gt;: исследовательское тестирование — это когда тестировщик кликает что-то где-то, пока не найдёт баг.&lt;/p&gt;
  &lt;p id=&quot;6RrA&quot;&gt;&lt;strong&gt;Реальность&lt;/strong&gt;: Это дисциплинированный процесс одновременного обучения, проектирования и исполнения тестов.&lt;/p&gt;
  &lt;p id=&quot;5wdA&quot;&gt;&lt;strong&gt;Как это работает в 2026&lt;/strong&gt;:&lt;/p&gt;
  &lt;p id=&quot;Bhbp&quot;&gt;Для каждой тест-сессии определите &lt;strong&gt;чартер&lt;/strong&gt; - это такой word-документик, где будет описано:&lt;/p&gt;
  &lt;ul id=&quot;cTIl&quot;&gt;
    &lt;li id=&quot;zLCd&quot;&gt;Что мы тестируем? (например, новая фича платежей)&lt;/li&gt;
    &lt;li id=&quot;D8TS&quot;&gt;Какие риски ищем? (например, дублирование платежей, тайм-ауты при слабой сети)&lt;/li&gt;
    &lt;li id=&quot;f6IH&quot;&gt;Сколько времени? (например, 2 часа с одним тестировщиком или тим-лидом)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;DDF5&quot;&gt;&lt;strong&gt;Во время тест-сессии&lt;/strong&gt;:&lt;/p&gt;
  &lt;p id=&quot;eKlc&quot;&gt;Документируйте результаты в реальном времени. Не жалейте на это времени — это не лишняя трата времени, это инвестиция. Найденные дефекты и идеи превратите в автотесты позже.&lt;/p&gt;
  &lt;p id=&quot;xwTI&quot;&gt;&lt;strong&gt;Главная фишка&lt;/strong&gt;: Делайте исследовательское тестирование как можно раньше, когда код ещё гибкий. &lt;/p&gt;
  &lt;h2 id=&quot;4-не-меняйте-инструмент-пока-не-исправили-фундамент&quot;&gt;3. Не меняйте инструменты, пока не исправили фундамент&lt;/h2&gt;
  &lt;figure id=&quot;zQ1v&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/33/30/33303b49-037d-4a49-be41-4b69362110b9.png&quot; width=&quot;1344&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;204d&quot;&gt;&lt;strong&gt;Типичная ситуация&lt;/strong&gt;:&lt;/p&gt;
  &lt;ul id=&quot;yjVa&quot;&gt;
    &lt;li id=&quot;m6SE&quot;&gt;Selenium падает постоянно → &amp;quot;Переходим на Cypress!&amp;quot;&lt;/li&gt;
    &lt;li id=&quot;xOW8&quot;&gt;Переходят → те же проблемы → &amp;quot;Может, Playwright?&amp;quot;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;7jwT&quot;&gt;&lt;strong&gt;В чём подвох&lt;/strong&gt;: Инструмент здесь не виноват. Виноваты:&lt;/p&gt;
  &lt;ul id=&quot;EKu7&quot;&gt;
    &lt;li id=&quot;Slip&quot;&gt;Тесты, которые переписаны криво &lt;/li&gt;
    &lt;li id=&quot;TeuI&quot;&gt;Нестабильная окружение&lt;/li&gt;
    &lt;li id=&quot;l22f&quot;&gt;Неправильная архитектура тестов&lt;/li&gt;
    &lt;li id=&quot;GDhO&quot;&gt;Отсутствие анализа &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;HsQf&quot;&gt;&lt;strong&gt;Что делать&lt;/strong&gt;:&lt;/p&gt;
  &lt;p id=&quot;ykhW&quot;&gt;Прежде чем инвестировать в новый инструмент:&lt;/p&gt;
  &lt;ol id=&quot;1Dv9&quot;&gt;
    &lt;li id=&quot;Agfs&quot;&gt;&lt;strong&gt;Изучите паттерны падений&lt;/strong&gt;. Почему именно падают ваши тесты? &lt;/li&gt;
    &lt;li id=&quot;xCNX&quot;&gt;&lt;strong&gt;Исправьте проблемы в корне&lt;/strong&gt; (фиксы окружения, рефакторинг тестов).&lt;/li&gt;
    &lt;li id=&quot;WX0W&quot;&gt;&lt;strong&gt;Только потом&lt;/strong&gt; меняйте инструмент, если это действительно нужно.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;4NCm&quot;&gt;Внимание: если вы меняете инструмент &lt;em&gt;ради инструмента&lt;/em&gt;, вы просто потратите 3 месяца на миграцию и получите те же проблемы, но в новом интерфейсе.&lt;/p&gt;
  &lt;h2 id=&quot;2-модернизируйте-инфраструктуру-ещё-не-поздно&quot;&gt;4. Модернизируйте инфраструктуру (ещё не поздно)&lt;/h2&gt;
  &lt;figure id=&quot;dvZ8&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/07/79/077955fe-8b6b-4e5c-89b8-3cdd75edb66c.png&quot; width=&quot;1344&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;v73g&quot;&gt;&lt;strong&gt;Боль&lt;/strong&gt;: Ваша тестовая среда дряхлеет. Selenium часто падает, CI/CD медленный, параллелизм &amp;quot;как получится&amp;quot;.&lt;/p&gt;
  &lt;p id=&quot;xtnn&quot;&gt;&lt;strong&gt;Чек-лист инфраструктуры&lt;/strong&gt;:&lt;/p&gt;
  &lt;ul id=&quot;EEY3&quot;&gt;
    &lt;li id=&quot;YVTg&quot;&gt;Оптимизирована ли ваша CI/CD pipeline на &lt;strong&gt;скорость и надёжность&lt;/strong&gt;?&lt;/li&gt;
    &lt;li id=&quot;PXUa&quot;&gt;Хватает ли &lt;strong&gt;параллелизма&lt;/strong&gt; для вашего растущего набора тестов?&lt;/li&gt;
    &lt;li id=&quot;kBre&quot;&gt;Выдержит ли инфраструктура рост тестов на 20-30% в течение года?&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ZNq0&quot;&gt;&lt;strong&gt;Что делать&lt;/strong&gt;:&lt;/p&gt;
  &lt;p id=&quot;FDg3&quot;&gt;Рассмотрите облачные решения для тестирования (облако — это не подозрительно, это стандарт). Внедрите &lt;strong&gt;контейнеризацию&lt;/strong&gt; (Docker, Kubernetes):&lt;/p&gt;
  &lt;ul id=&quot;8PQ9&quot;&gt;
    &lt;li id=&quot;M4rV&quot;&gt;Легко масштабировать: нужно 100 браузеров одновременно? Запустилось за 30 секунд&lt;/li&gt;
    &lt;li id=&quot;XRgi&quot;&gt;Снижается случайность результатов из-за нестабильной окружения (это один из главных источников ложных падений)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;5-сделайте-time-to-value-главной-метрикой&quot;&gt;5. Сделайте &amp;quot;Time to Value&amp;quot; главной метрикой&lt;/h2&gt;
  &lt;figure id=&quot;8Jm9&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/32/50/3250ebe3-f6a5-475c-8c58-5f10ebd0e84d.png&quot; width=&quot;1344&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ynFv&quot;&gt;&lt;strong&gt;Забудьте про &amp;quot;количество тестов&amp;quot;&lt;/strong&gt;. Это не метрика, это фикция.&lt;/p&gt;
  &lt;p id=&quot;2v6Z&quot;&gt;&lt;strong&gt;Главное — Time to Value&lt;/strong&gt;: сколько времени с момента, как тесты запустились, до момента, когда команда поняла результаты и начала действовать.&lt;/p&gt;
  &lt;p id=&quot;sKTd&quot;&gt;&lt;strong&gt;Типичная ситуация&lt;/strong&gt;:&lt;/p&gt;
  &lt;ul id=&quot;2LmM&quot;&gt;
    &lt;li id=&quot;IcW9&quot;&gt;Ночной регресс запустился, отработал за 30 минут ✅&lt;/li&gt;
    &lt;li id=&quot;VDuY&quot;&gt;Но результатов — 500 строк логов и 50 ошибок&lt;/li&gt;
    &lt;li id=&quot;tN9I&quot;&gt;Разработчик 2 часа разбирается, какие ошибки реальные, какие — ложноположительные&lt;/li&gt;
    &lt;li id=&quot;NHSq&quot;&gt;Итог: Time to Value = 2.5 часа&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;0Xfn&quot;&gt;&lt;strong&gt;Если это ваша ситуация&lt;/strong&gt;, пора действовать:&lt;/p&gt;
  &lt;ul id=&quot;EUWo&quot;&gt;
    &lt;li id=&quot;EA5t&quot;&gt;Внедрите AI-анализ падений (умный анализ ошибок)&lt;/li&gt;
    &lt;li id=&quot;r27o&quot;&gt;Автоматизируйте обработку результатов (группировка похожих ошибок, ранжирование по severity (серьезность))&lt;/li&gt;
    &lt;li id=&quot;ifBL&quot;&gt;Интегрируйте в Slack/Telegram уведомления: &amp;quot;2 критичных бага, 15 можно проигнорировать&amp;quot;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;6-делайте-refresh-тестов-в-середине-года&quot;&gt;6. Делайте обновление тестов в середине года&lt;/h2&gt;
  &lt;figure id=&quot;Ddcj&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bf/de/bfde6971-efae-4907-aa19-6535042d6a2f.jpeg&quot; width=&quot;1344&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;hr8P&quot;&gt;&lt;strong&gt;Идея&lt;/strong&gt;: Не ждите конца года. В июне остановитесь и переделайте тесты.&lt;/p&gt;
  &lt;p id=&quot;Y9xf&quot;&gt;&lt;strong&gt;Что проверить&lt;/strong&gt;:&lt;/p&gt;
  &lt;ul id=&quot;y1h5&quot;&gt;
    &lt;li id=&quot;g1yR&quot;&gt;Какие тесты вы вообще запускаете? Есть ли дублирующие?&lt;/li&gt;
    &lt;li id=&quot;KayZ&quot;&gt;Какие из них постоянно падают без причины?&lt;/li&gt;
    &lt;li id=&quot;FToV&quot;&gt;Какие тесты медленные? (Оптимизируйте или распараллелите)&lt;/li&gt;
    &lt;li id=&quot;iHkC&quot;&gt;Есть ли &amp;quot;дырки&amp;quot; в покрытии? (Новые фичи, которые не покрыты)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;0BJP&quot;&gt;&lt;strong&gt;Бонус для лета&lt;/strong&gt;:&lt;/p&gt;
  &lt;p id=&quot;hEHG&quot;&gt;Июнь — это лучше время, потому что:&lt;/p&gt;
  &lt;ul id=&quot;3Y62&quot;&gt;
    &lt;li id=&quot;UW0n&quot;&gt;Вторая половина года впереди (есть время на действия)&lt;/li&gt;
    &lt;li id=&quot;S8Pk&quot;&gt;Обычно меньше &amp;quot;горячих&amp;quot; проектов летом&lt;/li&gt;
    &lt;li id=&quot;SHLt&quot;&gt;Можно спланировать крупные рефакторинги&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;7-протестируйте-сезонные-нагрузки-и-скачки-трафика-заранее&quot;&gt;7. Протестируйте сезонные нагрузки и скачки трафика заранее&lt;/h2&gt;
  &lt;figure id=&quot;eCQG&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e6/90/e690bdd2-e3e4-4625-91dc-3748da93c79d.png&quot; width=&quot;1344&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;uylI&quot;&gt;Большинство компаний испытают трудности в &amp;quot;сезонные&amp;quot; периоды:&lt;/p&gt;
  &lt;ul id=&quot;Vnwj&quot;&gt;
    &lt;li id=&quot;IMUS&quot;&gt;1 сентября (скачок студентов в образовательные приложения)&lt;/li&gt;
    &lt;li id=&quot;EYli&quot;&gt;Чёрная пятница и киберпонедельник&lt;/li&gt;
    &lt;li id=&quot;xcDe&quot;&gt;Конец квартала (выплаты по подпискам)&lt;/li&gt;
    &lt;li id=&quot;BmLI&quot;&gt;Крупные анонсы или PR-кампании&lt;/li&gt;
    &lt;li id=&quot;Z1YS&quot;&gt;Новый год (скачок в финтех и рассылках)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;t3Am&quot;&gt;&lt;strong&gt;Что делать&lt;/strong&gt;:&lt;/p&gt;
  &lt;p id=&quot;fcpV&quot;&gt;&lt;strong&gt;Сейчас же&lt;/strong&gt; (в январе):&lt;/p&gt;
  &lt;ol id=&quot;RD9K&quot;&gt;
    &lt;li id=&quot;DxlE&quot;&gt;Определите пики трафика в вашем 2026-м&lt;/li&gt;
    &lt;li id=&quot;t4ud&quot;&gt;Запланируйте нагрузочное тестирование за 4-6 недель до события&lt;/li&gt;
    &lt;li id=&quot;mLO8&quot;&gt;Убедитесь, что в руководстве нет иллюзий: &amp;quot;Вот запустим все фичи 30 декабря, может, чего-то не сломается&amp;quot; — это гарантирует беду.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;omZL&quot;&gt;&lt;strong&gt;Инструменты для нагрузки&lt;/strong&gt;: Apache JMeter (бесплатный), Locust (простой), k6 (для облака), нативные облачные сервисы (Azure Load Testing, AWS CloudWatch Synthetics).&lt;/p&gt;
  &lt;p id=&quot;BmIf&quot;&gt;&lt;strong&gt;Сценарий, который хорошо работает&lt;/strong&gt;:&lt;/p&gt;
  &lt;ul id=&quot;mQFk&quot;&gt;
    &lt;li id=&quot;YoAV&quot;&gt;Май: планируем, какие нагрузки&lt;/li&gt;
    &lt;li id=&quot;1Gto&quot;&gt;Июнь: первый нагрузочный тест (находим узкие места)&lt;/li&gt;
    &lt;li id=&quot;osse&quot;&gt;Июль-август: фиксим инфраструктуру, оптимизируем код&lt;/li&gt;
    &lt;li id=&quot;BgU5&quot;&gt;Сентябрь: финальный нагрузочный тест &lt;/li&gt;
    &lt;li id=&quot;F0Cl&quot;&gt;Октябрь: готовы к нагрузкам&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;главное-правило&quot;&gt;Главное правило&lt;/h2&gt;
  &lt;p id=&quot;sixw&quot;&gt;&lt;strong&gt;Тестирование имеет ценность только тогда, когда результаты понимаются и на них действуют.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;EWzY&quot;&gt;Запустили 10 000 тестов, которые никто не смотрит? Это не качество, это театр. Запустили 100 тестов, проанализировали за 5 минут и нашли 2 критичных баги? Это работает.&lt;/p&gt;
  &lt;p id=&quot;N8Tc&quot;&gt;В 2026 году сфокусируйтесь на:&lt;/p&gt;
  &lt;p id=&quot;NhLQ&quot;&gt;✅ &lt;strong&gt;Данных, а не &amp;quot;хотелках&amp;quot;&lt;/strong&gt;&lt;br /&gt;✅ &lt;strong&gt;Скорости получения результатов&lt;/strong&gt; (Time to Value)&lt;br /&gt;✅ &lt;strong&gt;Стабильности окружения&lt;/strong&gt;&lt;br /&gt;✅ &lt;strong&gt;Раннем обнаружении проблем&lt;/strong&gt; (исследовательское тестирование + сезонное тестирование)&lt;br /&gt;✅ &lt;strong&gt;Снижении техдолга&lt;/strong&gt; (обновление парка тестов в июне)&lt;/p&gt;
  &lt;p id=&quot;juGh&quot;&gt;И помните: лучший инструмент — это дисциплина. Плохую архитектура не спасёт никакой фреймворк (и даже ЭЙ-АЙ)&lt;/p&gt;

</content></entry><entry><id>lets_load:vibe_codding</id><link rel="alternate" type="text/html" href="https://teletype.in/@lets_load/vibe_codding?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lets_load"></link><title>Vibe Coding: программирование без знания кода</title><published>2025-12-22T21:58:25.545Z</published><updated>2025-12-22T21:58:25.545Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/90/df/90df928c-1584-4146-b5a5-ad107cda8562.png"></media:thumbnail><category term="perevody" label="Переводы"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/cb/53/cb53cb18-14cb-4ec2-9770-9885f9c0083d.jpeg&quot;&gt;Вольный перевод оригинальной статьи: A New Worst Coder Has Entered the Chat: Vibe Coding Without Code Knowledge на Stack Overflow Blog</summary><content type="html">
  &lt;figure id=&quot;S788&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/cb/53/cb53cb18-14cb-4ec2-9770-9885f9c0083d.jpeg&quot; width=&quot;1344&quot; /&gt;
    &lt;figcaption&gt;теперь программировать может даже ребенок (или нет?)&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;73mz&quot;&gt;&lt;em&gt;Вольный перевод оригинальной статьи: &lt;a href=&quot;https://stackoverflow.blog/2025/08/07/a-new-worst-coder-has-entered-the-chat-vibe-coding-without-code-knowledge/&quot; target=&quot;_blank&quot;&gt;A New Worst Coder Has Entered the Chat: Vibe Coding Without Code Knowledge&lt;/a&gt; на Stack Overflow Blog&lt;/em&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D0%B6%D1%83%D1%80%D0%BD%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%BA%D0%B0-%D0%B2%D0%B7%D1%8F%D0%BB%D0%B0-%D0%B8-%D0%B7%D0%B0%D0%BA%D0%BE%D0%B4%D0%B8%D0%BB%D0%B0-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BD%D0%B0-%D1%87%D0%B8%D1%81%D1%82%D1%8B%D1%85-%D0%B2%D0%B8%D0%B1%D1%80%D0%B0%D1%86%D0%B8%D1%8F%D1%85&quot;&gt;Когда журналистка взяла и закодила приложение на чистом вайбе&lt;/h2&gt;
  &lt;p id=&quot;qPNg&quot;&gt;Если бы я попросила вас угадать, кто в моем офисе мог бы создать приложение, в первых пяти вариантах вы не назвали бы мою профессию. И это логично.&lt;/p&gt;
  &lt;p id=&quot;ot7s&quot;&gt;Никогда я не указывала программирование в своем резюме как основное умение. Всё, что я знаю о коде, — это случайные обрывки знаний, собранные на работе. К тому же я живу в Bay Area (крупная агломерация в Северной Калифорнии, сформировавшаяся вокруг залива Сан-Франциско и включающая такие города, как Сан-Франциско,Сан-Хосе и Окленд, а также знаменитую Кремниевую долину), где каждый разговор рано или поздно скатывается на AI и технологии — не можешь избежать просто так.&lt;/p&gt;
  &lt;p id=&quot;rOZ9&quot;&gt;Но жизнь полна сюрпризов. И вот однажды я создала приложение. С одной оговоркой: я не кодила его сама. Приложение полностью родилось из &amp;quot;вайба&amp;quot; (vibes) — так уже называют создание с помощью AI-инструментов вроде &lt;a href=&quot;https://bolt.new/&quot; target=&quot;_blank&quot;&gt;Bolt&lt;/a&gt; (конструктор сайтов на базе искусственного интеллекта, позволяющий создавать веб-сайты и мобильные приложения за считанные минуты)&lt;/p&gt;
  &lt;h2 id=&quot;%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-vibe-coding&quot;&gt;Что такое Vibe Coding?&lt;/h2&gt;
  &lt;figure id=&quot;ymz0&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9f/22/9f22562f-7fd8-4899-9e35-2fb951b72e7f.jpeg&quot; width=&quot;672&quot; /&gt;
    &lt;figcaption&gt;плюс чилл вайб&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;h3mt&quot;&gt;Концепция &amp;quot;&lt;a href=&quot;https://stackoverflow.blog/2025/08/05/being-unambiguous-in-what-you-want-the-software-engineer-in-a-vibe-coding-world/&quot; target=&quot;_blank&quot;&gt;vibe coding&lt;/a&gt;&amp;quot; появилась только в начале 2025 года, но уже успела стать одной из самых обсуждаемых применений больших языковых моделей. Она вызывает жаркие дебаты об эффективности и кучу страхов среди &lt;a href=&quot;https://stackoverflow.blog/2024/12/31/generative-ai-is-not-going-to-build-your-engineering-team-for-you/&quot; target=&quot;_blank&quot;&gt;junior-разработчиков&lt;/a&gt; о том, как это изменит их будущее. Даже опытные программисты &lt;a href=&quot;https://stackoverflow.blog/2025/07/31/do-ai-coding-tools-help-with-imposter-syndrome-or-make-it-worse/&quot; target=&quot;_blank&quot;&gt;испытывают &lt;/a&gt;экзистенциальный страх замены.&lt;/p&gt;
  &lt;p id=&quot;vmx9&quot;&gt;Обещание, что vibe coding дает любому, даже без технического бэкграунда, возможность создать приложение, звучит как-то слишком хорошо. Из своего опыта скажу: это как нажать на кнопку на микроволновке, и еда сама разогреется. Слишком легко. Как только я отдала результат человеку с реальным техническим опытом, щели в моем творении начали вылезать со всех сторон.&lt;/p&gt;
  &lt;p id=&quot;tQBQ&quot;&gt;В умелых руках это мощный инструмент. В моих — как фильтр AI в TikTok, который делает тебя похожей на персонаж из какого-нибудь аниме. Забавно выложить, но по сути — ничего стоящего.&lt;/p&gt;
  &lt;h2 id=&quot;%D0%BA%D0%B0%D0%BA-%D1%8F-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D0%BB%D0%B0-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%BE-%D0%BF%D0%BB%D0%BE%D1%85%D0%B8%D0%B5-%D1%82%D1%83%D0%B0%D0%BB%D0%B5%D1%82%D1%8B&quot;&gt;Как я создавала приложение про плохие туалеты&lt;/h2&gt;
  &lt;p id=&quot;TQeH&quot;&gt;Участвовала я в хакатоне Bolt, совместно с Reddit. Задача была простой: создать что-нибудь смешное, иррелевантное и вообще бесполезное. Я от таких идей не отказываюсь.&lt;/p&gt;
  &lt;p id=&quot;lrSI&quot;&gt;&amp;quot;Вроде Яндекс.Карт, но только про плохие туалеты в мире,&amp;quot; — сказала я маме. &amp;quot;А кем ты работаешь, в конце концов?&amp;quot; — спросила она в ответ.&lt;/p&gt;
  &lt;p id=&quot;x2y8&quot;&gt;Процесс обещал быть легким. Для кого-то, кто не знает, где на компьютере лежит терминал, это оказалось не очень. Организаторы обещали, что за минуту я запущу разработку. Они предоставили ресурсы, включая гайд Reddit Developer Quickstart. Я потратила кучу времени на этот гайд, ибо не понимала ни черта.&lt;/p&gt;
  &lt;p id=&quot;GC0d&quot;&gt;Официально приношу извинения службе поддержки Stack Overflow за попытку установить Node.js на рабочий ноутбук, хотя мне это было совершенно не нужно.&lt;/p&gt;
  &lt;p id=&quot;KzZk&quot;&gt;Когда я поняла, что Bolt сам всё вытянет, стало намного легче. И это действительно так — Bolt может создать простое приложение от А до Я чуть ли не автоматически. Нужно либо знать хотя бы основы кода, либо иметь четкие инструкции. Я попала во вторую категорию.&lt;/p&gt;
  &lt;p id=&quot;llN8&quot;&gt;Интерфейс Bolt красивый и интуитивный, с live-preview приложения сбоку. Ты можешь смотреть на код и редактировать строки вручную. Я же использовала простой текстовый ввод: &amp;quot;Создай приложение для Reddit — как Яндекс.Карты с рейтингами, но только для ужасных общественных туалетов&amp;quot;&lt;/p&gt;
  &lt;figure id=&quot;1yKG&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f2/8c/f28c3021-b0b0-46cd-ab85-a8de32690c1e.png&quot; width=&quot;1922&quot; /&gt;
    &lt;figcaption&gt;интерфейс bolt ai&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;oGTv&quot;&gt;AI сразу же принялся работать. Примерно за 10 минут основа была готова. Приложение запустилось в моём тестовом сабреддите, с глупым интерфейсом (там даже была эмодзи унитаза). Была форма для отзывов, рейтинг-скейл, страница с отзывами.&lt;/p&gt;
  &lt;figure id=&quot;q5zQ&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f0/3b/f03b4bcd-222d-4ebe-a9a2-1ff0a9532a2d.png&quot; width=&quot;1422&quot; /&gt;
    &lt;figcaption&gt;интерфейс моего приложения&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;wbOR&quot;&gt;Все работало в браузере. Почти.&lt;/p&gt;
  &lt;p id=&quot;ZOgG&quot;&gt;На самом деле — вообще не работало.&lt;/p&gt;
  &lt;p id=&quot;jFRv&quot;&gt;Сразу же начались ошибки. И в интерфейсе Bolt, и в самом приложении. Не мог загрузиться ни один отзыв. Красные сообщения об ошибках: &amp;quot;location services недоступны&amp;quot;, &amp;quot;не получается загрузить&amp;quot;. Хотя работы было проведено мало, я испытывала подавленность. Я сказала коллегам: &amp;quot;Приложение не работает.&amp;quot;&lt;/p&gt;
  &lt;figure id=&quot;IrMx&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b7/df/b7dfd4a9-1bc8-4fad-b232-1e9e20b8584a.png&quot; width=&quot;980&quot; /&gt;
    &lt;figcaption&gt;сразу начались проблемы&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;j9BB&quot;&gt;И начался адский час — 45 минут troubleshooting (процесс систематического поиска и устранения неисправностей, неполадок). AI указывал мне, где искать ошибки. Я просто копировала текст ошибки в чат, и Bolt сам разбирался. Правда, когда AI объяснял, что исправил (что-то про API endpoints на root level), я вообще ничего не понимала. Весь смысл опыта был в том, что я этого не должна понимать.&lt;/p&gt;
  &lt;figure id=&quot;MW7l&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5d/2e/5d2e911b-7ec9-4187-bc2b-ec6d7b386904.png&quot; width=&quot;1022&quot; /&gt;
    &lt;figcaption&gt;ai помогал мне с решением &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;JS0B&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5e/00/5e00d548-e22f-4978-b077-73ca16607881.png&quot; width=&quot;976&quot; /&gt;
    &lt;figcaption&gt;и давал конкретные рекомендации&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;%D0%BC%D0%BE%D0%B9-%D1%8D%D0%BF%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-fail-%D1%81-npm-run-dev&quot;&gt;Мой эпический fail с npm run dev&lt;/h3&gt;
  &lt;p id=&quot;aOIf&quot;&gt;Я даже не знала, что команда &lt;code&gt;npm run dev&lt;/code&gt; обновляет приложение в реальном времени. Я думала, что нужно каждый раз переписывать и переливать приложение, чтобы протестировать новую версию. Я представляла каждую версию как отдельный объект, а не развивающееся приложение. В итоге в моем тестовом сабреддите было 20 постов, прежде чем я получила рабочее приложение.&lt;/p&gt;
  &lt;p id=&quot;w2Ld&quot;&gt;Но Bolt был невероятно полезным. Я была потеряна, как в лесу, а он вытягивал меня за правильное направление. Он даже помогал менять интерфейс — я переделывала дизайн как графический дизайнер, которым я и являюсь.&lt;/p&gt;
  &lt;p id=&quot;0p4d&quot;&gt;В конце концов, что-то получилось работающее. С кавычками вокруг слова &amp;quot;я&amp;quot;. Bolt создал приложение, а я просто писала промпты и копировала ошибки. С каждой итерацией что-то новое начинало работать. Я добавила загрузку инфы, просмотр отзывов, красивые бейджи.&lt;/p&gt;
  &lt;p id=&quot;retm&quot;&gt;Но даже когда приложение работало — оно было хорошим?&lt;/p&gt;
  &lt;h2 id=&quot;%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E-%D1%81%D0%B2%D0%BE%D1%91-%D1%82%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BD%D0%B0-%D1%81%D1%83%D0%B4&quot;&gt;Отправляю своё творение на суд&lt;/h2&gt;
  &lt;figure id=&quot;A5Pb&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/89/8a/898a412e-e195-4fcb-97cb-3d71b6c5c861.png&quot; /&gt;
    &lt;figcaption&gt;выглядело это примерно так&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;2iiZ&quot;&gt;Я выполнила задачу хакатона: создала что-то смешное, иррелевантное и совершенно бесполезное. Коллеги с удовольствием начали заполнять его худшими туалетами.&lt;/p&gt;
  &lt;p id=&quot;MUWR&quot;&gt;Потом я встретилась с &lt;a href=&quot;https://stackoverflow.blog/author/rdonovan/&quot; target=&quot;_blank&quot;&gt;Ryan Donovan&lt;/a&gt; (известный блогер Stack Overflow) для ревью. И тут-то вскрылось, что это творение — полная катастрофа.&lt;/p&gt;
  &lt;p id=&quot;ahib&quot;&gt;Во-первых, он удивился, сколько технологий там работает для такого простого приложения. &amp;quot;Ты знаешь, что такое &lt;a href=&quot;https://stackoverflow.blog/2022/06/02/a-beginners-guide-to-json-the-data-format-for-the-internet/&quot; target=&quot;_blank&quot;&gt;JSON &lt;/a&gt;или Redis?&amp;quot; спросил он. &amp;quot;Нет,&amp;quot; ответила я честно.&lt;/p&gt;
  &lt;p id=&quot;fswj&quot;&gt;Райану даже не нужно было смотреть на код. Через инспектор браузера он сразу нашел проблемы. Главная: у приложения нет никаких защит. Любой может получить доступ ко всем данным. Это довольно серьёзно, но к этому вернемся позже.&lt;/p&gt;
  &lt;p id=&quot;HHOj&quot;&gt;Райан предложил выложить код на GitHub и получить фидбэк от сообщества. Но когда я поняла, как всё плохо, я испугалась публичного позора. Не то, чтобы я боялась критики (нечего тут критиковать), а просто ощущение дрожащего страха, как перед разбором домашки учителем.&lt;/p&gt;
  &lt;p id=&quot;JbSw&quot;&gt;К счастью, в Bay Area почти все мои друзья — разработчики. Я попросила их посмотреть. Трусливый ход, конечно, потому что они знали про vibe-coding и были деликатны.&lt;/p&gt;
  &lt;h3 id=&quot;%D1%84%D0%B8%D0%B4%D0%B1%D1%8D%D0%BA-%D0%BE%D1%82-%D0%B4%D1%80%D1%83%D0%B7%D0%B5%D0%B9-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%BE%D0%B2&quot;&gt;Фидбэк от друзей-программистов&lt;/h3&gt;
  &lt;p id=&quot;r6o0&quot;&gt;&lt;strong&gt;Главное:&lt;/strong&gt; код — полная свалка, невозможно разобрать.&lt;/p&gt;
  &lt;p id=&quot;YeKJ&quot;&gt;Я специально давала мало контекста, надеясь, что файл &lt;code&gt;README.md&lt;/code&gt;, который создал Bolt, всё объяснит. Но структура вышла паршивая — я же никогда не работала с GitHub.&lt;/p&gt;
  &lt;p id=&quot;tgg6&quot;&gt;&amp;quot;У тебя хороший &lt;code&gt;README&lt;/code&gt;, но почему-то все спрятано в папке &lt;code&gt;./project&lt;/code&gt;. Почему бы не выложить на верхний уровень?&amp;quot; — написал один мой знакомый из Palo Alto.&lt;/p&gt;
  &lt;p id=&quot;khmc&quot;&gt;Другой: &amp;quot;Весь стайлинг инлайнирован в tsx-компоненты. Это делает всё запутанным и нечитаемым.&amp;quot;&lt;/p&gt;
  &lt;p id=&quot;EH8t&quot;&gt;Третья добавила: &amp;quot;There are no unit tests.&amp;quot; (Нет &lt;a href=&quot;https://stackoverflow.blog/2022/07/04/how-stack-overflow-is-leveling-up-its-unit-testing-game/&quot; target=&quot;_blank&quot;&gt;юнит-тестов&lt;/a&gt;.)&lt;/p&gt;
  &lt;p id=&quot;6HS6&quot;&gt;Я поняла, что она не может даже проверить, имеют ли смысл мои компоненты.&lt;/p&gt;
  &lt;h2 id=&quot;%D0%BD%D0%B5%D0%BD%D0%B0%D1%80%D1%83%D1%88%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D0%BE%D0%B1%D0%B5%D1%89%D0%B0%D0%BD%D0%B8%D0%B5&quot;&gt;Ненарушенное обещание&lt;/h2&gt;
  &lt;p id=&quot;qYvf&quot;&gt;Вот в чём главный разрыв: между vibe-coding и реальной разработкой. Моё приложение было экспериментом, так что плохой код не страшен. Но это точно не должно рекламироваться, как инструмент для поднятия производительности, мост для нетехнических людей и (со временем) замена junior-разработчикам.&lt;/p&gt;
  &lt;p id=&quot;EAo0&quot;&gt;Да, я могу взять фидбэк от друзей и влепить их советы в промпт. Один из них порекомендовал добавить описательные имена классов. Bolt сделал это за секунду — и понимал даже, &lt;em&gt;почему&lt;/em&gt; это нужно, хотя я и не знала.&lt;/p&gt;
  &lt;p id=&quot;rW40&quot;&gt;Но что если у меня нет друзей-разработчиков? Что если это не хобби-проект, а реальная работа или идея, которую хочу монетизировать?&lt;/p&gt;
  &lt;p id=&quot;Hjki&quot;&gt;Мой код превратился бы в проблему. Да, приложение работает, но действительно ли оно &lt;em&gt;хорошее&lt;/em&gt;? На реальном проекте после меня пришлось бы приходить разработчику и переписывать всё, чтобы будущие коллеги не потерялись в хаосе. Это называется &amp;quot;&lt;a href=&quot;https://venturebeat.com/ai/stack-overflow-data-reveals-the-hidden-productivity-tax-of-almost-right-ai-code/&quot; target=&quot;_blank&quot;&gt;productivity tax&lt;/a&gt;&amp;quot; — главная боль программистов от AI-инструментов, которые выдают код, почти (но не совсем) правильный. По опросам Stack Overflow, 66% разработчиков сталкиваются с этой проблемой.&lt;/p&gt;
  &lt;h3 id=&quot;%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C--%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D1%8B%D0%B9-%D0%BA%D1%80%D0%B0%D1%81%D0%BD%D1%8B%D0%B9-%D1%84%D0%BB%D0%B0%D0%B3&quot;&gt;Безопасность — главный красный флаг&lt;/h3&gt;
  &lt;p id=&quot;glJg&quot;&gt;Но есть проблема ещё серьёзнее: безопасность. Помните, что Райан сказал про отсутствие защиты? На моём глупом приложении про туалеты — неважно, никаких ценных данных там нет.&lt;/p&gt;
  &lt;p id=&quot;z7kA&quot;&gt;Но вот представьте: инструменты обещают результаты без опыта разработки. Будут люди без опыта, которые создадут свои пет-проекты на Bolt. И многие из них будут безобидными и будут работать хотя бы с фронтендом. Потом — запросят почтовый индекс, email, дату рождения, пароль. Вы, наверное, уже догадываетесь, к чему я клоню?&lt;/p&gt;
  &lt;p id=&quot;QgDH&quot;&gt;Конечно, на продакшене обычно приходит разработчик и проверяет перед запуском. Но что с любительскими проектами? Я легко представляю, как кто-то создаст что-то для близких с персональными данными — и это попадет в руки мошенников&lt;/p&gt;
  &lt;h2 id=&quot;%D0%B8%D0%BB%D0%B8-%D0%B2%D1%81%D1%91-%D0%BD%D0%B5-%D1%82%D0%B0%D0%BA-%D0%BF%D0%BB%D0%BE%D1%85%D0%BE&quot;&gt;Или всё не так плохо?&lt;/h2&gt;
  &lt;p id=&quot;nadP&quot;&gt;Был ли мой результат достаточно хорош для моих целей? Да. Могла ли я с помощью друзей-разработчиков исправить безопасность и организацию без единой команды терминала? Да, точно.&lt;/p&gt;
  &lt;p id=&quot;ltEe&quot;&gt;Но для технологии, которая обещает сделать junior-разработчиков ненужными, мне потребовалась помощь моих друзей — все они... junior-разработчики.&lt;/p&gt;
  &lt;h2 id=&quot;%D0%B4%D1%80%D1%83%D0%B3%D0%B0%D1%8F-%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F-%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-vibe-coding-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82&quot;&gt;Другая история: когда vibe-coding работает&lt;/h2&gt;
  &lt;p id=&quot;GM49&quot;&gt;Мой лучший друг — доктор физики Стэнфорда. Хотел остаться в науке, но в академии зарплаты нищие, а мест нет. Он решил кардинально переквалифицироваться и учиться кодить с нуля за пять лет.&lt;/p&gt;
  &lt;p id=&quot;irEk&quot;&gt;Он сказал, что LLM&amp;#x27;ы дали ему буст в обучении в 10 раз. Стал использовать CoPilot, Gemini, ChatGPT как личного репетитора — когда не мог найти баг, AI объяснял. И потом, когда встречалась похожая проблема, он уже знал решение.&lt;/p&gt;
  &lt;p id=&quot;6Z4N&quot;&gt;&lt;strong&gt;Вот это — реальная ситуация, когда vibe-coding может помочь:&lt;/strong&gt; учиться кодить без соответствующего образования. Мой друг... не скажешь, что он не умен для программирования. Просто у него не было опыта. И возвращаться в институт на ещё пять лет после Стэнфорда было немыслимо. Vibe-coding дал ему поддержку и знания, чтобы учиться самому.&lt;/p&gt;
  &lt;h2 id=&quot;%D0%B8%D1%82%D0%BE%D0%B3-%D0%B2%D1%81%D1%91-%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D1%82-%D0%BE%D1%82-%D1%82%D0%BE%D0%B3%D0%BE-%D0%BA%D0%B0%D0%BA-%D1%82%D1%8B-%D1%8D%D1%82%D0%BE-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D0%B5%D1%88%D1%8C&quot;&gt;Итог: всё зависит от того, как ты это используешь&lt;/h2&gt;
  &lt;figure id=&quot;yGt5&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ea/0d/ea0dc02a-8c98-47ac-9b87-e9bac415ce83.png&quot; width=&quot;1344&quot; /&gt;
    &lt;figcaption&gt;всё зависит от использования&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;1wVW&quot;&gt;Как и в любом инструменте — всё зависит от использования.&lt;/p&gt;
  &lt;p id=&quot;BaVA&quot;&gt;Я хочу, чтобы мой опыт вайб-коддинга стал первым шагом в обучении кодированию. Поэтому я выложила свой проект на &lt;a href=&quot;https://github.com/bunnywapen/dont-go-in-there&quot; target=&quot;_blank&quot;&gt;GitHub &lt;/a&gt;и прошу фидбэк, критику и советы.&lt;/p&gt;
  &lt;p id=&quot;j46F&quot;&gt;Помогите мне перестать быть худшим программистом в мире.&lt;/p&gt;
  &lt;h2 id=&quot;%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D1%8B%D0%B5-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%BE%D1%8F%D0%B7%D1%8B%D1%87%D0%BD%D0%BE%D0%B9-%D0%B0%D1%83%D0%B4%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B8&quot;&gt;Главные выводы из статьи&lt;/h2&gt;
  &lt;h3 id=&quot;%D0%B4%D0%BB%D1%8F-qa-%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%BE%D0%B2-%D0%B8-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D1%89%D0%B8%D0%BA%D0%BE%D0%B2&quot;&gt;Для QA-специалистов и тестировщиков&lt;/h3&gt;
  &lt;p id=&quot;ItGo&quot;&gt;Vibe-coding создает новый вид приложений, которые нужно ОБЯЗАТЕЛЬНО тестировать:&lt;/p&gt;
  &lt;ul id=&quot;w1Bw&quot;&gt;
    &lt;li id=&quot;7KOh&quot;&gt;&lt;strong&gt;Код не следует каким-либо лучшим практикам &lt;/strong&gt;— нужны более строгие тесты&lt;/li&gt;
    &lt;li id=&quot;aVHI&quot;&gt;&lt;strong&gt;Безопасность не встроена&lt;/strong&gt; — тестирование безопасности становится нужным с самого начала&lt;/li&gt;
    &lt;li id=&quot;3dM4&quot;&gt;&lt;strong&gt;НЕТ ДОКУМЕНТАЦИИ&lt;/strong&gt; — нужно самому разбираться в логике через UI и инспектор&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%BE%D0%B2&quot;&gt;Для начинающих разработчиков&lt;/h3&gt;
  &lt;p id=&quot;AL54&quot;&gt;Это не замена классическому обучению, но отличная поддержка:&lt;/p&gt;
  &lt;ul id=&quot;8jtl&quot;&gt;
    &lt;li id=&quot;pdGG&quot;&gt;Учитесь кодить с AI как с репетитором&lt;/li&gt;
    &lt;li id=&quot;pS4a&quot;&gt;Создавайте свои проекты, а потом просите разработчиков на ревью&lt;/li&gt;
    &lt;li id=&quot;fBSk&quot;&gt;Понимайте, почему код так написан — не просто копируйте&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;%D0%B4%D0%BB%D1%8F-%D1%81%D1%82%D0%B0%D1%80%D1%82%D0%B0%D0%BF%D0%BE%D0%B2-%D0%B8-%D0%BC%D0%B0%D0%BB%D1%8B%D1%85-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4&quot;&gt;Для стартапов и малых команд&lt;/h3&gt;
  &lt;p id=&quot;6TAc&quot;&gt;Будьте осторожны:&lt;/p&gt;
  &lt;ul id=&quot;VfXe&quot;&gt;
    &lt;li id=&quot;CaZk&quot;&gt;Код на &amp;quot;ВАЙБЕ&amp;quot; требует дополнительного QA и ревью безопасности&lt;/li&gt;
    &lt;li id=&quot;pyet&quot;&gt;Не выпускайте такой код в продакшен без опытного программиста&lt;/li&gt;
  &lt;/ul&gt;

</content></entry><entry><id>lets_load:garbage_collect</id><link rel="alternate" type="text/html" href="https://teletype.in/@lets_load/garbage_collect?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lets_load"></link><title>Сборщик мусора</title><published>2025-05-15T05:43:23.781Z</published><updated>2025-05-15T05:43:23.781Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/7f/90/7f90c591-1c83-43c6-bd02-ba55f0d64150.png"></media:thumbnail><category term="tehnologii" label="Технологии"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/ab/90/ab90e053-61a0-48b1-8042-df92ad85f104.png&quot;&gt;Если вы начинаете разбираться с производительностью приложений, особенно в Java или .NET, вы рано или поздно столкнётесь с понятием «сборщик мусора». Эта статья поможет вам понять, что это за механизм, как он работает и почему важно учитывать его поведение при нагрузочном тестировании.</summary><content type="html">
  &lt;figure id=&quot;SSc5&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ab/90/ab90e053-61a0-48b1-8042-df92ad85f104.png&quot; width=&quot;1024&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;zjHC&quot;&gt;Что такое сборщик мусора и зачем он нужен тестировщику&lt;/h2&gt;
  &lt;p id=&quot;pogy&quot;&gt;Если вы начинаете разбираться с производительностью приложений, особенно в Java или .NET, вы рано или поздно столкнётесь с понятием «сборщик мусора». Эта статья поможет вам понять, что это за механизм, как он работает и почему важно учитывать его поведение при нагрузочном тестировании.&lt;/p&gt;
  &lt;h2 id=&quot;uPNL&quot;&gt;Немного истории: от ручного управления к автоматике&lt;/h2&gt;
  &lt;p id=&quot;gKFR&quot;&gt;Ранние языки программирования, такие как C и C++, требовали от разработчика вручную управлять памятью: выделять её под нужды программы и освобождать, когда она больше не нужна. Ошибки в этом процессе — забытые освобождённые участки памяти (утечки) или повторное освобождение уже освобождённого блока — приводили к сбоям, нестабильности и уязвимостям.&lt;/p&gt;
  &lt;p id=&quot;8CO8&quot;&gt;С появлением более высокоуровневых языков, таких как Java и C#, появилась автоматическая сборка мусора (Garbage Collection, далее по тексту - &lt;strong&gt;GC&lt;/strong&gt;). Задача сборщика — автоматически находить и удалять объекты, которые больше не используются программой, тем самым освобождая память.&lt;/p&gt;
  &lt;h2 id=&quot;7Rfx&quot;&gt;Как работает сборщик мусора&lt;/h2&gt;
  &lt;p id=&quot;1gbq&quot;&gt;Сборщик мусора анализирует память, чтобы понять, какие объекты всё ещё «живы» — то есть на которые есть ссылки в коде — а какие можно удалить. В зависимости от реализации, этот процесс может быть:&lt;/p&gt;
  &lt;ul id=&quot;ZJvn&quot;&gt;
    &lt;li id=&quot;55rx&quot;&gt;&lt;strong&gt;Параллельным&lt;/strong&gt; — GC работает вместе с приложением&lt;/li&gt;
    &lt;li id=&quot;H8qY&quot;&gt;&lt;strong&gt;Стоп-мир (stop-the-world)&lt;/strong&gt; — приложение приостанавливается, пока работает GC&lt;/li&gt;
    &lt;li id=&quot;MbMC&quot;&gt;&lt;strong&gt;Инкрементальным&lt;/strong&gt; — память очищается частями, небольшими порциями&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;HhQs&quot;&gt;Также во многих современных реализациях используется &lt;strong&gt;сборка мусора по поколениям&lt;/strong&gt; (generational garbage collection). Этот подход основывается на наблюдении, что:&lt;/p&gt;
  &lt;ul id=&quot;kjul&quot;&gt;
    &lt;li id=&quot;jSGH&quot;&gt;большинство объектов «умирает» быстро&lt;/li&gt;
    &lt;li id=&quot;VXIv&quot;&gt;объекты, которые пережили несколько сборок, скорее всего будут использоваться долго&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;yScz&quot;&gt;В таком случае память делится на поколения:&lt;/p&gt;
  &lt;ul id=&quot;bcio&quot;&gt;
    &lt;li id=&quot;S39T&quot;&gt;&lt;strong&gt;Young Generation&lt;/strong&gt; — для новых объектов. Здесь сборки происходят часто, но быстро (Minor GC)&lt;/li&gt;
    &lt;li id=&quot;2Ouv&quot;&gt;&lt;strong&gt;Old Generation (Tenured)&lt;/strong&gt; — для «долгоживущих» объектов. Здесь сборки редкие, но тяжёлые (Major GC)&lt;/li&gt;
    &lt;li id=&quot;CRXi&quot;&gt;&lt;strong&gt;Permanent/Metaspace&lt;/strong&gt; — область для хранения метаинформации классов (в JVM)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;8iaX&quot;&gt;Такой подход снижает частоту и длительность полной сборки мусора.&lt;/p&gt;
  &lt;h3 id=&quot;0qlZ&quot;&gt;Виды управления памятью: ручное и автоматическое&lt;/h3&gt;
  &lt;p id=&quot;dfnd&quot;&gt;При ручном управлении разработчик обязан следить за тем, чтобы после использования объекта память была корректно освобождена. Это даёт гибкость и контроль, но требует высокой дисциплины и приводит к большому числу ошибок.&lt;/p&gt;
  &lt;p id=&quot;GjHC&quot;&gt;Пример: &lt;strong&gt;C, C++&lt;/strong&gt; — программист сам вызывает команды управления памятью. Ошибки ведут к утечкам памяти, двойному освобождению и крахам приложений.&lt;/p&gt;
  &lt;p id=&quot;guai&quot;&gt;При автоматическом управлении памятью (например, в Java, Python, Go) эти задачи берёт на себя среда выполнения. Сборщик мусора решает, какие объекты больше не нужны и может освободить занимаемую ими память. Такие языки сами управляют памятью — программисту не нужно вручную её освобождать. Это упрощает работу и снижает шанс ошибок, хотя может повлиять на производительность.&lt;/p&gt;
  &lt;ul id=&quot;6r93&quot;&gt;
    &lt;li id=&quot;Y6yi&quot;&gt;&lt;strong&gt;Java (JVM)&lt;/strong&gt; — использует продвинутый сборщик мусора с делением памяти на поколения. Есть гибкие настройки и выбор алгоритма под тип нагрузки (например, G1GC, ZGC).&lt;/li&gt;
    &lt;li id=&quot;4HDw&quot;&gt;&lt;strong&gt;Python&lt;/strong&gt; — работает по принципу подсчёта ссылок и запускает отдельный сборщик, чтобы убирать циклические ссылки. Можно вызывать GC вручную через модуль &lt;code&gt;gc&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;PmL1&quot;&gt;&lt;strong&gt;C# (.NET)&lt;/strong&gt; — тоже делит память на поколения. Работает &amp;quot;из коробки&amp;quot; без сложной настройки и подходит для большинства задач.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;4Bwz&quot;&gt;Знание особенностей GC в каждом языке поможет избегать утечек памяти и добиться стабильной работы приложения.&lt;/p&gt;
  &lt;h2 id=&quot;5A3I&quot;&gt;Преимущества и недостатки сборщика мусора&lt;/h2&gt;
  &lt;p id=&quot;Ouyx&quot;&gt;Автоматическое управление памятью через сборщик мусора имеет как очевидные плюсы, так и важные ограничения. Особенно важно понимать это при работе с высоконагруженными системами.&lt;/p&gt;
  &lt;p id=&quot;PQpP&quot;&gt;&lt;strong&gt;Преимущества:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;HZPo&quot;&gt;
    &lt;li id=&quot;2zA0&quot;&gt;&lt;strong&gt;Упрощение разработки&lt;/strong&gt;: программисту не нужно вручную освобождать память, снижая риск ошибок.&lt;/li&gt;
    &lt;li id=&quot;agxE&quot;&gt;&lt;strong&gt;Защита от утечек памяти&lt;/strong&gt;: GC автоматически удаляет объекты, на которые больше нет ссылок.&lt;/li&gt;
    &lt;li id=&quot;Hi7E&quot;&gt;&lt;strong&gt;Повышение надёжности&lt;/strong&gt;: меньше сбоев, связанных с неправильной работой с памятью.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;o9aK&quot;&gt;&lt;strong&gt;Недостатки:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;DYot&quot;&gt;
    &lt;li id=&quot;Rqpm&quot;&gt;&lt;strong&gt;Паузы исполнения&lt;/strong&gt;: при некоторых алгоритмах приложение может «замереть» на время сборки.&lt;/li&gt;
    &lt;li id=&quot;0GCn&quot;&gt;&lt;strong&gt;Менее предсказуемое использование ресурсов&lt;/strong&gt;: сложнее контролировать точный момент освобождения памяти.&lt;/li&gt;
    &lt;li id=&quot;Zsh7&quot;&gt;&lt;strong&gt;Ресурсоёмкость&lt;/strong&gt;: сама работа GC требует CPU и может конкурировать за ресурсы с основным приложением.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;1ryy&quot;&gt;Правильный выбор и настройка GC позволяют минимизировать недостатки и использовать преимущества на полную.&lt;/p&gt;
  &lt;h2 id=&quot;qFdW&quot;&gt;Практические соображения для тестировщика&lt;/h2&gt;
  &lt;p id=&quot;F032&quot;&gt;Инженеры по тестированию часто сталкиваются с ситуациями, когда приложение «тормозит» или внезапно «подвисает». Часто причиной этого становится GC:&lt;/p&gt;
  &lt;ul id=&quot;F4v3&quot;&gt;
    &lt;li id=&quot;Mq0G&quot;&gt;&lt;strong&gt;Долгие паузы при сборке мусора&lt;/strong&gt; могут замедлить отклик системы&lt;/li&gt;
    &lt;li id=&quot;SuUP&quot;&gt;&lt;strong&gt;Частые сборки&lt;/strong&gt; могут сигнализировать о неправильной работе с памятью&lt;/li&gt;
    &lt;li id=&quot;EJFA&quot;&gt;&lt;strong&gt;Нарастающее использование памяти&lt;/strong&gt; может говорить об утечке&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;F4qD&quot;&gt;Вот что важно учитывать:&lt;/p&gt;
  &lt;ul id=&quot;Oqam&quot;&gt;
    &lt;li id=&quot;yn01&quot;&gt;&lt;strong&gt;Мониторинг GC&lt;/strong&gt;: с помощью инструментов вроде JVisualVM, Grafana, Prometheus, вы можете отслеживать количество и продолжительность сборок&lt;/li&gt;
    &lt;li id=&quot;OaZS&quot;&gt;&lt;strong&gt;Понимание логов&lt;/strong&gt;: GC оставляет сообщения в логах приложения. Умение читать их — ценное умение&lt;/li&gt;
    &lt;li id=&quot;pphe&quot;&gt;&lt;strong&gt;Выбор правильного сборщика&lt;/strong&gt;: в зависимости от типа нагрузки (пиковые запросы, фоновая обработка) может потребоваться настроить другой GC&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;j3p6&quot;&gt;&lt;/p&gt;
  &lt;blockquote id=&quot;ETX3&quot;&gt;Сборщик мусора — полезный инструмент, но не волшебная палочка. Чтобы он действительно помог, нужно понимать, как он работает, и правильно его настроить. Один и тот же GC может вести себя по-разному в зависимости от нагрузки. Поэтому важно подбирать стратегию под конкретное приложение, следить за его работой и не забывать, что даже автоматике иногда нужна помощь.&lt;/blockquote&gt;
  &lt;p id=&quot;w91Q&quot; data-align=&quot;right&quot;&gt;&lt;br /&gt;Источники &lt;a href=&quot;https://aerospike.com/blog/understanding-garbage-collection/&quot; target=&quot;_blank&quot;&gt;aerospike&lt;/a&gt; | &lt;a href=&quot;https://www.techtarget.com/searchstorage/definition/garbage-collection&quot; target=&quot;_blank&quot;&gt;techTarget &lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;FsfT&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;GvCB&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Cz4V&quot; data-align=&quot;center&quot;&gt;&lt;a href=&quot;https://t.me/lets_load&quot; target=&quot;_blank&quot;&gt;📢 Канал в телеграмм&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;9V6R&quot; data-align=&quot;center&quot;&gt;😊 &lt;a href=&quot;https://pay.cloudtips.ru/p/b8dae6a6&quot; target=&quot;_blank&quot;&gt;Для донатов&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>lets_load:pull_or_push_1</id><link rel="alternate" type="text/html" href="https://teletype.in/@lets_load/pull_or_push_1?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lets_load"></link><title>Pull или Push: какую систему мониторинга выбрать? (1 часть)</title><published>2025-02-18T22:09:29.162Z</published><updated>2025-02-18T22:10:35.491Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/2d/1b/2d1b5050-7641-4977-bce7-2b24247f3495.png"></media:thumbnail><category term="monitoring" label="Мониторинг"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/67/d3/67d3756a-0825-4c22-8bd8-838dd5305057.png&quot;&gt;В этой статье разбираемся в методах получения метрик: Pull или Push (1 часть)</summary><content type="html">
  &lt;figure id=&quot;0X7S&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/67/d3/67d3756a-0825-4c22-8bd8-838dd5305057.png&quot; width=&quot;1792&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;YAwv&quot;&gt;Типы систем мониторинга&lt;/h3&gt;
  &lt;p id=&quot;kxYq&quot;&gt;Мониторинг всегда был основным компонентом ИТ-систем. Он отвечает за обнаружение и помощь в локализации проблем. Разработчикам (и тестировщикам) необходимо обращать внимание на систему мониторинга и участвовать в ее построении и оптимизации. Сейчас существует более сотни систем мониторинга, которые состоят из:&lt;/p&gt;
  &lt;ul id=&quot;ydT0&quot;&gt;
    &lt;li id=&quot;Lwpb&quot;&gt;Объект мониторинга: &lt;/li&gt;
    &lt;ol id=&quot;O6LP&quot;&gt;
      &lt;li id=&quot;lUVu&quot;&gt;&lt;em&gt;Общий&lt;/em&gt; - общий метод мониторинга, подходит для большинства объектов мониторинга; &lt;/li&gt;
      &lt;li id=&quot;tWV9&quot;&gt;&lt;em&gt;Специализированный&lt;/em&gt; - настраивается под конкретную функцию, например, система Java JMX, защита от перегрева процессора, защита от сбоев питания жесткого диска и т.д.&lt;/li&gt;
    &lt;/ol&gt;
    &lt;li id=&quot;U3Bo&quot;&gt;Метод сбора данных: &lt;/li&gt;
    &lt;ol id=&quot;Iw9e&quot;&gt;
      &lt;li id=&quot;XlFH&quot;&gt;&lt;em&gt;Push&lt;/em&gt; (CollectD, Zabbix и InfluxDB) - агенты сами пишут в базу данных;&lt;/li&gt;
      &lt;li id=&quot;66Hc&quot;&gt;&lt;em&gt;Pull&lt;/em&gt; (Prometheus, SNMP и JMX) - система мониторинга собирает с каждого агента информацию&lt;/li&gt;
    &lt;/ol&gt;
    &lt;li id=&quot;T6Rd&quot;&gt;Режим развертывания: &lt;/li&gt;
    &lt;ol id=&quot;vdDN&quot;&gt;
      &lt;li id=&quot;Bncd&quot;&gt;&lt;em&gt;Coupled (связанный режим)&lt;/em&gt; -  мониторинговая система развертывается вместе с основным ПО; &lt;/li&gt;
      &lt;li id=&quot;cIqe&quot;&gt;&lt;em&gt;Standalone (автономный режим)&lt;/em&gt; - отдельное развертывание мониторинговой системы, которая работает независимо от других компонентов; &lt;/li&gt;
      &lt;li id=&quot;dM5u&quot;&gt;&lt;em&gt;Distributed (распределённый режим)&lt;/em&gt; - cистема мониторинга построена на распределённой архитектуре, что позволяет масштабировать её горизонтально; &lt;/li&gt;
      &lt;li id=&quot;uS0g&quot;&gt;&lt;em&gt;SaaS&lt;/em&gt; (&lt;em&gt;software as a service — программное обеспечение как услуга&lt;/em&gt;) - не требует развертывания, предоставляется сторонними компаниями. Не нужно разворачивать собственные инстанции — они просто используют готовое решение через облако&lt;/li&gt;
    &lt;/ol&gt;
    &lt;li id=&quot;9fhR&quot;&gt;Метод получения данных: &lt;/li&gt;
    &lt;ol id=&quot;ep8q&quot;&gt;
      &lt;li id=&quot;Tdqv&quot;&gt;&lt;em&gt;Тип интерфейса&lt;/em&gt; - данные можно получить только через API;&lt;/li&gt;
      &lt;li id=&quot;iRkv&quot;&gt;&lt;em&gt;DSL (Domain-Specific Language)&lt;/em&gt; -  использование специализированного языка запросов, разработанного для конкретной задачи, например PromQL и GraphQL; &lt;/li&gt;
      &lt;li id=&quot;eDmI&quot;&gt;&lt;em&gt;SQL&lt;/em&gt; - используется стандартный SQL или его вариации (SQL-like), чтобы запрашивать данные из баз данных&lt;/li&gt;
    &lt;/ol&gt;
    &lt;li id=&quot;XpS9&quot;&gt;Инструменты&lt;/li&gt;
    &lt;ol id=&quot;qGLR&quot;&gt;
      &lt;li id=&quot;57NT&quot;&gt;&lt;em&gt;Open-source и бесплатные&lt;/em&gt; - системы с открытым исходным кодом, которые можно использовать бесплатно (например, Prometheus и InfluxDB standalone edition); &lt;/li&gt;
      &lt;li id=&quot;RNOe&quot;&gt;&lt;em&gt;Коммерческие с открытым исходным кодом&lt;/em&gt; - эти системы имеют открытый исходный код, но их расширенные функции предоставляются на коммерческой основе (например, InfluxDB cluster edition, Elastic Search X-Pack); &lt;/li&gt;
      &lt;li id=&quot;PQHM&quot;&gt;&lt;em&gt;Коммерческие с закрытым исходным кодом&lt;/em&gt; - это полностью проприетарные (закрытые) системы, которые разрабатываются частными компаниями и доступны только на платной основе(например, DataDog, Splunk и AWS Cloud Watch).&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;73cV&quot;&gt;Pull или Push?&lt;/h2&gt;
  &lt;p id=&quot;QTtD&quot;&gt;Существует множество вариантов построения платформы системы мониторинга для внутреннего использования, будь то самостоятельная сборка с использованием решений с открытым исходным кодом или коммерческих SaaS-продуктов. Однако независимо от того, будет ли это решение с открытым исходным кодом или коммерческий SaaS-продукт, при реальном внедрении необходимо продумать, как передать данные платформе мониторинга или как платформа мониторинга может получить эти данные. Для этого нужно сделать выбор метода получения данных: Pull или Push.&lt;/p&gt;
  &lt;figure id=&quot;Q4TV&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/01/0c/010c011c-b811-4593-99e6-97fc192f95c9.png&quot; width=&quot;1050&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;gdNB&quot;&gt;Система мониторинга на основе Pull-модели, как следует из названия, активно запрашивает метрики у объектов мониторинга, которые должны обладать возможностью быть доступными удалённо. В отличие от неё, Push-модель мониторинга не запрашивает данные самостоятельно — объекты мониторинга сами отправляют метрики в систему. &lt;/p&gt;
  &lt;p id=&quot;7FTX&quot;&gt;Эти два подхода имеют существенные различия в ряде аспектов. При разработке и выборе системы мониторинга важно заранее понимать преимущества и недостатки каждого из методов, чтобы выбрать наиболее подходящий вариант для реализации. В противном случае в будущем могут возникнуть значительные затраты на поддержку стабильности системы, её развертывание и эксплуатацию.&lt;/p&gt;
  &lt;p id=&quot;hIds&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;6iad&quot; data-align=&quot;right&quot;&gt;Источник &lt;a href=&quot;https://www.alibabacloud.com/blog/pull-or-push-how-to-select-monitoring-systems_599007&quot; target=&quot;_blank&quot;&gt;alibabacloud&lt;/a&gt; |&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Cz4V&quot; data-align=&quot;center&quot;&gt;&lt;a href=&quot;https://t.me/lets_load&quot; target=&quot;_blank&quot;&gt;📢 Канал в телеграмм&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;9V6R&quot; data-align=&quot;center&quot;&gt;😊 &lt;a href=&quot;https://pay.cloudtips.ru/p/b8dae6a6&quot; target=&quot;_blank&quot;&gt;Для донатов&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>lets_load:mobaxterm_default_text_editor</id><link rel="alternate" type="text/html" href="https://teletype.in/@lets_load/mobaxterm_default_text_editor?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lets_load"></link><title>MobaXterm - смена текстового редактора по умолчанию</title><published>2025-02-12T22:26:08.156Z</published><updated>2025-02-12T22:26:53.411Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/07/9f/079f6837-a580-4520-94da-38b467a334c5.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/6a/37/6a370268-b5cd-444c-bbfd-01cf4295db86.png&quot;&gt;В этой статье рассмотрим, как в MobaXterm поменять текстовый редактор по умолчанию</summary><content type="html">
  &lt;h3 id=&quot;NY8y&quot;&gt;Проблема&lt;/h3&gt;
  &lt;p id=&quot;oaOe&quot;&gt;Если вы открывали какие-либо файлы в интерфейсе MobaXterm, то могли обратить внимание, что их текстовый редактор, установленный по умолчанию (&lt;em&gt;MobaTextEditor&lt;/em&gt;), не может похвастаться большим функционалом и удобством использования&lt;/p&gt;
  &lt;figure id=&quot;FJMD&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6a/37/6a370268-b5cd-444c-bbfd-01cf4295db86.png&quot; width=&quot;638&quot; /&gt;
    &lt;figcaption&gt;Еще помните о существовании мема с Дрейком?&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;YfcZ&quot;&gt;Решение №1 (не самое удачное 🤷‍♂️) &lt;/h3&gt;
  &lt;p id=&quot;RUXu&quot;&gt;Возможно, в такой ситуации вы пробовали открывать файлы в удобном для вас редакторе с помощью нажатия ПКМ -&amp;gt; &amp;quot;Open with...&amp;quot;&lt;/p&gt;
  &lt;figure id=&quot;1wlY&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/cb/c8/cbc8707a-b24d-4c39-a8a3-62461c320bff.png&quot; width=&quot;489&quot; /&gt;
    &lt;figcaption&gt;ПКМ -&amp;gt; &amp;quot;Open with...&amp;quot;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;DoBO&quot;&gt;...спустя какое-то количество таких постоянных нажатий, вам захочется уволиться... или найти другой способ открывать файлы &lt;/p&gt;
  &lt;h3 id=&quot;X7OK&quot;&gt;Решение №2 (имба 💪)&lt;/h3&gt;
  &lt;p id=&quot;OaJF&quot;&gt;Создатели MobaXterm осознавали, что пользователи будут испытывать боль при использовании их редактора, поэтому дали возможность изменять его на любой другой:&lt;/p&gt;
  &lt;ul id=&quot;XOZl&quot;&gt;
    &lt;li id=&quot;pX89&quot;&gt;Открываете &amp;quot;Settings&amp;quot;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;BjzP&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/01/c4/01c41e49-95aa-494d-b3e4-be9dbff89d2d.png&quot; width=&quot;725&quot; /&gt;
    &lt;figcaption&gt;&amp;quot;Settings&amp;quot;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;ul id=&quot;75CM&quot;&gt;
    &lt;li id=&quot;g2ih&quot;&gt;Далее кликаете на иконку указания пути до выбранного вами редактора &lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;n2FQ&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/65/0d/650d793b-a9bf-41a9-bee7-25b23721406e.png&quot; width=&quot;822&quot; /&gt;
    &lt;figcaption&gt;set default text editor program&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;ul id=&quot;T875&quot;&gt;
    &lt;li id=&quot;1bSq&quot;&gt;Выбираете нужный редактор &lt;/li&gt;
  &lt;/ul&gt;
  &lt;section style=&quot;background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;RCw2&quot;&gt;Рекомендую использовать &lt;a href=&quot;https://code.visualstudio.com/&quot; target=&quot;_blank&quot;&gt;Visual Studio Code&lt;/a&gt;, он работает практически со всеми расширениями файлов. Обычно он находится по пути:&lt;/p&gt;
    &lt;p id=&quot;fAe5&quot;&gt;&lt;code&gt;C:\Users\&amp;lt;ypur_user&amp;gt;\AppData\Local\Programs\Microsoft VS Code\Code.exe&lt;/code&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;A9W9&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;p6ch&quot;&gt;Теперь файлы будут открываться в выбранном вами текстовом редакторе&lt;/p&gt;
  &lt;figure id=&quot;6tXp&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/46/47/4647d674-fbb7-45bb-badb-d23b6276c05c.png&quot; width=&quot;879&quot; /&gt;
    &lt;figcaption&gt;Это вторая часть мема с Дрейком&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;t0kL&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;ZMiY&quot;&gt;Ну красота же?)&lt;/h3&gt;
  &lt;p id=&quot;8Ier&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;6iad&quot; data-align=&quot;right&quot;&gt;&lt;em&gt;Источник статьи: мой опыт работы 😁&lt;/em&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Cz4V&quot; data-align=&quot;center&quot;&gt;&lt;a href=&quot;https://t.me/lets_load&quot; target=&quot;_blank&quot;&gt;📢 Канал в телеграмм&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;9V6R&quot; data-align=&quot;center&quot;&gt;😊 &lt;a href=&quot;https://pay.cloudtips.ru/p/b8dae6a6&quot; target=&quot;_blank&quot;&gt;Для донатов&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>lets_load:methods_for_collect_metrics</id><link rel="alternate" type="text/html" href="https://teletype.in/@lets_load/methods_for_collect_metrics?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lets_load"></link><title>USE vs RED vs LTES: Какой метод выбрать для диагностики системы?</title><published>2025-02-08T23:39:06.905Z</published><updated>2025-02-08T23:41:52.362Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/56/35/563574eb-be13-4ad2-a17b-ff95e17f40d7.png"></media:thumbnail><category term="monitoring" label="Мониторинг"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/4a/f0/4af0e4fd-9deb-4af1-b43c-b30f1ca07ab3.png&quot;&gt;В этой статье я расскажу о том, какие метрики наиболее полезно собирать для приложений и сервисов.</summary><content type="html">
  &lt;figure id=&quot;N6fF&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4a/f0/4af0e4fd-9deb-4af1-b43c-b30f1ca07ab3.png&quot; width=&quot;1024&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;Olgm&quot;&gt;Введение &lt;/h3&gt;
  &lt;p id=&quot;ZLrq&quot;&gt;В этой статье я расскажу о том, какие метрики наиболее полезно собирать для приложений и сервисов.&lt;/p&gt;
  &lt;h3 id=&quot;TEwe&quot;&gt;Начало работы&lt;/h3&gt;
  &lt;p id=&quot;varK&quot;&gt;Допустим, вы развернули сервис на своей платформе и решили добавить для него мониторинг.&lt;/p&gt;
  &lt;h3 id=&quot;FtSF&quot;&gt;С чего начать?&lt;/h3&gt;
  &lt;p id=&quot;COjY&quot;&gt;&lt;strong&gt;Во-первых&lt;/strong&gt;, необходимо выяснить, какой именно набор метрик вы хотите снимать.&lt;/p&gt;
  &lt;p id=&quot;TLjo&quot;&gt;Этот набор не всегда будет одинаковым для всех приложений.&lt;/p&gt;
  &lt;p id=&quot;amOK&quot;&gt;Часто бывает нелегко понять, что именно нужно отслеживать, и в таких случаях всегда можно собрать все метрики и выяснить, что из них полезно.&lt;/p&gt;
  &lt;p id=&quot;AtIS&quot;&gt;Чтобы немного сузить круг поиска, мы можем обратиться к методам &lt;strong&gt;RED &lt;/strong&gt;и &lt;strong&gt;USE&lt;/strong&gt;.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;5WVm&quot;&gt;Методы RED / USE&lt;/h3&gt;
  &lt;p id=&quot;09aa&quot;&gt;Вы наверняка слышали о методах RED и USE.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;QC1H&quot;&gt;USE&lt;/h3&gt;
  &lt;p id=&quot;Igrh&quot;&gt;USE - это аббревиатура от &lt;a href=&quot;http://www.brendangregg.com/usemethod.html&quot; target=&quot;_blank&quot;&gt;Utilization, Saturation и Errors&lt;/a&gt;. В &lt;a href=&quot;https://www.brendangregg.com/usemethod.html&quot; target=&quot;_blank&quot;&gt;статье &lt;/a&gt;Брендан Грегг пишет, что &lt;/p&gt;
  &lt;blockquote id=&quot;7z8t&quot;&gt;&amp;quot;USE - это методология анализа производительности любой системы&amp;quot; и что с помощью этого метода можно решить около 80% проблем сервера, затратив 5% усилий.Вы начинаете с создания чек-листа для анализа сервера, который может быть использован для быстрого выявления узких мест или ошибок. Затем вы начинаете задавать вопросы и искать на них ответы. &lt;/blockquote&gt;
  &lt;p id=&quot;5Ev7&quot;&gt;Он сравнивает его с аварийным контрольным списком в руководстве по летной эксплуатации: он должен быть простым, понятным, полным и быстрым.&lt;/p&gt;
  &lt;p id=&quot;Uj3y&quot;&gt;В основе метода USE лежат &lt;strong&gt;три типа метрик&lt;/strong&gt; и стратегия метода к комплексной системе.&lt;/p&gt;
  &lt;p id=&quot;NF4p&quot;&gt;Брендан Грегг кратко описал метод USE следующим образом:&lt;/p&gt;
  &lt;blockquote id=&quot;Iemg&quot;&gt;&lt;strong&gt;Для каждого ресурса проверьте использование, насыщенность и ошибки&lt;/strong&gt;.&lt;/blockquote&gt;
  &lt;p id=&quot;tlPY&quot;&gt;где:&lt;/p&gt;
  &lt;ul id=&quot;pLNf&quot;&gt;
    &lt;li id=&quot;BjA9&quot;&gt;&lt;strong&gt;Utilization &lt;/strong&gt;(использование&lt;strong&gt; - &lt;/strong&gt;процент времени, в течение которого ресурс был занят).&lt;/li&gt;
    &lt;li id=&quot;LCTZ&quot;&gt;&lt;strong&gt;Saturation &lt;/strong&gt;(насыщенность - количество работы, которую должен выполнить ресурс).&lt;/li&gt;
    &lt;li id=&quot;1Mj3&quot;&gt;&lt;strong&gt;Errors &lt;/strong&gt;(количество ошибок во время выполнения работы)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;0Ymn&quot;&gt;Метод USE предназначен для использования на ранних этапах исследования производительности, чтобы выявить системные узкие места.&lt;/p&gt;
  &lt;p id=&quot;OrBf&quot;&gt;О методе USE можно прочитать &lt;a href=&quot;https://www.brendangregg.com/usemethod.html&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;zexy&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;c7a2&quot;&gt;RED&lt;/h3&gt;
  &lt;p id=&quot;r3Q9&quot;&gt;В 2015 году Том Уилки из Grafana рассказал о &lt;a href=&quot;https://grafana.com/blog/2018/08/02/the-red-method-how-to-instrument-your-services/&quot; target=&quot;_blank&quot;&gt;методе RED для мониторинга микросервисов&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;12Yp&quot;&gt;В этом выступлении Том Уилки сказал:&lt;/p&gt;
  &lt;blockquote id=&quot;TQOu&quot;&gt;«Метод USE не совсем применим к сервисам; он применим к аппаратному обеспечению, сетевым дискам и тому подобным вещам. Нам очень нужна была философия мониторинга, ориентированная на микросервисы, поэтому мы придумали метод RED».&lt;/blockquote&gt;
  &lt;p id=&quot;ypIG&quot;&gt;Вместо того чтобы отслеживать каждый ресурс на предмет использования, насыщенности и ошибок, Том предлагает следующее:&lt;/p&gt;
  &lt;p id=&quot;lwWR&quot;&gt;&lt;strong&gt;Для каждого ресурса отслеживайте:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;42fi&quot;&gt;
    &lt;li id=&quot;bj0w&quot;&gt;Rate (скорость - количество запросов в секунду, которые обслуживают ваши службы).&lt;/li&gt;
    &lt;li id=&quot;jpn9&quot;&gt;Errors (количество неудачных запросов в секунду - ошибок).&lt;/li&gt;
    &lt;li id=&quot;46lG&quot;&gt;Duration (длительность - время отклика ваших сервисов на каждый запрос).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;0nNW&quot;&gt;&lt;br /&gt;Используя метод RED, компании будут лучше понимать, насколько довольны клиенты&lt;/p&gt;
  &lt;blockquote id=&quot;UZgV&quot;&gt;Если у вас&lt;strong&gt; высокая частота ошибок&lt;/strong&gt;, это означает, что ваши пользователи получают ошибки при загрузке страницы.&lt;/blockquote&gt;
  &lt;blockquote id=&quot;4knL&quot;&gt;Если у вас &lt;strong&gt;высокое время отклика&lt;/strong&gt;, значит, ваш сайт работает медленно.&lt;/blockquote&gt;
  &lt;p id=&quot;OChz&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;nQoS&quot;&gt;LTES (или &amp;quot;Четыре золотых сигнала&amp;quot;)&lt;/h3&gt;
  &lt;p id=&quot;eW8X&quot;&gt;Подождите, есть еще один метод. Четыре «золотых сигнала» взяты из книги &lt;a href=&quot;https://sre.google/sre-book/monitoring-distributed-systems/#xref_monitoring_golden-signals&quot; target=&quot;_blank&quot;&gt;Google&amp;#x27;s SRE Book&lt;/a&gt;&lt;/p&gt;
  &lt;blockquote id=&quot;u1Yw&quot;&gt;Четыре золотых сигнала мониторинга - это &lt;strong&gt;задержка&lt;/strong&gt;, &lt;strong&gt;трафик&lt;/strong&gt;, &lt;strong&gt;ошибки &lt;/strong&gt;и &lt;strong&gt;насыщенность&lt;/strong&gt;. Если у вас есть возможность измерить только четыре метрики вашей системы, ориентированной на пользователя, сосредоточьтесь на этих четырех.&lt;/blockquote&gt;
  &lt;p id=&quot;YF6n&quot;&gt;Где:&lt;/p&gt;
  &lt;ul id=&quot;KY3R&quot;&gt;
    &lt;li id=&quot;j1eA&quot;&gt;&lt;strong&gt;Latency&lt;/strong&gt; (Задержка - время, необходимое для обслуживания запроса)&lt;/li&gt;
    &lt;li id=&quot;maWz&quot;&gt;&lt;strong&gt;Traffic &lt;/strong&gt;(Трафик - количество запросов к вашей системе)&lt;/li&gt;
    &lt;li id=&quot;wizS&quot;&gt;&lt;strong&gt;Errors &lt;/strong&gt;(Ошибки - количество запросов, которые не выполняются)&lt;/li&gt;
    &lt;li id=&quot;BTQc&quot;&gt;&lt;strong&gt;Saturation &lt;/strong&gt;(Насыщение &lt;strong&gt;- &lt;/strong&gt;насколько «переполнен» ваш сервис).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;cw6i&quot;&gt;Единственное отличие этого метода от метода RED заключается в том, что он включает в себя &lt;strong&gt;насыщение (Saturation )&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;dEyb&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;0Pjg&quot;&gt;Какой метод вам следует использовать?&lt;/h3&gt;
  &lt;p id=&quot;VMrp&quot;&gt;Том Уилки рекомендует использовать комбинацию методов USE и RED.&lt;/p&gt;
  &lt;blockquote id=&quot;3JLj&quot;&gt;«Метод RED - это забота о пользователях и их счастье, - говорит Том, - а метод USE - это забота о машинах и их счастье. На самом деле это просто два разных взгляда на одну и ту же систему. Они дополняют друг друга».&lt;/blockquote&gt;
  &lt;p id=&quot;6iad&quot; data-align=&quot;right&quot;&gt;Источник &lt;a href=&quot;https://faun.pub/use-vs-red-vs-the-four-golden-signals-50655e93fad7&quot; target=&quot;_blank&quot;&gt;Medium&lt;/a&gt; |&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Cz4V&quot; data-align=&quot;center&quot;&gt;&lt;a href=&quot;https://t.me/lets_load&quot; target=&quot;_blank&quot;&gt;📢 Канал в телеграмм&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;9V6R&quot; data-align=&quot;center&quot;&gt;😊 &lt;a href=&quot;https://pay.cloudtips.ru/p/b8dae6a6&quot; target=&quot;_blank&quot;&gt;Для донатов&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>lets_load:what_is_proxy</id><link rel="alternate" type="text/html" href="https://teletype.in/@lets_load/what_is_proxy?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lets_load"></link><title>Прокси, обратный прокси и балансировщик нагрузки</title><published>2025-01-24T21:51:28.723Z</published><updated>2025-01-24T21:58:38.628Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/f2/5c/f25ca19e-6bf1-4a7e-9702-1771b45f8f13.png"></media:thumbnail><category term="tehnologii" label="Технологии"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/c8/b6/c8b609f3-e0ec-4695-af30-0f259c6e6051.jpeg&quot;&gt;Разбираемся в том, как работает прокси, обратный-прокси и балансировщик нагрузки</summary><content type="html">
  &lt;figure id=&quot;iU0J&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c8/b6/c8b609f3-e0ec-4695-af30-0f259c6e6051.jpeg&quot; width=&quot;1024&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;S8Gl&quot;&gt;Сначала давайте получим представление о прокси-серверах, а после этого вы сможете легко понять обратные прокси-серверы и балансировщики нагрузки.&lt;/p&gt;
  &lt;p id=&quot;oU9W&quot;&gt;Но прежде чем мы перейдем к техническим обсуждениям, связанным с прокси или обратными прокси, я хотел бы вспомнить одну ситуацию из детства, которая наверняка была у каждого из вас.&lt;/p&gt;
  &lt;figure id=&quot;i54A&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/13/d7/13d7b378-0f39-464a-9807-87181d1f2dea.jpeg&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;Рисунок 1 - Родители всегда стоят у нас на пути 😅&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Yvmb&quot;&gt;В детстве, когда нам что-то нужно, мы просим об этом родителей. Потому что нам не разрешают напрямую контактировать с посторонними людьми. Например, когда мы просим у родителей игрушечную машинку, они решают, правильная это просьба или нет. Если просьба обоснована, родители пойдут в магазин игрушек и принесут нам игрушечную машинку. В противном случае они просто отклонят нашу просьбу. Вот видите, когда мы были детьми,&lt;strong&gt; наши родители выступали в роли щита, защищающего нас от посторонних&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;RgTa&quot;&gt;Надеюсь, вы получили представление об этом простом сценарии, теперь давайте посмотрим, как это связано с прокси-сервером.&lt;/p&gt;
  &lt;h2 id=&quot;YmIw&quot;&gt;Прокси-сервер&lt;/h2&gt;
  &lt;figure id=&quot;tdmS&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/59/57/5957f1dc-10b1-4d64-bdc6-ab3ee78d74b8.jpeg&quot; width=&quot;720&quot; /&gt;
    &lt;figcaption&gt;Рисунок 2&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;pdMp&quot;&gt;На рисунке 2 представлено простое клиент-серверное приложение. Все клиенты отправляют свои запросы на прокси-сервер, а затем прокси-сервер отправляет запросы клиентов на сервер. Таким образом, прокси-сервер выполняет роль брандмауэра или щита на стороне клиента, обрабатывает все клиентские запросы и отправляет их на сервер соответствующим образом. Основная цель такого рода прокси - &lt;strong&gt;защитить клиентские приложения от внешних серверов и других уязвимостей безопасности&lt;/strong&gt;. Как это работает? Это работает так, что клиенты и их IP-адреса не раскрываются внешнему миру, а вот прокси-сервер будет раскрывать себя от имени клиентских приложений. Надеюсь, вы помните приведенный выше сценарий «ребенок-родитель». 😃&lt;/p&gt;
  &lt;p id=&quot;o3bb&quot;&gt;Надеюсь, теперь у вас есть четкое представление о прокси-сервере и его роли. Теперь перейдем к обратным прокси-серверам.&lt;/p&gt;
  &lt;h2 id=&quot;YZm8&quot;&gt;Обратный прокси-сервер&lt;/h2&gt;
  &lt;figure id=&quot;ZMqh&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7f/e1/7fe16c55-c399-47fd-bc74-eb1ccb2fd44f.jpeg&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;Рисунок 3&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;UBMP&quot;&gt;Концепция обратного прокси-сервера очень похожа на концепцию прямого прокси-сервера. Предположим, что у нас есть несколько экземпляров сервера, работающих на бэкенде. Но помните, что не обязательно иметь несколько экземпляров, в некоторых случаях будет достаточно одного сервера. 😉 На рисунке 3 показано, что обратный прокси расположен на стороне серверов. Вместо того чтобы защищать клиентские приложения,&lt;strong&gt; обратный прокси защищает экземпляры сервера на бэкенде от внешних сторон или клиентов&lt;/strong&gt;. Таким образом, клиенты никогда не узнают, какой экземпляр сервера будет отвечать на их запросы. Каждый запрос клиента будет отфильтрован на обратном прокси, а затем обратный прокси-сервер перенаправит эти запросы на соответствующие сервера для дальнейшей обработки.&lt;/p&gt;
  &lt;p id=&quot;OIYC&quot;&gt;У обратных прокси-серверов есть и другие преимущества. Такие прокси могут кэшировать статический и динамический контент. Если клиенты снова и снова запрашивают один и тот же ресурс, мы можем кэшировать это содержимое на уровне прокси. Таким образом, нам не придется снова и снова отправлять один и тот же запрос на сервера. Следующее преимущество этих прокси-серверов заключается в том, что они могут сжимать данные, которые будут проходить через сеть, используя различные алгоритмы. Еще одно важное преимущество обратных прокси-серверов заключается в том, что они могут выступать в качестве балансировщика нагрузки. Итак, давайте разберемся и с этим.&lt;/p&gt;
  &lt;h2 id=&quot;wYN5&quot;&gt;Балансировщик нагрузки&lt;/h2&gt;
  &lt;p id=&quot;2R6g&quot;&gt;Как я уже говорил, обратный прокси-сервер может выступать в качестве балансировщика нагрузки. Помните, что не каждый обратный прокси-сервер будет выступать в роли балансировщика нагрузки, но &lt;strong&gt;каждый балансировщик нагрузки должен быть обратным прокси-сервером&lt;/strong&gt;. Итак, роль балансировщика нагрузки заключается в &lt;strong&gt;распределении нагрузки клиентских запросов между экземплярами сервера&lt;/strong&gt;. Например, у нас есть приложение, которое получает более 5 миллионов запросов в день. Таким образом, если на стороне сервера будет только один экземпляр, он не сможет справиться с таким огромным трафиком. Поэтому нам нужно иметь несколько экземпляров сервера. Вы можете задаться вопросом: если у нас есть несколько экземпляров, как мы можем распределить трафик между этими серверами? Как раз в этом случае на помощь приходит балансировщик нагрузки 😉.&lt;/p&gt;
  &lt;figure id=&quot;EoHM&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/22/ee/22eefbe9-657e-4bc8-9c6d-3bdd3bccbf0d.jpeg&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;Рисунок 4&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;EFMy&quot;&gt;Балансировщик нагрузки принимает все запросы клиентов и распределяет их между экземплярами сервера в соответствии с различными алгоритмами. В данном конкретном случае (рисунок 4) он использует &lt;u&gt;&lt;em&gt;алгоритм балансировки нагрузок циклическим перебором (Round-Robin)&lt;/em&gt;&lt;/u&gt; для распределения нагрузки между экземплярами сервера. В алгоритме Round-Robin каждый новый клиентский запрос будет переадресован следующему соседнему серверному экземпляру в последовательном порядке. Таким образом, вместо того чтобы один сервер разрешал все запросы, все серверы будут участвовать в разрешении клиентских запросов по правильному и эффективному алгоритму. Существует не только Round Robin, но и ряд других алгоритмов, таких как Hash, IP Hash, Least Connections и так далее.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;nnHI&quot;&gt;Отлично! Вот и все для этой статьи. Спасибо, что дочитали до конца. Надеюсь, вы узнали что-то ценное. Продолжайте учиться, продолжайте расти.&lt;/p&gt;
  &lt;p id=&quot;Vt7F&quot;&gt;УДАЧИ!!!&lt;/p&gt;
  &lt;p id=&quot;qMvi&quot; data-align=&quot;right&quot;&gt;Источник &lt;a href=&quot;https://medium.com/tech-it-out/proxy-vs-reverse-proxy-vs-load-balancer-3937915631c8&quot; target=&quot;_blank&quot;&gt;Medium&lt;/a&gt; |&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Cz4V&quot; data-align=&quot;center&quot;&gt;&lt;a href=&quot;https://t.me/lets_load&quot; target=&quot;_blank&quot;&gt;📢 Канал в телеграмм&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;9V6R&quot; data-align=&quot;center&quot;&gt;😊 &lt;a href=&quot;https://pay.cloudtips.ru/p/b8dae6a6&quot; target=&quot;_blank&quot;&gt;Для донатов&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>lets_load:why_use_performance_testing</id><link rel="alternate" type="text/html" href="https://teletype.in/@lets_load/why_use_performance_testing?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lets_load"></link><title>Для чего нужно тестирование производительности?</title><published>2025-01-14T22:20:20.916Z</published><updated>2025-01-24T21:53:04.494Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/8a/fa/8afa6318-b835-4f31-aeda-3df3d9142f52.png"></media:thumbnail><category term="vvedenie-v-testirovanie-proizvoditel-nosti" label="Введение в тестирование производительности"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/1a/81/1a812396-32a5-4b0c-b201-75d1971d5e35.jpeg&quot;&gt;В этой статье рассмотрим причины использования тестирования производительности</summary><content type="html">
  &lt;figure id=&quot;x9cH&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1a/81/1a812396-32a5-4b0c-b201-75d1971d5e35.jpeg&quot; width=&quot;1024&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;1SQO&quot;&gt;Тестирование производительности — это тестирование, которое оценивает скорость, отзывчивость и стабильность компьютера, сети, программного обеспечения или устройства под рабочей нагрузкой. &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;HaTn&quot;&gt;Организации будут проводить тесты производительности для выявления  узких мест, связанных с производительностью&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;cXSn&quot;&gt;Целью тестирования производительности является &lt;strong&gt;выявление и устранение узких мест в программных приложениях&lt;/strong&gt;, что помогает обеспечить качество программного обеспечения. &lt;/p&gt;
  &lt;h2 id=&quot;WNBp&quot;&gt;&lt;/h2&gt;
  &lt;h2 id=&quot;5hA1&quot;&gt;Зачем использовать тестирование производительности?&lt;/h2&gt;
  &lt;p id=&quot;QTWs&quot;&gt;Существует ряд причин, по которым организация может захотеть использовать тестирование производительности, в том числе следующие:&lt;/p&gt;
  &lt;ul id=&quot;rqxs&quot;&gt;
    &lt;li id=&quot;F3PQ&quot;&gt;В качестве &lt;strong&gt;диагностического способа&lt;/strong&gt; выявления узких мест в системе. &lt;/li&gt;
    &lt;li id=&quot;o1sU&quot;&gt;Чтобы &lt;strong&gt;помочь определить&lt;/strong&gt; природу проблемы производительности, связанной с программным обеспечением, путем определения мест, где приложение может не работать или отставать. Организации также могут использовать этот вид тестирования для обеспечения готовности к предсказуемому крупному событию.&lt;/li&gt;
    &lt;li id=&quot;3rlU&quot;&gt;Для &lt;strong&gt;проверки требований&lt;/strong&gt;, чтобы убедиться, что система соответствует спецификациям, заявленным в её требованиях. &lt;/li&gt;
    &lt;li id=&quot;Ypcs&quot;&gt;&lt;strong&gt;Предоставление информации&lt;/strong&gt; заинтересованным сторонам для информирования участников проекта об обновлениях производительности приложения, касающихся скорости, стабильности и масштабируемости.&lt;/li&gt;
    &lt;li id=&quot;jcbV&quot;&gt;&lt;strong&gt;Во избежание получения плохой оценки от пользователей&lt;/strong&gt;, так как приложение, выпущенное без тестирования производительности, может работать плохо, что может привести к негативной репутации.&lt;/li&gt;
    &lt;li id=&quot;NQdV&quot;&gt;&lt;strong&gt;Для сравнения&lt;/strong&gt; двух или более систем, чтобы организация могла сравнить скорость работы, отзывчивость и стабильность программного обеспечения.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;okxs&quot; data-align=&quot;right&quot;&gt;Источник &lt;a href=&quot;https://www.techtarget.com/searchsoftwarequality/definition/performance-testing&quot; target=&quot;_blank&quot;&gt;Techtarget &lt;/a&gt;|&lt;/p&gt;
  &lt;p id=&quot;esjK&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Cz4V&quot; data-align=&quot;center&quot;&gt;&lt;a href=&quot;https://t.me/lets_load&quot; target=&quot;_blank&quot;&gt;📢 Канал в телеграмм&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;9V6R&quot; data-align=&quot;center&quot;&gt;😊 &lt;a href=&quot;https://pay.cloudtips.ru/p/b8dae6a6&quot; target=&quot;_blank&quot;&gt;Для донатов&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>lets_load:profiles_for_load_testing</id><link rel="alternate" type="text/html" href="https://teletype.in/@lets_load/profiles_for_load_testing?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lets_load"></link><title>Моделирование профиля для нагрузочного тестирования</title><published>2025-01-10T08:14:00.232Z</published><updated>2025-01-19T22:13:01.416Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/3a/15/3a1567ed-938f-460d-99bb-6b140e02b7a1.png"></media:thumbnail><category term="vvedenie-v-testirovanie-proizvoditel-nosti" label="Введение в тестирование производительности"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/ec/48/ec48ac21-4946-45ad-9bbc-16c091daf8a3.jpeg&quot;&gt;В этой статье мы рассмотрим вопросы, на которые стоит ответить, чтобы определить рабочий профиль нагрузки для вашего приложения</summary><content type="html">
  &lt;figure id=&quot;99ai&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ec/48/ec48ac21-4946-45ad-9bbc-16c091daf8a3.jpeg&quot; width=&quot;1024&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;8Mkm&quot;&gt;Любой проект нагрузочного тестирования должен начинаться с разработки модели пользовательской нагрузки. Она должна учитывать различные аспекты производительности приложения и инфраструктуры, на которую будет воздействовать данная рабочая нагрузка. &lt;/p&gt;
  &lt;p id=&quot;UpMO&quot;&gt;Профиль рабочей нагрузки является &lt;strong&gt;ключевым компонентом&lt;/strong&gt; такой модели. В зависимости от типа и целей нагрузочного теста может быть уместен один или несколько профилей. Выбор профилей нагрузки, отражающих предполагаемую реальную нагрузку в течение определенного времени (будь то сценарий повседневного использования или высокий пик), позволяет получить более точные ответы на «основные вопросы нагрузочного тестирования», такие как:&lt;/p&gt;
  &lt;ul id=&quot;TIHX&quot;&gt;
    &lt;li id=&quot;FwMR&quot;&gt;Поддержит ли мой сайт одновременный поиск N пользователей? &lt;/li&gt;
    &lt;li id=&quot;YavF&quot;&gt;Какое наибольшее количество пользователей может поддерживать мой сайт, оставаясь при этом в рамках заданных требований к качеству и производительности?&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;IzAr&quot;&gt;В этой статье мы рассмотрим вопросы, на которые стоит ответить, чтобы определить рабочий профиль нагрузки для вашего приложения&lt;/p&gt;
  &lt;h2 id=&quot;Xoca&quot;&gt;Каков набор возможных действий, которые может выполнить пользователь?&lt;/h2&gt;
  &lt;p id=&quot;PD6m&quot;&gt;Такие действия зависят от специфики вашего веб-приложения. Для продуктового приложения это могут быть:&lt;/p&gt;
  &lt;ol id=&quot;QSBy&quot;&gt;
    &lt;li id=&quot;0Ld8&quot;&gt;Открыть главную страницу.&lt;/li&gt;
    &lt;li id=&quot;izel&quot;&gt;Авторизоваться.&lt;/li&gt;
    &lt;li id=&quot;2o7z&quot;&gt;Просмотреть каталог товаров.&lt;/li&gt;
    &lt;li id=&quot;ozAk&quot;&gt;Найти нужный товар через поиск.&lt;/li&gt;
    &lt;li id=&quot;cZMu&quot;&gt;Добавить товары в корзину.&lt;/li&gt;
    &lt;li id=&quot;FhNG&quot;&gt;Проверить корзину и оформить заказ.&lt;/li&gt;
    &lt;li id=&quot;Nvtw&quot;&gt;Выйти из приложения&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;ldRY&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;uGE2&quot;&gt;Какие могут быть пользовательские профили для приложения? Достаточно ли одного пользовательского профиля?&lt;/h2&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;hZuH&quot;&gt;&lt;strong&gt;Профиль пользователя&lt;/strong&gt; - это часть модели нагрузочного тестирования, которая строится на основе типичного случая использования или сценария взаимодействия реального пользователя с тестируемым приложением. &lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;1bWH&quot;&gt;Например, на сайте по продаже товаров есть группы пользователей, которые просто подключаются и просматривают каталог товаров, а есть другие пользователи, которые заходят на сайт, ищут конкретные товары, получают информацию о ценах, возможно, добавляют несколько вариантов в избранное, а затем выходят из системы и т. д. Основываясь на этом подходе, вы можете определить, какие профили пользователей наиболее релевантны. &lt;/p&gt;
  &lt;p id=&quot;uXJK&quot;&gt;Например, для вашего нагрузочного теста список пользовательских профилей может быть таким:&lt;/p&gt;
  &lt;ol id=&quot;onf8&quot;&gt;
    &lt;li id=&quot;Woog&quot;&gt;Профиль просмотра&lt;/li&gt;
    &lt;li id=&quot;8KMU&quot;&gt;Профиль поиска&lt;/li&gt;
    &lt;li id=&quot;Ny7c&quot;&gt;Профиль размещения заказа&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;Foem&quot;&gt;Обратите внимание, что если в нагрузочном тесте используется несколько пользовательских профилей, то лучше всего отлаживать каждый из них отдельно. После того как вы убедитесь, что каждый профиль работает адекватно сам по себе, можно приступать к объединению нескольких профилей в один тест.&lt;/p&gt;
  &lt;p id=&quot;HWd4&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;mQZf&quot;&gt;Какие действия выполняет пользователь, представляющий каждый пользовательский профиль?&lt;/h2&gt;
  &lt;p id=&quot;nlbf&quot;&gt;В большинстве случаев действия пользователя должны быть относительно очевидны на основе сценариев использования, которые использовались при разработке приложения. Возможно, некоторые действия выполняются более одного раза, и такая статистика может быть приближена на основе моделирования пользователей или журналов сервера для существующих приложений.&lt;/p&gt;
  &lt;p id=&quot;iiA8&quot;&gt;Например, предположим, что в среднем каждый пользователь, покупающий товары на в вашем приложении, приобретает три товара за одну сессию. Статистика различных действий в профиле пользователя будет выглядеть вот так:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;bLOD&quot;&gt;&lt;strong&gt;Операция                                                         Количество выполнений за одну сессию&lt;/strong&gt;&lt;/p&gt;
    &lt;hr /&gt;
    &lt;p id=&quot;qtMa&quot;&gt;Открыть главную страницу                                                          1&lt;/p&gt;
    &lt;hr /&gt;
    &lt;p id=&quot;o5Vs&quot;&gt;Авторизоваться                                                                              1&lt;/p&gt;
    &lt;hr /&gt;
    &lt;p id=&quot;yOAJ&quot;&gt;&lt;em&gt;Просмотреть каталог товаров&lt;/em&gt;                                                     4&lt;/p&gt;
    &lt;hr /&gt;
    &lt;p id=&quot;Z9nO&quot;&gt;Найти нужный товар через поиск,                                              2&lt;/p&gt;
    &lt;hr /&gt;
    &lt;p id=&quot;9S40&quot;&gt;Добавить товары в корзину                                                         3&lt;/p&gt;
    &lt;hr /&gt;
    &lt;p id=&quot;BXnk&quot;&gt;Проверить корзину и оформить заказ,                                       1 &lt;/p&gt;
    &lt;hr /&gt;
    &lt;p id=&quot;PXaH&quot;&gt;Выйти из приложения                                                                   1&lt;/p&gt;
  &lt;/section&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;GKrT&quot;&gt;&lt;em&gt;*Этот анализ необходимо выполнить для всех профилей пользователей&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;5EvT&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;LB4g&quot;&gt;Каково среднее &amp;quot;время обдумывания&amp;quot; пользователя между действиями?&lt;/h2&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;wUaI&quot;&gt;Время, которое пользователь проводит между двумя последовательными действиями на странице, в языке нагрузочного тестирования называется &lt;strong&gt;«временем обдумывания»&lt;/strong&gt;. &lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;198T&quot;&gt;В течение «времени обдумывания» пользователь может просматривать информацию, отображаемую на странице, или вводить такие данные, как адреса, номера карт, параметры поиска и т. д.&lt;/p&gt;
  &lt;p id=&quot;P0V8&quot;&gt;Время обдумывания может варьироваться в зависимости от сложности информации на странице. Например, время обдумывания страницы входа в систему меньше, чем время обдумывания страницы оформления заказа, на которой пользователь должен ввести данные карты.&lt;/p&gt;
  &lt;p id=&quot;818r&quot;&gt;Большинство &lt;a href=&quot;https://www.blazemeter.com/&quot; target=&quot;_blank&quot;&gt;инструментов&lt;/a&gt; нагрузочного тестирования, которые позволяют записывать действия пользователя прямо в браузере, фиксируют фактические задержки между действиями. Впоследствии эти значения можно изменить, усреднить по всем запросам или заменить автоматически сгенерированными значениями с заданным набором статистических параметров.&lt;/p&gt;
  &lt;p id=&quot;sgWj&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;xp41&quot;&gt;Каково ожидаемое соотношение сценариев профилей пользователей?&lt;/h2&gt;
  &lt;p id=&quot;L5ba&quot;&gt;Комбинирование различных профилей позволяет создать более реалистичную имитацию веб-трафика для тестов. Соотношение бизнес-действий, выполняемых различными профилями пользователей, можно оценить или измерить. Например, типичная модель использования приложения для покупки товаров может состоять из 77 % пользователей, просматривающих приложение, 20%, ищущих конкретные товары, и 3 %, оформляющих заказ. Соотношение зависит от вашего приложения, вашего бизнеса и ваших пользователей. &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;kNu7&quot;&gt;Важно, чтобы соотношение отражало реальные транзакции на вашем сайте&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;5KIJ&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;JIQv&quot;&gt;Как меняется количество пользователей, заходящих на ваш сайт, с течением времени?&lt;/h2&gt;
  &lt;p id=&quot;t7Lm&quot;&gt;В реальной ситуации количество пользователей будет зависеть от времени суток, недели года, новостей и т. д. Понимание и учет этих изменений позволит вам разработать лучший профиль рабочей нагрузки.&lt;/p&gt;
  &lt;p id=&quot;IvJP&quot;&gt;Сайт доставки цветов может иметь относительно скромную стабильную нагрузку в течение дня. А затем сайт достигает сверхвысокой стабильной пиковой нагрузки в течение недели, предшествующей Дню святого Валентина. У приложения для онлайн-банкинга может быть совсем другая модель использования.&lt;/p&gt;
  &lt;p id=&quot;qJFo&quot;&gt;Для некоторых нагрузочных тестов важно, чтобы профиль нагрузки соответствовал этой вариации в определенном масштабе, а для некоторых это не так важно. Изменения нагрузки в течение дня должны быть учтены в длительном тестировании производительности с целью «имитации» реального профиля нагрузки, который будет испытывать сервер, и анализа показателей инфраструктуры. С другой стороны, на ранних этапах разработки может быть проще запустить постоянную/непрерывную или ступенчато возрастающую нагрузку, поскольку такие профили облегчают интерпретацию результатов.&lt;/p&gt;
  &lt;p id=&quot;Jwtb&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;iqau&quot;&gt;Каково максимальное ожидаемое количество пользователей, посещающих ваше приложение?&lt;/h2&gt;
  &lt;p id=&quot;uQWA&quot;&gt;Это число представляет собой предельную пропускную способность вашего приложения. &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;edzO&quot;&gt;&lt;strong&gt;Одновременные пользователи&lt;/strong&gt; - это пользователи, имеющие активные соединения с одним и тем же веб-сайтом в одно и то же время. &lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;7soW&quot;&gt;Если вы разрабатываете новое приложение, источником этих данных может быть документ с требованиями к приложению (который основан на прогнозируемом использовании вашего приложения по наилучшим предположениям вашего отдела аналитики). Для существующих приложений вы можете определить количество одновременных пользователей, проанализировав журналы сервера и/или информацию, предоставляемую службой аналитики.&lt;/p&gt;
  &lt;p id=&quot;mjPX&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;3T7n&quot;&gt;В течение какого времени должен выполняться тест?&lt;/h2&gt;
  &lt;p id=&quot;tRpF&quot;&gt;Продолжительность тестирования зависит от специфики вашего приложения и может составлять от 20 минут до недели. Рассмотрим следующие сценарии:&lt;/p&gt;
  &lt;ul id=&quot;l0P1&quot;&gt;
    &lt;li id=&quot;Ok8I&quot;&gt;Вам необходимо протестировать механизм входа в систему, чтобы убедиться, что необходимое количество пользователей может войти на сайт в течение определенного периода времени. Этот сценарий можно протестировать за короткий промежуток времени (15-20 минут), а результаты экстраполировать на более длительные периоды. Если 100 пользователей могут войти на сайт в течение 15 минут, можно экстраполировать результаты на 400 пользователей в течение часа.&lt;/li&gt;
    &lt;li id=&quot;qzgZ&quot;&gt;Вы можете проводить тесты непрерывно в течение длительного периода времени (дней, а возможно, и недель) с постоянной нагрузкой, чтобы проследить, как работает ваше приложение в течение длительного времени. Это позволит выявить медленные утечки памяти, которые становятся очевидными только через длительный период времени.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;A4yn&quot;&gt;Надеемся, эти рекомендации помогут вам в построении профиля рабочей нагрузки, отражающей характер использования вашего веб-приложения, что сделает ваши нагрузочные тесты гораздо более близкими к реальным сценариям. &lt;/p&gt;
  &lt;blockquote id=&quot;JMSr&quot; data-align=&quot;right&quot;&gt;Источник &lt;a href=&quot;https://smartbear.com/blog/workload-modeling-and-profiles-for-load-testing&quot; target=&quot;_blank&quot;&gt;SmartBear&lt;/a&gt;&lt;/blockquote&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;GN8o&quot; data-align=&quot;center&quot;&gt;&lt;a href=&quot;https://t.me/lets_load&quot; target=&quot;_blank&quot;&gt;📢 Канал в телеграмм&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;SH46&quot; data-align=&quot;center&quot;&gt;😊 &lt;a href=&quot;https://pay.cloudtips.ru/p/b8dae6a6&quot; target=&quot;_blank&quot;&gt;Для донатов&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;

</content></entry></feed>