27
Modular Design In Practice!

Modular design

Embed Size (px)

Citation preview

Page 1: Modular design

Modular DesignIn Practice!

Page 2: Modular design

Agenda

WHAT

WHY

HOW

YOU

Modular Design

Page 3: Modular design

Who?Mikael StenstrandFront-end developer, software architect, development processes, quality > code.length(), people > code

Page 4: Modular design

Modular Design?Modular front-end architecture

Page 5: Modular design

Modular Design

www.patternlab.io

ATOMS MOLECULES ORGANISMS TEMPLATES

Page 6: Modular design

Modular Design

ELEMENTS COMPONENTS MODULES WIDGETS

Page 7: Modular design

Modular Design

WIDGETS

Page 8: Modular design

Modular Design

WIDGETS

Page 9: Modular design

The quick brown foxThe quick brown foxThe quick brown foxThe quick brown fox

ELEMENTSButtons

Buttons

Buttons

+

-

Page 10: Modular design

COMPONENTS

Social Component

Image Component

Buttons

Type to search…

Button Component

Search Component

Page 11: Modular design

MODULES

NAME SURNMAEAGE: X,xxDIIBADAABA

Social ModuleProfile Module

Page 12: Modular design

WIDGETS

Contact

NAME SURNMAEAGE: X.xxRECORDS

Lorem ipsum dolor sit amet, omnesque sententiae ad sed, causae propriae mel ex. Et idque aeterno vel, cu clita aliquid his. Pro inermis perpetua pertinacia ea, einec fabulas consulatu…

Profile Module

Text Component

Button Component

Social Module

Page 13: Modular design

Why?

Page 14: Modular design
Page 15: Modular design
Page 16: Modular design

Why?

Page 17: Modular design

WHY Æ Lean Development

Element

ComponentModuleWidget

Lean UX Book – Jeff Gothelf

Libraries Æ Style guidelines

Page 18: Modular design

Lean Development

Lean UX Book – Jeff Gothelf

DEV

PO

UX

Page 19: Modular design

Distributed Development

Lean UX Book – Jeff Gothelf

WIDGETS

TEAM 1 TEAM 3

TEAM 2

Page 20: Modular design

In Practice – WHY

LEGACY APPLICATION v. 2NEW FEATURES – WIDGETS

GOAL

Page 21: Modular design

In Practice – HOW

LEGACY APPLICATION

NPM PRIVATE

WIDGETS

SHARED STYLES

Page 22: Modular design

Widgets

LEGACY APPLICATION

NPM PRIVATEPackage ManagerVersioningES5

WIDGETS

ReactJSES6Tests

Page 23: Modular design

Widgets

LEGACY APPLICATION

NPM PRIVATE

var MyWidget = require('@org/widgets').MyWidget;

MyWidget(’div-id’, data);

INTEGRATE IN JAVASCRIPT

Page 24: Modular design

Widgets

LEGACY APPLICATION

NPM PRIVATE

import {MyWidget} from '@org/widgets';

render() {<MyWidget

data: [{…},{…}] />}

INTEGRATE IN REACTJS

Page 25: Modular design

Modules

LEGACY APPLICATION

NPM PRIVATE

WIDGETS

Page 26: Modular design

You & Modular Design� Elements library Æ Style Guideline

� Component library

� Module library

� Create new features

Page 27: Modular design

Modular DesignModularize, Reuse and Improve!

Mikael [email protected]