SlideShare a Scribd company logo
1 of 11
Download to read offline
Plux Stahre
Arkitekt
@itspluxstahre
Hur kan vi skriva bättre
plugins?
Sju regler för att skriva bra plugins
1. Ha en strategi
2. Följ kodstandarder & skriv läslig kod
3. Ta säkerhet på allvar!
4. Ha en tydlig dokumentation
5. Använd klasser / prefix
6. Ladda bara det du behöver
7. Städa efter dig!
1: Ha en strategi
Syfte
Support
Målgrupp
2: Följ kodstandarder & skriv läslig kod
Kodstruktur (ex SLASH eller MVC)
Kodstandard
Logiska namn för funktioner / klasser
Best-practice
3: Ta säkerhet på allvar!
Automatiska tester
Säkerhets- och buggrapporter
wp-admin är inte för alla
Sanitera data
Prepared statements
4. Ha en tydlig dokumentation
Vad finns i databasen?
Vilka hooks?
Externa depencies
Extra nginx / apache conf?
API dokumentation
Semantiska Verisionsnummer (http://semver.org)
Tydliga commits
5: Använd klasser / prefix
Lösa funktioner = myplug_somethingsomething_darkside()
Klasser är din kompis
php namespaces
6. Ladda bara det du behöver
Ladda bara den JS / CSS du behöver
PSR autoloader
Minimera antalet anrop till databasen
Tänk på hur du anropar saker
Använd WPDB
“Don’t be greedy”
7. Städa efter dig!
Städa upp databasen, men fråga först
Uninstall.php
Migrera data mellan versioner
Radera skräpdata i databasen
Radera deprecated kod & assets
Bonus tips:
Profilera kod & databasanrop
Använd wp_debug & debugbar
Inga notiser eller varningar från PHP
PHPStorm
Frågor?
Twitter: itspluxstahre
Github: itspluxstahre
Linkedin: se.linkedin.com/in/pluxstahre/en
Web: angrycreative.se
Mail: plux@angrycreative.se

More Related Content

Viewers also liked

BILIOTECA DIGITAL
BILIOTECA DIGITALBILIOTECA DIGITAL
BILIOTECA DIGITAL
ROGER
 
Diseno reductor-velocidad para trabajo en grupo
Diseno reductor-velocidad para trabajo en grupoDiseno reductor-velocidad para trabajo en grupo
Diseno reductor-velocidad para trabajo en grupo
yopsquienmas
 
Mamá de sebastián
Mamá de sebastiánMamá de sebastián
Mamá de sebastián
SlashStriker
 
Press kit louisebourgeois
Press kit louisebourgeoisPress kit louisebourgeois
Press kit louisebourgeois
carlasega
 

Viewers also liked (18)

BILIOTECA DIGITAL
BILIOTECA DIGITALBILIOTECA DIGITAL
BILIOTECA DIGITAL
 
Festejos Sahara
Festejos SaharaFestejos Sahara
Festejos Sahara
 
Diseno reductor-velocidad para trabajo en grupo
Diseno reductor-velocidad para trabajo en grupoDiseno reductor-velocidad para trabajo en grupo
Diseno reductor-velocidad para trabajo en grupo
 
Mamá de sebastián
Mamá de sebastiánMamá de sebastián
Mamá de sebastián
 
Press kit louisebourgeois
Press kit louisebourgeoisPress kit louisebourgeois
Press kit louisebourgeois
 
Case study ricoh
Case study ricohCase study ricoh
Case study ricoh
 
Iskanje idej moje podjetje peter kurnik
Iskanje idej moje podjetje peter kurnikIskanje idej moje podjetje peter kurnik
Iskanje idej moje podjetje peter kurnik
 
Organizacion
OrganizacionOrganizacion
Organizacion
 
Modelo romántico
Modelo románticoModelo romántico
Modelo romántico
 
Novel Use of Biomimetic Proteoglycans to Molecularly Engineer the Extracellul...
Novel Use of Biomimetic Proteoglycans to Molecularly Engineer the Extracellul...Novel Use of Biomimetic Proteoglycans to Molecularly Engineer the Extracellul...
Novel Use of Biomimetic Proteoglycans to Molecularly Engineer the Extracellul...
 
Beriman Kepada Kitab
Beriman Kepada KitabBeriman Kepada Kitab
Beriman Kepada Kitab
 
Informe HIBRIDATUR
Informe HIBRIDATURInforme HIBRIDATUR
Informe HIBRIDATUR
 
Diamax - Effective in glycemic control - Prodiet
Diamax - Effective in glycemic control - ProdietDiamax - Effective in glycemic control - Prodiet
Diamax - Effective in glycemic control - Prodiet
 
Infográfico: Os adolescentes nas redes sociais
Infográfico: Os adolescentes nas redes sociaisInfográfico: Os adolescentes nas redes sociais
Infográfico: Os adolescentes nas redes sociais
 
Resveratrol
ResveratrolResveratrol
Resveratrol
 
Destrezas laparoscópicas
Destrezas laparoscópicasDestrezas laparoscópicas
Destrezas laparoscópicas
 
LVA octubre 2016
LVA octubre 2016 LVA octubre 2016
LVA octubre 2016
 
Ortodoncia
OrtodonciaOrtodoncia
Ortodoncia
 

Similar to Wpbar jkpg hur kan vi skriva bättre plugins

Inlämningsuppg6
Inlämningsuppg6Inlämningsuppg6
Inlämningsuppg6
robbannn
 
HT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programmingHT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programming
Anton Tibblin
 

Similar to Wpbar jkpg hur kan vi skriva bättre plugins (20)

TypeScript DevSum 2013
TypeScript DevSum 2013TypeScript DevSum 2013
TypeScript DevSum 2013
 
Att bygga webbapplikationer med hjälp av Django
Att bygga webbapplikationer med hjälp av Django Att bygga webbapplikationer med hjälp av Django
Att bygga webbapplikationer med hjälp av Django
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutveckling
 
Teckenkodning Pa Webben Pt 2
Teckenkodning Pa Webben Pt 2Teckenkodning Pa Webben Pt 2
Teckenkodning Pa Webben Pt 2
 
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptHT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScript
 
HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)
 
HT19 - DA354A - Introduktion till Python
HT19 - DA354A - Introduktion till PythonHT19 - DA354A - Introduktion till Python
HT19 - DA354A - Introduktion till Python
 
Clean code
Clean codeClean code
Clean code
 
HT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till PythonHT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till Python
 
Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testning
 
HT16 - DA156A - Ramverk och bibliotek
HT16 - DA156A - Ramverk och bibliotekHT16 - DA156A - Ramverk och bibliotek
HT16 - DA156A - Ramverk och bibliotek
 
HT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till ProgrammeringHT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till Programmering
 
Inlämningsuppg6
Inlämningsuppg6Inlämningsuppg6
Inlämningsuppg6
 
eXtreme Programming
eXtreme Programming eXtreme Programming
eXtreme Programming
 
PHP och MySQL
PHP och MySQLPHP och MySQL
PHP och MySQL
 
HT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programmingHT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programming
 
Kravställning i EPiServer 7
Kravställning i EPiServer 7Kravställning i EPiServer 7
Kravställning i EPiServer 7
 
Mindre och snabbare – Cache tips for WordPress developers
Mindre och snabbare – Cache tips for WordPress developersMindre och snabbare – Cache tips for WordPress developers
Mindre och snabbare – Cache tips for WordPress developers
 
HT19 - DA156A - Ramverk och bibliotek
HT19 - DA156A - Ramverk och bibliotekHT19 - DA156A - Ramverk och bibliotek
HT19 - DA156A - Ramverk och bibliotek
 
HT18 - DA156A - Frameworks
HT18 - DA156A - FrameworksHT18 - DA156A - Frameworks
HT18 - DA156A - Frameworks
 

Wpbar jkpg hur kan vi skriva bättre plugins

  • 1. Plux Stahre Arkitekt @itspluxstahre Hur kan vi skriva bättre plugins?
  • 2. Sju regler för att skriva bra plugins 1. Ha en strategi 2. Följ kodstandarder & skriv läslig kod 3. Ta säkerhet på allvar! 4. Ha en tydlig dokumentation 5. Använd klasser / prefix 6. Ladda bara det du behöver 7. Städa efter dig!
  • 3. 1: Ha en strategi Syfte Support Målgrupp
  • 4. 2: Följ kodstandarder & skriv läslig kod Kodstruktur (ex SLASH eller MVC) Kodstandard Logiska namn för funktioner / klasser Best-practice
  • 5. 3: Ta säkerhet på allvar! Automatiska tester Säkerhets- och buggrapporter wp-admin är inte för alla Sanitera data Prepared statements
  • 6. 4. Ha en tydlig dokumentation Vad finns i databasen? Vilka hooks? Externa depencies Extra nginx / apache conf? API dokumentation Semantiska Verisionsnummer (http://semver.org) Tydliga commits
  • 7. 5: Använd klasser / prefix Lösa funktioner = myplug_somethingsomething_darkside() Klasser är din kompis php namespaces
  • 8. 6. Ladda bara det du behöver Ladda bara den JS / CSS du behöver PSR autoloader Minimera antalet anrop till databasen Tänk på hur du anropar saker Använd WPDB “Don’t be greedy”
  • 9. 7. Städa efter dig! Städa upp databasen, men fråga först Uninstall.php Migrera data mellan versioner Radera skräpdata i databasen Radera deprecated kod & assets
  • 10. Bonus tips: Profilera kod & databasanrop Använd wp_debug & debugbar Inga notiser eller varningar från PHP PHPStorm
  • 11. Frågor? Twitter: itspluxstahre Github: itspluxstahre Linkedin: se.linkedin.com/in/pluxstahre/en Web: angrycreative.se Mail: plux@angrycreative.se