3. 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.
4. Tři esenciální věci pro vývojáře
1. Version control – Git, Subversion atd.
2. Oblíbený editor / IDE
3. Version control
5. 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
6. => 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
7. 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í
8. 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
10. 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
11. 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
12. 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é zrealizovat
2. Ale pokud se povede, odemyká zcela nový svět
13. 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.
14. 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
15. 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
16. 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
18. 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
20. 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
21. 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.