Skip to content

Commit

Permalink
rebase
Browse files Browse the repository at this point in the history
  • Loading branch information
KOCNS1 committed Nov 5, 2023
2 parents c52b240 + 203e1ed commit f028ae1
Show file tree
Hide file tree
Showing 6 changed files with 123 additions and 3 deletions.
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"cSpell.words": [
"Contentful",
"exercice",
"FRIZZARIN",
"inconsolata",
"Intelli",
Expand All @@ -9,4 +10,4 @@
"sfeir",
"SFEIR"
]
}
}
2 changes: 2 additions & 0 deletions docs/markdown/02-architecture/00-TITLE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<!-- .slide: class="transition bg-pink" -->
# Web Architecture
83 changes: 83 additions & 0 deletions docs/markdown/02-architecture/01-KINDS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Web architecture

When creating app, depending of the type of app and the size, you will need to adapt the architecture

It exist **4** main architecture:<br/><br/>

- View architecture<br/><br/>
- Atomic architecture<br/><br/>
- Island architecture<br/><br/>
- hexagonal architecture<br/><br/>

##==##

# View Architecture

Architecture by default for React and Vue, based on the different page that the application contains <br/><br/>

- **Pros**:
- Easy to start
- Easy to understand
- Easy to test

<br/><br/>

- **Cons**:
- Hard to scale
- Hard to maintain


##==##

# Atomic Architecture

Architecture by default for Angular, based on the different feature that the application contains <br/><br/>

- **Pros**:
- Easy to scale
- Easy to maintain
- Easy to test

<br/><br/>

- **Cons**:
- medium to start
- medium to understand

##==##

# Island Architecture

Architecture for server side rendering, based on the island part of interactivity. <br/><br/>


- **Pros**:
- less javascript loaded initially
- content prioritization
- Core Web Vitals respected out of the box

<br/><br/>

- **Cons**:
- not performant for application with a lot of interactivity
- difficult to maintain
- difficult to start
- big learning curve

##==##

# Hexagonal Architecture

Architecture used by netflix, that separate the business logic and the technical layer

- **Pros**:
- Easy to scale
- Facilitates the introduction of changes
- Each layer can be developed independently

<br/><br/>

- **Cons**:
- difficult to start
- difficult to maintain
- big learning curve
30 changes: 30 additions & 0 deletions docs/markdown/02-architecture/02-COMPONENT-TREE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!-- .slide: class="two-column"-->
# A Tree Component

<br/><br/>

- A React application is a composition of components <br/><br/>
- Children are displayed inside their parents if there are presents in the template of the parent<br/><br/>

##--##

<!-- .slide: class="with-code inconsolata"-->

<br/><br/><br/>


```tsx
import Header from './Header';

function App() {
return (
<main>
<Header />
<div>
<h1>Hello Students</h1>
</div>
</main>
);
}
```
<!-- .element: class="big-code"-->
8 changes: 6 additions & 2 deletions docs/scripts/day-one.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,17 @@ function introSlides() {
'01-intro/01-ENVIRONMENTS.md',
'01-intro/02-BOOTSTRAPPING.md',
'01-intro/03-HELLO_WORLD.md',
'01-intro/10-EXERCICE-BOOTSTRAPPING.md',
'01-intro/10-EXERCISE-BOOTSTRAPPING.md',
'01-intro/04-DEEPER.md',
'01-intro/05-JSX.md',
'01-intro/06-COMPONENTS.md',
];
}

function architectureSlides() {
return ['02-architecture/00-TITLE.md', '02-architecture/01-KINDS.md', '02-architecture/02-COMPONENT-TREE.md']
}

export function dayOneSlides() {
return [...schoolSlides(), ...introSlides()];
return [...schoolSlides(), ...introSlides(), ...architectureSlides()];
}

0 comments on commit f028ae1

Please sign in to comment.