Бібліотека читання
Розрізняйте порожні результати та збої передачі окремими екранами
Відокремлюйте успішний порожній пошук про квантування від HTTP-помилок і втраченої відповіді, зберігаючи питання та свідомий вибір повтору.
Визначте класи відповідей
Порожня область результатів не пояснює, що сталося з пошуком. У запропонованому журналі LocalLLaMA розрізняйте запит у роботі, успішну відповідь із записами, успішну відповідь із порожнім data, HTTP-помилку та спробу передачі без придатної відповіді. Це різні спостереження. Зокрема, порожній успіх не доводить відсутності відповідного обговорення в архіві, а втрачена відповідь не показує, чи сервер завершив запит. Не ховайте ці тлумачення за візуальним скороченням «немає результатів».
Використовуйте HTTP-статус разом із перевіреною формою відповіді. Відповідь 200 із data: [] — успішне порожнє отримання. HTTP 400, 401, 402, 429 і 502 — помилки, а не інші види успішних порожніх даних. Мережевий виняток може взагалі не мати HTTP-статусу. Не робіть із самої помилки висновку про проходження всіх стадій backend. Зберігайте надіслані параметри та ідентифікатор запиту застосунку з кожним наслідком, щоб пов’язати пізню відповідь із правильним пошуком.
Опишіть дії для порожнього результату
Використовуйте стриманий текст: «Для цього запиту записи не повернуто». Поряд покажіть надіслані q=quantization та subreddit=LocalLLaMA, а також активні дати чи поріг оцінки. Дайте свідомо змінити одну умову й надіслати запит знову. Не замінюйте порожню відповідь вигаданими популярними обговореннями й не розширюйте запит автоматично під старим підписом. Після прибирання фільтра новий результат належить зміненому запиту та має починати послідовність зі сторінки 1.
Поясніть доречне обмеження, не вдаючи діагностику причини. Для quantization memory всі проаналізовані терміни мають збігтися всередині відповідного title або text; розподілу між двома полями недостатньо. Це можливе міркування, не доказ причини порожньої відповіді. Зберігайте різницю оплати: успішне порожнє отримання теж коштує один кредит. Порожня глибока сторінка також може мати невідому загальну кількість. Не робіть із цього твердження про нуль збігів у всьому архіві чи привід нескінченно запитувати сторінки.
Опишіть дії при помилці
Адресуйте помилку тому, хто може діяти. HTTP 400 потребує перевірки фактичного введення, наприклад непідтримуваного параметра чи дати не у форматі YYYY-MM-DD. HTTP 401 стосується службового API-ключа, 402 — доступних кредитів облікового запису сервісу; жоден не встановлює завершення особистої сесії читача в застосунку. Оператору може знадобитися виправити ключ backend або перевірити баланс. Не просіть читача вставляти службовий ключ у публічний екран пошуку.
Для 429 дотримуйтеся Retry-After і зменшуйте повторні надсилання. Для 502 зберігайте запит і пропонуйте свідомий повтор, коли це доречно; повернення зарезервованого кредиту може чекати звірки. Відсутня відповідь потребує іншого тексту: наслідок невідомий, зокрема чи оплачено успішний запит. Недопустимі запити, відхилені до резервування, не оплачуються, але збій з’єднання не доводить такого відхилення. Безплатний /v1/status показує статичний опис сервісу та HTTP-відгук; він не з’ясовує долю втраченого запиту й не перевіряє пошук.
Перевірте неперервність навігації
Неперервність також означає збереження користувацького введення. Заплануйте локальні fixtures для коректної порожньої відповіді, HTTP-помилки та мережевого винятку до отримання відповіді. Використовуйте явно синтетичний матеріал: ці fixtures перевірятимуть інтерфейс, а не встановлюватимуть доступність архіву. Перевірте різні повідомлення та доступність надісланого запиту. Додайте випадок зміни форми під час очікування: старий наслідок не має виглядати відповіддю на нове формулювання.
При збої наступної сторінки залиште завантажені записи й відрізняйте їхній завершений стан від невдалого продовження. Дозвольте повторити ту саму сторінку або повернутися до форми без прихованого нового запиту. Ігнорування пізньої відповіді в інтерфейсі не гарантує скасування роботи сервера. Фіксуйте, які переходи застосунок справді перевірив, а які лише запропоновані. Мета — екран, що пояснює відоме й дає корисну наступну дію, а не заспокоює словами без підтвердження у відповіді.