ITnan

Все публикации Хабрахабр и Гиктаймс в одном месте
Выбран стиль: blue



Выбран хаб Машинное обучение


  1. gecube
    /#19762514

    Заголовков очевидно будет недостаточно, т.к. запрос может долго обрабатываться и давать корректный ответ. И, напротив, валиться быстро с 4** и 5**. И, ес-но, желателен ретрай на клиентской стороне, но не всегда это возможно

  2. DollaR84
    /#19762464

    А, понял, спасибо за разъяснение. После статьи как-то не уловил данных возможностей.

  3. SerafimArts
    /#19762406

    Ну это может быть и состояние, например: «Вы не можете отредактировать сообщение, т.к. аккаунт заблокирован». Считается ли это всё ещё валидацией запроса?

    P.S. С другой стороны — это уже 403 ошибка, но всё равно 4xx.

  4. rexen
    /#19762358

    Да, выше ответили — «зоопарк» получился исторически. 44,1кГц выбрали в основном из-за совместимости со старым (видео)оборудованием и как некий компромисс между хотелками и предельными возможностями аппаратуры 80-хх:
    audiophilesoft.ru/publ/theory/why_44100/6-1-0-281
    А на момент создания следующих поколений цифрового звукового оборудования, техника уже позволяла выжать чуть больше — 48кГц, хотя как по мне, Сонька с сотоварищами специально пошли на эти искусственные барьеры между CD, MiniDisc и студийного оборудования из копирастически-коммерческих соображений. Интернет и МП3 всё-равно всех побороли, а мы теперь вынуждены жить с кучей форматов, каждый из которых «тянет» наследие предыдущих, упиравшихся в пределы железа.

    Короче до боли всем знакомая история с легаси в ПО.

  5. Cykooz
    /#19762352

    При выборе группы для ошибки (4xx — 5xx) в первую очередь дайте ответ на вопрос "Кто виноват?".


    У вас во втором пункте виноват клиент — это его ошибка, что он попытался добавить товар с существующим в базе ИНН. Следовательно сразу становится понятно, что надо выбрать код из группы 4xx.


    PS: Коды со статусами < 400 формально не являются статусами описывающими ошибки.

  6. sergey-gornostaev
    /#19762258 / +1

    Работа с Python — это просто пример. Проект Panama позволяет работать с любым нативным кодом, включая пакеты линейной алгебры, написанные на Fortran, графические библиотеки, типа OpenGL, библиотеки машинного обучения, типа Tensorflow, криптографические библиотеки, системные и т.п. Не всё можно реализовать на Java, и не всегда реализации на Java получаются в достаточной степени производительными, поэтому невозможно обойтись без интероперабельности с нативным кодом. Раньше для этого применялся JNI, но он слишком сложный и недостаточно быстрый. Проект Panama исправляет оба этих недостатка.

  7. Juralis
    /#19762218

    Не могу назвать себя фанатом или ненавистником rest-подхода. При должной фантазии, любую жизненную ситуацию можно вписать в прокрустово ложе http-кодов. Вопрос только в том, как этим api будут пользоваться люди.

    Псевдокод:

    ответ = запрос({параметры})
    если 200 >= ответ.код < 400 {
        // всё хорошо
    } иначе {
      если 400 =< ответ.код < 500 {
        // всё плохо, смотрим ответ.тело.error
      } иначе если ответ.код >= 500 {
       // всё совсем плохо
      }
    }


    Против:
    ответ = запрос({параметры})
    если ответ.код == 200 {
      если ответ.тело.ок {
        // всё хорошо
      } иначе {
        // всё плохо, смотрим ответ.тело.error
      }
    } иначе {
      // всё совсем плохо
    }


    И в чём тут разница? Только в том, что универсальные утилиты понимают коды. Зло заключено в случае, когда в одном api используется и error в 200 и коды 400 в разных методах и случаях.

  8. Cykooz
    /#19762204

    409 будет верным ответом только в случае если формально клиент допустил ошибку сделав запрос, который не может быть выполнен по причине определённых бизнес-требований вызывающих конфликт (например "нельзя удалить файл если он в данный момент кем-то открыт")


    409 Conflict — запрос не может быть выполнен из-за конфликтного обращения к ресурсу. Такое возможно, например, когда два клиента пытаются изменить ресурс с помощью метода PUT.Появился в HTTP/1.1.

  9. DollaR84
    /#19762196

    Извиняюсь спросить, но зачем нужно такое скрещивание? Если только для того, чтоб на java нарисовать интерфейс программы, то у python есть куча вариантов интерфейсов, например WX widgets, или другие. Если чтоб запускать без установки на других компах pythonа, то всегда можно собрать exe-шник pyinstaller или еще чем. А вот для чего запускать python приложение из java приложения — не могу придумать вообще.

  10. jevius
    /#19762192 / +1

    Зачем все это? Можно просто указать в манифесте флаг на отмену пересоздания активити при повороте экрана