FRONT-ENDARCHITECTURE
REMUS LANGU
QUALITY. PRODUCTIVITY. INNOVATION.
AGENDA
Role
Tools
Processes
JS
Architecture
CSS
Architecture
FRONT-END ARCHITECTURE
is a collection of
tools and processes
that aims to improve the
quality of our front-end code
while creating a more efficient
and sustainable workflow.
Micah
Godbolt
The
FRONT-END ARCHITECT
Responsibilities
Makes Decisions
Designs, Plans and Oversees
FacilitatesTools and Processes
Keeps up to date on technologies
Enforces Quality
ManagesTechnical Debt
Separation of Concerns
HTML Markup
CSS Architecture
BEM
Block Element Modifier
OOCSS
Object-OrientedCSS
Separate
structure from skin
Separate
container from content
1. Base
2. Layout
3. Module
4. State
5. Theme
SMACSS
Scalable and Modular
Architecture
for CSS
Theme
InvertedTriangle CSS
Architecture
JavaScript Architecture
Patterns
Model-View-Controller
Model-View-Viewmodel
Model-View-Presenter
Presentation-Abstraction-Control
Event-Driven Architecture
Abstractions
ClientServer
Endpoints
UI
Component
Template
Rendering
Server Interaction
State Management
Communication
Component
UI
Component
Component
Template Rendering
Data
Model UI
DOM
Template
Function
change
State Management
Data
Model
Change
Detection
No state changes
Server-Side Rendering
State changes
Manual Re-rendering
Data
Model
UI
DOM 1
UI
DOM 2
Data
Model
UI
DOM
?
Data Binding
Models push updates
Dirty Checking
Views pull updates
UI
DOM
Data
Model
Data
Model
UI
DOM
Watchers
Virtual DOM
State pushed to view
Immutable & Persistent
data structures
Data
Model
Virtual
DOM
Virtual
DOM
UI
DOM
Diff
= Om+
Data
Model
Virtual
DOM
Virtual
DOM
UI
DOM
DiffReuses
Polyglot Architecture
T3
Minimalist framework
for building large-scale
applications
Tools and Processes
Test Build
Preprocessing
Concatination
Minify
Optimize
Images
Other tasks
Scaffolding
Application Structure
and Boilerplate
Manage
Dependencies
libs &
frameworks
Search
Packages
Download
Packages
Dependency
Management
Deploy
Code
Business Logic
Develop
Watch
Source Files
Preprocessing
Lint JS/CSS
Live Reload
Build System
Q & A
Remus Langu
Design Lead
remus.langu@endava.com
+40 743 426 760
remus.constantin.langu
code_quality_practice@endava.com
QUALITY. PRODUCTIVITY. INNOVATION.
Thank you!
Front-End Architecture
Practice

Front end architecture