Atlas: три напрямки використання фреймворка для .NET-інженерів

1 серпня
Atlas: три напрямки використання фреймворка для .NET-інженерів
DataArt виклав Atlas Framework для розробки хмарних додатків на GitHub під ліцензією Apache 2.0

Atlas дозволяє забезпечити безперервну інтеграцію та доставку коду з першого дня розробки, допомагає вибрати, розгорнути й налаштувати основні інструменти міграції у хмару. Він сумісний з .NET Standard і може бути корисним як у реальних бізнес-проектах, так і в якості майданчика для навчання та випробування нових інтеграцій.

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

Микита Козлов, Solutions-архітектор DataArt і один з творців проекту, розповів про три основні напрямки можливого використання Atlas:

  1. Підтримка декількох платформ

    При розробці мовою C# в якості рантайму ми можемо говорити про .NET Framework бо про більш сучасний багатоплатформний .NET Core. Статей про те, як мігрувати проект з .NET Framework на .NET Core, є досить багато. Проте, знайти на GitHub хороший приклад, який дозволяє зрозуміти, з чим реально належить зіткнутися при такій міграції, дуже складно. Як правило, автори рекомендацій використовують прості програми, несхожі на системи, з якими доводиться мати справу в житті. Atlas допомагає розібратися, як паралельно підтримувати обидва фреймворки та чим така спроба загрожує.

    Сам Atlas спочатку розроблявся під .NET Framework 4.5.2, пізніше було додано сумісність із .NET Standard 2.0 — проект дозволяє детально розглянути, як це було зроблено.

  2. Пісочниця для нових інтеграцій

    Я сам із задоволенням користуюся кодом Atlas як пісочницею. Тут є готові компоненти, до яких можна додавати нову функціональність, пробувати нові бібліотеки. При цьому Atlas має готове ядро, наприклад, з вибудованими механізмами обробки вилучень і логування, що дозволяє перевірити нового вендора, не відволікаючись на сторонні речі.

    Припустимо, ми маємо брокер повідомлень і декілька сервісів. Один сервіс відправляє повідомлення, інший його отримує і щось робить. Припустимо, ви користувалися RabbitMQ, а при переїзді у хмару вирішили спробувати Azure Service Bus. Для тестування нової інтеграції зручно мати готове оточення — Atlas дозволяє швидко підняти декілька сервісів за шаблоном. Інтеграція відбувається через сторонні компоненти, Atlas вже має відповідні абстракції. Залишається підкласти правильну реалізацію.

    Atlas дає можливість познайомитися та випробувати різні архітектурні патерни при розробці ПЗ, наприклад: кореляція викликів, структурне логування і т.ін.

  3. Code conventions

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

    Ми будемо всіляко вітати поліпшення проекту з боку розробників і запрошуємо всіх ділитися досвідом його використання.