Skip to content

Commit

Permalink
Prepare article for publication
Browse files Browse the repository at this point in the history
  • Loading branch information
ploeh committed Jul 25, 2024
1 parent 1f3650a commit 99f4691
Showing 1 changed file with 7 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
layout: post
title: "Three data architectures for the server"
description: "A comparison, for educational purposes."
date: 2024-07-24 10:52 UTC
date: 2024-07-25 18:30 UTC
tags: [Article Series, Architecture]
image: "/content/binary/flowchart-with-choice.png"
image_alt: "A flowchart diagram, now with three options available from the decision shape."
Expand All @@ -23,7 +23,7 @@
Even so, the underlying idea is that there are better and worse ways to solve problems. In software architecture too. It follows that you should choose the better solution.
</p>
<p>
How to do this requires skill and experience. When planning a good software architecture, an important consideration is how it'll handle future requirements. This seems to indicate that an architect should be able to predict the future in order to pick the best architecture. Which is, in general, not possible. Predicting the future is not the topic of this article.
How to do that requires skill and experience. When planning a good software architecture, an important consideration is how it'll handle future requirements. This seems to indicate that an architect should be able to predict the future in order to pick the best architecture. Which is, in general, not possible. Predicting the future is not the topic of this article.
</p>
<p>
There is, however, a more practical issue related to the notion of using the right tool for the job. One that we <em>can</em> address.
Expand Down Expand Up @@ -82,7 +82,7 @@ <h3 id="38ef737999f04f2d8c8d9fe7a44b47be">
<li>Using only a Domain Model to persist restaurant table configurations</li>
</ul>
<p>
As the titles suggest, all three examples will attempt to address the same problem: How to persist restaurant table configuration for a restaurant. The scenario is the same as already outlined in the article <a href="/2023/12/04/serialization-with-and-without-reflection">Serialization with and without Reflection</a>, and the example code bases also attempt to follow the external data format of those articles.
As the titles suggest, all three examples will attempt to address the same problem: How to persist restaurant table configuration for a restaurant. The scenario is the same as already outlined in the article <a href="/2023/12/04/serialization-with-and-without-reflection">Serialization with and without Reflection</a>, and the example code base also attempts to follow the external data format of those articles.
</p>
<h3 id="0b2358ba517444eeb990d1ff72613b82">
Data formats <a href="#0b2358ba517444eeb990d1ff72613b82">#</a>
Expand Down Expand Up @@ -140,7 +140,7 @@ <h3 id="76af298edac94997a28a92b865b2e508">
Comparisons <a href="#76af298edac94997a28a92b865b2e508">#</a>
</h3>
<p>
<a href="https://en.wikipedia.org/wiki/REST">REST</a> APIs are the kind of application where data representation flexibility is most likely to be an issue. Thus, that only one of the three alternative architectures is able to exhibit enough expressive power in that dimension doesn't disqualify the other two. Each come with their own benefits and drawbacks.
A <a href="https://en.wikipedia.org/wiki/REST">REST</a> API is the kind of application where data representation flexibility is most likely to be an issue. Thus, that only one of the three alternative architectures is able to exhibit enough expressive power in that dimension doesn't disqualify the other two. Each come with their own benefits and drawbacks.
</p>
<table>
<thead>
Expand Down Expand Up @@ -215,10 +215,10 @@ <h3 id="3db82a1056ff4f4fbcb9bb2dd9c4643c">
The book is, for that reason, light on .NET-specific details. Instead, I published <a href="/2021/06/14/new-book-code-that-fits-in-your-head">an article</a> that collects all the interesting .NET things I ran into while writing the book.
</p>
<p>
Not so here. The three articles cover enough ASP.NET particulars that readers that don't care about that framework are encourages to skim-read.
Not so here. The three articles cover enough ASP.NET particulars that readers who don't care about that framework are encouraged to skim-read.
</p>
<p>
I've developed the three examples as three Git branches of the same repository. The code is available upon request against a small <a href="/support">support donation</a> of 10 USD (or more). If you're one of my regular supporters, you have my gratitude and can get the code without further donation. <a href="/about#contact">Send me an email</a> in both cases.
I've developed the three examples as three branches of the same Git repository. The code is available upon request against a small <a href="/support">support donation</a> of 10 USD (or more). If you're one of my regular supporters, you have my gratitude and can get the code without further donation. <a href="/about#contact">Send me an email</a> in both cases.
</p>
<h3 id="83a76525d22a49d898609fc6c1963acf">
Conclusion <a href="#83a76525d22a49d898609fc6c1963acf">#</a>
Expand All @@ -227,7 +227,7 @@ <h3 id="83a76525d22a49d898609fc6c1963acf">
There's more than one way to organize a code base to deal with data. Depending on context, one may be a better choice than another. Thus, it pays to be aware of alternatives.
</p>
<p>
In the next articles in this article series, you'll see three examples of how to deal with persistent data from a database. In order to establish a baseline, the first covers the well-known Ports and Adapters architecture.
In the remaining articles in this series, you'll see three examples of how to deal with persistent data from a database. In order to establish a baseline, the first covers the well-known Ports and Adapters architecture.
</p>
<p>
<strong>Next:</strong> Using Ports and Adapters to persist restaurant table configurations.
Expand Down

0 comments on commit 99f4691

Please sign in to comment.