101010.pl is one of the many independent Mastodon servers you can use to participate in the fediverse.
101010.pl czyli najstarszy polski serwer Mastodon. Posiadamy wpisy do 2048 znaków.

Server stats:

484
active users

#hexagonalarchitecture

0 posts0 participants0 posts today

What is hexagonal architecture, and how can it help to make your code more testable? In this Making Tech Better podcast episode, I spoke to @jitterted about the benefits and principles of hexagonal architecture, and how it enables you to keep your domain logic independent from the outside world.

You can listen here: youtube.com/watch?v=zpITtO-5d-

www.youtube.com- YouTubeEnjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
Continued thread

1) Understand the domain
2) Domain modelling (#ModelInCode)
3) Let a test drive us (#TDD)
4) Implement the controller
5) Drive the core implementation by a test (TDD again)
6) Extend the business logic facade (#HexagonalArchitecture)
7) Implement the command
8) Implement the event projection (#EventSourcing)
9) Implement the database access (#OnionArchitecture)
10) Release it (#CI_CD)
11) See your changes at work (#REPL #FSI)

With code samples in #dotnet

Next up on my YouTube channel...

Design Accelerator: Ports and Adapters Architecture Part3

After explaining several aspects of the Ports and Adapters Architecture in Parts 1 and 2, Vaughn wraps up this topic with examples of how to structure your architecture using modules using Java packages and C# namespaces.

#SoftwareArchitecture #Hexagonal #HexagonalArchitecture #PortsAndAdaptersArchitecture

youtube.com/watch?v=UpesTQhQhT

Personally working with hexagonal architecture for the first time and recognizing its problems, I was working on a way to mitigate the problems by combining it in a meaningful way with the modulithic approach.

Thankfully a colleague pointed me to this article by @odrotbohm delivering a solution to this exact problem. And also describing it in a very comprehensible way.

odrotbohm.de/2023/07/sliced-on

odrotbohm.deOliver Drotbohm - Sliced Onion Architecture

Introduced MapStruct by @gunnarmorling into my new customer project. This is still the best solution I know to map between layers in Java. Especially when the project uses hexagonal architecture, which has layers. Layers everywhere...

It also supports mapping from two different sources, mapping into an existing object and deep clones. Thanks for this fine piece of software, Gunnar and friends.

mapstruct.org/

mapstruct.orgMapStruct – Java bean mappings, the easy way!

In today's #LiveCoding stream with Mike Rizzi (working on his "Song Themes" app), we did quite a bit of Prepare Refactoring to make the behavioral change easy.

We also tried a few different implementations of finding songs by their theme, even though we (at least I) were pretty sure the #Java stream version (using groupingBy) would be the winner.

Lots of interesting discussion as always while we #TDD the code. Ended with fixing the failing #SpringBoot test and repackaging according to #HexagonalArchitecture.

youtube.com/live/AmUKA42XtuQ

Full playlist for all episodes: youtube.com/playlist?list=PLBH

Continued thread

Some folks have asked for links to my #TDD developed app repositories:

"Ensembler" is my ensemble event management system that I use to manage my ensemble programming groups. (Also uses #DomainDrivenDesign inside of a #HexagonalArchitecture structure.)

github.com/jitterted/ensembler

"Kid Money Manager" (aka Kid Bank) is an older app that was created to manage my son's money before he was old enough for a bank account. (A bit of a strange structure as it was my older thinking about Hex Arch.)

github.com/tedyoung/kid-bank

p.s. The above have never had a bug discovered in production that was due to coding errors, only configuration (e.g., wrong API keys).

GitHubGitHub - jitterted/ensembler: Ensembler: the Remote Ensemble Registration SystemEnsembler: the Remote Ensemble Registration System - GitHub - jitterted/ensembler: Ensembler: the Remote Ensemble Registration System