SlideShare une entreprise Scribd logo
1  sur  31
MI A BAJ A
    DRUPALODDAL?
Kizárólag mások által gyakran elkövetett hibák
RÓLAM



Dianiska Balázs

Acquia tanácsadó

154 946 km, 13 ország, 37 város
AZ ACQUIA NETWORK

Drupal support

Drupalra optimalizált hosting

A Drupal terjesztését segíti

  Drupal Commons

  Drupal Gardens (drupalgardens.com)

  Dev desktop
MIT CSINÁLUNK

Fejlesztőcsapatok beindítása (training)

Architektúra tervezés

Project felfedezés (discovery)

Auditálás

Sebesség elemzés

Tanácsadás
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
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
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
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
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
TÜNETEK



Coding standard be nem tartása

Nem megfelelő hook-ok használata

API-k figyelmen kívül hagyása
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
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
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
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
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?
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?
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”
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ó
XSS


$block[‘content’] = $node->field_name[‘und’][0]
[‘safe_value’];

$override_url = $row->_field_data['nid']['entity']-
>field_override_url['und'][0]['value'];

$terms[] = taxonomy_term_load($termid['tid']);
$tag_names[] = $term->name;
CSRF


function csrf_menu() {
  $items[‘mydelete’] = array(
    ‘page callback’ => ‘csrf_delete_node’,
    ‘access callback’ => TRUE,
    ‘title’ => ‘Delete node’,
  );
  return $items;
}
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”
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?
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
INNODB




SELECT COUNT(nid) FROM node ...

views litepager
CACHING - HOGYAN


Ne mentsük túl sokszor

Action based cache

  Views Content Cache

  Panels Hash Cache

  Cache Actions
CACHING - HOL


Memcache

Varnish

MySQL query cache

APC
404



Drupal bootstrap kell neki

Hiányzó képek

fast 404 modul
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
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
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
KÖSZÖNÖM A
 FIGYELMET

Contenu connexe

En vedette

Enterprise Drupal
Enterprise DrupalEnterprise Drupal
Enterprise Drupalthesnufkin
 
Sai samarth developers brosher
Sai samarth developers brosherSai samarth developers brosher
Sai samarth developers broshermahavirchordiya
 
«Язык вражды» и конфликт: роль и потенциал медиа. Автор Алексей Морозли
«Язык вражды» и конфликт: роль и потенциал медиа. Автор Алексей Морозли «Язык вражды» и конфликт: роль и потенциал медиа. Автор Алексей Морозли
«Язык вражды» и конфликт: роль и потенциал медиа. Автор Алексей Морозли Olga Khlopenkova
 
Semana del 18 al 22 de Abril
Semana del 18 al 22 de AbrilSemana del 18 al 22 de Abril
Semana del 18 al 22 de AbrilRenatarastafari
 
aung chozan_stevebloom_research presentation
aung chozan_stevebloom_research presentationaung chozan_stevebloom_research presentation
aung chozan_stevebloom_research presentationchozan
 
INSTITUTOS DE PREVIDÊNCIA PRÓPRIA DOS MUNICIPIOS: Uma comparação de dar medo...
INSTITUTOS DE PREVIDÊNCIA PRÓPRIA DOS MUNICIPIOS:  Uma comparação de dar medo...INSTITUTOS DE PREVIDÊNCIA PRÓPRIA DOS MUNICIPIOS:  Uma comparação de dar medo...
INSTITUTOS DE PREVIDÊNCIA PRÓPRIA DOS MUNICIPIOS: Uma comparação de dar medo...Vivaldo Franca
 
54589226 kotak
54589226 kotak54589226 kotak
54589226 kotakamitbhai01
 
76373332 indusind-bank-annual-report-2008-2009
76373332 indusind-bank-annual-report-2008-200976373332 indusind-bank-annual-report-2008-2009
76373332 indusind-bank-annual-report-2008-2009amitbhai01
 
70878495 kotak-mahindra-bank
70878495 kotak-mahindra-bank70878495 kotak-mahindra-bank
70878495 kotak-mahindra-bankamitbhai01
 
Trabajo Final del encuentro Internacional Tres naciones
Trabajo Final del encuentro Internacional Tres nacionesTrabajo Final del encuentro Internacional Tres naciones
Trabajo Final del encuentro Internacional Tres nacionescrissia79
 
Presentation1
Presentation1Presentation1
Presentation1yuanks
 
Biologia ácidos nucléicos (2015)
Biologia ácidos nucléicos (2015)Biologia ácidos nucléicos (2015)
Biologia ácidos nucléicos (2015)Vitor Pinheiro
 

En vedette (20)

Enterprise Drupal
Enterprise DrupalEnterprise Drupal
Enterprise Drupal
 
Sai samarth developers brosher
Sai samarth developers brosherSai samarth developers brosher
Sai samarth developers brosher
 
«Язык вражды» и конфликт: роль и потенциал медиа. Автор Алексей Морозли
«Язык вражды» и конфликт: роль и потенциал медиа. Автор Алексей Морозли «Язык вражды» и конфликт: роль и потенциал медиа. Автор Алексей Морозли
«Язык вражды» и конфликт: роль и потенциал медиа. Автор Алексей Морозли
 
Semana del 18 al 22 de Abril
Semana del 18 al 22 de AbrilSemana del 18 al 22 de Abril
Semana del 18 al 22 de Abril
 
Stormwatch micration
Stormwatch micrationStormwatch micration
Stormwatch micration
 
aung chozan_stevebloom_research presentation
aung chozan_stevebloom_research presentationaung chozan_stevebloom_research presentation
aung chozan_stevebloom_research presentation
 
INSTITUTOS DE PREVIDÊNCIA PRÓPRIA DOS MUNICIPIOS: Uma comparação de dar medo...
INSTITUTOS DE PREVIDÊNCIA PRÓPRIA DOS MUNICIPIOS:  Uma comparação de dar medo...INSTITUTOS DE PREVIDÊNCIA PRÓPRIA DOS MUNICIPIOS:  Uma comparação de dar medo...
INSTITUTOS DE PREVIDÊNCIA PRÓPRIA DOS MUNICIPIOS: Uma comparação de dar medo...
 
54589226 kotak
54589226 kotak54589226 kotak
54589226 kotak
 
76373332 indusind-bank-annual-report-2008-2009
76373332 indusind-bank-annual-report-2008-200976373332 indusind-bank-annual-report-2008-2009
76373332 indusind-bank-annual-report-2008-2009
 
70878495 kotak-mahindra-bank
70878495 kotak-mahindra-bank70878495 kotak-mahindra-bank
70878495 kotak-mahindra-bank
 
The Giving Wall
The Giving WallThe Giving Wall
The Giving Wall
 
Lytro
LytroLytro
Lytro
 
Trabajo Final del encuentro Internacional Tres naciones
Trabajo Final del encuentro Internacional Tres nacionesTrabajo Final del encuentro Internacional Tres naciones
Trabajo Final del encuentro Internacional Tres naciones
 
Presentation1
Presentation1Presentation1
Presentation1
 
Competencias tic docentes. cartilla generica13
Competencias tic docentes. cartilla generica13Competencias tic docentes. cartilla generica13
Competencias tic docentes. cartilla generica13
 
Perfil emprendedor ana iglesias
Perfil emprendedor ana iglesiasPerfil emprendedor ana iglesias
Perfil emprendedor ana iglesias
 
Azam Hamara Pakistan - Islami Jamiat e Talaba Pakistan
Azam Hamara Pakistan - Islami Jamiat e Talaba PakistanAzam Hamara Pakistan - Islami Jamiat e Talaba Pakistan
Azam Hamara Pakistan - Islami Jamiat e Talaba Pakistan
 
Perfil emprendedor xiomara salazar
Perfil emprendedor xiomara salazarPerfil emprendedor xiomara salazar
Perfil emprendedor xiomara salazar
 
Biologia ácidos nucléicos (2015)
Biologia ácidos nucléicos (2015)Biologia ácidos nucléicos (2015)
Biologia ácidos nucléicos (2015)
 
Perfil emprendedor tatiana henderson
Perfil emprendedor tatiana hendersonPerfil emprendedor tatiana henderson
Perfil emprendedor tatiana henderson
 

Similaire à Mi a baj a Drupaloddal

Szerver oldali fejlesztés korszerű módszerekkel C# nyelven
Szerver oldali fejlesztés korszerű módszerekkel C# nyelvenSzerver oldali fejlesztés korszerű módszerekkel C# nyelven
Szerver oldali fejlesztés korszerű módszerekkel C# nyelvenKrisztián Gyula Tóth
 
HTML5 esettanulmányok
HTML5 esettanulmányokHTML5 esettanulmányok
HTML5 esettanulmányokZoltán Dávid
 
LESS, mint css preprocessor
LESS, mint css preprocessorLESS, mint css preprocessor
LESS, mint css preprocessorLevente Kiraly
 
Laravel - Veszprémi Technology Meetup
Laravel - Veszprémi Technology MeetupLaravel - Veszprémi Technology Meetup
Laravel - Veszprémi Technology MeetupBálint Szekeres
 
Webes alkalmazások optimalizálása
Webes alkalmazások optimalizálásaWebes alkalmazások optimalizálása
Webes alkalmazások optimalizálásaAntal Bodnar
 
Univerzalis Entitas Kezeles - Laravel
Univerzalis Entitas Kezeles - LaravelUniverzalis Entitas Kezeles - Laravel
Univerzalis Entitas Kezeles - LaravelPeter Perger
 
Webalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálásaWebalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálásaFerenc Kovács
 
Couchdb - WebKonf 2009
Couchdb - WebKonf 2009Couchdb - WebKonf 2009
Couchdb - WebKonf 2009Balint Erdi
 
Mágikus Magento - Bevezetés a Magento világába
Mágikus Magento - Bevezetés a Magento világábaMágikus Magento - Bevezetés a Magento világába
Mágikus Magento - Bevezetés a Magento világábaJános Ács
 
Life and Death of Apache Maven (HU)
Life and Death of Apache Maven (HU)Life and Death of Apache Maven (HU)
Life and Death of Apache Maven (HU)Tamas Cservenak
 
APACHE PHP MYSQL telepítése
APACHE PHP MYSQL telepítéseAPACHE PHP MYSQL telepítése
APACHE PHP MYSQL telepítésePasaréti Gimi
 
A PHP 5.4 újdonságai
A PHP 5.4 újdonságaiA PHP 5.4 újdonságai
A PHP 5.4 újdonságaiFerenc Kovács
 
Responsive Webdesign Drupallal
Responsive Webdesign Drupallal Responsive Webdesign Drupallal
Responsive Webdesign Drupallal Hajas Tamás
 
Cross Platform mobil app fejlesztés HTML5 JavaScript alapokon
Cross Platform mobil app fejlesztés HTML5 JavaScript alapokonCross Platform mobil app fejlesztés HTML5 JavaScript alapokon
Cross Platform mobil app fejlesztés HTML5 JavaScript alapokoneRise
 
Objektum-orinetált mérések a gyakorlatban
Objektum-orinetált mérések a gyakorlatbanObjektum-orinetált mérések a gyakorlatban
Objektum-orinetált mérések a gyakorlatbanAntal Orcsik
 
Miért fontos a Chaos Engineering?
Miért fontos a Chaos Engineering?Miért fontos a Chaos Engineering?
Miért fontos a Chaos Engineering?Janos Szendi-Varga
 

Similaire à Mi a baj a Drupaloddal (20)

Szerver oldali fejlesztés korszerű módszerekkel C# nyelven
Szerver oldali fejlesztés korszerű módszerekkel C# nyelvenSzerver oldali fejlesztés korszerű módszerekkel C# nyelven
Szerver oldali fejlesztés korszerű módszerekkel C# nyelven
 
Laravel for Dummies
Laravel for DummiesLaravel for Dummies
Laravel for Dummies
 
Ci
CiCi
Ci
 
HTML5 esettanulmányok
HTML5 esettanulmányokHTML5 esettanulmányok
HTML5 esettanulmányok
 
LESS, mint css preprocessor
LESS, mint css preprocessorLESS, mint css preprocessor
LESS, mint css preprocessor
 
Laravel - Veszprémi Technology Meetup
Laravel - Veszprémi Technology MeetupLaravel - Veszprémi Technology Meetup
Laravel - Veszprémi Technology Meetup
 
Webes alkalmazások optimalizálása
Webes alkalmazások optimalizálásaWebes alkalmazások optimalizálása
Webes alkalmazások optimalizálása
 
Univerzalis Entitas Kezeles - Laravel
Univerzalis Entitas Kezeles - LaravelUniverzalis Entitas Kezeles - Laravel
Univerzalis Entitas Kezeles - Laravel
 
Webkonf 2013
Webkonf 2013Webkonf 2013
Webkonf 2013
 
Webalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálásaWebalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálása
 
Couchdb - WebKonf 2009
Couchdb - WebKonf 2009Couchdb - WebKonf 2009
Couchdb - WebKonf 2009
 
Mágikus Magento - Bevezetés a Magento világába
Mágikus Magento - Bevezetés a Magento világábaMágikus Magento - Bevezetés a Magento világába
Mágikus Magento - Bevezetés a Magento világába
 
Life and Death of Apache Maven (HU)
Life and Death of Apache Maven (HU)Life and Death of Apache Maven (HU)
Life and Death of Apache Maven (HU)
 
Jee kurzus 8. het
Jee kurzus 8. hetJee kurzus 8. het
Jee kurzus 8. het
 
APACHE PHP MYSQL telepítése
APACHE PHP MYSQL telepítéseAPACHE PHP MYSQL telepítése
APACHE PHP MYSQL telepítése
 
A PHP 5.4 újdonságai
A PHP 5.4 újdonságaiA PHP 5.4 újdonságai
A PHP 5.4 újdonságai
 
Responsive Webdesign Drupallal
Responsive Webdesign Drupallal Responsive Webdesign Drupallal
Responsive Webdesign Drupallal
 
Cross Platform mobil app fejlesztés HTML5 JavaScript alapokon
Cross Platform mobil app fejlesztés HTML5 JavaScript alapokonCross Platform mobil app fejlesztés HTML5 JavaScript alapokon
Cross Platform mobil app fejlesztés HTML5 JavaScript alapokon
 
Objektum-orinetált mérések a gyakorlatban
Objektum-orinetált mérések a gyakorlatbanObjektum-orinetált mérések a gyakorlatban
Objektum-orinetált mérések a gyakorlatban
 
Miért fontos a Chaos Engineering?
Miért fontos a Chaos Engineering?Miért fontos a Chaos Engineering?
Miért fontos a Chaos Engineering?
 

Mi a baj a Drupaloddal

  • 1. MI A BAJ A DRUPALODDAL? Kizárólag mások által gyakran elkövetett hibák
  • 2. RÓLAM Dianiska Balázs Acquia tanácsadó 154 946 km, 13 ország, 37 város
  • 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
  • 4. MIT CSINÁLUNK Fejlesztőcsapatok beindítása (training) Architektúra tervezés Project felfedezés (discovery) Auditálás Sebesség elemzés Tanácsadás
  • 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
  • 10. TÜNETEK Coding standard be nem tartása Nem megfelelő hook-ok használata API-k figyelmen kívül hagyása
  • 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ó
  • 19. XSS $block[‘content’] = $node->field_name[‘und’][0] [‘safe_value’]; $override_url = $row->_field_data['nid']['entity']- >field_override_url['und'][0]['value']; $terms[] = taxonomy_term_load($termid['tid']); $tag_names[] = $term->name;
  • 20. CSRF function csrf_menu() { $items[‘mydelete’] = array( ‘page callback’ => ‘csrf_delete_node’, ‘access callback’ => TRUE, ‘title’ => ‘Delete node’, ); return $items; }
  • 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
  • 24. INNODB SELECT COUNT(nid) FROM node ... views litepager
  • 25. CACHING - HOGYAN Ne mentsük túl sokszor Action based cache Views Content Cache Panels Hash Cache Cache Actions
  • 27. 404 Drupal bootstrap kell neki Hiányzó képek fast 404 modul
  • 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

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n