matteo guidotto - lean frontend development | codemotion milan 2015

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

Upload: codemotion

Post on 16-Apr-2017

460 views

Category:

Technology


0 download

TRANSCRIPT

20-21 November 2015 @dwightjack @j8matteo

LEANFRONTEND

DEVELOPMENT

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

20-21 November 2015 @dwightjack @j8matteo

ABOUT FEVR

www.fevr.it

20-21 November 2015 @dwightjack @j8matteo

AFTER HIGH SCHOOL

i loved 2 things

20-21 November 2015 @dwightjack @j8matteo

1 HTML

20-21 November 2015 @dwightjack @j8matteo

2 FOOD

20-21 November 2015 @dwightjack @j8matteo

WHEN I ATE

friends said“you need to diet!”

20-21 November 2015 @dwightjack @j8matteo

WHEN I ATE

mom said“you need to diet!”

20-21 November 2015 @dwightjack @j8matteo

WHEN I ATE

even my girlfriend said…

20-21 November 2015 @dwightjack @j8matteo

WHEN I ATE

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

20-21 November 2015 @dwightjack @j8matteo

WHEN I WROTE CODE

20-21 November 2015 @dwightjack @j8matteo

SOMETHING SPECIAL

marqueetable layoutanimated gif

20-21 November 2015 @dwightjack @j8matteo

SOMETHING SPECIAL

hours merging psd and html

20-21 November 2015 @dwightjack @j8matteo

I NEEDED TO DIET

MY WORKFLOW NEEDED TOO

20-21 November 2015 @dwightjack @j8matteo

HOMEMADEDIETPLAN

20-21 November 2015 @dwightjack @j8matteo

DRINK A LOTEAT LESS

RUN

20-21 November 2015 @dwightjack @j8matteo

and for work?

20-21 November 2015 @dwightjack @j8matteo

DRINK A LOT beerEAT LESS ie6RUN away from managers

20-21 November 2015 @dwightjack @j8matteo

seriously...

20-21 November 2015 @dwightjack @j8matteo

PLAN

20-21 November 2015 @dwightjack @j8matteo

GET OUT OF NEVERENDING

SOFTWARE

20-21 November 2015 @dwightjack @j8matteo

YOU DON’T NEED A BIG BRUSH

BUT A GREAT BRUSH

20-21 November 2015 @dwightjack @j8matteo

UNICORN TECHNOLOGYDOESN’T EXIST

20-21 November 2015 @dwightjack @j8matteo

20-21 November 2015 @dwightjack @j8matteo

DON’T USE ANGULAR FOR EVERYTHING

20-21 November 2015 @dwightjack @j8matteo

DEFINEUSER AND BUYER

PERSONAS

20-21 November 2015 @dwightjack @j8matteo

DEFINEUSER AND BUYER

PERSONASDEVICES

20-21 November 2015 @dwightjack @j8matteo

DEVICE CENTEREDDEVELOPMENT

20-21 November 2015 @dwightjack @j8matteo

BUDGETING ACTIVITIES

20-21 November 2015 @dwightjack @j8matteo

TRY

20-21 November 2015 @dwightjack @j8matteo

FEATURE’S DESIGNTO

REAL STUFF

20-21 November 2015 @dwightjack @j8matteo

MINIMUMVIABLE

PRODUCT

20-21 November 2015 @dwightjack @j8matteo

MINIMUMVIABLE

PRODUCTCODE

20-21 November 2015 @dwightjack @j8matteo

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

SOFTWARE ”

20-21 November 2015 @dwightjack @j8matteo

YOUR FEATURE DESIGN IS AN ASSUMPTION

20-21 November 2015 @dwightjack @j8matteo

“ANIMATED FONT SIZE ON A VERTICALLY DISTRIBUTED FULL

HEIGHT LIST…”

display: table?

20-21 November 2015 @dwightjack @j8matteo

TRY IT OUT!

20-21 November 2015 @dwightjack @j8matteo

20-21 November 2015 @dwightjack @j8matteo

USE CODEPEN!

20-21 November 2015 @dwightjack @j8matteo

CLUNKY

!

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

20-21 November 2015 @dwightjack @j8matteo

“LET’S TRY OUT flexbox”

20-21 November 2015 @dwightjack @j8matteo

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

20-21 November 2015 @dwightjack @j8matteo

YOUR PREJUDICES ARE ASSUMPTIONS TOO!

20-21 November 2015 @dwightjack @j8matteo

“JS NATIVE METHODS JUST ROCK”

20-21 November 2015 @dwightjack @j8matteo

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

20-21 November 2015 @dwightjack @j8matteo

COOL / SOLID OPTIONS

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

20-21 November 2015 @dwightjack @j8matteo

TEST PASSED!

LET’S GET REAL

20-21 November 2015 @dwightjack @j8matteo

BUILD

20-21 November 2015 @dwightjack @j8matteo

“THERE’S NO BIG SOFTWARE

JUST BIG MISTAKES”

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

20-21 November 2015 @dwightjack @j8matteo

WHY MODULAR DEVELOPMENT:

SIMPLICITYENCAPSULATION

SEPARATION OF CONCERNS

20-21 November 2015 @dwightjack @j8matteo

PICK YOUR FLAVORS

20-21 November 2015 @dwightjack @j8matteo

FULL STACK FRONTEND

DEVELOPERS?

20-21 November 2015 @dwightjack @j8matteo

CROSSFUNCTIONAL FRONTEND TEAMS

Semantics + Accessibility(HTML + ARIA)

Presentation(CSS)

Interactivity(JavaScript / BaaS APIs)

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();

20-21 November 2015 @dwightjack @j8matteo

“WE NEED TO OUTPUT15 PAGE TEMPLATES”

- a random PM

20-21 November 2015 @dwightjack @j8matteo

STYLEGUIDE DRIVEN DEVELOPMENT

20-21 November 2015 @dwightjack @j8matteo

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

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)

20-21 November 2015 @dwightjack @j8matteo

Outdated

Inaccurate

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> ``` ========================================================================== */

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> ``` ========================================================================== */

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

20-21 November 2015 @dwightjack @j8matteo

CHECK

20-21 November 2015 @dwightjack @j8matteo

HEY BUSINESS WE SOLD A WEBSITE

NOT A PSD

20-21 November 2015 @dwightjack @j8matteo

CHECK IS LEARNING

DO IT TOGETHERNOT ONE vs ONE

20-21 November 2015 @dwightjack @j8matteo

CODE SHOULD BEBEAUTIFUL TOO

20-21 November 2015 @dwightjack @j8matteo

COOL / SOLID OPTIONS

20-21 November 2015 @dwightjack @j8matteo

CODE SHOULD BEREUSABLEMODULAR

COMMENTED

20-21 November 2015 @dwightjack @j8matteo

CODEREVIEW ASRETROSPECTIVE

20-21 November 2015 @dwightjack @j8matteo

ITERATE

ALL THE TIME

20-21 November 2015 @dwightjack @j8matteo

IT’S NOT A GUIDE

IT’S A FRAMEWORK

20-21 November 2015 @dwightjack @j8matteo

GET OUT OFDELIVERY OBSESSION

20-21 November 2015 @dwightjack @j8matteo

DIET PLANSREQUIRE MOTIVATION

20-21 November 2015 @dwightjack @j8matteo

BE A GREAT DEV

REQUIRESGREAT MOTIVATION

20-21 November 2015 @dwightjack @j8matteo

THANKS