Zweites Python-Coding-Dojo in Wien

Am Mittwoch, dem 21. September 2011, findet beim monatlichen Treffen der Python-User-Group Austria im Metalab das nächste Python-Coding-Dojo statt. Python-Entwickler aller Erfahrungsstufen und Python-Interessierte sind herzlich willkommen.

Was ist ein Coding-Dojo?

Ein Coding-Dojo ist ein Treffen, bei dem eine Reihe von Programmierern zusammenkommen, um an einer Programmieraufgabe zu arbeiten. Dabei geht es hauptsächlich darum, in einer lockeren Atmosphäre die Aufgabe gemeinsam zu lösen und dabei Neues zu lernen. Ein Dojo ist kein Wettbewerb, sondern der Lerneffekt steht im Vordergrund.

Das Konzept der Coding-Dojos gibt es bereits länger. In den letzten Jahren wurden Coding-Dojos immer beliebter, was unter anderem auch daran liegt, dass sich jeder Teilnehmer einbringen kann.

Mehr Informationen gibt es auf http://codingdojo.org.

Veröffentlicht in Python | Getagged , , | Kommentieren

Context-Manager in Python

Beim letzten Python-Coding-Dojo im August war mir aufgefallen, dass man im unittest-Modul der Python-Standardbibliothek Exceptions auf folgende Art testen kann:

with self.assertRaises(SomeException):
    do_something()

Bisher dachte ich, dass das with-Statement wie das using-Statement in C# funktioniert. Das Äquivalent in C# wäre dann:

using (this.AssertRaises(typeof(SomeException)))
  DoSomething();

In C# kann das nicht funktionieren, weil die Dispose-Methode des IDisposable-Objekts, das von AssertRaises zurückgegeben würde, keine Referenz auf die Exception, die von DoSomething geworfen wurde, erhält.
Wenn man außerdem weitere Eigenschaften der Exception überprüfen will, kann man in Python Folgendes schreiben:

with self.assertRaises(SomeException) as cm:
    do_something()
 
the_exception = cm.exception
self.assertEquals(the_exception.error_code, 3)

Für mich war das einmal ein Grund, mich einmal mit dem with-Statement zu beschäftigen, das es erst seit Python 2.5 gibt.
Mehr lesen »

Veröffentlicht in Python | Getagged | Kommentieren

Wenn .NET-Entwickler über den Tellerrand schauen

In letzter Zeit ist es in der .NET-Welt wieder modern, sich mit anderen Programmiersprachen und Plattformen auseinanderzusetzen. Zunächst war es Ruby, über das geschrieben und berichtet wurde. Beim letzten .NET Open Space Süd in Karlsruhe gab es je eine Session über Ruby und Ruby on Rails. In letzter Zeit hört man auch immer mehr von Python.

Ich kenne Python seit Version 1.5.2, also schon seit über 10 Jahren. Ich habe mich aber in den letzten Jahren nicht damit beschäftigt. Vor ca. 1 Jahr habe ich beschlossen, mich wieder mehr mit Python zu beschäftigen.

Am letzten Montag, dem 22. August 2011, hielt Rainer Schuster im Rahmen der .NET Online User Group einen Online-Vortrag über Python. Einen Tag darauf reagierte Hans-Peter Schelian mit einem Blogartikel, nachdem er sich einen Tag lang mit Python beschäftigt hat, “um den Hype um diese Sprache besser verstehen zu können”.
Mehr lesen »

Veröffentlicht in .NET, Python | Getagged | 3 Kommentare

Python-Coding-Dojo in Wien

Am Sonntag, dem 21. August 2011, findet beim August-Treffen der Python-User-Group Austria im Metalab ein Python-Coding-Dojo statt. Voraussichtlich werden wir das FizzBuzz-Kata trainieren. Python-Entwickler aller Erfahrungsstufen und Python-Interessierte sind herzlich willkommen.

Was ist ein Coding-Dojo?

Ein Coding-Dojo ist ein Treffen, bei dem eine Reihe von Programmierern zusammenkommen, um an einer Programmieraufgabe zu arbeiten. Dabei geht es hauptsächlich darum, in einer lockeren Atmosphäre die Aufgabe gemeinsam zu lösen und dabei Neues zu lernen. Ein Dojo ist kein Wettbewerb, sondern der Lerneffekt steht im Vordergrund.

Das Konzept der Coding-Dojos gibt es bereits länger. In den letzten Jahren wurden Coding-Dojos immer beliebter, was unter anderem auch daran liegt, dass sich jeder Teilnehmer einbringen kann.

Mehr Informationen gibt es auf http://codingdojo.org.

Veröffentlicht in Python | Getagged , , | Kommentieren

DDD und CQRS mit Greg Young in Wien

(Gastbeitrag von Jörg Egretzberger)

Am 16. September spricht Greg Young auf der Community-Konferenz “Professional .Net 2011″ in Wien über Domain Driven Design (DDD) und wie man dieses in Projekten mit der von ihm beschriebenen Softwarearchitektur Command and Query Responsibility Segregation (CQRS) erfolgreich umsetzen kann.

Aus Wikipedia:

“Domain-Driven Design ist nicht nur eine Technik oder Methode. Es ist viel mehr eine Denkweise und Priorisierung zur Steigerung der Produktivität von Softwareprojekten im Umfeld komplexer fachlicher Zusammenhänge.”

In DDD möchte man nicht nur Daten manipulieren (CRUD), sondern auch in einer gemeinsamen Sprache festhalten aus welchem Grund sich Daten geändert haben und welches Verhalten das System hat. Die Intention der Benutzeraktion soll erfasst werden. So sind beispielsweise die Aktionen “Kunde eröffnet ein Konto” und “Geld wird abgehoben” wesentliche Aktionen eines Bankensystems. Mit DDD kann das System und dessen Verhalten (Behavior) modelliert werden.

Hinter diesen Aktionen stecken allerdings oftmals auch Business-Regeln wie etwa, dass nur max. 3.000 Euro pro Tag über Automaten von einem Konto behoben werden können. CQRS bietet eine elegante und skalierbare Lösung um dies in Software umzusetzen. Die Business Regeln enden nicht im Client, sondern werden zentral in der Domäne (dort wo der meiste Business Nutzen entsteht) gehalten.

Greg zeigt auch, wie dadurch das automatisierte Testen mit Unit Tests vereinfacht und expliziter wird. Weiters wird auch aufgezeigt, wie durch das Speichern der durchgeführten Aktionen zu einem späteren Zeitpunkt Auswertungen die im Vorhinein nicht definiert wurden, einfach umgesetzt werden können.

Beispiel: der Bankdirektor möchte eine Auswertung wie viele Kunden ihr Bankkonto schließen, nachdem sie umgezogen sind um durch Werbemaßnahmen dem gegenzusteuern. Dabei handelt es sich um einen wesentlichen Business-Vorteil.

CQRS wird nicht nur in sehr großen Softwareprojekte eingesetzt, die enorme Skalierbarkeit benötigen. Es hilft bereits bei Projekten die nicht nur “Create, Read, Update, Delete” Befehle haben, sondern bei denen auch Validierung und Business Regeln umgesetzt werden sollen.

Ganz treu dem Motto der heurigen Professional .Net: Einfach bessere Software entwickeln!

Mehr Infos zur Professional .Net 2011 findet ihr unter www.dotnet-austria.at.

Veröffentlicht in .NET | Getagged , | 1 Kommentar