Async/Await in Swift 5.5

With Swift 5.5, the Swift programming language gains a powerful new set of tools for making asynchronous code easier to read, write, and debug. Similar to other languages (e.g., Python, C#), the async/await pattern is added and used plentifully throughout Swift’s standard library.

In this article, I am going to introduce the basics of async/await in Swift 5.5. Also, I will dive in further by looking at how to write asynchronous code in a structured way. Last but not least, we will explore how async/await integrates with SwiftUI and how you can update your existing code to make use of async/await.

Note: Using async/await requires Xcode 13 and is supported by iOS/iPadOS 15, macOS 12 and watchOS 8 (or later).

Weiterlesen

Von Fackeln und Forken – wie der Mob remote zusammenkommt

Die aktuelle Situation verlangt von uns, im Home-Office zu arbeiten. Dadurch fehlt vielen Teams der direkte persönliche Kontakt; im Alltag kommt es bei uns zum Beispiel sehr häufig vor, dass ein Teammitglied in den Raum hinein ruft, wie ein Problem zu lösen wäre. Schon alleine das verbale Auseinandersetzen mit dem Problem führt häufig zur Lösung.

Damit wir nicht bald alle nur noch mit unseren Gummienten reden, möchte ich hier eine mögliche Lösung aufzeigen. Denn es gilt: Entwicklerteams können auch remote hervorragend zusammenarbeiten.

Weiterlesen

Retrospektive Schulden

In meinem Lieblings-Slack zu agilen Themen, dem Slack-Kanal von Mein Scrum ist kaputt, wurde wieder einmal eine spannende Frage gestellt:

Wie wirkt sich die Frequenz einer Retrospektive auf die Dynamik und die Inhalte aus? Ich habe das Gefühl, dass bei Retrospektiven, die man eher unregelmäßig macht, man einen großen Raum geben muss, um sich „auskotzen“ zu können. Ich fänd es spannend, wenn wir da ihr hierüber von euren Erfahrungen berichtet

• Wie ist dieser Zusammenhang
• Wie entwickelt sich auch eine Retro innerhalb eines Teams im Zeitverlauf

Oft ist das Problem ja nicht die richtige Antwort, sondern die richtige Frage. Und ich glaube, dass hier ist genau so eine „richtige Frage“.

Weiterlesen

Architectural Decision Records

Architecture is abstract until operationalized, when it becomes a living thing.

Patrick Kua

Das agile Manifest für Software-Entwicklung hat die Dokumentation nicht ohne Grund auf die rechte Seite gestellt: „Working software over comprehensive documentation.“

Eine leichtgewichtige und daher schnelle Dokumentation ermöglicht die agile Praxis der Architectural Decisions Records.

Weiterlesen

Die 10 Commandments of Egoless Leadership

In der Softwareentwicklung gibt es die 10 Commandments of egoless programming aus The Psychology of Computer Programming schon lange. 

Das Grundmotiv dieser Gebote ist die Akzeptanz der eigenen Schwächen und Fehler. Bei der Erstellung von Software spielen sie eine so große Rolle, dass wir das ganze mit Test-driven Development sogar zur Arbeitsweise erhoben haben:

Wir beginnen mit dem Test, der mangels Code einen Fehler anzeigt; unser eigentlicher Auftrag ist nur die Reparatur des Fehlers. Unser Normalnull ist also der Fehlerzustand.

Weiterlesen

Fünf Tools, die bei der Migration von PHP-Projekten helfen

Im April hatten wir euch unser Projekt modernizeYourPHP vorgestellt – ein Sammelsurium von Tipps und Best Practices, Tools und vielem mehr, das euch bei der Migration eines PHP-Projekts auf eine neue Version helfen kann. So weit, so gut.

Während wir uns im ersten Post mit der Dockerisierung von (Legacy-)PHP-Applikationen auseinandergesetzt haben, wollen wir in diesem Artikel einen Blick auf verschiedene Tools werfen und euch unsere Einschätzung dazu geben.

Weiterlesen

Self-Signed Zertifikate unter iOS (und sonstwo)

Wie bekomme ich ein Self-Signed-Zertifikat auf ein iPhone, einen Androiden und am Besten auch noch auf ein Windows und ein MacOS? Und wie muss das verflixte Ding aussehen, dass es alle anstandslos fressen?

Eine Tragikomödie in vier Akten.

Weiterlesen

Code Reviews: Got Code, Want Feedback

In Softwareentwicklungsteams hat sich die Durchführung von Code Reviews zur Erhaltung der Qualität und Wartbarkeit sowie zur Vermeidung von Fehlern und Problemen etabliert.

Wenn man sich nun etwas genauer mit Code Reviews beschäftigt, identifiziert man direkt die beiden grundlegenden Bestandteile: Den Code bzw. die Änderung am Code, der durch Entwickler:innen zur Verfügung gestellt wird, und das Feedback, das Reviewer:innen bezogen auf den Code hinterlassen.

Dieses Geben und Nehmen führt zwangsläufig zu Erwartungshaltungen auf beiden Seiten und soll im Folgenden unter die Lupe genommen werden.

Weiterlesen

Conways dunkler Spiegel

Conway’s Law sollte allen von uns ein Begriff sein. Zur Auffrischung:

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.

Ursprünglich eine soziologische Beobachtung über die Arbeit von Komitees als die Softwareentwicklung noch in den Kinderschuhen steckte – 1967 – wird es bei uns inzwischen anders zitiert …

Weiterlesen

Gute Gründe für Tests in Softwareprojekten

Hin und wieder kommt man als Consultant in die Situation, das Schreiben automatischer Tests begründen zu müssen. Meistens sind das genau diese kritischen zehn Minuten, die einen gewaltigen Impact auf die nächsten zehn Monate des Projekts haben. Und Gründe gegen automatisierte Tests kennen wir alle …

Weiterlesen