2008-10-27 13 views
8

Ich suche nach Best Practices für die Verwendung der gleichen Daten an verschiedenen Orten ohne repeating yourself - dies könnte Konfigurations-oder Geschäftsregeln enthalten.Wie teilen Sie Konfigurationsinformationen oder Geschäftsregeln zwischen Sprachen

Beispiel 1. Datenvalidierungsregeln, für die Sie auf dem Client mit JavaScript validieren möchten, die jedoch durch eine Validierung auf dem Server überprüft werden sollen.

Beispiel 2. Datenbankzugriff, bei dem Ihr Webserver und Ihre Cronjobs dasselbe Passwort, Benutzername, verwenden.

Einfache Verarbeitung und eine menschenlesbare Lösung wäre ein Pluspunkt.

+0

Dies ist keine "Konfiguration" im üblichen Sinne. Das ist Code. Bitte lösche "Konfiguration" und schreibe "Code" oder "Geschäftsregeln" oder etwas anderes in die Frage. –

+0

Ich habe Geschäftsregeln zu Titeln und Tags hinzugefügt, aber ich denke, die Konfiguration gilt für das zweite Beispiel. MySQL verweist beispielsweise auf seine .my.cnf-Dateien (mit Benutzer, Kennwort, Host usw.) als Konfigurationsdateien. – Ken

Antwort

6

Verschlüsseln Sie Ihre Daten in JSON. Es gibt eine JSON-Bibliothek für so ziemlich jede Sprache, die Sie sich vorstellen können, oder wenn nicht, ist es ziemlich einfach, eine zu programmieren. Wenn JSON nicht genug ist, schauen Sie sich vielleicht YAML an.

+0

Ich denke, das funktioniert nur für Beispiel 2 (Daten), nicht für Beispiel 1 (Logik). –

+0

Wenn Sie völlig sprachunabhängig sein wollen, müssen Sie die Logik sowieso in irgendeiner Art von Daten kodieren. Natürlich könntest du den ganzen Weg gehen und Lisp S-Ausdrücke benutzen, also ist dein Code * Daten *. :-) –

+0

Danke Jouni - Entschuldigung für die verspätete Annahme. Ich hielt etwas aus, das auch Beispiel 2 behandeln würde, aber dein passt jetzt gut. – Ken

3

XML ist ziemlich global verwendet. Einfach zu lesen, einfach zu schreiben und lesbar. Wenn Sie Bedenken hinsichtlich des Platzbedarfs haben (was Sie eigentlich nicht sind, wenn Sie lesbar sind), dann komprimieren Sie es einfach, bevor Sie es versenden, XML wird ziemlich gut komprimiert.

+0

Textdateien werden im Allgemeinen gut komprimiert. –

0

So viel Hass wie sie bekommen, für den Austausch von Daten Validierungsregeln, werde ich sagen müssen Regular Expressions.

Ich weiß, ich weiß, jeder hasst sie, aber sie sind (allgemein) sprachunabhängig.

+1

Sie sind sprachunabhängig, nur wenn Sie eine kleine Teilmenge von Funktionen verwenden. –

0
  1. Verwenden O/S Umgebungsvariablen (envvars) Anwendungskonfiguration die Informationen gespeichert werden (wie zB db Passwörter)

  2. Validierungsregeln oft Logik erfordern. Sie können Ihre Regeln in JavaScript schreiben und dann im Browser, Server (mit Nashorn) und Datenbank (PLV8 mit Postgres) ausführen.