Top Banner
20-21 November 2015 @dwightjack @j8matteo LEAN FRONTEND DEVELOPMENT
78

Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

Apr 16, 2017

Download

Technology

Codemotion
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

LEANFRONTEND

DEVELOPMENT

Page 2: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

Matteo Guidotto - @j8matteoDigital Project Manager @ TrueblueTEDxVerona Co-organizerwww.matteoguidotto.com

proudly father of FEVR

Marco Solazzi - @dwightjackFrontend Developer @ AQuestJavaScript Otaku github.com/dwightjack/ 

proudly father of FEVR

ABOUT US

Page 3: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

ABOUT FEVR

www.fevr.it

Page 4: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

AFTER HIGH SCHOOL

i loved 2 things

Page 5: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

1 HTML

Page 6: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

2 FOOD

Page 7: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

WHEN I ATE

friends said“you need to diet!”

Page 8: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

WHEN I ATE

mom said“you need to diet!”

Page 9: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

WHEN I ATE

even my girlfriend said…

Page 10: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

WHEN I ATE

even my girlfriend said…i didn’t have a girlfriend

Page 11: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

WHEN I WROTE CODE

Page 12: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

SOMETHING SPECIAL

marqueetable layoutanimated gif

Page 13: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

SOMETHING SPECIAL

hours merging psd and html

Page 14: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

I NEEDED TO DIET

MY WORKFLOW NEEDED TOO

Page 15: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

HOMEMADEDIETPLAN

Page 16: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

DRINK A LOTEAT LESS

RUN

Page 17: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

and for work?

Page 18: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

DRINK A LOT beerEAT LESS ie6RUN away from managers

Page 19: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

seriously...

Page 20: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

PLAN

Page 21: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

GET OUT OF NEVERENDING

SOFTWARE

Page 22: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

YOU DON’T NEED A BIG BRUSH

BUT A GREAT BRUSH

Page 23: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

UNICORN TECHNOLOGYDOESN’T EXIST

Page 24: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

Page 25: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

DON’T USE ANGULAR FOR EVERYTHING

Page 26: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

DEFINEUSER AND BUYER

PERSONAS

Page 27: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

DEFINEUSER AND BUYER

PERSONASDEVICES

Page 28: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

DEVICE CENTEREDDEVELOPMENT

Page 29: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

BUDGETING ACTIVITIES

Page 30: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015
Page 31: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

TRY

Page 32: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

FEATURE’S DESIGNTO

REAL STUFF

Page 33: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

MINIMUMVIABLE

PRODUCT

Page 34: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

MINIMUMVIABLE

PRODUCTCODE

Page 35: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

“ MVC: UNPOLISHED, BAREBONE, TESTABLE, FAILABLE PIECE OF

SOFTWARE ”

Page 36: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

YOUR FEATURE DESIGN IS AN ASSUMPTION

Page 37: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

“ANIMATED FONT SIZE ON A VERTICALLY DISTRIBUTED FULL

HEIGHT LIST…”

display: table?

Page 38: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

TRY IT OUT!

Page 39: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

Page 40: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

USE CODEPEN!

Page 41: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

CLUNKY

!

http://codepen.io/dwightjack/pen/ogwQKz

Page 42: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

“LET’S TRY OUT flexbox”

Page 43: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

http://codepen.io/dwightjack/pen/azwPzv

Page 44: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

YOUR PREJUDICES ARE ASSUMPTIONS TOO!

Page 45: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

“JS NATIVE METHODS JUST ROCK”

Page 46: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

http://jsperf.com/native-vs-for-loops

Page 47: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

COOL / SOLID OPTIONS

Page 48: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

ADVANTAGES:

• WON’T CLUTTER YOUR CODEBASE WITH TEST CODE• CLEAN / SANBOXED ENVIRONMENT IN NO TIME• SHARE AND TEST ON MULTIPLE BROWSERS/DEVICES• GREAT FOR PROTOTYPING• WIDE SUPPORT FOR YOUR PREFERRED STACK

Page 49: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

TEST PASSED!

LET’S GET REAL

Page 50: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

BUILD

Page 51: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

“THERE’S NO BIG SOFTWARE

JUST BIG MISTAKES”

Page 52: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

“Everything is acompound thing”

First Modular Development

Master in history

“Everything is a compound thing”

First Modular Development

Master in History

Page 53: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

WHY MODULAR DEVELOPMENT:

SIMPLICITYENCAPSULATION

SEPARATION OF CONCERNS

Page 54: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

PICK YOUR FLAVORS

Page 55: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

FULL STACK FRONTEND

DEVELOPERS?

Page 56: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

CROSSFUNCTIONAL FRONTEND TEAMS

Semantics + Accessibility(HTML + ARIA)

Presentation(CSS)

Interactivity(JavaScript / BaaS APIs)

Page 57: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

BROWSERS ALREADY DO THAT

<input type=”date” required min=”10” max=”100”>

input[type=”date”]::-webkit-datetime-edit-month-field { color: #bada55;}

document.querySelector(‘input[type=”date”]’).checkValidity();

Page 58: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

“WE NEED TO OUTPUT15 PAGE TEMPLATES”

- a random PM

Page 59: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

STYLEGUIDE DRIVEN DEVELOPMENT

Page 60: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

http://rizzo.lonelyplanet.com/styleguide/ui-components/buttons

Page 61: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

ADVANTAGES:

• shared knowledge base (with teammates and customers)

• every module state and variation is clearly visible• code snippets (how to implement) and visual

output (how it looks)

Page 62: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

Outdated

Inaccurate

Page 63: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

LIVING STYLEGUIDES/* ========================================================================== Media Object ====

``` <div class="media"> <img src=//placehold.it/150x150 alt="" class="media__image"> <div class="media__wrap"> <h1 class="media__title">Media Title</h1> <p class="media__body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </p> </div> </div> ``` ========================================================================== */

Page 64: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

LIVING STYLEGUIDES/* ========================================================================== Media Object ====

``` <div class="media"> <img src=//placehold.it/150x150 alt="" class="media__image"> <div class="media__wrap"> <h1 class="media__title">Media Title</h1> <p class="media__body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </p> </div> </div> ``` ========================================================================== */

Page 65: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

COOL / SOLID OPTIONS

http://www.smashingmagazine.com/2015/04/13/an-in-depth-overview-of-living-style-guide-tools/

mdcss

Page 66: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

CHECK

Page 67: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

HEY BUSINESS WE SOLD A WEBSITE

NOT A PSD

Page 68: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

CHECK IS LEARNING

DO IT TOGETHERNOT ONE vs ONE

Page 69: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

CODE SHOULD BEBEAUTIFUL TOO

Page 70: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

COOL / SOLID OPTIONS

Page 71: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

CODE SHOULD BEREUSABLEMODULAR

COMMENTED

Page 72: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

CODEREVIEW ASRETROSPECTIVE

Page 73: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

ITERATE

ALL THE TIME

Page 74: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

IT’S NOT A GUIDE

IT’S A FRAMEWORK

Page 75: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

GET OUT OFDELIVERY OBSESSION

Page 76: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

DIET PLANSREQUIRE MOTIVATION

Page 77: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

BE A GREAT DEV

REQUIRESGREAT MOTIVATION

Page 78: Matteo Guidotto - Lean Frontend Development | Codemotion Milan 2015

20-21 November 2015 @dwightjack @j8matteo

THANKS