Проектування Web API в 7 кроків

7stepsРозробка веб API це щось більше ніж просто URL, HTTP статус-коди, заголовки і зміст запиту. Процес проектування — те, як буде виглядати і сприйматися ваш API — дуже важливий і є хорошою інвестицією в успіх вашої справи. Ця стаття стисло описує методологію для проектування API з опорою на переваги веба і протоколу HTTP, зокрема. Але не варто думати, що це застосовно тільки для HTTP. Якщо з якоїсь причини вам необхідно реалізувати роботу ваших сервісів використовуючи WebSockets, XMPP, MQTT і так далі, застосовуючи більшу частину всіх рекомендацій ви отримаєте практично той же API, який буде добре працювати. До того ж отриманий API дозволить легше розробити і підтримувати роботу поверх декількох протоколів.

Хороший дизайн зачіпає URL, статус-коди, заголовки і зміст запиту
Зазвичай керівництва по проектуванню Web API фокусуються на загальних концепціях: як проектувати URL, як правильно використовувати HTTP статус-коди, методи, що передавати в заголовках і як спроектувати дизайн вмісту, яке представлене сериализованными даними або графом об'єктів. Це все дуже важливі деталі реалізації, але не настільки в сенсі загального проектування API. Проектування API — це те, як сама суть сервісу буде описана і представлена, то що вносить значний внесок в успіх і зручність використання Web API.

Хороший процес проектування або методологія надають набір узгоджених і відтворюваних кроків для створення компонентів сервісів, які будуть доступні у вигляді Web API. Це означає, що така прозора методологія може бути використана розробниками, дизайнерами та архітекторами для координації своїх дій з реалізації. Використана методологія так само може уточняться з часом по мірі того, як поліпшується і автоматизується процес без шкоди для деталей методології. Насправді, деталі реалізації можуть змінюватися (наприклад, платформа, ОС, фреймворки і стиль UI) незалежно від процесу проектування, коли ці дві активності повністю розділені і задокументовані.

Читати далі →

Гугл пропонує посилити JSON з допомогою Jsonnet

Гугл відкрила вихідний код свого проекту Jsonnet мови для конфігурації, який замінює стандартний JSON і додає нові можливості без порушення зворотної сумісності. Серед таких можливостей: коментарі, посилання, арифметичні та умовні оператори, масиви і робота з об'єктами, імпорт, функції, локальні змінні. Програми на Jsonnet транслюються в сумісний формат JSON даний.

Коментарі. Jsonnet бере коментарі у стилі С ( /*… */ ) і З++ ( // )

Посилання. Ключове слово self може бути використано для посилання на даний об'єкт. Оператор $ дозволяє використовувати кореневий об'єкт.

Арифметичні та умовні оператори. Оператор + може складати числа, рядки, масиви і об'єкти. Оператори == та != повертають true або false. Оператор if працює як тернарний оператор ?: в С. Далі кілька прикладом з операторами мови і результат. Приклади взяті зі сторінки проекту.
// bar_menu.3.jsonnet
{
foo: 3,
bar: 2 * self.foo // Multiplication.
baz: "The value " + self.bar + " is "
+ (if self.bar > 5 then "large" else "small") + ".",
array: [1, 2, 3] + [4],
obj: {a: 1, b: 2} + {b: 3, c: 4},
equality: 1 == "1",
}

Читати далі →

Характеристики микросервисов, додатків і систем

Всім привіт!



Увазі хабрасообщества хочу представити цікаву презентацію Стефана Тилькова, зі засновника і головного консультанта в innoQ. Стефан розповідає про ідею поділу великих систем на невеликі додатки, які відповідають за різні аспекти системи. Сама ідея не нова, але автор упирає на те, що основною причиною такого поділу повинна бути ізоляція. Завдяки кордонів додатків отриманих таким чином, складніше отримати пов'язані модулі, які насправді повинні бути незалежними. Тут ще можна згадати підхід «domains boundary», для поділу доменних сутностей по областях застосування, замість того, щоб створювати єдину модель даних на всю велику організацію/процес.

Додатковим плюсом ізоляції є можливість точково масштабувати частини системи в залежності від навантажень. Цей процес можна локалізувати в одній команді, щоб вони пропорційно своїм знаннями та інструментами виконували завдання в межах окремої підсистеми.

Читати далі →

Конференція SkillsWiki: .NET-розробник очима роботодавців Росії і зарубіжжя

Зовсім скоро 29.04.2015 в офісі B2B-Center пройде безкоштовна конференція спільноти SkillsWiki про професійний розвиток.

Програма доповідей:
  1. «Навички .NET-розробника очима американських і російських роботодавців» — Олексій Воронін, NVision Software Solutions.
  2. «За що вам платять гроші на роботі?» — Олексій Косарчук, Positive Technologies.
Що цікавого чекає на вас на конференції? Ви дізнаєтеся, які навички вимагаються від .NET-розробника на американському ринку. Ви зможете оцінити, ви крокуєте в ногу з часом. Тільки знання і навички визначають рівень вашої заробітної плати, або є ще важливі фактори, які визначають вашу цінність з точки зору роботодавця? Як говорити з роботодавцем про вашому зростанні та підвищенні заробітної плати.

Реєстрація на безкоштовну конференцію SkillsWiki: http://skillswiki.timepad.ru/event/193115.


Читати далі →

Управління API і SOA

Досягнення початкового успіху для Сервіс-орієнтованої Архітектури (Service Oriented Architecture, SOA) визначається:
  • створенням слабосвязанних сполук «споживач-постачальник»,
  • дотримання принципу поділу відповідальності між споживачем і постачальником,
  • публікація набору повторно використовуються, загальних сервісів
  • і забезпечення того, щоб споживачі прийняли і стали використовувати сервіс.
Безліч команд розробників створюють і використовують сервіси, але досі йде болісний підбір архітектури, при якій сервіси будуть широко використані, з потенціалом для повторного використання внутрішніми командами розробки. Замість створення узгодженої сервісної архітектури та демонстрації множинного використання одних і тих же сервісів, розробники знову і знову не навмисно створюють «Просто Набір Веб Сервісів» (Just a Bunch of Web Services (JBOWS)) або Просто Набір REST Сервісів» (Just a Bunch of REST Services (JBORS)).

Просте додаток найчастіше працює з певним сервісом і спагетті-мережею кінцевих точок, постачальників даних цього сервісу, які переплетені зв'язками один-до-одного. Багато команд в цьому випадку сходяться на думці що фокус на SOA і REST не те щоб допомагав у вирішенні питань гнучкості рішень. Швидше просто відбувається підміна набору IT інструментів, форматів повідомлень і протоколів.

Управління SOA, API, та додатком може стати мостом між цими концепціями і поліпшити архітектурну узгодженість всього рішення.

Сервіси, API та архітектура
Коли ви будете вирішувати, що використовувати як кращі практики для сервіс-орієнтованої архітектури, визначати дизайн RESTful сервісів, коли будете формувати план по управлінню ними, чітко визначте, як ваші сервіси і API разом будуть укладатися в загальну архітектурну картину.

Читати далі →

WPF 4.6 і подальші плани

На недавно минулій онлайн конференції dotNetConf організованою Microsoft, розповідалося безліч цікавих речей. І коли незабаром була велика кількість дискусій з приводу WPF, що він живіший за всіх живих, то хочеться зробити короткий огляд доповіді програмних менеджерів WPF, що нового нас чекає в релізі, що вже можна подивитися і до чого все йде. Дійсно все так погано і буде аналог нового движка для WPF, як наприклад Razor для ASP.NET.

12 листопада 2014 року блог WPF ожив (зараз активний теж) і був представлений генеральний план розвитку фреймворку.


Тут і далі, скріншоти з відео, так що якість не дуже, але розгледіти все можна.

На початку виступу, провідні Уні Равиндранатан (Unni Ravindranathan) і Харикришна Менон (Harikrishna Menon) обмовилися, що є речі, які ще перебувають у розробці, і вони не мають права про них розповідати, NDA і все таке. Але те що вони можуть показати, вселяє оптимізм і видно, що робота йде. Забігаючи вперед, скажу, що перш за все розробники подумали про швидкодію, наприклад, як скоротити візуальне дерево для конкретної цільової платформи.

Читати далі →

Презентації 27 доповідей наших конференцій з C#



Ми вирішили поділитися матеріалами минулих трьох конференцій і нагадати, що зовсім скоро, 11 квітня, відбудеться конференція Go# Desktop UI & Business Applications. Всі презентації доступні на SlideShare. Просто натискайте на посилання з назвами доповідей в цьому пості.

Читати далі →

Подання спікерів конференції Desktop UI & Business Application. Про UI

Всім привіт!

Днями ми розповіли, що на конференції увійде в частину присвяченій бэкенду, сьогодні ми розповімо, які теми будуть порушені спікерами щодо інтерфейсу у сфері ентерпрайз і проблем, пов'язаних з ним.



І перш ніж ми перейдемо до опису доповідей і чому вони важливі, скажімо, що картинка для привернення уваги вибрана не просто так. У нас організувалися приємні подарунки для нових учасників конференції. Подробиці нижче.

Є така проблема, називається «проблема чистого аркуша». Це коли в тебе є завдання, і ти сидиш перед чистим аркушем паперу або новим проектом в студії і не знаєш з якого краю почати. Досвідчені люди скажуть, що почни з будь-якого місця, хоч з середини, а далі все піде як по маслу, початок або якісь початкові фази можна дописати потім. А ще завжди легше правити вже створене, ніж самому щось створювати з нуля. У програмуванні проблема створення з нуля коштує вже не так гостро, тому що є величезна кількість різних генераторів коду, на основі наданих даних. У деякому роді це швидке прототипування, на основі якого вже можна пробувати і розвивати ідеї бізнесу.


Читати далі →

Подання спікерів конференції Desktop UI & Business Application. Про бекенд

Всім привіт!

Сьогодні ми хочемо розповісти про те, які цікаві теми ви зможете обговорити зі спікерами і знайти небайдужих до цих тем людей.

Ні для кого не секрет, що основною метою наших конференцій є дати можливість людям познайомитися на грунті професійних інтересів. Доповіді є їжею для роздумів та вступною частиною до подальших дискусій різного ступеня детальності. На наш погляд, таке спілкування сприяє усвідомленню власних переконань більш глибокої мірі, так як ви стикаєтеся з іншими, часом діаметрально протилежними думками. Так що ж приготовлено для конференції Desktop UI & Business Application?



Спочатку уявімо теми, які відносяться до бэкенду, до серверної частини, яка буде цікава всім розробникам, зайнятим у сфері ентерпрайз розробки. Тобто це і WPF, і WinForm, і ASP.NET.

Історія уявлення реальних даних і процесів у світі програм має багату та довгу історію. Можна сказати, що все почалося з транзакційних скриптів, та процедурного програмування. Коли доменну модель намагалися повністю представити у вигляді набору процедур і даних, які зберігаються в базі даних. По суті, все крутилося навколо таблиць. Кроком вперед, разом з ООП розробкою стала модель табличних даних, які вже були представлені набором даних в пам'яті програми. Тепер таблиці стали відправною точкою у поданні доменної логіки. Процедури вже не оголошувалися в глобальному просторі імен, а були «пристебнуті» до певної таблиці, в залежності від своїх функцій. Подальше здешевлення та поширення комп'ютерів призвело до того, що все більш широке застосування знаходило комп'ютерне моделювання. В той же час складні реальні доменні моделі треба було відображати як можна простіше для підтримки і розширення. Так Мартін Фаулер запропонував, а Ерік Еванс розвинув ідею Domain Driven Design, якої зараз притримується більшість, в тій чи іншій мірі.

Читати далі →

Бекенд і «золоті молотки»

Привіт, колеги!

Зовсім недавно ми анонсували конференцію, присвячену Desktop UI & Business Application. В підтримку, щоб подивитися на настрої публіки, була опублікована стаття «WPF живіший за всіх живих», яка виявилася дискусійною і змусила нас в дещо іншому світлі поглянути на те, що і як ми хочемо донести до широкої публіки.

Як показали коментарі, що не WPF єдиним живе десктоп розробка. Є порти Qt .NET, WinRT, якщо в епсилон околиця від дефолт-сіті є специ з цим технологіям, які хочуть висловитися — у нас є трибуна! Для цього все і задумано, щоб показати різні варіанти для ваших проектів.



Буквально вчора закінчилася онлайн конференція dotNetConf 2015, яку, виходячи з повідомлень, Microsoft швидше відродила, ніж придумала заново. Конференція, судячи за змістом намагається покрити всі основні області використання мови, це мультиплатформеність, веб, десктоп, доставка додатків, інтеграція з Xamarin, майбутнє .NET, .NET Core, Roslyn Analyzer та інші теми. На мій погляд, це генеральна репетиція перед конференцією //build, яка відбудеться в кінці квітня-початку травня.

Про золоті молотки
Крім WPF для ентерпрайз розробників є ще багато тем, на яке можна поговорити, і левова частка розмов завжди впирається в бекенд. Різних дизайн-шаблонів для корпоративних додатків дуже багато, і велика їх частина присвячена бэкенду. Мартін Фаулер присвятив цьому книги, яка, наскільки я зміг побачити за час тренінгів, є настільною для багатьох розробників і тім-лідів. З шаблонів, описаних там, виростають конкретні інструменти, які дозволяють вирішувати завдання найбільш ефективним способом.

Читати далі →