bbPress silně nedoporučuje deset z deseti psychologů

Upozornění: tento článek je subjektivní názor, nikoliv nutně „objektivní“ fak­ta.

Okénko: bbPress, open-source PHP aplikace pro diskusní fóra. Vytvořena v dílnách společnosti Automattic, společnosti, která se proslavila oblíbeným blogovacím systémem WordPress.

Víte, proč práce v šablonách programu bbPress trvá tak dlouho? Protože celou tu dobu vlastně v duchu píšete článek Proč je bbPress na hovno.

Přejdu k věci, přeskočím malicherné, přesto iritující pitomosti, jako například rádoby-avšak-kontra-užitečný coding standard: mezery mezi závorkami a jejich obsahem (PHP).

Tím největším problém je toto. Nevím jestli bbPress dělají stejní lidé jako WordPress, přinejmenším to dělá stejná firma a kód má stejný (doktorský) rukopis. To se obecně ví, a člověk potom nemá od aplikace přílišná očekávání. Když ale firma vysloví něco jako (nechce se mi hledat originál) „Kdybychom dělali WordPress znovu, byl by v mnoha ohledech jako bbPress“… může si člověk své mínění o programu o něco zkladnit. Naivně a chybně. No dobře, bbPress není tak pomalý jako WordPress, ale v mnoha ohledech je to stále stejný shit. Když se podíváte zblízka, najdete na bbPressu… hádejte co… pozůstatky architektury archaického chrámu chatrče jménem b2/cafelog.

To jsem k věci moc nepřešel, zkusím to ještě jednou: přejdu k věci teď! Architektura nás nezajímá, když přizpůsobujeme program lehounce k obrazu svému, povětšinou se není třeba vymanit z šablony. Teda, pochopitelně, v ideálním případě. Jak opět obecně známo, WordPress příliš nerespektuje dělení programu na šablonu a jádro (pro lepší pochopitelnost: jádro se vyznačuje tím, že neobsahuje značkovací kód). Jablko nepadlo daleko od stromu. Chvílemi by člověk řekl, že ještě více zdegenerovalo.

Co dál, co hůř, bbPress od svého prvorozeného bratra odkoukal ještě jednu vlastnost. Je to jedna z nejnesnesitel­nějších charakterových vad. Naprosto kokotské používání globálních proměnných. Příklad. Řekněme, že chceme vypsat 10 nejčerstvějších diskusních vláken. Jak by to udělal relativně zdravý člověk? Bez velkého přemýšlení, co nejprostěji, ale zase ne idiotsky?

<?php
$threads = get_threads('orderby=freshness&order=desc&exclude=sticky&count=10');

foreach ($threads as $t) { ?>
<tr>
        <td><a href="<?php echo $t->url ?>#r<?php echo $t->last_reply->id ?>"><?php echo $t->name ?></a></td>
        <td><?php echo $t->replies_count ?></td>
        <td><?php echo $t->last_reply->author_name ?><br /><?php echo date('j.n. Y - G:i', $t->last_reply->dt) ?></td>
</tr>
<?php
}

Jak to udělají… ti… ti… oni? Nějak takto:

<?php foreach ( $topics as $topic ) : ?>
<tr>
        <td><a href="<?php topic_link(); ?>"><?php topic_title(); ?></a></td>
        <td><?php topic_posts(); ?></td>
        <td><?php bb_topic_last_poster(); ?></td>
        <td><a href="<?php topic_last_post_link(); ?>"><?php topic_time(); ?></a></td>
</tr>
<?php endforeach;
}

Oni opravdu používají podmínky a cykly s dvojtečkovou syntaxí… jak já to nesnáším!

Možná se ptáte: a kde je načítání topiců? Kde se naplní proměnná $topics? No, to ví jen pár zasvěcených. (Hledá se to docela těžko.) On to jednoduše bbPress načte za vás, on totiž ví, že toto je úvodní stránka a tady to bude třeba. Když to budete potřebovat načíst jinde? Když to budete chtít načíst jinak? Zabere vám to chvíli. Nakonec se dopracujete až k SQL dotazu. Zrovna v tomto případě není žádná mezivrstva.

Možná se ptáte: proč má jedna ta funkce prefix bb_? Možná jste si ani nevšimli. Proč? Na to není odpověď. Některé funkce mají prefix bb_, protože by jménem kolidovali se stejnými funkcemi WordPressu (kdybyste chtěli dát bratry dohromady). Někdy není důvod.

Možná se ptáte: a co když budu chtít hodnoty returnovat? Během chvíle, po prolítnutí kódu jadrných souborů zjistíte, že všechny ty funkce mají souputníky prefixované ještě řetězcem get_. A během o něco delší chvíle praxe zjistíte, že všechny vlastně ne. Proč tohle všechno? – K čemu funkce, které vypisují hodnotu? Mám teorii. Je to pro uživatele. Kdyby náhodou zapomněli na kouzelné slovíčko echo.

Není to celé tak trochu na blití? Chvíle ticha… Tak zhruba tímto se teď živím. Lidi tomu všemu většinou nerozumí, tak si přivolají odborníka, který ví, jak jednat s bláznem. I když – nevím jestli blázen je to správné přirovnání. Podle některých je totiž mysl bláznů silně logická. Jen je třeba odhalit princip… rozluskout a porozumět. Přiznám se, logiku v souborech WordPressu hledám marně už několik let.


Komentáře (9)

k formuláři

RSS kanál komentářů

    • Komentář číslo: 1
    • *
    • Jméno: Pavel Neuman
    • Odesláno:
      26.7. 2008 — 6:55

    Až tak úplně do vnitřností nevidím, ale pro odkaz href=„http://­buzzmag.cz/ko­munita/“ rel=„nofollow“>http:/­/buzzmag.cz/ko­munita/ jsme nahodili bbPress. Proč? Snadní integrace s WordPressem. Trochu nás pozlobil hosting, že odesílal maily s heslem až po 48 hodinách, do šablon jsme zatím až tak moc nešťourali, ale… Co je na wp i bb geniální je, že nemusíš být porgramátor a postavíš s tím s pluginama HODNĚ. Dokud nepotřebuješ něco extra, potom potřebuješ toho doborníka… btw nemohli bychom se nějak dohodnout na wp pluginu? ;)

    • Komentář číslo: 2
    • *
    • Jméno: Martin
    • Odesláno:
      26.7. 2008 — 8:31

    2Pavel Neuman: tvůj názor by se měl tesat do kamene!

    Věta „o je na wp i bb geniální je, že nemusíš být porgramátor“ je zcela geniální a odpovídá přesně na otázku v článku „proč je to tak udělané?“.

    Je to tak opravdu proto, že neprogramátoři prostě takto přemýšlejí. Stačí ukázat neprogramátorovi ten objektový kód a naprosto to nepochopí. Nějaké foreach, nějaké šipčičky, co to je? Ale když se mu ukáže to druhé, tak je mu to zcela jasné! Dokáže to upravit i sám. Kde chce link, tam vrzne topic_link(); a nezkoumá to. Nějaké echo by ho jen rušilo.

    Programátor je hloubavý, hned hledá, kde se naplní $topics. Neprogramátorovi je to jedno. Kouzlo, ono to tam je! Nenapadne ho, že je milion případů, kdy to bude na obtíž..

    Neprogramátor nechápe tyhle produkty jako zprasené, on je chápe jako geniální. Všechno se děje samo a pokud to chce přiohnout, stačí zaprasit tzv. „šablony“ a je to.

    • Komentář číslo: 3
    • *
    • Jméno: Arthur Dent
    • Odesláno:
      26.7. 2008 — 8:47

    Je krásné, že WP je udělaný tak, aby ho mohl používat neprogramátor. Bohužel, je zároveň dělaný tak, že ho programátor použít nemůže. Brutálněji řečeno: S aplikacemi tzv. „pro blbý“ mohou pracovat jen blbí.

    • Komentář číslo: 4
    • *
    • Jméno: Kahi
    • Odesláno:
      26.7. 2008 — 15:11

    [1] Pavel Neuman: Když už jsme u toho, jak jste tam řešili lokalizaci bbPressu?

    Ad plugin: záleží na podrobnostech, kahi@kahi.cz, díky (příští pracovní týden tady nejsem)

    [2] Martin: Jo, rozumím a souhlasím. Ovšem user-friendly šablonovací kód nebrání v existenci odpovídající pg-friendly variantě. Tzn. oba způsoby by mohly fungovat zároveň. A když už padne rozhodnutí, že žádný pg-friendly způsob nebude, je tak těžké stanovit pro funkce nějou pojmenovávací konvenci? (A taky si myslím, že když už se funkce jmenuje topic_link, měla by zvracet link a ne url. :-))

    • Komentář číslo: 5
    • *
    • Jméno: Peyraq
    • Odesláno:
      27.7. 2008 — 3:00

    (offtopic vzdech)
    Tak nic…
    já si myslel, že si zase přečtu něco, k čemu bych mohl něco říct… ach jak matoucí bývají občas názvy článků :)

    • Komentář číslo: 6
    • *
    • Jméno: Kahi
    • Odesláno:
      27.7. 2008 — 4:46

    [5] Peyraq: Prosímtě, ty bys měl číst odbornou literaturu a ne bláboly člověka, který neví, co je to psychologie (viz. plytké úvahy, které tomuto pojmu podřazuje)! I sledování House, M.D. je poučnější… Vlastně nechápu proč se sem lidi vracejí. Suckuje to tu čím dál víc… (no offence!)

    • Komentář číslo: 7
    • *
    • Jméno: mk
    • Odesláno:
      27.7. 2008 — 11:54

    Bože, tak to příteli nepoužívej, když ti to vadí. vezmi na to drupal / punbb nebo cokoli jiného.

    Největší výhodu WP a BB, tj. použitelnost a modifikovatelnost pro NEprogramátory, vše, proč jsou oba systémy tak oblíbené, shazuješ.

    Nejsou špatné systémy, nejsou špatní lidé… Špatný může být pouze úhel pohledu na věc (v tomto případě ten tvůj)…

    • Komentář číslo: 8
    • *
    • Jméno: Radek
    • Odesláno:
      27.7. 2008 — 23:57

    Ahoj, jako neprogramátor bych rád potvrdil vaši domněnku, že s WP mohu i já udělat hodně. Naopak, když otevřu šablony Gallery2, nejsem schopen udělat nic.

    • Komentář číslo: 9
    • *
    • Jméno: David Grudl
    • Odesláno:
      5.8. 2008 — 0:07

    Docela mě překvapuje obhajoba WordPressu a bbPresu ze strany uživatelů. Kdyby to bylo skutečně tak snadné, tak nejsou po celém světě hordy napráskaných fór s dotazy, jak udělat kdejakou drobnost.

Přidat komentář

Nápověda ke psaní komentářů

Zde formátuje Texy!

  • *zvýraznění*
  • **silné zvýraznění**
  • > citace
  • "odkaz":http://kam
  • [4] reakce na komentář
  • zdrojové kódy a více

komentáře

úplně nahoru