Skip to content

AdrianStrugala/SolTechnology.Core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SolTechnology-logo

SolTechnology.Core

Modern readable coding

"Clean code is simple and direct. Clean code reads like well-written prose. Clean code never obscures the designer's intent but rather is full of crisp abstractions and straightforward lines of control."

~Grady Booch, author of *Object-Oriented Analysis and Design with Applications*

Core Libraries

The SolTechnology.Core repository contains a set of shared libraries. This is a foundation for CQRS-driven applications using basic Azure technologies. The libraries support a modern coding approach presented in the example applications.

Documentation Tags NuGet
SQL Database Database, SQL, ORM, Dapper, EF
Blob Storage Azure, Blob, Storage, no-SQL
HTTP Clients HTTP, Client, REST
Message Bus Azure, Messaging, Async, Queue
Guards Validation, Guards, Checks
Authentication Auth, Security, Basic, API key
Logging Logging, Diagnostics, Tracing
Scheduler Scheduler, Cron, Tasks
CQRS CQRS, Patterns, Architecture
API API, Web, Controllers
Cache Cache, Memory, Performance

Tale Code

The idea of clean and readable code has stayed with me from the very beginning of my career. As a book lover and amateur writer, this is the most natural part of programming.
In the Tale Code approach, I am trying to summarize all the information about coding, design, automation, and configuration that I have learned over the years. The Tale Code rule is simple:

"Make your code a pleasure to read, like a tale."

~Adrian Strugała

The sample application is the most common case that came to my mind. It's built of a user-facing API and a background worker responsible for fetching data and feeding the SQL database. The communication between these two is asynchronous and based on messages, as shown in the picture:

design

Code design is the main goal of Tale Code. Logical flow and code structure are described in detail, and it even follows a more human-friendly, functional-like notation:

var context = new CalculateBestPathContext(cities!);

var result = await Chain
     .Start(context, cancellationToken)
     .Then(_downloadRoadData)
     .Then(_findProfitablePath)
     .Then(_solveTSP)
     .End(_formResult);

I have summarized the knowledge and decisions into three chapters.
Enjoy your reading!

1. The Design
2. The Automation
3. The Quality

Some ending words

About

Modern redable coding - TaleCode foundation

Resources

Stars

Watchers

Forks

Packages

No packages published