Modular design

Netlight 65,097 views 27 slides Feb 22, 2016
Slide 1
Slide 1 of 27
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27

About This Presentation

Netlighter Mikael Stenstrand presentation at Edge Academy 2016 in Helsinki. Modular design is all about modularizing the front-end of an application to increase code reusability and ease the development of new features. Additionally, the tools created will support the communication between UX and de...


Slide Content

ModularDesign
In Practice!

Agenda
WHAT
WHY
HOW
YOU
Modular Design

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

ModularDesign?
Modular front-end architecture

Modular Design
www.patternlab.io
ATOMS MOLECULES ORGANISMS TEMPLATES

Modular Design
ELEMENTS COMPONENTS MODULES WIDGETS

Modular Design
WIDGETS

Modular Design
WIDGETS

The quick brown fox
The quick brown fox
The quick brown fox
The quick brown fox
ELEMENTS
Buttons
Buttons
Buttons
+
-

COMPONENTS
Social Component
Image Component
Buttons
Type to search…
Button Component
Search Component

MODULES
NAME SURNMAE
AGE: X,xx
DIIBADAABA
Social ModuleProfile Module

WIDGETS
Contact
NAME SURNMAE
AGE: X.xx
RECORDS
Loremipsumdolor sit amet, omnesquesententiaead
sed, causaepropriaemelex. Et idqueaeternovel, cu
clitaaliquidhis. Pro inermisperpetuapertinaciaea, ei
necfabulasconsulatu…
Profile Module
Text Component
Button Component
Social Module

Why?

Why?

WHY ?Lean Development
Element
Component
Module
Widget
Lean UX Book –Jeff Gothelf
Libraries?Style guidelines

Lean Development
Lean UX Book –Jeff Gothelf
DEV
PO
UX

Distributed Development
Lean UX Book –Jeff Gothelf
WIDGETS
TEAM 1 TEAM 3
TEAM 2

In Practice –WHY
LEGACY
APPLICATION v. 2NEW FEATURES –WIDGETS
GOAL

In Practice –HOW
LEGACY
APPLICATION
NPM PRIVATE
WIDGETS
SHARED STYLES

Widgets
LEGACY
APPLICATION
NPM PRIVATE
Package Manager
Versioning
ES5
WIDGETS
ReactJS
ES6
Tests

Widgets
LEGACY
APPLICATION
NPM PRIVATE
varMyWidget = require('@org/widgets').MyWidget;
MyWidget(’div-id’, data);
INTEGRATE IN JAVASCRIPT

Widgets
LEGACY
APPLICATION
NPM PRIVATE
import{MyWidget} from'@org/widgets';
render() {
<MyWidget
data: [{…},{…}]/>
}
INTEGRATE IN REACTJS

Modules
LEGACY
APPLICATION
NPM PRIVATE
WIDGETS

You & Modular Design
?Elements library ?Style Guideline
?Component library
?Module library
?Create new features

ModularDesign
Modularize, Reuse and Improve!
Mikael Stenstrand
[email protected]