Контент как Код

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Предыстория проста. В нашем банке существует множество продуктов, контент которых нуждается в едином способе управления. Одни продукты построены на классических CMS, другие вовсе требуют усилий разработчиков для обновления информации на портале. Ситуация усугубляется требованием миграции всех продуктов в банковскую облачную платформу, построенную по принципу PaaS. Это означает, что поддержка какого то определённого сервиса (Kafka, Elasticsearch, PorstreSQL, и т. д.) или, тем более, системы (WordPress, Magento, Drupal, и т. д.) требует согласования и разработки в рамках платформы. И если абсолютно всех и в долгосрочной перспективе устраивает пресловутый WordPress, то с учетом прочих приоритетов его поддержка будет реализована со временем.

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

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

  • Что такое контент?

  • Как готовить?

  • Где хранить?

  • Как управлять?

  • Как поставлять?

Если вы хорошо знакомы с терминами Headless CMS, Content as Code, SSG, SSR, CDN и прочими трёхбуквенные аббревиатуры, то листайте сразу в комментарии, чтобы поделиться опытом.

Код

Один мой хороший товарищ в детстве мечтал стать программистом и представлял себе этот процесс как диалог с компьютером. Описываешь желаемое, отвечаешь на уточняющие вопросы и вуаля — приложение готово. Каково же было его «удивление», когда ему, в результате, пришлось программировать микроконтроллеры семейства 8051 на языке C51 и ассемблере.

С тех пор многое изменилось. Нейросети нашли широкое применение после стольких лет «забвения», стат. анализ претерпел ребрендинг и обрёл популярность в виде data science, визуальное программирование постепенно возрождается в новом качестве... Диалог с PC (и не только), хоть и не в контексте программирования, стал привычным/массовым явлением. Параллельно с этими процессами эволюционировало и понимание того, что именно можно называть «кодом», и это название теперь применимо к очень разным вещам.

Так каким может быть «код» сегодня?

Гипотетический сайт (React/JSX):

export const MainPage = () => (
  <TilesList>
	  <Tile link="/products" back={productsImage}>Цифровые <em>продукты</em></Tile>
	  <Tile link="/startups" secondary back={startupImage}>Стартапы</Tile>
	  <Tile link="/come-with-us" secondary>Стать частью <em>команды</em></Tile>
  </TilesList>
)

AWS CDK декларация SQS очереди, лямбда функции для отправки сообщений в очередь и REST API «вокруг» этой функции. По сути это конфигурация, которая может быть преобразована в YAML формат:

const myVpc = new ec2.Vpc(this, "MyVPC");
const myCluster = new ecs.Cluster(this, "MyCluster", { vpc: myVpc });

const myQueueProcessingService = new ecs_patterns.QueueProcessingFargateService(this, "MyQueueProcessingService", {
  cluster: myCluster,
  image: ecs.ContainerImage.fromAsset("my-queue-consumer")
});

const myFunction = new lambda.Function(this, "MyFrontendFunction", {
  runtime: lambda.Runtime.NODEJS_14_X,
  handler: "index.handler",
  code: lambda.Code.asset("my-front-end"),
  environment: {
    QUEUE_NAME: myQueueProcessingService.sqsQueue.queueName
  }
});
myQueueProcessingService.sqsQueue.grantSendMessages(myFunction);

const myApi = new apigateway.LambdaRestApi(this, "MyFrontendApi", {
  handler: myFunction
});

Термостат (нечеткая логика):

ЕСЛИ Температура ЕСТЬ Очень_Холодно ТО Мощность ЕСТЬ Максимум
ЕСЛИ Температура ЕСТЬ Холодно ТО Мощность ЕСТЬ Норма
ЕСЛИ Температура ЕСТЬ Норма ТО Мощность ЕСТЬ Минимум
ЕСЛИ Температура ЕСТЬ Тепло ТО Мощность ЕСТЬ Выключено

Всё это примеры кода, призванные показать многогранность этого понятия. Многое можно обозначить ёмким термином код, в самых разных областях.

Контент

Источник: https://habr.com/ru/post/653723/


Интересные статьи

Интересные статьи

Привет! Меня зовут Саша Шутай, я тимлид в AGIMA. В прошлой статье я рассказывал, что делать, если на проекте Bitrix сожительствует с Vue.js и поисковые боты не видят контента сайта. А в этой помогу ра...
Всем привет! Меня зовут Андрей Яковенко и я являюсь руководителем группы FE-разработки. Сегодня хочу рассказать о способе позволяющем автоматизировать и, что немаловажно, упростить разработку виджетов...
.NET Conf 2021 была крупнейшей .NET Conf когда-либо с более чем 80 сессиями от докладчиков со всего мира! Мы хотим сказать огромное спасибо всем, кто выступил в прямом эфире, задавал вопросы в ленте T...
Как-то у нас исторически сложилось, что Менеджеры сидят в Битрикс КП, а Разработчики в Jira. Менеджеры привыкли ставить и решать задачи через КП, Разработчики — через Джиру.
Компании переполнили рынок товаров и услуг предложениями. Разнообразие наблюдается не только в офлайне, но и в интернете. Достаточно вбить в поисковик любой запрос, чтобы получить подтверждение насыще...