GitLab для Continuous Delivery проекта на технологиях InterSystems

В данной статье хотелось бы рассказать про организацию процессов Continuous Integration / Continuous Delivery, автоматизирующих сборку, тестирование и доставку приложений на платформах InterSystems.

Рассмотрим такие темы как:

  • Git 101
  • Методологии разработки (Git flow)
  • GitHub flow
  • GitLab flow
  • GitLab
  • GitLab CI

Читать далее

Построение RESTful web API на платформе InterSystems — 2

Введение

Четыре года назад я написал свою первую статью на Хабре и она была посвящена созданию RESTful web API на платформе InterSystems. С тех пор прошло немало времени и вышло несколько новых релизов, которые значительно упростили работу по созданию RESTful web API. Вот об этих изменениях я и хочу рассказать в этой статье, а также дать несколько советов по созданию RESTful web API на платформе InterSystems.
Читать далее

RESTForms — REST API для ваших классов InterSystems Caché

В этой статье я хотел бы представить проект RESTForms – универсальный REST API бэкэнд на InterSystems Caché 2016.1+ для современных веб-приложений. Идея проекта проста – после написания нескольких REST API стало понятно, что, как правило, REST API состоит из двух частей:

  • Работа с хранимыми данными
  • Пользовательская бизнес-логика

И, хотя вам придется писать свою собственную бизнес-логику, RESTForms предоставляет все необходимое для работы с хранимыми данными из коробки.

Читать далее

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

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

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

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

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

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

Как я разбирал docx с помощью XSLT

Задача обработки документов в формате docx, а также таблиц xlsx и презентаций pptx является весьма нетривиальной. В этой статье расскажу как научиться парсить, создавать и обрабатывать такие документы используя только XSLT и ZIP архиватор.

Читать далее

Класс удаленного прокси — это не (очень) больно

image (Динамическая диспетчеризация спешит на помощь)

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

На определенном этапе написания системы, типа MapReduce, встает задача удобного вызова удаленных методов и процедур (например, посылка управляющих сообщений с контроллера на сторону управляемых узлов). В среде Caché есть несколько простых, но не очень удобных методов достичь этой цели, тогда как хочется бы получить именно удобный.
Читать далее

MapReduce из подручных материалов. Часть III – собираем все вместе

image
В первой (достаточно капитанской) части этой серии мы рассказали про базовые концепции MapReduce почему это плохо, почему это неизбежно, и как с этим жить в других средах разработки (если вы не про Си++ или Java). Во второй части мы-таки начали рассказывать про базовые классы реализации MapReduce на Caché ObjectScript, введя абстрактные интерфейсы и их первичные реализации.
Сегодня пришел наш день! – мы покажем первый пример собранный в парадигме MapReduce, да, он будет странный и не самый эффективный, и совсем не распределенный, но вполне MapReduce.

Читать далее

MapReduce из подручных материалов. Часть II – базовые интерфейсы реализации

image
В предыдущей части серии мы (в 100500й раз) попытались рассказать про основные приемы и стадии подхода Google MapReduce, должен признаться, что первая часть была намерено “капитанской”, чтобы дать знать о MapReduce целевой аудитории последующих статей. Мы не успели показать ни строчки того, как всё это мы собираемся реализовывать в Caché ObjectScript. И про это наша рассказ сегодня (и в последующие дни).

Напомним первоначальный посыл нашего мини-проекта: вы всё еще планируем реализовать MapReduce алгоритм используя те подручные средства, что есть в Caché ObjectScript. При создании интерфейсов, мы попытаемся придерживаться того API, что мы описали в предыдущей статье про оригинальную реализацию Google MapReduce, любые девиации будут озвучены соответствующе.
Читать далее

UDL-поддержка

Вы когда нибудь задумывались, почему вы пишете код на Caché Object Script, а он экспортируется в XML файл?

image

Так вот, пора меняться. Начиная с выхода новой среды разработки Atelier и версии Caché 2016.2, у вас будет возможность экспортировать и импортировать файлы в формате, в котором вы пишете в студии, так называемый формат UDL (Universal Definition Language). Теперь вы сможете писать код, который не только быстро работает, но еще и приятен глазу в экспортированном виде. Но, возникает другая, не менее важная проблема: если все новые проекты будут находиться в UDL формате, то, кто позаботиться об обратной совместимости?
Читать далее

Разработка в InterSystems Caché в вашей любимой IDE

image Здравствуйте! В InterSystems Caché есть вполне практичный способ разрабатывать решения без использования интегрированных в неё инструментов. Весь код проекта можно хранить в виде традиционных файлов с исходным кодом, редактировать в любимой среде разработки, индексировать системой контроля версий и одной командой выполнять импорт и компиляцию классов в СУБД Caché. Более того, это предоставляет возможность использовать любые другие внешние инструменты, например, для сборки и препроцессинга кода. В данной статье будет рассмотрен пока что не традиционный для Caché, но достаточно практичный цикл разработки проектов.