Home / Archive by category "Architecture"

Clean, simple, flexible, evolvable, agile architecture cheat sheet

I compiled a reference of principles, concepts, methods and so forth on architecture in agile software development.

If you are a software architect or developer, this is for you.

Clean Architecture V1.0

clean architecure thumbnail

Comments about what you like or your opinion on the topic are very welcome.

Many thanks to BBV Logo for making this blog post possible.

Dish washing and the chain of responsibility

Dish washing and the Chain of Responsibility Pattern have a few things in common.

In our house, cleaning out the dishwasher is a shared chore. My son starts the unloading process by removing a dish or utensil from the dishwasher. If he can put it away, then he does. If the proper location for the dish is out of his reach, then he passes it to his mother. She then goes through the same process; put the dish away if she can, or pass it off to the next person in line, which is me. When I get handed a dish I will put it away and, since I’m 6’4″ (1.92m) tall, I can reach all of our cupboard space which means that the process ends with me.

If you want to learn more about the Chain of Responsibility Pattern, I suggest you read the full blog post originally posted on the particular blog.

Pss: I know I haven’t been very active on this blog. Unfortunately writing good articles is a time intensive job. I’ve been focusing a bit more on the particular company blog. I’ll try to make sure that I can resume my blogging activities on this blog. Stay tuned

 

Mining for gold in your logfiles

Once you’ve already learned the ins and outs of a library, it may seem obvious how it should be used (and which parts should be avoided). The thing is that, from one project to the next, we often make use of new and different libraries and frameworks and may not appreciate some of the more subtle differences among those technologies.

The better frameworks out there will log all kinds of information, often telling you when you’re using them incorrectly. So don’t just think of log files as something only relevant for production. There are nuggets in there that can really help you in development as well.

Look at your log files at regular intervals. Doing that from time to time and, even better, automating it, can save you from headaches even before you release your products into production. Eventually, this practice will not only prevent bugs but it can also dramatically improve performance in certain cases.

If you want to know how this story goes on, I suggest you read the full blog post originally posted on the particular blog.

The day we almost lost an invoice

The day started like any other day working as a solutions architect for a healthcare invoice processing system. When I came into the office I didn’t anticipate that this was going to be a special day. I only realized it when a customer called in and asked for a specific invoice that should have been processed in our system. We couldn’t find it! It just wasn’t there at all. Sweat was dripping down my neck. Did we just lose an invoice — and therefore money?!

If you want to know how this story goes on, I suggest you read the full blog post originally posted on the particular blog.

 

Azure. Start small, think big!

When I talk to developers and managers about Azure they immediately think about large scale applications, amongst other things like information security & privacy which I won’t cover in this blog post. Let me say you this: No you don’t need terabytes of data and millions of customers to consider Azure! Even in your day to day job as a developer Azure can be really worth it. For example my friend Roland Krummenacher has an excellent blog post series in German called “Real World Windows Azure”. In his series, he talks about how you can leverage azure storage to save large files to reduce the load on your webservers, how you can monitor applications from remote by using Service Bus Relay and more. For some of us these ideas still seem out of reach because we fear the learning, the never ending arguments how evil the cloud is and oh my… don’t event talk about… THE COSTS! In this post you learn to start small with Azure but think big! Continue reading

Composite UI for Service Oriented Systems – Challenges Part II

This blogpost is part of a larger blog post series. Get the overview of the content here.

Slide94

Start early with an automated deployment. It will safe your ass! But try to keep it as simple as possible. If your deployment gets to complex this usually indicates that your “thing” decomposition is also too complex. Tools like Octopus Deploy or the Deployment Manager from Redgate help to visualize and monitor the deployment process to multiple environments. Keep in mind that managing the configuration files can be tricky and design for it from the beginning. Continue reading

Composite UI for Service Oriented Systems – Challenges Part I

This blogpost is part of a larger blog post series. Get the overview of the content here.

Slide88

Speaking about trade-offs. You’ll face some challenges regarding decomposition. But rest assured composition isn’t a piece of cake either. There are a number of challenges you’ll face and I’m sure there are even more I haven’t discovered yet. But surely you’ll tell me when you stumble over one in your project, don’t you? Continue reading

Composite UI for Service Oriented Systems – Composition Patterns

This blogpost is part of a larger blog post series. Get the overview of the content here.

Slide85

 

The Composite Front End pattern glues “things” together as a cohesive whole still keeping them autonomous. The Composite Front End patterns takes the ideas of web portals and applies them to SOA. It is composed of two main components: the portlet and the host. Continue reading