3. AZ ACQUIA NETWORK
Drupal support
Drupalra optimalizált hosting
A Drupal terjesztését segíti
Drupal Commons
Drupal Gardens (drupalgardens.com)
Dev desktop
5. AZ EGYENSÚLY
Az oldal építésébe ÉS fenntartásába fektetett idő és
energia
Az implementált funkcionalitás
A kliens igényei
6. TARTALOMSTRUKTÚRA
“Van ez a promóciós cikk tartalomtípus, ez ugyanaz
mint a cikk, csak a lista tetején jelenik meg”
A szerkesztők nem tudják milyen tartalomtípust
készítsenek
Mire is való a tartalomtípus
7. MEGJELENÍTÉS
Különböző nézeteket hoztunk létre helyszínenként:
nezet_budapest, nezet_becs stb
Több nézet helyett konteksztuál filter (thx
DenesSzabo)
PHP kód felhasználása blokkok láthatóságára
8. MODULOK
Hook-ok illetlen használata (kell ez a node később,
ezért betöltjük a preprocess_page-ben)
Csak azért mert van rá modul, még nem kell
használni
PHP kód adatbázisból futtatva
Túl sok modul
9. A KERÉK ÚJRA
FELTALÁSA
“Írtunk egy modult amivel űrlapokat lehet létrehozni
és az admin felhasználónak emialt küld”
“A modul kitesz egy rejtett token-t spam ellen”
“Szeretném megváltoztatni ezt az űrlapot, ezert
beleírtam a template-be”
hook_VALAMI_alter használata
11. CODING STANDARD
A kódolási stílus nem betartása igénytelenség ami
tipikusan átterjed a kód minőségére is.
Olvashatatlanság
Nehéz auditálás, átadhatóság
Hiányos dokumentáció
Coder modul sem tud segíteni
12. NEM MEGFELELŐ HOOK-
OK
Érzékeny hook-okban csúnya dolgok történnek
hook_(pre)process_page, hook_(pre)process_html
hook_init, hook_boot, hook_exit
hook_node_view, hook_block_view
13. API NEM MEGFELELŐ
HASZNÁLATA
Sztringek
ID-k lekódolva
t(time())
db_query vs db_select SELECT operációkra
hook_form_alter vs hook_form_FORM_ID_alter
14. MINDEN KÓD
A .MODULE FILE-BAN
Nagy memory footprint, (lassú az oldal)
Megoldás: ‘file’ attribútum használata
hook_theme-ben
hook_menu-ben
15. SMINKEK
“Kellett egy node mező, ezért a template-be beleírtuk
a query-t”
“Csak simán kiprinteljük a változót, baj?”
“Kellett a colorbox könyvtár, ezért beleraktuk a
sminkbe.”
“Kell egy extra css, beleírtuk a template-be.”
Mi történne, ha átállnánk egy másik sminkre?
16. INFRASTRUKTÚRA
A memcache daemont az adatbázis szerverre raktuk,
végülis hasonló a feladatuk.
Úgy hallottuk, hogy a mongodb meg nginx nagyon
gyors, ezért ezeket használjuk főleg.
5 GB-os a git repo-nk ez baj?
Hány file van a files könyvtárban? 1 millió. Miért halt
meg a fileszerver?
17. BIZTONSÁG
“Ez az url úgyis kitalálhatatlan, ráadásul csak egy
mobile app használja, ezért aztán nincs is rajta
authentikáció”
“Igen, nekünk fontos, hogy bárki be tudjon ágyazni
javascriptet/iframet/youtube videókat a tartalomba”
“Igen, készítettünk egy admin nézetet, de úgyis csak
mi ismerjük az url-jét”
18. GYAKORI HIBÁK
Nem frissített modulok (hacked?)
PHP szkriptek a docroot-ban
Rossz konfiguráció (HTML tartalomban)
File feltöltés nem szabalyozott (txt)
Könnyű felhasználónév/jelszó
21. TÚLFEJLESZTÉS
“Az elejen azt hittük, hogy többnyelvű lesz az oldal,
de végül csak angol lett”
“Jelenleg csak egyfajta felhasználónk van, de lehet,
hogy a jövőben lesz más is, úgyhogy használjuk a
content access modult.”
“Van 20 tartalomszerkesztőnk, úgyhogy az authcache
modullal gyorsítjuk számukra az oldalt”
22. MIT LEHET EZZEL
KEZDENI?
hacked, coder, security_review modulok
Funkcionalitás anti-developer átnézese
Lehetne egy view resze?
Lehetne Display Suite?
Panels-szel nem egyszerűbb összerakni az adott
oldalt?
23. PERFORMANCE
Határesetek - cache clear all-kor mi tortenik?
Mi is tortenik system_settings_form_submitkor?
xhprof, new relic
Tudjuk egyáltalán, hogy mi a baj? 80% - 20% szabály
28. DEPLOY
“Csak felmásoljuk a kódot FTP-n a szerverre es
átirányítjuk a docroot-ot apache configból. Mit
értetek azon, hogy rollback?”
“A fejlesztők csak lemásolják a szerveren levő kódot/
adatbázist/fileokat”
“Ja, igen azt a modult kicsit átírtuk.” - tipikusan
drush up -y után
29. KARBANTARTÁS
A honlapfejlesztés nem áll meg az átadással
A kódbázist igenis verziókövetni kell (git, svn)
Backup, files folder NINCS verziókovetes alatt (“Ó
igen, 5 Gb a git repónk, mert hozzáfűztünk néhány
videót is. Baj?”)
A karbantartás az egyik legalulbecsültebb feladat
Nem szabad elhanyagolni
30. KÖRNYEZETEK
A fejlesztői szentháromság: dev, staging, production
Könnyen replikálhatóak
VCS-bol deployolni bármelyik környezetre
Staging és Production hasonlóak
Ad-hoc tesztkörnyezet load tesztekhez