1. het landschap - level level · zelfs slechte code kan functioneren echter, wanneer code niet...

55
Een modulaire aanpak tijdens development Jaime Martínez WordCamp Nijmegen 1 september 2018 @jmslbam

Upload: others

Post on 24-May-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Een modulaire aanpak tijdens development

Jaime Martínez WordCamp Nijmegen 1 september 2018 @jmslbam

Page 2: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

1. Het landschap

Page 3: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Welk probleem proberen we op te lossen?

Page 4: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Het bouwen van een project dat meerdere jaren blijft

draaien en uitgebreid kan worden door verschillende

personen binnen Level Level

Page 5: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Zelfs slechte code kan functionerenEchter, wanneer code niet clean is, kan dit een

development team op de knieën brengen.

Clean Code: A Handbook of Agile Software Craftsmanship

Page 6: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

2. Analyse

Page 7: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook
Page 8: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook
Page 9: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook
Page 10: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook
Page 11: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook
Page 12: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook
Page 13: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook
Page 14: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook
Page 15: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

single.php— content —

Non-modulaire aanpak

Page 16: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

3. Het probleem

Page 17: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

archive.phptitel

titel

Non-modulaire aanpak

single.php— content —

Page 18: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

archive.phptitel

titel

single.php— content —

comment.php— Review —

Non-modulaire aanpak

Page 19: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Buttons… Buttons everywhere

Andere HTML Verschillende CSS Classes Verschillende bronnen

HET PROBLEEM

Page 20: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Buttons… Buttons everywhere

1/3 kan weg

HET PROBLEEM

Page 21: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

4. De opties

Page 22: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Quick fix en doorgaan1

Onderdelen herschrijven2

Per nieuw onderdeel modulair aanpak toepassen

3

Compleet opnieuw beginnen4

Wat kun je doen?DE OPTIES

Page 23: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

5. De oplossingen

Page 24: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Seperation of concernDE OPLOSSINGEN

Page 25: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

archive.phptitel

titel

single.php— content —

comment.php— Review —

Non-modulaire aanpak

Page 26: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

archive.phpsingle.php comment.php

JS vote

getRating()

review rating: 2

HTML

Modulaire aanpak

Page 27: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

single.php

JS vote

getRating()

review rating: 2

HTML

archive.php comment.php

Modulaire aanpak

Page 28: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Source: https://schlessera.github.io/wcut-2017/#/modularity-0

Modulaire aanpak

Page 29: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Modulaire codebase

Page 30: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Modulaire codebase

Page 31: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

ComponentenDE OPLOSSINGEN

Page 32: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Stop denken in pagina’sx

Start te denken in componenten of zelfs in kleinere onderdelen

v

ComponentenDE OPLOSSINGEN

Page 33: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Ja!

Page 34: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Extenden met CSS classesDE OPLOSSINGEN

Page 35: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Extenden met CSS classes

DE OPLOSSINGEN

Page 36: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Extenden met CSS classes

DE OPLOSSINGEN

Learn from frameworks

Page 37: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

teaser teaser-magazine

Page 38: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

teaser teaser-post

teaser teaser-post

teaser teaser-video

teaser teaser-magazine

Page 39: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

teaser teaser-post teaser-1x2

teaser teaser-post teaser-1x1

teaser Teaser-video teaser-1x1

teaser teaser- magazine teaser-2x1

Page 40: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Flexibiliteit binnen CSSDE OPLOSSINGEN

Page 41: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Flexibiliteit binnen CSS

DE OPLOSSINGEN

v

x

v

Pass op voor CSS specificity

Geen ids

Nest niet te diep

body.page-homepage .teaser-video .button-play

.button & .button-video-play

.my-menu__item & .my-menu__item—active

x Echt, geen id's.

Page 42: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Flexibiliteit binnen CSS

DE OPLOSSINGENCSS technieken

Onderzoek technieken zoals

• SMAACSS

• ACSS

• BEM

Gebruik LESS of SASS

Is niet verplicht ;)

Page 43: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

OOP (Object Oriented Programming)

DE OPLOSSINGEN

Page 44: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

teaser teaser-magazine

Page 45: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

OverervenOBJECT ORIENTED PROGRAMMING

Clarkson object

Post

Video Post

Magazine Post

Model View Control

Page 46: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

OverervenOBJECT ORIENTED PROGRAMMING

Clarkson object

Post

Video Post

Magazine Post

Page 47: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Gebruik een template engineDE OPLOSSINGEN

Page 48: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Dit is een sidebar

https://level-level.com/clarkson-core-op-wordcamp-nederland-2016/

Content

Page 49: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

TWO COLUMN

PAGE SINGLE

Page 50: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

So use Clarkson ;)

Page 51: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

6. De redenen (almost there)

Page 52: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Dus waarom?DE REDENEN

Minder support tickets

1 Herbruikbare code

2 Uitbreidingen worden eenvoudiger

3 Testbare code

4

Klant blij, wij blij.5

Page 53: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Omarm de modulariteit

DE REDENEN

Splits complexiteit op

Stapje bij stapje

Spreek best-practices af met je team

Page 54: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Jaime Martínez WordCamp Nijmegen 2018

Een modulaire aanpak tijdens development

@jmslbam / @levellevel

Talks nalezen? Ga naar https://lvl.li/talks

Page 55: 1. Het landschap - Level Level · Zelfs slechte code kan functioneren Echter, wanneer code niet clean is, kan dit een development team op de knieën brengen. Clean Code: A Handbook

Resources

● Clarkson: Twig, WordPress Models and WordPress:

http://wp-clarkson.com/core/ & http://wp-clarkson.com/theme

● Clarkson Video: Clarkson talk op WordCamp NL 2016 via WordPress.tv

● Modern CSS: https://medium.com/statuscode/an-answer-to-how-to-get-good-with-css-3dfcfd862107

Dit bovenstaande artikel linked zelf ook weer naar hele goede artikelen.

● CSS Methodes : http://clubmate.fi/oocss-acss-bem-smacss-what-are-they-what-should-i-use

● CSS specificity: https://www.smashingmagazine.com/2007/07/css-specificity-things-you-should-

know/ & http://www.htmldog.com/guides/css/intermediate/specificity/

● Render template parts : hm_get_template_part()