HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>13 инструментов для тестирования методом "чёрного ящика"</a></li>
1 <ul><li><a>13 инструментов для тестирования методом "чёрного ящика"</a></li>
2 <li><a>Python QA: введение в Unit Tests</a></li>
2 <li><a>Python QA: введение в Unit Tests</a></li>
3 <li><a>Анонс Asserts</a></li>
3 <li><a>Анонс Asserts</a></li>
4 <li><a>Тестирование без моков: язык паттернов. Часть 1</a></li>
4 <li><a>Тестирование без моков: язык паттернов. Часть 1</a></li>
5 <li><a>Тестирование без моков: язык паттернов. Часть 2</a></li>
5 <li><a>Тестирование без моков: язык паттернов. Часть 2</a></li>
6 <li><a>Как использовать GitHub Copilot в IDE: советы, приёмы и лучшие практики</a></li>
6 <li><a>Как использовать GitHub Copilot в IDE: советы, приёмы и лучшие практики</a></li>
7 <li><a>Тестирование баз данных</a></li>
7 <li><a>Тестирование баз данных</a></li>
8 <li><a>ViewModels в Android: "за" и "против"</a></li>
8 <li><a>ViewModels в Android: "за" и "против"</a></li>
9 <li><a>Миграция критически важного трафика в больших масштабах без простоев: опыт Netflix</a></li>
9 <li><a>Миграция критически важного трафика в больших масштабах без простоев: опыт Netflix</a></li>
10 <li><a>Знакомьтесь, SafeTest - новый подход к тестированию фронтенда</a></li>
10 <li><a>Знакомьтесь, SafeTest - новый подход к тестированию фронтенда</a></li>
11 <li><a>Тестирование рассылок: зачем проводить и что проверять в первую очередь</a></li>
11 <li><a>Тестирование рассылок: зачем проводить и что проверять в первую очередь</a></li>
12 <li><a>Как создать мультидокументный ридер и чат-бот с помощью LangChain и ChatGPT</a></li>
12 <li><a>Как создать мультидокументный ридер и чат-бот с помощью LangChain и ChatGPT</a></li>
13 <li><a>Как инженеры GitHub используют GitHub Copilot: 4 способа</a></li>
13 <li><a>Как инженеры GitHub используют GitHub Copilot: 4 способа</a></li>
14 </ul><h2>13 инструментов для тестирования методом "чёрного ящика"</h2>
14 </ul><h2>13 инструментов для тестирования методом "чёрного ящика"</h2>
15 <p>Инструменты для тестирования методом "чёрного ящика" (black box) сосредоточены на анализе входных и выходных данных программного обеспечения, его поведения и функциональности с точки зрения конечного пользователя. Они используются для различных типов тестирования, включая функциональное, системное и приёмочное, не требуя доступа к исходному коду.</p>
15 <p>Инструменты для тестирования методом "чёрного ящика" (black box) сосредоточены на анализе входных и выходных данных программного обеспечения, его поведения и функциональности с точки зрения конечного пользователя. Они используются для различных типов тестирования, включая функциональное, системное и приёмочное, не требуя доступа к исходному коду.</p>
16 <p>Преимущества этих инструментов заключаются в их способности обеспечить объективную оценку внешних функций программного обеспечения. Они помогают убедиться в том, что разрабатываемый софт соответствует требованиям пользователей и ведёт себя ожидаемым образом в реальных ситуациях. Эти инструменты особенно полезны для выявления несоответствий в функциональности и интерфейсе программы, что делает их идеальными для тестировщиков без глубоких технических знаний о внутреннем устройстве софта. Такой подход способствует ориентированности на пользователя.</p>
16 <p>Преимущества этих инструментов заключаются в их способности обеспечить объективную оценку внешних функций программного обеспечения. Они помогают убедиться в том, что разрабатываемый софт соответствует требованиям пользователей и ведёт себя ожидаемым образом в реальных ситуациях. Эти инструменты особенно полезны для выявления несоответствий в функциональности и интерфейсе программы, что делает их идеальными для тестировщиков без глубоких технических знаний о внутреннем устройстве софта. Такой подход способствует ориентированности на пользователя.</p>
17 <p><a>Читать далее</a></p>
17 <p><a>Читать далее</a></p>
18 <h2>Python QA: введение в Unit Tests</h2>
18 <h2>Python QA: введение в Unit Tests</h2>
19 <p>Данная статья призвана погрузить вас в мир Unit Tests в Python. Мы рассмотрим основные принципы написания тестов, научимся создавать простые и эффективные тесты для вашего кода, а также рассмотрим некоторые лучшие практики и советы по их использованию. После ознакомления с этой статьей вы сможете использовать Unit Tests для обеспечения качества вашего Python-кода и повысить уверенность в его надежности.</p>
19 <p>Данная статья призвана погрузить вас в мир Unit Tests в Python. Мы рассмотрим основные принципы написания тестов, научимся создавать простые и эффективные тесты для вашего кода, а также рассмотрим некоторые лучшие практики и советы по их использованию. После ознакомления с этой статьей вы сможете использовать Unit Tests для обеспечения качества вашего Python-кода и повысить уверенность в его надежности.</p>
20 <p><a>Читать далее</a></p>
20 <p><a>Читать далее</a></p>
21 <h2>Анонс Asserts</h2>
21 <h2>Анонс Asserts</h2>
22 <p>Представляем вам Asserts - платформу для анализа и отслеживания метрик. Сканируя метрики вашего приложения в любой совместимой с Prometheus базе данных временных рядов (time-series database, TSDB), Asserts в реальном времени: </p>
22 <p>Представляем вам Asserts - платформу для анализа и отслеживания метрик. Сканируя метрики вашего приложения в любой совместимой с Prometheus базе данных временных рядов (time-series database, TSDB), Asserts в реальном времени: </p>
23 <ul><li>создаёт карту архитектуры приложения и инфраструктуры, </li>
23 <ul><li>создаёт карту архитектуры приложения и инфраструктуры, </li>
24 <li>строит дашборды, </li>
24 <li>строит дашборды, </li>
25 <li>отслеживает цели уровня обслуживания (service level objectives, SLOs) </li>
25 <li>отслеживает цели уровня обслуживания (service level objectives, SLOs) </li>
26 <li>и запускает автоматические проверки (Assertions) для выявления изменений и потенциальных проблем. </li>
26 <li>и запускает автоматические проверки (Assertions) для выявления изменений и потенциальных проблем. </li>
27 </ul><p>Наша задача - снизить усталость от предупреждений и сократить время поиска первопричины.</p>
27 </ul><p>Наша задача - снизить усталость от предупреждений и сократить время поиска первопричины.</p>
28 <p><a>Читать далее</a></p>
28 <p><a>Читать далее</a></p>
29 <h2>Тестирование без моков: язык паттернов. Часть 1</h2>
29 <h2>Тестирование без моков: язык паттернов. Часть 1</h2>
30 <p>Автоматизированные тесты очень важны. Без них программистам приходится тратить огромное количество времени на ручную проверку и исправление кода.</p>
30 <p>Автоматизированные тесты очень важны. Без них программистам приходится тратить огромное количество времени на ручную проверку и исправление кода.</p>
31 <p>К сожалению, многие автотесты <em>также</em> тратят огромное количество времени. Простым и очевидным вариантом является создание широких тестов, которые являются автоматизированными версиями ручных тестов. Но они нестабильны и медленны.</p>
31 <p>К сожалению, многие автотесты <em>также</em> тратят огромное количество времени. Простым и очевидным вариантом является создание широких тестов, которые являются автоматизированными версиями ручных тестов. Но они нестабильны и медленны.</p>
32 <p><a>Читать далее</a></p>
32 <p><a>Читать далее</a></p>
33 <h2>Тестирование без моков: язык паттернов. Часть 2</h2>
33 <h2>Тестирование без моков: язык паттернов. Часть 2</h2>
34 <p>Инфраструктурный код предназначен для взаимодействия с внешним миром. Хотя он может содержать некоторую логику, она должна быть направлена на облегчение работы с инфраструктурой. Всё остальное относится к коду приложения или логики.</p>
34 <p>Инфраструктурный код предназначен для взаимодействия с внешним миром. Хотя он может содержать некоторую логику, она должна быть направлена на облегчение работы с инфраструктурой. Всё остальное относится к коду приложения или логики.</p>
35 <p>Инфраструктурный код ненадёжен и с трудом поддаётся<a>тестированию</a>из-за зависимости от внешних систем и состояния. Решить эти проблемы помогают следующие паттерны:</p>
35 <p>Инфраструктурный код ненадёжен и с трудом поддаётся<a>тестированию</a>из-за зависимости от внешних систем и состояния. Решить эти проблемы помогают следующие паттерны:</p>
36 <ul><li>Инфраструктурные обёртки (Infrastructure Wrappers)</li>
36 <ul><li>Инфраструктурные обёртки (Infrastructure Wrappers)</li>
37 <li>Узкие интеграционные тесты (Narrow Integration Tests)</li>
37 <li>Узкие интеграционные тесты (Narrow Integration Tests)</li>
38 <li>"Параноидальная телеметрия" (Paranoic Telemetry)</li>
38 <li>"Параноидальная телеметрия" (Paranoic Telemetry)</li>
39 </ul><p><a>Читать далее</a></p>
39 </ul><p><a>Читать далее</a></p>
40 <h2>Как использовать GitHub Copilot в IDE: советы, приёмы и лучшие практики</h2>
40 <h2>Как использовать GitHub Copilot в IDE: советы, приёмы и лучшие практики</h2>
41 <p>GitHub Copilot - это мощный ассистент на базе искусственного интеллекта. В этой статье поговорим о практических стратегиях, позволяющих эффективно использовать GitHub Copilot для генерации наиболее релевантных и полезных предложений по коду в вашем редакторе.</p>
41 <p>GitHub Copilot - это мощный ассистент на базе искусственного интеллекта. В этой статье поговорим о практических стратегиях, позволяющих эффективно использовать GitHub Copilot для генерации наиболее релевантных и полезных предложений по коду в вашем редакторе.</p>
42 <p>Инструменты на базе искусственного интеллекта в последнее время стали неотъемлемой частью моего рабочего процесса; тот же GitHub Copilot помогает мне быстрее достигать прогресса в проекте. Используя инструменты на базе искусственного интеллекта для повышения своей продуктивности в течение последнего года, я понял, что подобно тому, как мы учимся использовать новый фреймворк или библиотеку, мы можем повысить эффективность работы с AI-инструментами, если научимся использовать их наилучшим образом.</p>
42 <p>Инструменты на базе искусственного интеллекта в последнее время стали неотъемлемой частью моего рабочего процесса; тот же GitHub Copilot помогает мне быстрее достигать прогресса в проекте. Используя инструменты на базе искусственного интеллекта для повышения своей продуктивности в течение последнего года, я понял, что подобно тому, как мы учимся использовать новый фреймворк или библиотеку, мы можем повысить эффективность работы с AI-инструментами, если научимся использовать их наилучшим образом.</p>
43 <p>В этой статье я расскажу о том, что я делаю на каждодневной основе, чтобы получить максимальную отдачу от GitHub Copilot. Надеюсь, эти советы помогут вам стать более эффективным и продуктивным пользователем ИИ-помощника.</p>
43 <p>В этой статье я расскажу о том, что я делаю на каждодневной основе, чтобы получить максимальную отдачу от GitHub Copilot. Надеюсь, эти советы помогут вам стать более эффективным и продуктивным пользователем ИИ-помощника.</p>
44 <p><a>Читать далее</a></p>
44 <p><a>Читать далее</a></p>
45 <h2>Тестирование баз данных</h2>
45 <h2>Тестирование баз данных</h2>
46 <p>Тестирование баз данных включает в себя тестирование методом "чёрного ящика", "белого ящика" и набор требований ACID - атомарность, согласованность, изоляция и устойчивость. В этом руководстве я объясню все необходимые определения, расскажу, как оно проводится, и приведу примеры.</p>
46 <p>Тестирование баз данных включает в себя тестирование методом "чёрного ящика", "белого ящика" и набор требований ACID - атомарность, согласованность, изоляция и устойчивость. В этом руководстве я объясню все необходимые определения, расскажу, как оно проводится, и приведу примеры.</p>
47 <p><a>Читать далее</a></p>
47 <p><a>Читать далее</a></p>
48 <h2>ViewModels в Android: "за" и "против"</h2>
48 <h2>ViewModels в Android: "за" и "против"</h2>
49 <p>В этой серии статей мы рассмотрим лучшие практики использования ViewModels в Android с акцентом на основных принципах повышения качества кода. Рассмотрим роль ViewModels в управлении состоянием пользовательского интерфейса и бизнес-логикой, стратегии для ленивого внедрения зависимостей и важность реактивного программирования. Кроме того, мы обсудим общие подводные камни, которых следует избегать, такие как неправильная инициализация состояния и обнародование изменяемых состояний.</p>
49 <p>В этой серии статей мы рассмотрим лучшие практики использования ViewModels в Android с акцентом на основных принципах повышения качества кода. Рассмотрим роль ViewModels в управлении состоянием пользовательского интерфейса и бизнес-логикой, стратегии для ленивого внедрения зависимостей и важность реактивного программирования. Кроме того, мы обсудим общие подводные камни, которых следует избегать, такие как неправильная инициализация состояния и обнародование изменяемых состояний.</p>
50 <p><a>Читать далее</a></p>
50 <p><a>Читать далее</a></p>
51 <h2>Миграция критически важного трафика в больших масштабах без простоев: опыт Netflix</h2>
51 <h2>Миграция критически важного трафика в больших масштабах без простоев: опыт Netflix</h2>
52 <p>Сотни миллионов пользователей ежедневно заходят на Netflix, ожидая получить непрерывный иммерсивный пользовательский опыт. Вместе с тем в организации правильного опыта участвуют множество систем и служб. Чтобы оправдать и превзойти ожидания клиентов, эти бэкенд-системы постоянно совершенствуются и оптимизируются.</p>
52 <p>Сотни миллионов пользователей ежедневно заходят на Netflix, ожидая получить непрерывный иммерсивный пользовательский опыт. Вместе с тем в организации правильного опыта участвуют множество систем и служб. Чтобы оправдать и превзойти ожидания клиентов, эти бэкенд-системы постоянно совершенствуются и оптимизируются.</p>
53 <p>При миграции систем одна из главных задач - обеспечить плавный переход трафика на обновлённую архитектуру без негативного влияния на пользовательский опыт. В этой публикации мы рассмотрим инструменты, техники и стратегии, которые мы использовали для достижения этой цели.</p>
53 <p>При миграции систем одна из главных задач - обеспечить плавный переход трафика на обновлённую архитектуру без негативного влияния на пользовательский опыт. В этой публикации мы рассмотрим инструменты, техники и стратегии, которые мы использовали для достижения этой цели.</p>
54 <p><a>Читать далее</a></p>
54 <p><a>Читать далее</a></p>
55 <h2>Знакомьтесь, SafeTest - новый подход к тестированию фронтенда</h2>
55 <h2>Знакомьтесь, SafeTest - новый подход к тестированию фронтенда</h2>
56 <p>В этой статье мы поговорим о SafeTest - революционной библиотеке, которая предлагает свежий взгляд на сквозные (E2E) тесты для веб-приложений с пользовательским интерфейсом.</p>
56 <p>В этой статье мы поговорим о SafeTest - революционной библиотеке, которая предлагает свежий взгляд на сквозные (E2E) тесты для веб-приложений с пользовательским интерфейсом.</p>
57 <p><a>Читать далее</a></p>
57 <p><a>Читать далее</a></p>
58 <h2>Тестирование рассылок: зачем проводить и что проверять в первую очередь</h2>
58 <h2>Тестирование рассылок: зачем проводить и что проверять в первую очередь</h2>
59 <p>В этой статье поговорим о том, почему важно тестировать электронные письма, какие элементы следует проверять в первую очередь и как облегчить процесс тестирования.<a></a></p>
59 <p>В этой статье поговорим о том, почему важно тестировать электронные письма, какие элементы следует проверять в первую очередь и как облегчить процесс тестирования.<a></a></p>
60 <p>Под тестированием рассылок понимаются методы проверки писем перед их отправкой. Email-маркетологи чаще занимаются анализом контента и A/B-тестированием кампаний. Для разработчиков и тестировщиков, которые работают с сервисами, отправляющими транзакционные рассылки, email-тестирование включает в себя более широкий<a>цикл</a>действий - от анализа HTML до обеспечения доставки писем.</p>
60 <p>Под тестированием рассылок понимаются методы проверки писем перед их отправкой. Email-маркетологи чаще занимаются анализом контента и A/B-тестированием кампаний. Для разработчиков и тестировщиков, которые работают с сервисами, отправляющими транзакционные рассылки, email-тестирование включает в себя более широкий<a>цикл</a>действий - от анализа HTML до обеспечения доставки писем.</p>
61 <p>О чём расскажу в этой статье:</p>
61 <p>О чём расскажу в этой статье:</p>
62 <ul><li>Важность тестирования рассылок</li>
62 <ul><li>Важность тестирования рассылок</li>
63 <li>4 болевые точки тестирования рассылок + обходные пути</li>
63 <li>4 болевые точки тестирования рассылок + обходные пути</li>
64 <li>Какие элементы тестируют в первую очередь</li>
64 <li>Какие элементы тестируют в первую очередь</li>
65 </ul><p><a>Читать далее</a></p>
65 </ul><p><a>Читать далее</a></p>
66 <h2>Как создать мультидокументный ридер и чат-бот с помощью LangChain и ChatGPT</h2>
66 <h2>Как создать мультидокументный ридер и чат-бот с помощью LangChain и ChatGPT</h2>
67 <p>Мы начнём с простого чат-бота, который может взаимодействовать только с одним документом; и закончим более продвинутым чат-ботом, который может взаимодействовать с несколькими различными документами и типами документов, а также сохранять историю чата - чтобы он мог отвечать на вопросы в контексте последних бесед.</p>
67 <p>Мы начнём с простого чат-бота, который может взаимодействовать только с одним документом; и закончим более продвинутым чат-ботом, который может взаимодействовать с несколькими различными документами и типами документов, а также сохранять историю чата - чтобы он мог отвечать на вопросы в контексте последних бесед.</p>
68 <p><a>Читать далее</a></p>
68 <p><a>Читать далее</a></p>
69 <h2>Как инженеры GitHub используют GitHub Copilot: 4 способа</h2>
69 <h2>Как инженеры GitHub используют GitHub Copilot: 4 способа</h2>
70 <p>Узнаем, как GitHub Copilot повышает эффективность работы инженеров из GitHub, позволяя автоматизировать повторяющиеся задачи, сохранять концентрацию и многое другое.<a></a></p>
70 <p>Узнаем, как GitHub Copilot повышает эффективность работы инженеров из GitHub, позволяя автоматизировать повторяющиеся задачи, сохранять концентрацию и многое другое.<a></a></p>
71 <p>Совсем недавно я занимался разработкой новой фичи для <a>чата GitHub Copilot</a>. Моя задача заключалась в том, чтобы чат мог распознавать зависимости проекта пользователя - это позволило бы ему давать умные ответы на вопросы пользователя. Я мог просто перечислить зависимости проекта и считать задачу выполненной; но я знал, что для извлечения высококачественных ответов из этих больших языковых моделей нужно быть осторожным - чтобы не перегрузить промпт и не сбить модель с толку, передав ей слишком много контекста. Это вызывало необходимость в предварительной обработке списка зависимостей и выборе наиболее релевантных для включения в промпт.</p>
71 <p>Совсем недавно я занимался разработкой новой фичи для <a>чата GitHub Copilot</a>. Моя задача заключалась в том, чтобы чат мог распознавать зависимости проекта пользователя - это позволило бы ему давать умные ответы на вопросы пользователя. Я мог просто перечислить зависимости проекта и считать задачу выполненной; но я знал, что для извлечения высококачественных ответов из этих больших языковых моделей нужно быть осторожным - чтобы не перегрузить промпт и не сбить модель с толку, передав ей слишком много контекста. Это вызывало необходимость в предварительной обработке списка зависимостей и выборе наиболее релевантных для включения в промпт.</p>
72 <p>На создание пригодных для машинной обработки форматов для самых известных фреймворков на разных языках программирования ушли бы дни. И в это время я обратился к Copilot.</p>
72 <p>На создание пригодных для машинной обработки форматов для самых известных фреймворков на разных языках программирования ушли бы дни. И в это время я обратился к Copilot.</p>
73 <p><a>Читать далее</a></p>
73 <p><a>Читать далее</a></p>
74 <a></a>
74 <a></a>