Upgrade to Pro — share decks privately, control downloads, hide ads and more …

cuelangについて / Learn CUE

riita10069
August 13, 2021

cuelangについて / Learn CUE

株式会社Exciteさんと弊エンジニアコミュニティVolareの共同開催のLTイベントにてお話させていただいた内容です。
https://volare.connpass.com/event/218767/

非常に多くの参加者にお越しいただき、誠にありがとうございました。

CUE言語では、jsonやyamlのようなスキーマセットでありながら、プログラミング言語としてバリデーションや拡張が行える。
特にKubernetesなどの大規模なyamlを扱う際に非常に便利である。
また、Kubernetesの設定ファイルのテンプレートには、HelmとKustomizeがよく使われているが、それらとは一線を画す画期的な仕組みを採用しているのがCUE言語である。
これまでのjsonなどで取られていた値に型をつけるというアプローチとは全く異なる型と値はlatticeを成すというような考え方だ。
latticeとは何かはスライドの方を見て欲しい。
また、latticeがただ一つの値に収束することをCUEでは、resolveと読んでいる。
この設計は極めて秀逸である。
最も秀逸であると感じる点が、宣言的なアプローチが取れること。
これまでの黒魔術や継承といった考え方では、手続き的な処理が必要だったので、処理なくして値は一つに定まらなかったということだ。

Keyword: Cue, Cuelang, Kubernetes, yaml, json

reference

https://zenn.dev/riita10069/articles/plactice_cuelang

https://qiita.com/riita10069/items/1c9077657fcd62843aaf

riita10069

August 13, 2021
Tweet

More Decks by riita10069

Other Decks in Technology

Transcript

  1. numberʹ͓͚Δlattice • NumberͷΠϯελϯε͸ɺintͱ fl oat • ཁૉ਺͸ແݶͳͷͰӈਤ͸Ұ෦෼ • ͋Δ஋ʹɺnumber, <10,

    20.0Ͱ͋Ε͹ 
 ࠷େԼݶ͸ɺ20.0͕ͩɺ͜͜ʹint͕ 
 ՃΘΕ͹ɺbottomͰ͋Δɻ • CUE͕࣮ࡍʹ͜ͷΑ͏ʹ࣮૷͍ͯ͠Δ͜ͱ 
 Λআ͚͹౰વͷ͜ͱͰ͋Δɻ
  2. Ͱ͖Δ͜ͱ • Data Validation • Schema De fi nition •

    Code Generation and Extraction • Querying • Scripting • Integration