front end architecture

26
FRONT-END ARCHITECTURE REMUS LANGU QUALITY. PRODUCTIVITY. INNOVATION.

Upload: remus-constantin-langu

Post on 22-Jan-2017

195 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Front end architecture

FRONT-END ARCHITECTURE

REMUS LANGUQUALITY. PRODUCTIVITY. INNOVATION.

Page 2: Front end architecture

AGENDA

Role

ToolsProcesses

JS

Architecture

CSS

Architecture

Page 3: Front end architecture

FRONT-END ARCHITECTUREis a collection of

tools and processesthat aims to improve the

quality of our front-end code while creating a more efficient

and sustainable workflow.Micah Godbolt

Page 4: Front end architecture

TheFRONT-END ARCHITECT

Responsibilities

Makes Decisions

Designs, Plans and Oversees

Facilitates Tools and Processes

Keeps up to date on technologies

Enforces Quality

Manages Technical Debt

Page 5: Front end architecture

Separation of Concerns

Page 6: Front end architecture

HTML Markup

Page 7: Front end architecture

CSS Architecture

Page 8: Front end architecture

BEM

Block Element Modifier

Page 9: Front end architecture

OOCSS

Object-Oriented CSS

Separatestructure from skin

Separatecontainer from content

Page 10: Front end architecture

1. Base2. Layout3. Module4. State5. Theme

SMACSS

Scalable and Modular Architecture

for CSSTheme

Page 11: Front end architecture

Inverted Triangle CSS Architecture

Page 12: Front end architecture

JavaScript Architecture

Page 13: Front end architecture

Patterns

Model-View-ControllerModel-View-ViewmodelModel-View-Presenter

Presentation-Abstraction-Control

Event-Driven Architecture

Page 14: Front end architecture

Abstractions

Clie

nt

Ser

ver

Endpoints

UI Component

Template Rendering

Server Interaction

State Management

CommunicationComponent

UI Component

Component

Page 15: Front end architecture

Template Rendering

DataModel UI

DOM

TemplateFunction

change

Page 16: Front end architecture

State Management

DataModel

Change Detection

Page 17: Front end architecture

No state changesServer-Side Rendering

State changesManual Re-rendering

DataModel

UIDOM 1

UIDOM 2

DataModel

UIDOM

?

Page 18: Front end architecture

Data BindingModels push updates

Dirty CheckingViews pull updates

UIDOM

DataModel

DataModel

UIDOM

Watchers

Page 19: Front end architecture

Virtual DOMState pushed to view

Immutable & Persistent data structures

DataModel

VirtualDOM

VirtualDOM

UIDOM

Diff

= Om+

DataModel

VirtualDOM

VirtualDOM

UIDOM

DiffReuses

Page 20: Front end architecture

Polyglot Architecture

Page 21: Front end architecture

T3

Minimalist framework for building large-scale

applications

Page 22: Front end architecture

Tools and Processes

Page 23: Front end architecture

Test Build

Preprocessing

Concatination

Minify

Optimize Images

Other tasks

Scaffolding

Application Structureand Boilerplate

ManageDependencies

libs & frameworks

Search Packages

Download Packages

DependencyManagement

DeployCode

Business Logic

Develop

WatchSource Files

Preprocessing

Lint JS/CSS

Live Reload

Build System

Page 24: Front end architecture

Q & A

Page 25: Front end architecture

Remus LanguDesign Lead

[email protected]

+40 743 426 760

remus.constantin.langu

[email protected]

QUALITY. PRODUCTIVITY. INNOVATION.

Thank you!

Page 26: Front end architecture

Front-End ArchitecturePractice