Agile Entwicklung

Ich habe von gestern auf heute das Buch “Agile Entwicklung mit Java” aus dem O’Reilly-Verlag durchgelesen und bin von dem Buch sehr angetan. Die Einführung (das erste Drittel des Buches) in die Agile Entwicklung ist sehr interessant und vieles werde ich davon im nächsten Jahr in der Firma versuchen umzusetzen. Die beiden anderen Drittel beschreiben das Unit-Testing, Continuous Integration, Ant und andere Tools.

Seit längerer Zeit spiele ich mit dem Gedanken, mir ein kleines Tool zu schreiben, dass mir aus einer einfach-dotierten Text-Datei eine komplette Anwendung baut: Keep it small and simple. Zuerst war ich am Überlegen, ob ich dafür extra einen Parser und Lexer mit Flex/Bison schreibe. Aber warum so umständlich? Mit Hilfe von JSON lassen sich die Objekte in Kurzform beschreiben und es existiert für jede Programmiersprache ein passender Parser dafür.
Eben habe ich mich mal drangemacht, ein Beispiel-Template zu schreiben:

_alias = { "isPrimaryKey": "isPk"},
_tables = [ "user", "group", "user_in_group" ],
_settings = { "defaultType": "string" },


user = {
	"_settings": { "defaultType": "int"},
	"cols": {
			[ {
				"name": "id",
				"isPk":true,
				"type": "int"},
			  {
				"name": "name"},
			]
		},
	"relations": {
			[ {
				"cardinality": "has_many",
				"_this_col": "id",
				"_that_table":"group",
				"_that_col": "user_id"},],
		},
}

Es ist bis jetzt -wie geschrieben- nur eine Idee und sicherlich verbesserungsdürftig. Trotzdem eine kleine Beschreibung: _alias definiert, wie der Name schon sagt, Aliase für bestimmte Parameter.
_tables definiert die Datenbanktabellen bzw. Objekte, _settings legt Einstellungen fest.
Die Tabelle “user” besitzt verschiedene Eigenschaften: _settings überschreibt die globalen Einstellungen, cols beinhaltet die Spalten einer Tabelle und relations definiert die Verbindung zu anderen Tabellen.
Der Parser soll dann aus dem Objektbaum mit Hilfe von Templates -sollte ich das in PHP entwicklen, würde Smarty zum Einsatz kommen- aus diesen Beschreibungen die passenden Resultate bauen: SQL-Schema-Files, Java-Klassen (DAOs, BOs), PHP-Dateien (mit Hilfe des Zend Frameworks). Weiterhin soll automatisch die Ordnerstruktur für Projekte erzeugt werden und und und…

Mal wieder ein eierlegendes Wollmilchsau-Projekt 😉

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>