К основному контенту

Casablanca или облачный C++

Я уже упоминал о проекте Casablanca в своем отчете о TechEd Europe.
На австралийском TechEd была сессия посвященная этой теме.

Что такое Casablanca и для чего она нужна. Изначально этот проект задумывался как C++ библитека для реализации Azure server-side сервисов. Итогом должен стать Azure SDK for C++ для написания полноценных end-to-end Azure приложений.
Для чего понадобилось писать C++ библиотеку? Ведь уже сейчас можно решать множество задач в Azure используя C#.
Ответ прост, и Microsoft использует его всегда, когда отвечает на вопросы о том, почему они вспомнили о C++:

  • близость к железу, отсюда производительность
  • портируемость кода
  • возможность использовать написанный ранее С++ код (они его называют legacy code, но мы помним, что так называется код без тестов :) )
Особенности реализации Casablanca показывают, что написана она была под влиянием новомодного Node.js
В слайдкасте на 16 минуте можно увидеть пример одного и того же приложения, написанного на Node и на Casablanca: практически 1:1
Почему Node привлекает? Это асинхронные операции, большое количество расширений и библиотек, а также простота реализации. Похожее попытались сделать и в Casablanca.

В библиотеке активно используются новшества C++11 (в первую очередь lambda). Возможно также использование новой библитеки PPL (Parallel Patterns Library)

Кроме этого Casablanca содержит классы для написания REST-сервисов и клиентов к ним, классы для работы c JSON, а также SDK for Azure Storage.
Насколько я понял REST и JSON можно использовать и без Azure (но буду подробнее читать в документации и надо попробовать).

Update: Casablanca официально зарелизили as C++ REST SDK. Пост с примерами. Пример использования этого API для подключения к Facebook.

Сам слайдкаст

Timeline:
до 8 мин:  вводная часть. Что такое Casablanca и зачем нужна
8-14 мин: демо, сервис Hello World :)
12 мин:     хорошо известная проблема с размером precompile header'a. Даже на демах об нее спотыкаются... мда
21-29 мин демо REST сервис на C++, работа с JSON (удобно кстати)

Дальше примеры использования облачных мощностей: сервис конвертации текста в речь, обработка изображений и тп.

ЗЫ если фотографии в одной из демок были сделаны во время сессии, то народа там было не густо :)

Комментарии

Отправка комментария

Популярные сообщения из этого блога

Mock vs Stub

Когда мы начали изучать модульное тестирование, то одними из первых терминов, с которыми пришлось познакомиться, стали Mock и Stub. Ниже попробуем порассуждать в чем их сходство и различие, как и для чего они применяются. Проверять работоспособность тестируемого объекта (system uder test - SUT) можно двумя способами: оценивая состояние объекта или его поведение. В первом случае проверка правильности работы метода SUT заключается в оценке состояния самого SUT, а также взаимодействующих объектов, после вызова этого метода. Во-втором, мы проверяем набор и порядок действий (вызовов методов взаимодействующих объектов, других методов SUT), которое должен совершить метод SUT. Собственно, если коротко, то в одном случае используется Stub, а в другом Mock. Это объекты, которые создаются и используются взамен реальных объектов, с которым взаимодействует SUT в процессе своей работы. Теперь подробнее. Gerard Meszaros использует термин Test Double (дублер), как обозначение для объек

План "Б" или как прикольно провести субботний день

Всем привет. Вчера состоялась конференция " План Б ". Организаторами выступили ребята из Яндекса, за что им большое спасибо. Судя по приблизительным подсчетам в мероприятии участвовало около 200 человек. Основной темой конференции было планирование, планирование всего: проектов, разработки, тестирования, дизайнеров и даже организации музыкального фестиваля. Сначала думал написать отчет в обычном своем стиле: кто и что говорил, но почитав твиттер по #pbconf понял, что просто потеряю время :) Поэтому кому оооочень интересно узнать подробности следуйте за птичкой и вы все узнаете (тэг #pbconf попал в top-30 твиттера) Здесь приведу лишь те вещи, которые мне запали в мозг Роман Чернин о продуктовой разработке: "нет заказчика, нет требований, нет сроков -> как принимать решения? ответ: заводим себе Product Manager-а" Оля Павлова (@op): "бойтесь иллюзии точной формулировки" "заказчик - ребенок, выдаем ему игрушку как можно ча

Переключите тумблер или умные люди дурного не посоветуют

Навеяно интересными вопросами про TDD после  вчерашнего выступления . Uncle Bob : " Flipping the Bit " Подробнее постараюсь перевести чуть позже, пока только это: Как определить, что у коллеги (или у вас) ТУМБЛЕР переключен?  Если ваши ответы на вопросы ниже совпадают с приведенными - то все хорошо :) Мантра: Сможете ли вы выполнить работу быстрее используя TDD? ДА Существуют ли какие-либо задачи, которые вы можете выполнить быстрее без TDD? НЕТ Я понимаю, что TDD может помочь в долгом проекте, а что если у вас короткая задача? Будете использовать TDD? Да, потому что TDD быстрее даже в короткой перспективе Что если времени реально не хватает, и босс стоит над душой, будете ли вы использовать TDD? ДА В любом случае? ДА Есть ли случаи, когда вам не нужно использовать TDD? НЕТ Представьте себе что вы на звездном корабле Enterprise ( Star track ) и осталась всего секунда до взрыва антиматерии. Все что вам нужно, чтобы избежать этого, поменять один IF. Будете ли вы и