• 200 — это хорошо или это плохо?

      В этой трехминутной статье я хочу затронуть наболевшую тему.

      Речь пойдет о статус коде HTTP 200 и ошибках в ответе.

      HTTP/1.1 200 OK
      
      {
        "error": {
          code: 2019,
          message: "Validation failed: field 'size' is invalid: the value is not a number"
        }
      }
      

      Нормально ли возвращать такой код, если возникла ошибка?

      Нет? Да? Ну-ка давайте разберемся.

      whaaat

      Случай 1. HTTP 200 и batch операция


      Допустим отправляется один запрос. Запрос выполняется успешно. Возвращаем код 200. Ответ не содержит информации об ошибке. С этим случаем всё предельно просто и понятно. А что делать если требуется выполнить batch операцию?
      Давай разберемся
    • Предбольничный хотфикс или “Эй, Swagger! А где мои ошибки”?

        Случалось ли вам налажать во время хотфикса в мастер? Нет?! А вот мне удалось!

        Эта история о том, как я забыл обновить документацию. Как в итоге, написал плагин для Swagger (со второго раза). И как увлекся этим так, что забыл про свой больничный и пошел на поправку!


        А еще немного про Optional не из Java 8.
        История провала и успеха
      • 10 интересных нововведений в JUnit 5

        • Tutorial
        В минувшее воскресенье Sam Brannen анонсировал выход JUnit 5! Ура!


        Поздравляю всех участников @JUnitTeam а также всех, кто использует JUnit в своей работе! Давайте посмотрим, что же нам приготовили в этом релизе.
        Посмотрим
        • +20
        • 36.9k
        • 9
      • DeclarativeCOS — Декларативное программирование на Caché

          Проект DeclarativeCOS — крик души по теме программирования на COS.

          Цель проекта — обратить внимание сообщества к улучшению внутреннего ядра COS.

          Идея проекта — поддержка лаконичного синтаксиса при работе с циклами и коллекциями.

          image

          Итак, что же лаконичного я придумал? Добро пожаловать в примеры!
          Читать дальше →
        • MonCaché — реализация MongoDB API на основе InterSystems Caché


            ИДЕЯ


            Идея проекта — попробовать реализовать базовые функции MongoDB API для поиска, сохранения, обновления и удаления документов так, чтобы можно было бы не меняя клиентский код вместо MongoDB использовать InterSystems Caché.

            МОТИВАЦИЯ


            Возможно, если взять интерфейс MongoDB и в качестве хранилища данных использовать InterSystems Caché, то можно получить некоторый выигрыш в производительности.

            Ну, а почему бы и нет?! ¯\_(ツ)_/¯
            Читать дальше →
          • NSNJSON. 道 (Заключительная статья)

              道 — путь. В этой заключительной статье о формате NSNJSON я хочу рассказать о моем пути, который привел меня к изобретению этого формата.

              В комментариях к моим прошлым статьям («Усложнённый упрощённый JSON» и «JSON для любителей скобочек») неоднократно прозвучали вопросы о смысле, сложности, удобности и применимости этого формата. Итак, спешу поздравить всех неравнодушных — Вы дождались!


              Читать дальше →
            • Не COSим от разработки на Caché

              • Tutorial
              Привет! Я учусь в одном из лучших вузов нашей страны. Я учусь в НГУ (Новосибирский Государственный Университет)!



              В октябре 2015 года компания InterSystems в рамках академической программы провела два обучающих курса по технологиям InterSystems Caché:
              — «Ensemble. Разработка»,
              — «DeepSee. Основы».

              Ранее, весной 2015, мы прошли еще один обучающий курс от InterSystems:
              — «Разработка приложений в объектно-реляционной среде».

              Какие трудности возникли у нас, как у начинающих Cache ObjectScript разработчиков и о том, как мы их решили, я и буду рассказывать в этой статье. Надеюсь, данный материал может пригодиться и другим начинающим COS-разработчикам! Я хочу показать, что программирование на Caché ObjectScript это совсем не страшно, а иногда даже удобно! (Осторожно, много картинок)
              Читать дальше →
            • JSON для любителей скобочек

                Продолжая тему «Ненормальное программирование и JSON» меня посетила еще одна мысль об еще одном представлении JSON данных.

                В своей прошлой статье «Усложнённый упрощённый JSON» я уже рассказал о формате NSNJSON, который позволяет представить любые JSON данные с помощью всего 4 JSON типов: number, string, array, object.

                На этот раз я расскажу о способе представления любых JSON данных с помощью всего 3 типов: number, string, array.


                Читать дальше →
              • Усложнённый упрощённый JSON

                  Есть такой известный и весьма простой текстовый формат JSON.

                  JSON формат определяет следующие типы: null, boolean (true, false), number, string, array, object.

                  А что, если поставить задачу о представлении любых JSON данных с помощью всего 4 типов: number, string, array, object?



                  Добро пожаловать в ненормальное программирование!
                  Гость программы: NSNJSON (Not So Normal JSON)!
                  Читать дальше →
                • Декларативная разработка на Caché

                        В Caché есть несколько различных способов пройтись по коллекции и выполнить какие-нибудь действия с ее элементами. Самым простым является while-цикл. Такой способ позволяет решить поставленную задачу в императивном стиле. Разработчику приходиться явно заботиться об итераторе, о переходе к следующему элементу и о проверке выхода за пределы коллекции.
                        Но разве это то, о чем должен заботиться разработчик?! Разработчик должен решать поставленную перед ним задачу, за максимально короткое время с максимально хорошим качеством кода. Было бы очень здорово просто взять коллекцию и применить к ней функцию, которая выполняет необходимые действия на каждом элементе этой коллекции. Не проверять границ, не создавать итератор, не вызывать вручную функцию на каждом элементе. Такой способ решения задач называется декларативным программированием.
                    Declarative programming is when you write your code in such a way that it describes what you want to do, and not how you want to do it.
                    (c) 1800-information
                    Давайте подумаем, как же решить поставленную задачу декларативно, используя средства и возможности Caché.
                    Читать дальше →
                  • OMG Scala is a complex language!

                    • Translation
                    Я постоянно замечаю, что «О, святые небеса, Scala — это сложно!». Знаете, возможно это правда. Давайте попробуем посмотреть на эту сложность и пройтись по основным отличиям Scala от других объектно-ориентированных языков (например, Java или C++).

                    Подробности
                  • Классические паттерны проектирования на Scala

                    • Translation
                    Об авторе:
                    Pavel Fatin работает над Scala plugin'ом для IntelliJ IDEA в JetBrains.

                    Введение



                    В этой статье будут представлены примеры того, как реализуются классические паттерны проектирования на Scala.

                    Содержание статьи составляет основу моего выступления на JavaDay конференции (слайды презентации).

                    Читать дальше →