Author:
Michael Morbach
Okt
31
Unter dieser neuen Kategorie möchte ich in Zukunft regelmäßig einige Fragen aufzeigen die im Alltag eines Programmierers, oder zumindest bei mir, öfters auftauchen. Es geht um Kontrukte, bei denen man sich manchmal nicht sicher ist wie es nun in der Praxis “richtig” geschrieben wird. Ich habe mich im letzten halben Jahr sehr oft gefragt welche schreibweise verschiedener Konstrukte wohl am üblichsten ist, was am besten lesbar ist, welches Naming wohl am verständlichsten ist, oder sogar welche Konstrukte möglicherweise Fehleranfällig sind.
In diesem ersten Beitrag zum Thema “Do’s and Don’ts” möchte ich direkt auf ein Szenario stoßen, welches ich gestern in dem Blog von Coding Horror gefunden habe. Es geht um die weitverbreitete Implementierung der CompareTo() Methode (wichtig z.B. bei Sortierungen). Einige Leute wollen besonders viel aus ihrer Optimierung herausholen und versuchen beispielsweise folgenden Ansatz …
DON’T !
public int CompareTo( int valueA, int valueB )
{
return valueA - valueB
}
Auf den ersten Blick macht das ganze vielleicht Sinn, denn sollten beide wirklich gleich groß sein wird 0 zurückgegeben und ansonsten halt ein Wert der entweder >0 oder <0 ist. Gar nicht mal so schlecht denn man spart sich ein paar If Konstrukte innerhalb der Methode. Stellt euch jedoch einmal vor man würde die Methode folgendermaßen aufrufen :
Read the rest of this entry »
Author:
Michael Morbach
Okt
1
Heute möchte ich euch gerne das Observer Pattern aus der Familie der Behavioral Patterns vorstellen. Es ist, zumindest nach meiner Einschätzung, eines der wichtigsten und meist genutzten Patterns und gehört, wie ich finde, zum Grundwissen eines guten Programmierers dazu. Einige werden möglichweise sagen, dass es man es an sich so heute gar nicht mehr selbst schreiben braucht, grade in Zeiten von Java und .NET welche über delegates und/oder events verfügen. Recht habt ihr ! Jedoch finde ich es wichtig eine Technologie von Grund auf zu verstehen und somit biete ich hier einen kleinen Crashkurs für Einsteiger.
Zum aufwärmen ein kleines Anwendungsbeispiel:
Stellen wir uns vor wir sitzen in einer Zentrale und müssen den Standort von Zügen überwachen. Was wäre das für ein unglaublicher Aufwand ständig nachzufragen wo sich ein Zug gerade befindet nicht wahr ? Warum also den Spieß nicht einfach umdrehen ? Sollen mir die Züge doch einfach bescheid geben wenn sich ihre aktuelle Position verändert hat. Dazu müsste ich diesen lediglich bescheid sagen : “Hey gib mir absofort deine Position durch wenn sich diese verändert hat“. Das hat außerdem den Vorteil, dass wenn meine Kollegen ebenfalls die Position dieses Zuges abfragen möchten, sie diesen nur bescheid zu geben brauchen.
Read the rest of this entry »