Direkt zum Hauptbereich

Wer ist Nathan Thurnreiter

Das bin ich Nathan Thurnreiter. Ein mit Leib und Seele begeisterter Delphi Programmierer. Viele Entwickler von heute kennen sich sehr gut aus wie man schnell was erstellt und ändert. Aber können Prinzipien wie SOLID oder LOD einfach nicht richtig anwenden, bzw. haben es nicht verinnerlicht. Dies bewegte mich endlich, selbst einen Blog zu eröffnen und den mal in deutsch.
Nun aber mal ein bisschen zu mir. Bin über Umwege zur Informatik gestossen. Hatte zuerst Automobilmechaniker gelernt und dann Jahre beim Studium von Maschienenbau/Fahrzeugtechnik und technischer Physik verbracht, biss ich dann zum Programmieren kam. Dies begann mit Pascal bzw. Delphi und ich bin fast ausschliesslich dabei geblieben. Natürlich habe ich wie jeder Programmierer mal über den Tellerrand geschaut. Aber bis auf ein paar nervige Kleinigkeiten ist Delphi für mich die Sprache schlecht hin.
Momentan leite ich ein kleines Entwickler Team, welches mit C# und Delphi ein Warenwirtschaftssystem erstellt.
Die nächsten Posts schildern die von mir gewonnenen alltäglichen Erfahrungen und sollen helfen beim einen oder anderen Problemchen.

Kommentare

Beliebte Posts aus diesem Blog

Neuer JSON Serialisierer ab Embarcadero Tokio 10.2

Seit Embarcadero Tokyo 10.2 veröffentlicht hat, steht uns Entwicklern ein neuer sehr gut zu gebrauchender JSON Marshaller zur Verfügung. Leider ist die Dokumentation dürftig. Das schöne ist aber, das Embarcadero sich ziemlich an gängige Verfahren hält. So konnte ich z.B. sehr einfach herausfinden was TJsonCustomCreationConverter<T> macht, nachdem ich C# Beispiele analysierte. Da es leider keine offizielle Dokumentation zum TJsonSerializer gibt, beruhen meine Beispiele auf Versuch und Irrtum. Es gibt 3 Namespaces, welche relevant sind. Zum einen "System.JSON.Serializers", für den eigentlichen Serialisierer und die Klassenattribute, zum anderen "System.JSON.Converters", für eigene Konverter und zuletzt "System.JSON.Types", für z.B. Datumsformate oder Formatierungen. TJsonSerializer Ist die wichtigste Klasse, sie ist implementiert im Namespace System.JSON.Serializers. Diese Klasse ist dafür zuständig, ein Objekt in JSON (Serialisierung) zu formati...

MVC mit System.Messaging

In der Vergangenheit hatte ich, beim Einsatz vom MVC Pattern immer eine eigene Implementation des Observer Pattern um Nachrichten vom Model ans View zu schicken. Hierbei handelte es sich um ein einfaches Record welches nur Text verschicken konnte. Das View musste deswegen auch immer das Model, bzw. das Interface des Model kennen um Daten für Aktualisierung zu haben. Dies widerspricht meiner Meinung nach, dem Prinzip von Clean Code "Separation of Concerns" und koppelt das View ans Model. Um dem entgegen zu wirken, experimentierte ich mit den Board-Mitteln Delphi, aus dem Namespace System.Messaging . Im View hänge ich mich an den DefaultManager der Klasse TMessageManager . procedure TFormShowMessage.FormCreate(Sender: TObject); begin FSubscriptionId := TMessageManager.DefaultManager.SubscribeToMessage(TMessage , procedure(const Sender: TObject; const AMessage: TMessage) begin Memo1.Lines.Add((AMessage as TMessage ).Value); end); end; Das Model schickt ...

Wie setzte ich Mocking Frameworks ein um meine Logik zu Testen?

Allgemein Bisher hatte ich zum Mocken meist das  Delphi-Mocks Framework  verwendet, was in den meisten Fällen ausreichte. In dem Post zeige ich, wie man das Mocking von Spring4D verwendet. Der Grund für diesen Post ist, dass es immer noch genügend Programmierer gibt welche noch nie oder viel zu selten Tests schreiben oder einsetzen. Viele reden darüber und erzählen, dass sie "natürlich" Testen. Aber ohne automatische Tests kann man die Qualität sowie einen sauberen Code nicht gewährleisten. TDD (test driven development) hat seine Schattenseiten, aber für jemand der sich nie richtig mit Clean Code, SOLID oder ähnlichem beschäftigt hat, hilft es die Prinzipien einfacher einzuhalten. In jeder Programmiersprache kann ein sauber Code geschrieben werden. Langfristig ist ein schneller, aber unsauberer Code, teurer als einmalig einen sauberen Code zu schreiben. Diese Einsicht ist meiner Erfahrung nach, leider noch nicht bei allen Programmierern angekommen. Tests dienen dazu, da...