Рубрика «Блог компании DataArt» - 11

Подходы к проектированию RESTful API - 1
Автор: Вячеслав Михайлов, Solutions Architect.

В этой статье я поделюсь опытом проектирования RESTful API — на конкретных примерах покажу, как делать хотя бы простые сервисы красиво. Также мы поговорим, что такое API и зачем он нужен, поговорим об основах REST — обсудим, на чем его можно реализовывать; коснемся основных веб-практик, которые зависят и не зависят от этой технологии. Также узнаем, как составлять хорошую документацию, затрачивая на это минимум усилий, и посмотрим, какие существуют способы нумерации версий для RESTful API.

Часть 1. Теория

Итак, как мы все знаем, API — application programming interface (интерфейс программирования приложений), набор правил и механизмов, с помощью которых одно приложение или компонент взаимодействует с другими

Почему хороший API — это важно?

  • Простота использования и поддержки. Хороший API просто использовать и поддерживать.
  • Хорошая конверсия в среде разработчиков. Если всем нравится ваш API, к вам приходят новые клиенты и пользователи.
  • Выше популярность вашего сервиса. Чем больше пользователей API, тем выше популярность вашего сервиса.
  • Лучше изоляция компонентов. Чем лучше структура API, тем лучше изоляция компонентов.
  • Хорошее впечатление о продукте. API — это как бы UI разработчиков; это то, на что разработчики обращают внимание в первую очередь при встрече с продуктом. Если API кривой, вы как технический эксперт не будете рекомендовать компаниям использовать такой продукт, приобретая что-то стороннее.

Теперь посмотрим, какие бывают виды API.

Виды API по способу реализации:
●     Web service APIs
○     XML-RPC and JSON-RPC
○     SOAP
○     REST
●     WebSockets APIs
●     Library-based APIs
○     Java Script
●     Class-based APIs
○     C# API
○     Java
 
Виды API по категориям применения:
●     OS function and routines
○     Access to file system
○     Access to user interface
●     Object remoting APIs
○     CORBA
○     .Net remoting
●     Hardware APIs
○     Video acceleration (OpenCL…)
○     Hard disk drives
○     PCI bus
○     …
Читать полностью »

Дети обсудили недетские вопросы дизайна - 1

Дизайн-студия DataArt провела мастер-класс по дизайну интерфейсов для детей коллег. Каждый дизайнер знает, как важно в работе мыслить с позиции конечного пользователя, но как подготовить мастер-класс для компании детей от 6 до 15 лет?

Начали с простого, ведь и детям понятно, что информация должна быть упорядоченной, и что было бы неудобно, если бы коктейли в ресторанном меню шли вперемешку с борщами. Еще оказалось, что дети знают не менее 20 способов мотивировать баранов пользоваться новыми воротамии неплохо справляются с городской навигацией.
Читать полностью »

Ежедневные релизы — это не так уж страшно - 1

Меня зовут Оксана Харчук, я работаю QA-инженером в DataArt чуть больше года. Расскажу, как в нашем проекте организован процесс работы, и как быть, если релиз каждый день.

Сначала, когда я только пришла в DataArt, слово «релиз» ассоциировалось у меня с чем-то страшным. Но, как оказалось, если процесс работы построен правильно, релизы даже каждый день — совсем не страшно, а очень даже удобно.Чтобы этого достичь, процесс разработки в нашем проекте построен на принципах непрерывной поставки (continuous delivery) и непрерывной интеграции (continuous integration).

Что такое Continuous delivery и Сontinuous integration?

Continuous delivery или непрерывная поставка ПО — набор практик и принципов, нацеленных на сборку, тестирование и поставку ПО быстрее и чаще. Непрерывная поставка качественного кода опирается, в свою очередь, на непрерывную интеграцию.

Сontinuous integration, или непрерывная интеграция — это практика разработки ПО, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. Ведь ясно: если над разными частями кода работают несколько программистов, при интеграции этих частей возникает много трудностей. Непрерывная интеграция помогает справиться с ними.
Читать полностью »

Страх и ненависть в Multipeer Connectivity - 1

Автор: Роман Ивченко, iOS developer DataArt.

Введение

Наверняка каждый, кто хоть раз занимался поиском готового решения для обмена сообщениями, файлами, стримами между iOS-устройствами без использования серверной части, слышал о фреймворке Multipeer Connectivity, выпущенном в iOS 7.

Вцелом это один из самых инновационных фреймворков, выпущенных в 7-й версии системы. Он должен был заменить слегка устаревший CoreBluetooth.

Чтобы познать всю мощь и силу Multipeer Connectivity, мы попробовали обкатать его в нашем R&D-проекте, задача которого весьма проста — шаринг презентаций и синхронизация переключения слайдов между устройствами слушателей и устройством докладчика на конференциях, в учебных аудиториях и т. д.

Краткий обзор

Для реализации нашей задачи фреймворк, на первый взгляд, очень хорошо вписывался в архитектуру приложения. Условно у нас есть всего два типа пользователей — докладчик и слушатель. Multipeer Connectivity как раз предоставляет необходимые классы для имплементации функционала каждого типа пользователя.

Статья не претендует на полное освещение всех тонкостей фреймворка, а больше рассказывает о его проблемах и надежности. Все технические детали можно узнать в документации Apple.
Читать полностью »

Мобильные приложения и PA-DSS - 1

Автор: Роман Денисенко, старший инженер по тестированию.

Из-за специфики моей работы, мне часто задают вопросы вида «у нас есть прекрасное мобильное приложение, и мы собираемся добавить в него возможность платежей банковскими картами. Но мы немного обеспокоены по поводу стандарта PCI PA-DSS. Что нам следует делать?». Чтобы облегчить себе жизнь, я решил написать статью, разъясняющую отношение стандарта PCI PA-DSS к рядовым мобильным приложениям, живущим в миллионах мобильников по всему миру.

Для начала давайте вспомним, что такое PCI PA-DSS и с чем его вообще едят. Стандарт PA-DSS был разработан PCI SSC (Payment Card Industry Security Standards Council) и является своего родом адаптацией требований стандарта PCI DSS к отдельным приложениям. Действие стандарта распространяется на все приложения, обрабатывающие данные о держателях карт. Его основная функция — реализация возможности безболезненной интеграции сертифицированного платежного приложения в инфраструктуру, работающую в рамках стандарта PCI DSS. Таким образом, любая компания, сертифицируемая по стандарту PCI DSS, может использовать PA-DSS-сертифицированный софт внутри своей инфраструктуры без каких-либо дополнительных проверок.
Читать полностью »

Петр Малкин: «Хотелось, чтобы потом не было стыдно за прожитые годы» - 1

Петр Малкин работал в DataArt в 2005—2006 годах, но ушел из компании, чтобы стать профессиональным спортсменом-каякером. Чудом не погибнув в бурной речке, Малкин переехал в США — писал игры, работал в Panasonic, а в конце концов очутился в одном из самых секретных подразделений Google, которое занималось разработкой очков дополненной реальности Google Glass. О всех своих приключениях Петр рассказал в интервью Тане Андриановой.

— Расскажи, чем ты занимался до DataArt и как к нам попал? Мне казалось, ты какие-то игры делал?

— Ну почти. Я закончил ФТК (Факультет технической кибернетики — прим. ред.), Политех и поначалу занимался разными вещами. Делал софт для моделирования лазерной сварки металлов, строил роботов для атомных электростанций. Потом меня мой профессор, с которым я роботов делал, звал быть кандидатом наук. Он мне говорил: «Давай я научу тебя своей науке, а то ты так всю жизнь и будешь программистом». А я ему говорю: «Так я этого и хочу!» На том мы и расстались.

И я пошел писать компьютерные игры в разных конторах, потому что платили там в три раза больше. Одна из контор, кстати, была очень прикольная, называлась Driver Inter. Ее основали два профессора в Политехе и они набирали ребят, которые программировать не умели, но были соображалистые. И в итоге они на кафедре выделили одну большую комнату, где собирались студенты и писали игры. Качество кода было так себе, но зато было очень прикольно работать.

А потом в какой-то момент я занялся лодками. Каякингом.
Читать полностью »

Использование JMeter для организации распределенной нагрузки - 1

Автор: Роман Денисенко, старший инженер по тестированию DataArt.

Введение

Довольно часто при тестировании производительности возникает задача нагрузить слишком высокопроизводительную систему, способную без проблем переваривать огромное количество одновременных запросов. Или возможна ситуация, когда подопытная система очень чувствительно относится к источнику нагрузки, балансируя свои вычислительные мощности в зависимости от географического расположения клиентов.

Для генерации такой нагрузки возможностей одной тестовой машины становится уже недостаточно. И тогда возникает классический вопрос — как можно воспроизвести подобную нагрузку с минимумом затрат и максимумом результата.

К счастью, большая часть современных программных средств, используемых для нагрузочного тестирования, позволяет использовать дополнительные удаленные агенты, необходимые для эмуляции распределенной нагрузки. В рамках данной статьи я хотел бы рассмотреть возможность создания нагрузочного кластера на примере, думаю, одной из самых распространенных программ, используемых тестировщиками, — великого и ужасного Apache JMeter`а.
Читать полностью »

Роман Чернышев: «Нас ждет медицина предупреждающая вместо медицины реагирующей» - 1

Продолжаем серию интервью с лидерами индустриальных практик DataArt. Наши редакторы Даниэль Лурье и Вадим Мазин поговорили о медицинских технологиях с Романом Чернышевым, лидером медицинской практики. Обсудили медицинские wearables, «умные протезы», консервативность индустрии, Big Data в медицине и многое другое.

— Кто сейчас главный на рынке медтеха — стартапы или корпорации?

— На этот вопрос нет простого ответа. Медицина в силу неизбежной консервативности очень медленно адаптируется к новым технологиям. Здесь — огромный потенциал, множество новых идей и технологий, которые обещают перевернуть все с ног на голову и сделать медицину абсолютно другой, но это обновление займет очень долгое время. Все инновационные идеи проходят через несколько продолжительных этапов — от зарождения в стартапах и академических учреждениях, где они обкатываются, но большого влияния на индустрию не имеют, до осознания потенциала большими игроками, которые уже имеют ресурсы для изменения ландшафта и перевода инноваций в мейнстрим.

Приведу пример. Пару лет назад было множество стартапов, которые создавали решения для телемедицины — всякие платформы, с помощью которых люди могли получить медицинскую консультацию удаленно. Это было невероятно популярное направление, однако широкого внедрения так и не случилось. Сейчас ситуация постепенно меняется — индустрия начинает принимать правила игры. Буквально месяц назад к DataArt обратилась одна из крупнейших в мире страховых компаний, чтобы мы разработали именно такой проект — решение для телемедицины. Вот у них, с их ресурсами, с их проникновением везде и всюду и серьезным влиянием на индустрию, есть шанс кардинально поменять все сложившиеся правила. А всего пару лет назад им это было абсолютно неинтересно.

Я думаю, через пять лет там, где сейчас обосновались стартапы, будут большие компании. Но появятся новые ниши, которые создадут и займут новые стартапы. Именно этот процесс и двигает индустрию вперед.
Читать полностью »

Разработка плагинов для Atlassian JIRA - 1

Все мы в IT сталкивались с системами отслеживания ошибок — с так называемыми баг-трекерами, с issue-трекерами. Один из популярных продуктов такого рода — Atlassian JIRA.

На самом деле, Atlassian JIRA — это больше, чем просто система отслеживания ошибок. JIRA может использоваться довольно широко — в том числе и для управления проектами. Можно сказать, что JIRA — это система для отслеживания статуса задач. Задачи могут быть разными: это сбор требований, тестирование, непосредственно разработка и т. д. Я видел даже попытки подсадить на JIRA бухгалтеров — а что, мол, будет у нас agile-бухгалтерия!

На официальном же сайте JIRA описывается следующим образом:
JIRA is the tracker for teams planning and building great products. Thousands of teams choose JIRA to capture and organize issues, assign work, and follow team activity. At your desk or on the go with the new mobile interface, JIRA helps your team get the job done. В общем, основная идея JIRA в том, что она позволяет планировать работу.

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

Успешный старт: IoT-саммит в Нью-Йорке и умный вентилятор - 1

DataArt с друзьями из Microsoft и Canonical провел первый ежегодный Open Source IoT Summit в Нью-Йорке. Несколько десятков лидеров индустрии собрались в конференц-центре Microsoft 12 ноября, чтобы обсудить самое актуальное и определить будущее индустрии интернета вещей.

Одной из главных тем саммита стал DeviceHive, разработанный DataArt, функционирующий на Ubuntu от Canonical и доступный в Microsoft Azure Marketplace. Эта платформа позволяет в кратчайшие сроки создать легко поддерживаемое IoT-решение с неограниченным количеством устройств, простое в разработке и не требующее никакого дополнительного ПО.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js