SlideShare a Scribd company logo
G L I M T F R A P H P U K
C S S F L E X B O X
S M O K E T E S T S
M E E T U P # 1 6
• Forrige top 10 liste er fra 2013, men nå har det
kommet ut en release candidate for 2017, last ned PDF
her:

https://github.com/OWASP/Top10/raw/master/2017/
OWASP%20Top%2010%20-%202017%20RC1-
English.pdf
N Y E V E R S J O N E R
• PHP 7.1.4 og 7.0.18 kom ut 13. april (bugfixes)
• Symfony 3.3, med mange forbedringer og forenklinger
• Laravel 5.5 skal komme i juli, og enn så lenge kan vi
kose oss med mindre patcher (v5.4.19 kom ut i går)
P H P V E R S J O N E R
H VA B L E D E T S N A K K E T O M I L O N D O N ?
Table 1
Hva Antall
Testing 7
Framework 4
Availability 3
Cloud 3
Sikkerhet 3
Community 2
Div 13
H VA J E G S Y N E S VA R M E S T
I N T E R E S S A N T O G R E L E VA N T
• Progressiv web apps
• Backup package for Laravel
• Smoketests
• Codereview
• Websockets
P R O G R E S S I V W E B A P P S ( P WA )
• Site is served over HTTPS
• Pages are responsive on tablets & mobile devices
• Metadata provided for Add to Home screen
• The start URL (at least) loads while offline
• Site works cross-browser
• Page transitions don't feel like they block on the network
• Each page has a URL 



https://developers.google.com/web/progressive-web-apps/checklist

https://developers.google.com/web/tools/lighthouse/
M E TA D ATA P R O V I D E D F O R A D D T O
H O M E S C R E E N ( M A N I F E S T. J S O N )
• Minimum: name, short_name, start_url, icons
• Bruce Lawson (HTML5 evangelist, som jobbet i Opera)
har lagt ut en generator: 

https://brucelawson.github.io/manifest/
• Add to homescreen == No browser UI :-)
I K K E B A R E K U LT, M E N B R A F O R
B U S I N E S S !
• https://developers.google.com/web/showcase/2016/
alibaba
• 76% higher conversions across browsers
• 14% more monthly active users on iOS; 30% on
Android
• 4X higher interaction rate from Add to Homescreen
R E S P O N S E T I M E S : 

T H E 3 I M P O R TA N T L I M I T S
• 0.1 second - instantaneous
• 1 second - show an indicator
• 10 seconds - show progress
P WA - P U S H N O T I F I C AT I O N S
• En viktig fordel for native apps, er push notifications
• Det kan man også oppnå i en web applikasjon :-)
• https://developers.google.com/web/showcase/2016/
carnival
• 24% opt-in to push notifications (16% on desktop,
32% on mobile)
• 42% open rate
P WA - P U S H N O T I F I C AT I O N S
B A C K U P S M E D L A R AV E L PA C K A G E
• https://docs.spatie.be/laravel-backup
• Freek snakket mye om backup rutiner
• hvor ofte?
• backup av hva?
• hvor skal backup lagres?
L A R AV E L B A C K U P
• Backup files and database to one or more filesystems
• Cleanup old backups
• Sending notification
• Easily installed into any Laravel application

• Man kan sette opp en liten Laravel applikasjon med denne
backup-modulen for å ta backup av en annen
applikasjon :-)
S M O K E T E S T S
• Sebastion Thoß som holdt foredraget tilbød meg en
jobb :-)
• Jeg hadde en lengre prat med han, og han var
kjempeinteressant person. Kartmacherei, der han
jobber, de har besøk av thePHP.cc (en av de 3 er
PHPunit skaperen Sebastian Bergmann) en gang i
måneden for å se på optimalisering osv!
• Hans smoktest kode kan man laste ned her:

https://github.com/DjThossi/smoke-testing-php
In computer programming and software testing, smoke
testing is preliminary testing to reveal simple failures
severe enough to reject a prospective software release.
Source: https://en.wikipedia.org/wiki/Smoke_testing
  S M O K E T E S T S S H O U L D . . .
• ... be simple
• ... be fast
• ... test pages with optional parameters too
• ... cover at least all URLs in google index
• ... use a manual maintained list of URLs
W H AT S H O U L D S M O K E T E S T S
VA L I D AT E ?
• Status code
• Time to first byte
• If body is provided
• Correct server
S M O K E T E S T S A R E N O T A C C E P TA N C E
T E S T S
S M O K E T E S T S C O N C L U S I O N
• Write tests
• Get 100% coverage
• SmokeTest your Website
• Only activate server if it didn’t start smoking
C O D E R E V I E W S
• Hannes Van De Vreken, developer relations i
madewithlove - it stort firma i Belgia.
• Hannes var en av de som ble litt kjent med :-)
• Code style skal ikke være et issue, det skal håndteres
ved at alle bruke samme code style (f.eks. PSR-2), når
man programmerer
W H Y ?
• Submitter kan lære av feedback, og utvikle seg som en
programmerer
• Reviewer lærer også (på samme måte som en mentor
lærer av sin student)
• Management - utviklererne blir bedre, kjennskap til
features blir fordelt (mindre sårbarhet), og 

koden/produktet blir bedre
H VA S K A L S U B M I T T E R G J Ø R E ?
• Sette seg nøye inn i hva som skal gjøres, før
programmering
• Skriv tester
• Hver endring bør være en commit, med en egen
kommentar. Det gjør det lettere å gjøre code review
etterpå.
• Opprett en pull request for ny kode, som code
reviewer skal se på.
H VA S K A L R E V I E W E R G J Ø R E ?
• Ikke kommenter bagateller i koden, dersom det er ok
og lesbar kode, så er det greit.
• Se på oppgaven, og sjekk at koden gjør det den skal
• Se på design patterns, navn på variabler og metoder
• Er koden lesbar? Er koden unødvendig komplisert/
kreativ?
H VA S K A L R E V I E W E R G J Ø R E ?
• Dersom noe er ugreit, så send tilbake med et
spørsmål. Husk å formuler deg på en grei måte, unngå
unødvendig kjipe situasjoner. Gi tilbakemeldinger i
form av spørsmål eller forslag (suggestive language).
• “Shit sandwich”: begynn med noe hyggelig, så 

være tydelig med feedback, så avslutt med noe
hyggelig/oppmuntrende.
• Dersom ok, gi oppmuntrende kommentarer, 

thumbs up!
T I P S F O R E N K L E R E C O D E R E V I E W
• unngå phpdoc_params, align_double_arrow og
align_equals

dette er formatering som ser pen ut, men skaper
unødvendig mye diff`er når man endrer koden
etterpå…
• alltid ha curly brackets, fordi da er det lett å se diff når
man senere vil legge til en ekstra linje i if-blokken
W E B S O C K E T S
• James Mallison jobber i Trivago
• Jeg fikk ikke tak i alt han sa, men han delte sin vandring fram
mot målet, og man fikk noen gode tips til tools og teknikker
(der finnes så mange alternativer og muligheter…)
• Noen relevante linker:
• http://reactphp.org/
• http://amphp.org/
• http://wamp-proto.org/
K O R T F O R TA LT
• Browser sends ws:// or wss://
• Server responds with HTTP/1.1 Switching Protocols
• Open and persistent connection
• Connection can be closed by either server or client at any
time.
H T T P V S W E B S O C K E T S
H I G H L E V E L A R C H I T E C T U R E
W H AT I L E A R N E D
• Using an event loop != non-blocking or asynchronous
• Easiest way to not block, use threads, processes or an external library
• All connections between client / ws server over SSH with TOR
• Could accomplish with NodeJS (but didn’t want to sell my soul)
• Could have just made RPC calls to the server anyway instead of cmd- 

line (I found this out right at the end of it all)
• Didn’t have to broadcast on a $topic, as $connection had methods of 

sending data to specific connections
Y O U R C H O I C E S
• Event loops and reactors in PHP: React, amphp
• Websocket server-side libraries: ratchet, php-
websockets
• WAMP-specced client-side libraries: Autobahn.js, 

AngularWAMP, Minion
• Event-loop underlying libs: LibEv, LibEvent, LibUV
F L E X B O X , I N T R O V I D E O AV L A R A C A S T S
- J E F F R E Y WAY
• https://laracasts.com/series/learn-flexbox-through-
examples/episodes/1
• https://laracasts.com/series/learn-flexbox-through-
examples/episodes/2
• https://laracasts.com/series/learn-flexbox-through-
examples/episodes/8
S M O K E T E S T - D E M O
• Sebastion har lagt ut kode som vi skal prøve ut
sammen:

https://github.com/DjThossi/smoke-testing-php

More Related Content

Similar to Meetup16

Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3
Morten Bergset
 
HTML5 - en int teori
HTML5 - en int teoriHTML5 - en int teori
HTML5 - en int teoriDag Tjemsland
 
KristiansandPHP meetup 6
KristiansandPHP meetup 6KristiansandPHP meetup 6
KristiansandPHP meetup 6
Morten Bergset
 
Innhold på nye gjensidige.no
Innhold på nye gjensidige.noInnhold på nye gjensidige.no
Innhold på nye gjensidige.no
Lisa Kjelstad
 
Flexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnPFlexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnP
Ole Kristian Mørch-Storstein
 
Kryssplatform mobilutvikling
Kryssplatform mobilutviklingKryssplatform mobilutvikling
Kryssplatform mobilutvikling
Runegri
 
Dette må du kunne om universell utforming
Dette må du kunne om universell utformingDette må du kunne om universell utforming
Dette må du kunne om universell utforming
audmaha
 
Hva er Koha? - Versjon 2
Hva er Koha? - Versjon 2Hva er Koha? - Versjon 2
Hva er Koha? - Versjon 2
Libriotech
 
Ledig stillinger som DevOps og Fullstack utviklere
Ledig stillinger som DevOps og Fullstack utviklereLedig stillinger som DevOps og Fullstack utviklere
Ledig stillinger som DevOps og Fullstack utviklere
Tor Saur
 
Digitale hjelpemidler for studenter med lese og skrivevansker versjon 2015
Digitale hjelpemidler for studenter med lese  og skrivevansker versjon 2015Digitale hjelpemidler for studenter med lese  og skrivevansker versjon 2015
Digitale hjelpemidler for studenter med lese og skrivevansker versjon 2015
Magnus Nohr
 
Intro to Azure DevOps
Intro to Azure DevOpsIntro to Azure DevOps
Intro to Azure DevOps
AudunSolemdal
 
Webdagene2007 Christian Johansen Webutvikling
Webdagene2007 Christian Johansen WebutviklingWebdagene2007 Christian Johansen Webutvikling
Webdagene2007 Christian Johansen Webutvikling
Anette Urhamar
 
Tcd 2014 tirsdag_05 mintra_mobile_enheter
Tcd 2014 tirsdag_05 mintra_mobile_enheterTcd 2014 tirsdag_05 mintra_mobile_enheter
Tcd 2014 tirsdag_05 mintra_mobile_enheter
Mintra Trainingportal - Training for the Oil and Gas Industry
 
Dnd design smartere dagsavisen
Dnd design smartere   dagsavisenDnd design smartere   dagsavisen
Dnd design smartere dagsavisendndwebkom
 
Digitale hjelpemidler for studenter med lese og skrivevansker2014
Digitale hjelpemidler for studenter med lese  og skrivevansker2014Digitale hjelpemidler for studenter med lese  og skrivevansker2014
Digitale hjelpemidler for studenter med lese og skrivevansker2014
Magnus Nohr
 
Medlemsmøte i PHP Norge: Oppstartsmøte
Medlemsmøte i PHP Norge: OppstartsmøteMedlemsmøte i PHP Norge: Oppstartsmøte
Medlemsmøte i PHP Norge: Oppstartsmøte
Knut Urdalen
 
Kan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterKan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterThor Henning Hetland
 
Oppgave 10 om podkast MOOC studiet 2022
Oppgave 10 om podkast MOOC studiet 2022Oppgave 10 om podkast MOOC studiet 2022
Oppgave 10 om podkast MOOC studiet 2022
OthmaneAboutaleb1
 
Hvordan dekke kompetansegap mellom designere og utviklere
Hvordan dekke kompetansegap mellom designere og utviklereHvordan dekke kompetansegap mellom designere og utviklere
Hvordan dekke kompetansegap mellom designere og utviklere
Janne Flusund
 
Slik kan du prototype enkelt med node red
Slik kan du prototype enkelt med node redSlik kan du prototype enkelt med node red
Slik kan du prototype enkelt med node red
Simen Sommerfeldt
 

Similar to Meetup16 (20)

Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3
 
HTML5 - en int teori
HTML5 - en int teoriHTML5 - en int teori
HTML5 - en int teori
 
KristiansandPHP meetup 6
KristiansandPHP meetup 6KristiansandPHP meetup 6
KristiansandPHP meetup 6
 
Innhold på nye gjensidige.no
Innhold på nye gjensidige.noInnhold på nye gjensidige.no
Innhold på nye gjensidige.no
 
Flexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnPFlexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnP
 
Kryssplatform mobilutvikling
Kryssplatform mobilutviklingKryssplatform mobilutvikling
Kryssplatform mobilutvikling
 
Dette må du kunne om universell utforming
Dette må du kunne om universell utformingDette må du kunne om universell utforming
Dette må du kunne om universell utforming
 
Hva er Koha? - Versjon 2
Hva er Koha? - Versjon 2Hva er Koha? - Versjon 2
Hva er Koha? - Versjon 2
 
Ledig stillinger som DevOps og Fullstack utviklere
Ledig stillinger som DevOps og Fullstack utviklereLedig stillinger som DevOps og Fullstack utviklere
Ledig stillinger som DevOps og Fullstack utviklere
 
Digitale hjelpemidler for studenter med lese og skrivevansker versjon 2015
Digitale hjelpemidler for studenter med lese  og skrivevansker versjon 2015Digitale hjelpemidler for studenter med lese  og skrivevansker versjon 2015
Digitale hjelpemidler for studenter med lese og skrivevansker versjon 2015
 
Intro to Azure DevOps
Intro to Azure DevOpsIntro to Azure DevOps
Intro to Azure DevOps
 
Webdagene2007 Christian Johansen Webutvikling
Webdagene2007 Christian Johansen WebutviklingWebdagene2007 Christian Johansen Webutvikling
Webdagene2007 Christian Johansen Webutvikling
 
Tcd 2014 tirsdag_05 mintra_mobile_enheter
Tcd 2014 tirsdag_05 mintra_mobile_enheterTcd 2014 tirsdag_05 mintra_mobile_enheter
Tcd 2014 tirsdag_05 mintra_mobile_enheter
 
Dnd design smartere dagsavisen
Dnd design smartere   dagsavisenDnd design smartere   dagsavisen
Dnd design smartere dagsavisen
 
Digitale hjelpemidler for studenter med lese og skrivevansker2014
Digitale hjelpemidler for studenter med lese  og skrivevansker2014Digitale hjelpemidler for studenter med lese  og skrivevansker2014
Digitale hjelpemidler for studenter med lese og skrivevansker2014
 
Medlemsmøte i PHP Norge: Oppstartsmøte
Medlemsmøte i PHP Norge: OppstartsmøteMedlemsmøte i PHP Norge: Oppstartsmøte
Medlemsmøte i PHP Norge: Oppstartsmøte
 
Kan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterKan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekter
 
Oppgave 10 om podkast MOOC studiet 2022
Oppgave 10 om podkast MOOC studiet 2022Oppgave 10 om podkast MOOC studiet 2022
Oppgave 10 om podkast MOOC studiet 2022
 
Hvordan dekke kompetansegap mellom designere og utviklere
Hvordan dekke kompetansegap mellom designere og utviklereHvordan dekke kompetansegap mellom designere og utviklere
Hvordan dekke kompetansegap mellom designere og utviklere
 
Slik kan du prototype enkelt med node red
Slik kan du prototype enkelt med node redSlik kan du prototype enkelt med node red
Slik kan du prototype enkelt med node red
 

More from Morten Bergset

KristiansandPHP 2017 - Nov
KristiansandPHP 2017 - NovKristiansandPHP 2017 - Nov
KristiansandPHP 2017 - Nov
Morten Bergset
 
Laravel tips
Laravel tipsLaravel tips
Laravel tips
Morten Bergset
 
Laravel Spark, and Twig
Laravel Spark, and TwigLaravel Spark, and Twig
Laravel Spark, and Twig
Morten Bergset
 
Meetup 9 i KristansandPHP
Meetup 9 i KristansandPHPMeetup 9 i KristansandPHP
Meetup 9 i KristansandPHP
Morten Bergset
 
htaccess
htaccesshtaccess
htaccess
Morten Bergset
 
KristiansandPHP meetup 5
KristiansandPHP meetup 5KristiansandPHP meetup 5
KristiansandPHP meetup 5
Morten Bergset
 

More from Morten Bergset (6)

KristiansandPHP 2017 - Nov
KristiansandPHP 2017 - NovKristiansandPHP 2017 - Nov
KristiansandPHP 2017 - Nov
 
Laravel tips
Laravel tipsLaravel tips
Laravel tips
 
Laravel Spark, and Twig
Laravel Spark, and TwigLaravel Spark, and Twig
Laravel Spark, and Twig
 
Meetup 9 i KristansandPHP
Meetup 9 i KristansandPHPMeetup 9 i KristansandPHP
Meetup 9 i KristansandPHP
 
htaccess
htaccesshtaccess
htaccess
 
KristiansandPHP meetup 5
KristiansandPHP meetup 5KristiansandPHP meetup 5
KristiansandPHP meetup 5
 

Meetup16

  • 1. G L I M T F R A P H P U K C S S F L E X B O X S M O K E T E S T S M E E T U P # 1 6
  • 2.
  • 3. • Forrige top 10 liste er fra 2013, men nå har det kommet ut en release candidate for 2017, last ned PDF her:
 https://github.com/OWASP/Top10/raw/master/2017/ OWASP%20Top%2010%20-%202017%20RC1- English.pdf
  • 4.
  • 5. N Y E V E R S J O N E R • PHP 7.1.4 og 7.0.18 kom ut 13. april (bugfixes) • Symfony 3.3, med mange forbedringer og forenklinger • Laravel 5.5 skal komme i juli, og enn så lenge kan vi kose oss med mindre patcher (v5.4.19 kom ut i går)
  • 6. P H P V E R S J O N E R
  • 7. H VA B L E D E T S N A K K E T O M I L O N D O N ? Table 1 Hva Antall Testing 7 Framework 4 Availability 3 Cloud 3 Sikkerhet 3 Community 2 Div 13
  • 8. H VA J E G S Y N E S VA R M E S T I N T E R E S S A N T O G R E L E VA N T • Progressiv web apps • Backup package for Laravel • Smoketests • Codereview • Websockets
  • 9. P R O G R E S S I V W E B A P P S ( P WA ) • Site is served over HTTPS • Pages are responsive on tablets & mobile devices • Metadata provided for Add to Home screen • The start URL (at least) loads while offline • Site works cross-browser • Page transitions don't feel like they block on the network • Each page has a URL 
 
 https://developers.google.com/web/progressive-web-apps/checklist
 https://developers.google.com/web/tools/lighthouse/
  • 10. M E TA D ATA P R O V I D E D F O R A D D T O H O M E S C R E E N ( M A N I F E S T. J S O N ) • Minimum: name, short_name, start_url, icons • Bruce Lawson (HTML5 evangelist, som jobbet i Opera) har lagt ut en generator: 
 https://brucelawson.github.io/manifest/ • Add to homescreen == No browser UI :-)
  • 11. I K K E B A R E K U LT, M E N B R A F O R B U S I N E S S ! • https://developers.google.com/web/showcase/2016/ alibaba • 76% higher conversions across browsers • 14% more monthly active users on iOS; 30% on Android • 4X higher interaction rate from Add to Homescreen
  • 12. R E S P O N S E T I M E S : 
 T H E 3 I M P O R TA N T L I M I T S • 0.1 second - instantaneous • 1 second - show an indicator • 10 seconds - show progress
  • 13. P WA - P U S H N O T I F I C AT I O N S • En viktig fordel for native apps, er push notifications • Det kan man også oppnå i en web applikasjon :-) • https://developers.google.com/web/showcase/2016/ carnival • 24% opt-in to push notifications (16% on desktop, 32% on mobile) • 42% open rate
  • 14. P WA - P U S H N O T I F I C AT I O N S
  • 15. B A C K U P S M E D L A R AV E L PA C K A G E • https://docs.spatie.be/laravel-backup • Freek snakket mye om backup rutiner • hvor ofte? • backup av hva? • hvor skal backup lagres?
  • 16. L A R AV E L B A C K U P • Backup files and database to one or more filesystems • Cleanup old backups • Sending notification • Easily installed into any Laravel application
 • Man kan sette opp en liten Laravel applikasjon med denne backup-modulen for å ta backup av en annen applikasjon :-)
  • 17.
  • 18. S M O K E T E S T S • Sebastion Thoß som holdt foredraget tilbød meg en jobb :-) • Jeg hadde en lengre prat med han, og han var kjempeinteressant person. Kartmacherei, der han jobber, de har besøk av thePHP.cc (en av de 3 er PHPunit skaperen Sebastian Bergmann) en gang i måneden for å se på optimalisering osv! • Hans smoktest kode kan man laste ned her:
 https://github.com/DjThossi/smoke-testing-php
  • 19. In computer programming and software testing, smoke testing is preliminary testing to reveal simple failures severe enough to reject a prospective software release. Source: https://en.wikipedia.org/wiki/Smoke_testing
  • 20.   S M O K E T E S T S S H O U L D . . . • ... be simple • ... be fast • ... test pages with optional parameters too • ... cover at least all URLs in google index • ... use a manual maintained list of URLs
  • 21. W H AT S H O U L D S M O K E T E S T S VA L I D AT E ? • Status code • Time to first byte • If body is provided • Correct server
  • 22. S M O K E T E S T S A R E N O T A C C E P TA N C E T E S T S
  • 23. S M O K E T E S T S C O N C L U S I O N • Write tests • Get 100% coverage • SmokeTest your Website • Only activate server if it didn’t start smoking
  • 24. C O D E R E V I E W S • Hannes Van De Vreken, developer relations i madewithlove - it stort firma i Belgia. • Hannes var en av de som ble litt kjent med :-) • Code style skal ikke være et issue, det skal håndteres ved at alle bruke samme code style (f.eks. PSR-2), når man programmerer
  • 25.
  • 26. W H Y ? • Submitter kan lære av feedback, og utvikle seg som en programmerer • Reviewer lærer også (på samme måte som en mentor lærer av sin student) • Management - utviklererne blir bedre, kjennskap til features blir fordelt (mindre sårbarhet), og 
 koden/produktet blir bedre
  • 27. H VA S K A L S U B M I T T E R G J Ø R E ? • Sette seg nøye inn i hva som skal gjøres, før programmering • Skriv tester • Hver endring bør være en commit, med en egen kommentar. Det gjør det lettere å gjøre code review etterpå. • Opprett en pull request for ny kode, som code reviewer skal se på.
  • 28. H VA S K A L R E V I E W E R G J Ø R E ? • Ikke kommenter bagateller i koden, dersom det er ok og lesbar kode, så er det greit. • Se på oppgaven, og sjekk at koden gjør det den skal • Se på design patterns, navn på variabler og metoder • Er koden lesbar? Er koden unødvendig komplisert/ kreativ?
  • 29. H VA S K A L R E V I E W E R G J Ø R E ? • Dersom noe er ugreit, så send tilbake med et spørsmål. Husk å formuler deg på en grei måte, unngå unødvendig kjipe situasjoner. Gi tilbakemeldinger i form av spørsmål eller forslag (suggestive language). • “Shit sandwich”: begynn med noe hyggelig, så 
 være tydelig med feedback, så avslutt med noe hyggelig/oppmuntrende. • Dersom ok, gi oppmuntrende kommentarer, 
 thumbs up!
  • 30. T I P S F O R E N K L E R E C O D E R E V I E W • unngå phpdoc_params, align_double_arrow og align_equals
 dette er formatering som ser pen ut, men skaper unødvendig mye diff`er når man endrer koden etterpå… • alltid ha curly brackets, fordi da er det lett å se diff når man senere vil legge til en ekstra linje i if-blokken
  • 31. W E B S O C K E T S • James Mallison jobber i Trivago • Jeg fikk ikke tak i alt han sa, men han delte sin vandring fram mot målet, og man fikk noen gode tips til tools og teknikker (der finnes så mange alternativer og muligheter…) • Noen relevante linker: • http://reactphp.org/ • http://amphp.org/ • http://wamp-proto.org/
  • 32. K O R T F O R TA LT • Browser sends ws:// or wss:// • Server responds with HTTP/1.1 Switching Protocols • Open and persistent connection • Connection can be closed by either server or client at any time.
  • 33. H T T P V S W E B S O C K E T S
  • 34. H I G H L E V E L A R C H I T E C T U R E
  • 35. W H AT I L E A R N E D • Using an event loop != non-blocking or asynchronous • Easiest way to not block, use threads, processes or an external library • All connections between client / ws server over SSH with TOR • Could accomplish with NodeJS (but didn’t want to sell my soul) • Could have just made RPC calls to the server anyway instead of cmd- 
 line (I found this out right at the end of it all) • Didn’t have to broadcast on a $topic, as $connection had methods of 
 sending data to specific connections
  • 36. Y O U R C H O I C E S • Event loops and reactors in PHP: React, amphp • Websocket server-side libraries: ratchet, php- websockets • WAMP-specced client-side libraries: Autobahn.js, 
 AngularWAMP, Minion • Event-loop underlying libs: LibEv, LibEvent, LibUV
  • 37. F L E X B O X , I N T R O V I D E O AV L A R A C A S T S - J E F F R E Y WAY • https://laracasts.com/series/learn-flexbox-through- examples/episodes/1 • https://laracasts.com/series/learn-flexbox-through- examples/episodes/2 • https://laracasts.com/series/learn-flexbox-through- examples/episodes/8
  • 38. S M O K E T E S T - D E M O • Sebastion har lagt ut kode som vi skal prøve ut sammen:
 https://github.com/DjThossi/smoke-testing-php