Hallo zusammen.
Meine Projekte mithilfe des Leitwerks der CCD zu bearbeiten, scheint wohl noch einiges an Zeit zu verschlingen. An einigen Stellen (hier IOSP) stockt es immer wieder, vielleicht könnt Ihr mir weiterhelfen. Das ganze ist m.E. sprachübergreifend, könnte genauso in C++, C# oder sonstewas auftauchen:
1. Problem: Ich habe eine Funktion, die zu Beginn eines Kassenbuch-WinForms-Programms abläuft:
Problematisch wird es für mich in Zeile 7. Der Code sollte ja schon klarmachen, worum es geht: Ich setze einige CE-Werte fest, will aber in jener 7. Zeile eine Funktion aufrufen, die mein DateTimePicker-CE deaktiviert und wertemäßig einschränkt, wenn bereits einige Einträge im laufenden Monat im Kassenbuch stehen. Lirum larum. IOSP ist verletzt. Was wär zu tun? Ich könnte die If-Geschichte in die Funktion rüberschieben und die Funktion selber nach dem Aufruf von SetupFormular() aufrufen. Der Punkt ist, dass ich das vermeiden wollte, da jene Funktion an anderen Stellen auch aufgerufen wird, die genannte Einschränkung aus Zeile 5 aber nur am Anfang relevant ist. Sei's drum, warum. Meine Frage an Euch: Was wären die Alternativen?
2. Eine Funktion X ruft nacheinander die Funktionen A, B, C, D, E, F auf.
In A steht die ein oder andere Abbruchbedingung, die dazu führen soll, dass die anderen Funktionen nicht abgearbeitet werden sollen.
IOSP würde m.E. bedeuten, dass diese Bedingung in X nicht als IF-Statement o.ä. auftauchen darf:
Aber wie macht man es, ohne jeweils innerhalb von B bis F erstmal prüfen zu müssen, ob die Abbruchbedingung aus A zutrifft. Fände ich nämlich nervtötend redundant. Vor allem, wenn in den Funktionen dann weitere Abbruchbedingungen dazukämen. Sollte man das Ganze in X in einen Try-Catch-Block packen und statt mit Boolean-Variablen eben mit Exceptions hantieren? Ist das dann noch IOSP-compliant? Oder B-F in eine eigene Funktion machen und diese mit einem If-Statement versehen? Letzteres halte ich wiederum für eine Verletzung von IOSP und SLA. Vorschläge?
btw: Mir ist klar, dass CCD kein Gesetzeswerk, sondern eine Richtlinie ist. Aber die muss doch auch umsetzbar sein. Ich bin wohl aber noch nicht soweit, um da einen guten Weg zu erkennen.
Meine Projekte mithilfe des Leitwerks der CCD zu bearbeiten, scheint wohl noch einiges an Zeit zu verschlingen. An einigen Stellen (hier IOSP) stockt es immer wieder, vielleicht könnt Ihr mir weiterhelfen. Das ganze ist m.E. sprachübergreifend, könnte genauso in C++, C# oder sonstewas auftauchen:
1. Problem: Ich habe eine Funktion, die zu Beginn eines Kassenbuch-WinForms-Programms abläuft:
VB.NET-Quellcode
- Private Sub SetupFormular()
- DtpSelectedDate.Value = My.Settings.LastUsedDate 'DTP = DateTimePicker
- RtxtAmountInCents.Enabled = DataSetHolder.TdsCashBook.Account.Count > 0 'Rtxt = spezielle TextBox
- CbxAccount.Enabled = DataSetHolder.TdsCashBook.Account.Count > 1 'Cbx = ComboBox
- If DataSetHolder.TdsCashBook.CashBookEntry.Count > 0 Then
- DtpSelectedDate.Value = DataSetHolder.TdsCashBook.CashBookEntry.Last.BookingDate
- RestrictDateInputToCurrentMonth()
- End If
- CbxBookingText.Text = Nothing
- End Sub
Problematisch wird es für mich in Zeile 7. Der Code sollte ja schon klarmachen, worum es geht: Ich setze einige CE-Werte fest, will aber in jener 7. Zeile eine Funktion aufrufen, die mein DateTimePicker-CE deaktiviert und wertemäßig einschränkt, wenn bereits einige Einträge im laufenden Monat im Kassenbuch stehen. Lirum larum. IOSP ist verletzt. Was wär zu tun? Ich könnte die If-Geschichte in die Funktion rüberschieben und die Funktion selber nach dem Aufruf von SetupFormular() aufrufen. Der Punkt ist, dass ich das vermeiden wollte, da jene Funktion an anderen Stellen auch aufgerufen wird, die genannte Einschränkung aus Zeile 5 aber nur am Anfang relevant ist. Sei's drum, warum. Meine Frage an Euch: Was wären die Alternativen?
2. Eine Funktion X ruft nacheinander die Funktionen A, B, C, D, E, F auf.
In A steht die ein oder andere Abbruchbedingung, die dazu führen soll, dass die anderen Funktionen nicht abgearbeitet werden sollen.
IOSP würde m.E. bedeuten, dass diese Bedingung in X nicht als IF-Statement o.ä. auftauchen darf:
Aber wie macht man es, ohne jeweils innerhalb von B bis F erstmal prüfen zu müssen, ob die Abbruchbedingung aus A zutrifft. Fände ich nämlich nervtötend redundant. Vor allem, wenn in den Funktionen dann weitere Abbruchbedingungen dazukämen. Sollte man das Ganze in X in einen Try-Catch-Block packen und statt mit Boolean-Variablen eben mit Exceptions hantieren? Ist das dann noch IOSP-compliant? Oder B-F in eine eigene Funktion machen und diese mit einem If-Statement versehen? Letzteres halte ich wiederum für eine Verletzung von IOSP und SLA. Vorschläge?
btw: Mir ist klar, dass CCD kein Gesetzeswerk, sondern eine Richtlinie ist. Aber die muss doch auch umsetzbar sein. Ich bin wohl aber noch nicht soweit, um da einen guten Weg zu erkennen.
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()