Click here to Skip to main content
15,796,456 members
Home / Discussions / Design and Architecture
   

Design and Architecture

 
SuggestionIODA - Architecture Ralf Westphal - Anyone use it also? Pin
Ralf Peine 202329-Nov-23 5:14
Ralf Peine 202329-Nov-23 5:14 
I use IODA architecture since the very beginning, nearly 10 years now. I develop SW more than 30 years as a profi.

It is the first approach/technique, that offers the option to produce reusable, small classes like "lego building blocks".

It is ortogonal to other best practices like CleanCode, DRY and other.

It has a strong impact on unit testing: Unit testing will be easy.

The reason is simple:

IODA was designed to reduce dependencies between classes to a minimum.

I - Integration - calls all other, but does not contain logic or data
O - Operation - contains logic, just work with data, do not know other operations or integrations
D - Data - holds the data and knows/deals only about itself and its childs. No operations here.
A - API - Application Interfaces - To deal with the environment or to provide general functions like data validation and other stuff

All of these classes are devolped by the project. Standard-Libraries can be found below this code.

If you then divide the Operations in "IO operations" and "other operations" you get the following:

IO_operation "reader" reads "data_ger",
operation "translator" translates "data_ger" to english data "data_eng"
and then the IO operation "View_data" presents it to the user.

And the integrator "TextManager" has a method like

C#
void viewAsEnglish(int textIdGer, string readLang = "ger")
{
  var data_ger = reader.Read(textIdGer, readLang);
  var data_eng = translator.Translate(data_ger, "eng");
  
  dataViewer.View(data_eng);
}


After longer practice you will automatically think in these four types, when creating a new class.

And yes, it will work fine in real projects.

Now lets start discussion about it, if you want.

**Links**

Detailed description:

https://www.infoq.com/news/2015/05/ioda-architecture/[^]

Bigger sample project (documentation only in german, sorry)

GitHub - jpr65/VersandEtiketten: This is a reference projekt for IODA and also a developer test ticket. Only in german, possible later also in english.[^]

** Images **

IODA - Principle Diagram
IODA - Libraries

modified 1-Dec-23 2:53am.

GeneralRe: IODA - Architecture Ralf Westphal - Anyone use it also? Pin
Mircea Neacsu29-Nov-23 11:47
Mircea Neacsu29-Nov-23 11:47 
GeneralRe: IODA - Architecture Ralf Westphal - Anyone use it also? Pin
Ralf Peine 202329-Nov-23 22:39
Ralf Peine 202329-Nov-23 22:39 
GeneralRe: IODA - Architecture Ralf Westphal - Anyone use it also? Pin
jschell30-Nov-23 7:12
jschell30-Nov-23 7:12 
GeneralRe: IODA - Architecture Ralf Westphal - Anyone use it also? Pin
Gerry Schmitz30-Nov-23 17:20
mveGerry Schmitz30-Nov-23 17:20 
GeneralRe: IODA - Architecture Ralf Westphal - Anyone use it also? Pin
Ralf Peine 202330-Nov-23 21:42
Ralf Peine 202330-Nov-23 21:42 
GeneralRe: IODA - Architecture Ralf Westphal - Anyone use it also? Pin
Pete O'Hanlon3-Dec-23 21:35
subeditorPete O'Hanlon3-Dec-23 21:35 
QuestionValidate Data Format Pin
Kevin Marois15-Nov-23 14:05
professionalKevin Marois15-Nov-23 14:05 
AnswerRe: Validate Data Format Pin
Gerry Schmitz15-Nov-23 15:21
mveGerry Schmitz15-Nov-23 15:21 
GeneralRe: Validate Data Format Pin
Kevin Marois16-Nov-23 9:05
professionalKevin Marois16-Nov-23 9:05 
GeneralRe: Validate Data Format Pin
Gerry Schmitz16-Nov-23 10:49
mveGerry Schmitz16-Nov-23 10:49 
GeneralRe: Validate Data Format Pin
Kevin Marois16-Nov-23 11:46
professionalKevin Marois16-Nov-23 11:46 
GeneralRe: Validate Data Format Pin
Gerry Schmitz16-Nov-23 16:57
mveGerry Schmitz16-Nov-23 16:57 
AnswerRe: Validate Data Format Pin
jschell16-Nov-23 6:26
jschell16-Nov-23 6:26 
GeneralRe: Validate Data Format Pin
Andre Oosthuizen18-Nov-23 8:18
mveAndre Oosthuizen18-Nov-23 8:18 
QuestionHow to address security in white label software Pin
mozilly2-Nov-23 22:54
mozilly2-Nov-23 22:54 
AnswerRe: How to address security in white label software Pin
Gerry Schmitz5-Nov-23 6:06
mveGerry Schmitz5-Nov-23 6:06 
AnswerRe: How to address security in white label software Pin
jschell6-Nov-23 11:50
jschell6-Nov-23 11:50 
QuestionHow to address security for white-label web app Pin
mozilly2-Nov-23 1:56
mozilly2-Nov-23 1:56 
QuestionThoughts on Internationalization Pin
snorkie23-Oct-23 8:44
professionalsnorkie23-Oct-23 8:44 
AnswerRe: Thoughts on Internationalization Pin
Dave Kreskowiak23-Oct-23 10:17
mveDave Kreskowiak23-Oct-23 10:17 
AnswerRe: Thoughts on Internationalization Pin
Mircea Neacsu23-Oct-23 10:52
Mircea Neacsu23-Oct-23 10:52 
GeneralRe: Thoughts on Internationalization Pin
trønderen23-Oct-23 13:02
trønderen23-Oct-23 13:02 
GeneralRe: Thoughts on Internationalization Pin
Mircea Neacsu23-Oct-23 14:40
Mircea Neacsu23-Oct-23 14:40 
GeneralRe: Thoughts on Internationalization Pin
trønderen23-Oct-23 21:22
trønderen23-Oct-23 21:22 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.