versionpress - jak dělat wp weby lépe
DESCRIPTION
Prezentace z konference WordCamp Praha 2014. První veřejné představení VersionPressu.TRANSCRIPT
VersionPressjak dělat WP weby lépeBorek Bernard, @borekb
Story
WordPress z pohledu vývojáře• Jsem v první řadě vývojář• Špatný cit pro design• Žádný CSS mág• …ale vím, jak dělat softwarové projekty
• Web na WordPressu často je plnohodnotný softwarový projekt• Change management• Dělba práce mezi více členů týmu (vývoj, coding,
copywriting, …)• Release management (staging vs. live prostředí)• atd.
Tři esenciální věci pro vývojáře1. Version control – Git, Subversion atd.2. Oblíbený editor / IDE3. Version control
Vývoj dle WordPressu
• Vše se děje skrze administraci• žádné IDE, žádný editor, vše se nakliká v administraci
nebo v krajním případě upraví přes textareu
• Změny jsou okamžité a neverzují se• obecně neexistuje způsob, jak se vrátit zpátky
• Aktualizace přímo v produkci• uuuaaaaaaaaaaaaaaaaa
=> rozpor v tom, jak fungují běžné SW projekty a jak je WordPress zamýšlený
Důsledky pro běžné uživatele:• Strach z aktualizací• … až jejich ignorování• WP hostingy nepodporují custom
pluginy a témata vzhledu
Můj přístup k vývoji WP webů• Soubory verzované v Gitu• Remote repository na BitBucketu• Úprava funkcionality v PhpStormu• Staging prostředí• Systém pro zálohování
Přínosy a problémy
Přínosy Problémy
WordPress projekt začal připomínat standardní sw projekt, jak jsem byl zvyklý
Git repozitář neobsahoval celý obraz webu – sám o sobě je bez DB k ničemu
Mohl jsem používat efektivnější nástroje Změny v databázi neverzované
Do produkce šly až otestované změny Merge dvou databází (test a live) stále obtížný
Mohl jsem vyvíjet na více počítačích
=> idea udělat VersionPress
VersionPress
Co je VersionPress
• Standardní plugin• Snaha přinést do WordPressu praktiky z
profesionálního sw vývoje• V jádru především verzování, ale dále celá řada
navázaných funkcí• Cílem je funkční a pohodlný staging
• V tuto chvíli prototyp
Nosné myšlenky
• Verzovat všechno, jak soubory tak databázi• Použít nějaký standardní a osvědčený VCS (Git)• Být přívětivý k power userům i běžným uživatelům
1. Verzování databáze
• Kritický bod, kvůli kterému je VersionPress unikátní• Dvě protichůdné věci:
1. Verzování databáze je velmi těžké zrealizovat2. Ale pokud se povede, odemyká zcela nový svět
2. Využití Gitu
• Verzovat lze různě – např. nové tabulky a řádky v MySQL ala Wikipedia nebo WordPress posty• Vývojáři ale mají rádi standardní VCS• Zvolili jsme Git, protože:• Rozšířený, univerzálně používaný• Standardní sada příkazů pro práci s tímto VCS• Online služby jako GitHub nebo BitBucket• Široká podpora v nástrojích, velká uživatelský komunita
atd.
3. Pro power usery i běžné uživatele• Pokud je uživatel power user a např. udělá úpravu v
nějakém externím IDE, musí mít možnost commitnout změny ručně a pro VersionPress to nebude problém• Běžný uživatel vůbec nemusí vědět, co je Git nebo
version control. Vše lze stále dělat skrze webové rozhraní WordPressu
Funkce VersionPressu (1)
• Automaticky verzuje každou významnou akci, ať už udělanou v administraci nebo veřejně• Nový post nebo komentář -> commit• Změna tématu vzhledu -> commit• Instalace pluginu -> commit• Update WordPressu -> commit
• Možnost vrátit se k libovolné předchozí verzi• Něco jako Undo ve Wordu
• Možnost vrátit pouze změny z nějaké předchozí verze• Lepší než Undo ve Wordu
Funkce VersionPressu (2)
• Vestavěná podpora pro staging prostředí• One-click vytvoření testovacího prostředí• Merge dvou prostředí – chytré sloučení změn v živé a
testovací databázi
• Ideální backup• Zálohována je nejen aktuální verze, ale i všechny
historické• … ve velmi úsporném formátu
Demo
Demo
• Instalace VersionPressu• Akce v administraci se samy verzují• S repozitářem lze pracovat i jinými nástroji, např.
TortoiseGit• Revert k nějaké historické verzi• Undo nějaké historické verze• Naklonování WordPressu do testovacího prostředí• Úspornost pro backup
Shrnutí
Co je na VersionPressu unikátní• První plugin, který skutečně verzuje WP weby, ne
jen vytváří statické snaphosty• Automatický merge dvou prostředí• Demokratizace verzování – člověk nemusí být
softwarový vývojář, aby dokázal VersionPress a jeho výhody používat
Aktuální stav
• Prototyp / studie proveditelnosti• Chceme slyšet feedback• Čeká nás ještě hodně práce• Podpora nestandardních pluginů• GUI• Zbavení závislosti na cmdline Gitu• atd.
Sledujte @versionpress
nebo FB/VersionPress