Читать книгу Handbuch Infrastructure as Code - Kief Morris - Страница 61

Deklarativen und imperativen Code mischen

Оглавление

Imperativer Code ist ein Satz von Anweisungen, der festlegt, wie etwas passieren soll. Deklarativer Code definiert, was Sie haben wollen, ohne zu spezifizieren, wie das geschehen soll.2

Zu viel Infrastruktur-Code leidet heutzutage unter dem Vermischen deklarativen und imperativen Codes. Ich glaube, es ist ein Fehler, darauf zu bestehen, dass nur genau eines der beiden Sprachparadigmen für den gesamten Infrastruktur-Code zum Einsatz kommen sollte.

Eine Infrastruktur-Codebasis kümmert sich um viele verschiedene Aspekte – vom Definieren von Infrastruktur-Ressourcen über das Konfigurieren verschiedener Instanzen von ansonsten gleichen Ressourcen bis hin zum Orchestrieren des Provisionierens mehrerer unabhängiger Elemente eines Systems. Manche dieser Aspekte lassen sich am einfachsten über eine deklarative Sprache ausdrücken. Andere sind komplexer und werden besser über eine imperative Sprache umgesetzt.

Als Praktikerinnen und Praktiker des immer noch jungen Felds des Infrastruktur-Codes versuchen wir weiterhin herauszufinden, wo die Grenzen zwischen diesen Aspekten zu ziehen sind. Vermischt man sie, kann das zu Code führen, der Sprachparadigmen mixt. Eine Fehlermöglichkeit ist, eine deklarative Syntax wie YAML durch Bedingungen und Schleifen zu erweitern. Die zweite Fehlermöglichkeit ist, einfache Konfigurationsdaten (»2GB RAM«) in prozeduralen Code einzubinden und damit das, was Sie wollen, mit dem zu vermischen, wie es zu implementieren ist.

In mehreren Bereichen dieses Buchs weise ich darauf hin, was meiner Meinung nach die unterschiedlichen Aspekte sind und wo ein bestimmtes Sprachparadigma am besten passt. Aber unser Feld entwickelt sich immer noch weiter. Viele meiner Ratschläge werden nicht mehr gültig oder unvollständig sein. Daher möchte ich Sie dazu ermutigen, über diese Fragen nachzudenken und uns allen dabei zu helfen, herauszufinden, was am besten funktioniert.

Handbuch Infrastructure as Code

Подняться наверх