Moin,
ich fange gerade mit einem Projekt an, bei dem ich zu ein paar Designfragen eure Meinung bzw. eure Tipps gebrauchen könnte.
Kommandozeilenargumente verarbeiten
Wie kann man am elegantesten/einfachsten die auf der Kommandozeile übergebenen Argumente auswerten? Grundsätzlich ist die Reihenfolge bei mir (standardkonform, nehme ich mal an):
Die Optionen sind entweder ganz simple -[a-z]* oder enthalten auch Parameter, die ich durch einen Doppelpunkt von der Option trennen wollte, also z.B.: -sl:8. Ich weiß jetzt nicht, ob das Format einigermaßen mit irgendwelchen de-facto-Standards zusammenpasst, aber ich wollte auf jeden Fall das Leerzeichen als Delimiter erhalten.Code:programm [Optionen] [Inputdatei] [Outputdatei]
So, das Prinzip dürfte klar sein, jetzt frage ich mich, wie ihr eine solche Kommandozeile (die auch durchaus komplex werden kann mit 10+ Optionen) auswerten würdet: RegExp oder gibt's da vielleicht irgendwelche anderen Klassen in der CL, die mir noch nicht aufgefallen sind?
Die Optionen selbst werden in einer eigenen Klasse verwaltet, das scheint mir der sauberste Ansatz zu sein.
Bytepuffer
In dem Projekt manipulieren diverse Threads parallel einen oder mehrere Inputstreams. Diese Threads ziehen ihre Daten aus einem statischen Puffer und schreiben ihren Output in einen anderen Puffer gleicher Bauart. Grundsätzlich habe ich mit der Threadsicherheit auch kein Problem, ich frage mich allerdings, welche Datenstruktur der Puffer intern verwenden sollte, ganz naiv würde ich ein einfaches Bytearray (byte[puffergroesse] daten) nehmen, aber ich kenne mich z.B. mit den neuen Collections nicht wirklich aus. Haben die irgendwelche Vorteile (bessere Performance?), die ich hier gebrauchen könnte?
Wie gesagt, dieses Topic ist nur für die von euch, die nicht wissen, wohin mit ihrer Zeit und ihrem Wissen ;-)
So long,
Liberty
Lesezeichen