Pull to refresh
26
0
Максым Атыгаев @atygaev

Java Backend Developer

Send message

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

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

Речь пойдет о статус коде 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! А где мои ошибки”?

Reading time6 min
Views4.8K
Случалось ли вам налажать во время хотфикса в мастер? Нет?! А вот мне удалось!

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


А еще немного про Optional не из Java 8.
История провала и успеха

10 интересных нововведений в JUnit 5

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


Поздравляю всех участников @JUnitTeam а также всех, кто использует JUnit в своей работе! Давайте посмотрим, что же нам приготовили в этом релизе.
Посмотрим

DeclarativeCOS — Декларативное программирование на Caché

Reading time5 min
Views2.6K
Проект DeclarativeCOS — крик души по теме программирования на COS.

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

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

image

Итак, что же лаконичного я придумал? Добро пожаловать в примеры!
Читать дальше →

MonCaché — реализация MongoDB API на основе InterSystems Caché

Reading time9 min
Views5.4K

ИДЕЯ


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

МОТИВАЦИЯ


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

Ну, а почему бы и нет?! ¯\_(ツ)_/¯
Читать дальше →

NSNJSON. 道 (Заключительная статья)

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

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


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

Не COSим от разработки на Caché

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



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

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

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

JSON для любителей скобочек

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

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

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


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

Усложнённый упрощённый JSON

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

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

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



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

Декларативная разработка на Caché

Reading time3 min
Views3.5K
    В 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!

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

Подробности

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

Reading time14 min
Views37K
Об авторе:
Pavel Fatin работает над Scala plugin'ом для IntelliJ IDEA в JetBrains.

Введение



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

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

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

Information

Rating
Does not participate
Location
Бердск, Новосибирская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer
Lead
Java
PostgreSQL
Docker
Spring Boot