VersionPress - jak dělat WP weby lépe

Post on 05-Dec-2014

655 views 0 download

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