SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
NOTE:
This presentation is a Work in Progress. The
current copy shared is intended only for
review purposes by the DCD panel.
How “N O T”
to build Drupal
Sites
Tanay Sai
Technical Account Manager
Acquia
Do “NOT” code too much
● Do not program too much
● When you have a hammer
everything looks like a nail
● Don't be in a rush to become
a Drupal "Programmer"
● Do not try to solve the
Problem by Programming
Do “NOT” custom code too much
● Hard to Maintain
● Leverage existing good
contrib modules
● You are just re-inventing the
wheel
● Contrib code tested and
reviewed by many
Do “NOT” hack core
● Why?
● Use Hooks, APIs from core
and contrib
Do “NOT” be too generic
●
●
●
●
●

hook_init, hook_boot
form_alters without check for
form if
Including JS, CSS through these
init hook
403 - Use Drupal's permissions
system instead
Overriding other module’s
behaviour - Use
hook_menu_alter,
hook_form_alter etc instead of
hook_init
Do “NOT” get into trouble
●
●
●

hook_init
hook_boot
hook_exit()

●
●
●

hook_node_access()
hook_node_access_records()
hook_node_access_alter()

●
●

hook_node_grants()
hook_node_grants_alter()
Do “NOT” put code in database
● PHP Filter
● Views PHP module

● Why?
● Common Scenarios
● Alternative better approaches
Do “NOT” clutter your site
● Dozens of unused modules,
content types, vocabularies
● Be a miser
Do “NOT” Content Typify Everything
● Use Custom Entities
wherever Appropriate
Do “NOT” just MYISAM
● InnoDB vs MyISAM
Do “NOT” default PERMISSIONS
●
●

●

Do not leave any permission
checked or unchecked by default
Uncheck all and start checking
one by one after putting some
thought
Whenever is new module is
added check the permissions
added and see the roles that
these permissions were granted
to
Do “NOT” default your FILTERS
● Input Formats
● Filters
Do “NOT” leave out CACHING
●
●
●
●
●
●
●

Block Caching
Page Caching
Views Caching
Entity Cache module
Boost/Varnish
Memcache
APC

●
●
●

Set appropriate cache lifetimes
Page Compression
CSS/JS Aggregation
Do “NOT” Log Everything Everywhere
●
●
●

Disable DB Log
Enable Syslog
Disable Statistics, Use GA or
similar
Do “NOT” leave UI modules enabled
● UI Modules
● Simpletest
● Migrate
● Migrate Extras
● Coder
● Devel
Do “NOT” Use them. Stay Away!
● Statistics
● ..
● ..
●
Do “NOT” Leave behind 404
● Use Fast 404
● Prevent Bootstrap and
Database operations for that
favicon which is always
missing
Do “NOT”

Mais conteúdo relacionado

Mais procurados

Java Script Template Engine 비교하기
Java Script Template Engine 비교하기Java Script Template Engine 비교하기
Java Script Template Engine 비교하기SeongSik Choi
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angularBasarat Syed
 
WordPress security & sanitation for beginners
WordPress security & sanitation for beginnersWordPress security & sanitation for beginners
WordPress security & sanitation for beginnersD'nelle Dowis
 
Introduction to Twitter's Bootstrap 2
Introduction to Twitter's Bootstrap 2Introduction to Twitter's Bootstrap 2
Introduction to Twitter's Bootstrap 2Julien Renaux
 
A beginner's guide to twitter bootstrap
A beginner's guide to twitter bootstrapA beginner's guide to twitter bootstrap
A beginner's guide to twitter bootstrapSunanda Bansal
 
Testing JavaScript with Jasmine
Testing JavaScript with JasmineTesting JavaScript with Jasmine
Testing JavaScript with Jasminetechwhizbang
 
Spring framework 4.0
Spring framework 4.0Spring framework 4.0
Spring framework 4.0Diego Pacheco
 
8 Most Common Joomla! Hacks and How to Avoid Them
8 Most Common Joomla! Hacks and How to Avoid Them8 Most Common Joomla! Hacks and How to Avoid Them
8 Most Common Joomla! Hacks and How to Avoid ThemDaniel Kanchev
 
How to develop Magnolia based sites correctly, quickly and efficiently
How to develop Magnolia based sites correctly, quickly and efficiently How to develop Magnolia based sites correctly, quickly and efficiently
How to develop Magnolia based sites correctly, quickly and efficiently Ben Price
 
WordPress Developer tools
WordPress Developer toolsWordPress Developer tools
WordPress Developer toolsSudar Muthu
 
Bootstrap 3 + responsive
Bootstrap 3 + responsiveBootstrap 3 + responsive
Bootstrap 3 + responsivehatchpb
 
Responsive Web Design with Bootstrap
Responsive Web Design with BootstrapResponsive Web Design with Bootstrap
Responsive Web Design with BootstrapJason Stehle
 
The 5 Layers of Web Accessibility
The 5 Layers of Web AccessibilityThe 5 Layers of Web Accessibility
The 5 Layers of Web AccessibilityDirk Ginader
 

Mais procurados (19)

Java Script Template Engine 비교하기
Java Script Template Engine 비교하기Java Script Template Engine 비교하기
Java Script Template Engine 비교하기
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angular
 
WordPress security & sanitation for beginners
WordPress security & sanitation for beginnersWordPress security & sanitation for beginners
WordPress security & sanitation for beginners
 
Introduction to Twitter's Bootstrap 2
Introduction to Twitter's Bootstrap 2Introduction to Twitter's Bootstrap 2
Introduction to Twitter's Bootstrap 2
 
A beginner's guide to twitter bootstrap
A beginner's guide to twitter bootstrapA beginner's guide to twitter bootstrap
A beginner's guide to twitter bootstrap
 
Bootstrap 3.1.1
Bootstrap 3.1.1Bootstrap 3.1.1
Bootstrap 3.1.1
 
Bootstrap ppt
Bootstrap pptBootstrap ppt
Bootstrap ppt
 
Testing JavaScript with Jasmine
Testing JavaScript with JasmineTesting JavaScript with Jasmine
Testing JavaScript with Jasmine
 
Spring framework 4.0
Spring framework 4.0Spring framework 4.0
Spring framework 4.0
 
8 Most Common Joomla! Hacks and How to Avoid Them
8 Most Common Joomla! Hacks and How to Avoid Them8 Most Common Joomla! Hacks and How to Avoid Them
8 Most Common Joomla! Hacks and How to Avoid Them
 
How to develop Magnolia based sites correctly, quickly and efficiently
How to develop Magnolia based sites correctly, quickly and efficiently How to develop Magnolia based sites correctly, quickly and efficiently
How to develop Magnolia based sites correctly, quickly and efficiently
 
WordPress Developer tools
WordPress Developer toolsWordPress Developer tools
WordPress Developer tools
 
Bootstrap 3 + responsive
Bootstrap 3 + responsiveBootstrap 3 + responsive
Bootstrap 3 + responsive
 
Responsive Web Design with Bootstrap
Responsive Web Design with BootstrapResponsive Web Design with Bootstrap
Responsive Web Design with Bootstrap
 
Blogging for hackers (english)
Blogging for hackers (english)Blogging for hackers (english)
Blogging for hackers (english)
 
Gwt
GwtGwt
Gwt
 
WP-Boot
WP-BootWP-Boot
WP-Boot
 
The 5 Layers of Web Accessibility
The 5 Layers of Web AccessibilityThe 5 Layers of Web Accessibility
The 5 Layers of Web Accessibility
 
Web components. Compose the web.
Web components. Compose the web.Web components. Compose the web.
Web components. Compose the web.
 

Destaque

Behavior Design AMS 3 - Arjan Haring
Behavior Design AMS 3 - Arjan HaringBehavior Design AMS 3 - Arjan Haring
Behavior Design AMS 3 - Arjan HaringBehavior Design AMS
 
Behavior Design AMS 3 - Froukje Sleeswijk Visser
Behavior Design AMS 3 - Froukje Sleeswijk VisserBehavior Design AMS 3 - Froukje Sleeswijk Visser
Behavior Design AMS 3 - Froukje Sleeswijk VisserBehavior Design AMS
 
Behavior Design AMS 3 - Joris Janssen
Behavior Design AMS 3 - Joris JanssenBehavior Design AMS 3 - Joris Janssen
Behavior Design AMS 3 - Joris JanssenBehavior Design AMS
 
Musical Instrumental Management Report
Musical Instrumental Management ReportMusical Instrumental Management Report
Musical Instrumental Management ReportMahendra Sundesha
 
Behavior Design AMS 3 - Boris Surya
Behavior Design AMS 3 - Boris SuryaBehavior Design AMS 3 - Boris Surya
Behavior Design AMS 3 - Boris SuryaBehavior Design AMS
 
Basic Responsive Theming - Somedutta Ghosh
Basic Responsive Theming - Somedutta GhoshBasic Responsive Theming - Somedutta Ghosh
Basic Responsive Theming - Somedutta GhoshDrupal Camp Delhi
 
Musical Instrumental Management
Musical Instrumental ManagementMusical Instrumental Management
Musical Instrumental ManagementMahendra Sundesha
 

Destaque (7)

Behavior Design AMS 3 - Arjan Haring
Behavior Design AMS 3 - Arjan HaringBehavior Design AMS 3 - Arjan Haring
Behavior Design AMS 3 - Arjan Haring
 
Behavior Design AMS 3 - Froukje Sleeswijk Visser
Behavior Design AMS 3 - Froukje Sleeswijk VisserBehavior Design AMS 3 - Froukje Sleeswijk Visser
Behavior Design AMS 3 - Froukje Sleeswijk Visser
 
Behavior Design AMS 3 - Joris Janssen
Behavior Design AMS 3 - Joris JanssenBehavior Design AMS 3 - Joris Janssen
Behavior Design AMS 3 - Joris Janssen
 
Musical Instrumental Management Report
Musical Instrumental Management ReportMusical Instrumental Management Report
Musical Instrumental Management Report
 
Behavior Design AMS 3 - Boris Surya
Behavior Design AMS 3 - Boris SuryaBehavior Design AMS 3 - Boris Surya
Behavior Design AMS 3 - Boris Surya
 
Basic Responsive Theming - Somedutta Ghosh
Basic Responsive Theming - Somedutta GhoshBasic Responsive Theming - Somedutta Ghosh
Basic Responsive Theming - Somedutta Ghosh
 
Musical Instrumental Management
Musical Instrumental ManagementMusical Instrumental Management
Musical Instrumental Management
 

Semelhante a How NOT to build Drupal Sites - Sai Tanay

Architektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan KrausArchitektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan KrausWomen in Technology Poland
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master BuilderPhilip Norton
 
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
HTML, CSS & Javascript Architecture (extended version) - Jan KrausHTML, CSS & Javascript Architecture (extended version) - Jan Kraus
HTML, CSS & Javascript Architecture (extended version) - Jan KrausWomen in Technology Poland
 
Best Practices in Component Development for MODX
Best Practices in Component Development for MODXBest Practices in Component Development for MODX
Best Practices in Component Development for MODXJan Tezner
 
jQuery Conference Austin Sept 2013
jQuery Conference Austin Sept 2013jQuery Conference Austin Sept 2013
jQuery Conference Austin Sept 2013dmethvin
 
Simple Tips to Improve Site Performance (No Coding Required!)
Simple Tips to Improve Site Performance (No Coding Required!)Simple Tips to Improve Site Performance (No Coding Required!)
Simple Tips to Improve Site Performance (No Coding Required!)Acquia
 
Developing word press professionally
Developing word press professionallyDeveloping word press professionally
Developing word press professionallyAustin Gil
 
Tech meetup: Web Applications Performance
Tech meetup: Web Applications PerformanceTech meetup: Web Applications Performance
Tech meetup: Web Applications PerformanceSantex Group
 
Taming Drupal Blocks for Content Editors a.k.a. "Snippets"
Taming Drupal Blocks for Content Editors a.k.a. "Snippets"Taming Drupal Blocks for Content Editors a.k.a. "Snippets"
Taming Drupal Blocks for Content Editors a.k.a. "Snippets"Brian Hay
 
Vitess percona 2012
Vitess percona 2012Vitess percona 2012
Vitess percona 2012Philip Zhong
 
Best practices for JavaScript RIAs
Best practices for JavaScript RIAsBest practices for JavaScript RIAs
Best practices for JavaScript RIAsCarlos Ble
 
There's a Module for That, MIMA Summit 2010
There's a Module for That, MIMA Summit 2010There's a Module for That, MIMA Summit 2010
There's a Module for That, MIMA Summit 2010Emma Jane Hogbin Westby
 
Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)rc2209
 
2016 stop writing javascript frameworks by Joe Gregorio
2016 stop writing javascript frameworks by Joe Gregorio2016 stop writing javascript frameworks by Joe Gregorio
2016 stop writing javascript frameworks by Joe GregorioDavid Zapateria Besteiro
 
Drupalcamp performance
Drupalcamp performanceDrupalcamp performance
Drupalcamp performanceFrontkom
 
Customizing the Django Admin
Customizing the Django AdminCustomizing the Django Admin
Customizing the Django AdminLincoln Loop
 
Hanselman lipton asp_connections_ams304_mvc
Hanselman lipton asp_connections_ams304_mvcHanselman lipton asp_connections_ams304_mvc
Hanselman lipton asp_connections_ams304_mvcdenemedeniz
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projectsIBACZ
 
Extending CMS Made Simple
Extending CMS Made SimpleExtending CMS Made Simple
Extending CMS Made Simplecmsmssjg
 

Semelhante a How NOT to build Drupal Sites - Sai Tanay (20)

Architektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan KrausArchitektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan Kraus
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
 
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
HTML, CSS & Javascript Architecture (extended version) - Jan KrausHTML, CSS & Javascript Architecture (extended version) - Jan Kraus
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
 
Best Practices in Component Development for MODX
Best Practices in Component Development for MODXBest Practices in Component Development for MODX
Best Practices in Component Development for MODX
 
jQuery Conference Austin Sept 2013
jQuery Conference Austin Sept 2013jQuery Conference Austin Sept 2013
jQuery Conference Austin Sept 2013
 
Simple Tips to Improve Site Performance (No Coding Required!)
Simple Tips to Improve Site Performance (No Coding Required!)Simple Tips to Improve Site Performance (No Coding Required!)
Simple Tips to Improve Site Performance (No Coding Required!)
 
Developing word press professionally
Developing word press professionallyDeveloping word press professionally
Developing word press professionally
 
Tech meetup: Web Applications Performance
Tech meetup: Web Applications PerformanceTech meetup: Web Applications Performance
Tech meetup: Web Applications Performance
 
Taming Drupal Blocks for Content Editors a.k.a. "Snippets"
Taming Drupal Blocks for Content Editors a.k.a. "Snippets"Taming Drupal Blocks for Content Editors a.k.a. "Snippets"
Taming Drupal Blocks for Content Editors a.k.a. "Snippets"
 
Vitess percona 2012
Vitess percona 2012Vitess percona 2012
Vitess percona 2012
 
Best practices for JavaScript RIAs
Best practices for JavaScript RIAsBest practices for JavaScript RIAs
Best practices for JavaScript RIAs
 
There's a Module for That, MIMA Summit 2010
There's a Module for That, MIMA Summit 2010There's a Module for That, MIMA Summit 2010
There's a Module for That, MIMA Summit 2010
 
Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)
 
2016 stop writing javascript frameworks by Joe Gregorio
2016 stop writing javascript frameworks by Joe Gregorio2016 stop writing javascript frameworks by Joe Gregorio
2016 stop writing javascript frameworks by Joe Gregorio
 
Drupalcamp performance
Drupalcamp performanceDrupalcamp performance
Drupalcamp performance
 
Drupal performance
Drupal performanceDrupal performance
Drupal performance
 
Customizing the Django Admin
Customizing the Django AdminCustomizing the Django Admin
Customizing the Django Admin
 
Hanselman lipton asp_connections_ams304_mvc
Hanselman lipton asp_connections_ams304_mvcHanselman lipton asp_connections_ams304_mvc
Hanselman lipton asp_connections_ams304_mvc
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projects
 
Extending CMS Made Simple
Extending CMS Made SimpleExtending CMS Made Simple
Extending CMS Made Simple
 

Mais de Drupal Camp Delhi

Campusdiaries Showcase - Raj Chourasia
Campusdiaries Showcase - Raj ChourasiaCampusdiaries Showcase - Raj Chourasia
Campusdiaries Showcase - Raj ChourasiaDrupal Camp Delhi
 
Generics & Specifics of QA on Web - Sweta Shahi
Generics & Specifics of QA on Web - Sweta ShahiGenerics & Specifics of QA on Web - Sweta Shahi
Generics & Specifics of QA on Web - Sweta ShahiDrupal Camp Delhi
 
Memcache and Drupal - Vaibhav Jain
Memcache and Drupal - Vaibhav JainMemcache and Drupal - Vaibhav Jain
Memcache and Drupal - Vaibhav JainDrupal Camp Delhi
 
Amplify user engagement with Game Mechanics - Vidhatanand
Amplify user engagement with Game Mechanics - VidhatanandAmplify user engagement with Game Mechanics - Vidhatanand
Amplify user engagement with Game Mechanics - VidhatanandDrupal Camp Delhi
 
Future proof your drupal skills - Piyuesh Kumar
Future proof your drupal skills - Piyuesh KumarFuture proof your drupal skills - Piyuesh Kumar
Future proof your drupal skills - Piyuesh KumarDrupal Camp Delhi
 
What is there in Drupal Community & their do's and don't's - Sivaji
What is there in Drupal Community & their do's and don't's - SivajiWhat is there in Drupal Community & their do's and don't's - Sivaji
What is there in Drupal Community & their do's and don't's - SivajiDrupal Camp Delhi
 
Drush to simplify Drupalers work - Sivaji
Drush to simplify Drupalers work - SivajiDrush to simplify Drupalers work - Sivaji
Drush to simplify Drupalers work - SivajiDrupal Camp Delhi
 
Multi lingual implementations – drupal design approaches for different scenar...
Multi lingual implementations – drupal design approaches for different scenar...Multi lingual implementations – drupal design approaches for different scenar...
Multi lingual implementations – drupal design approaches for different scenar...Drupal Camp Delhi
 
Integration of Drupal websites and Android applications - Girish Gupta
Integration of Drupal websites and Android applications - Girish GuptaIntegration of Drupal websites and Android applications - Girish Gupta
Integration of Drupal websites and Android applications - Girish GuptaDrupal Camp Delhi
 
Graphics Designing (Character, Posters, Advertisements, Brochure, Interface B...
Graphics Designing (Character, Posters, Advertisements, Brochure, Interface B...Graphics Designing (Character, Posters, Advertisements, Brochure, Interface B...
Graphics Designing (Character, Posters, Advertisements, Brochure, Interface B...Drupal Camp Delhi
 
Drupal Camp Delhi 2013 - Event Brochure
Drupal Camp Delhi 2013 -  Event BrochureDrupal Camp Delhi 2013 -  Event Brochure
Drupal Camp Delhi 2013 - Event BrochureDrupal Camp Delhi
 

Mais de Drupal Camp Delhi (13)

Content Migration to Drupal 8
Content Migration to Drupal 8Content Migration to Drupal 8
Content Migration to Drupal 8
 
Drupal Camp Delhi 2015
Drupal Camp Delhi 2015Drupal Camp Delhi 2015
Drupal Camp Delhi 2015
 
Campusdiaries Showcase - Raj Chourasia
Campusdiaries Showcase - Raj ChourasiaCampusdiaries Showcase - Raj Chourasia
Campusdiaries Showcase - Raj Chourasia
 
Generics & Specifics of QA on Web - Sweta Shahi
Generics & Specifics of QA on Web - Sweta ShahiGenerics & Specifics of QA on Web - Sweta Shahi
Generics & Specifics of QA on Web - Sweta Shahi
 
Memcache and Drupal - Vaibhav Jain
Memcache and Drupal - Vaibhav JainMemcache and Drupal - Vaibhav Jain
Memcache and Drupal - Vaibhav Jain
 
Amplify user engagement with Game Mechanics - Vidhatanand
Amplify user engagement with Game Mechanics - VidhatanandAmplify user engagement with Game Mechanics - Vidhatanand
Amplify user engagement with Game Mechanics - Vidhatanand
 
Future proof your drupal skills - Piyuesh Kumar
Future proof your drupal skills - Piyuesh KumarFuture proof your drupal skills - Piyuesh Kumar
Future proof your drupal skills - Piyuesh Kumar
 
What is there in Drupal Community & their do's and don't's - Sivaji
What is there in Drupal Community & their do's and don't's - SivajiWhat is there in Drupal Community & their do's and don't's - Sivaji
What is there in Drupal Community & their do's and don't's - Sivaji
 
Drush to simplify Drupalers work - Sivaji
Drush to simplify Drupalers work - SivajiDrush to simplify Drupalers work - Sivaji
Drush to simplify Drupalers work - Sivaji
 
Multi lingual implementations – drupal design approaches for different scenar...
Multi lingual implementations – drupal design approaches for different scenar...Multi lingual implementations – drupal design approaches for different scenar...
Multi lingual implementations – drupal design approaches for different scenar...
 
Integration of Drupal websites and Android applications - Girish Gupta
Integration of Drupal websites and Android applications - Girish GuptaIntegration of Drupal websites and Android applications - Girish Gupta
Integration of Drupal websites and Android applications - Girish Gupta
 
Graphics Designing (Character, Posters, Advertisements, Brochure, Interface B...
Graphics Designing (Character, Posters, Advertisements, Brochure, Interface B...Graphics Designing (Character, Posters, Advertisements, Brochure, Interface B...
Graphics Designing (Character, Posters, Advertisements, Brochure, Interface B...
 
Drupal Camp Delhi 2013 - Event Brochure
Drupal Camp Delhi 2013 -  Event BrochureDrupal Camp Delhi 2013 -  Event Brochure
Drupal Camp Delhi 2013 - Event Brochure
 

Último

Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 

Último (20)

Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 

How NOT to build Drupal Sites - Sai Tanay

  • 1. NOTE: This presentation is a Work in Progress. The current copy shared is intended only for review purposes by the DCD panel.
  • 2. How “N O T” to build Drupal Sites Tanay Sai Technical Account Manager Acquia
  • 3. Do “NOT” code too much ● Do not program too much ● When you have a hammer everything looks like a nail ● Don't be in a rush to become a Drupal "Programmer" ● Do not try to solve the Problem by Programming
  • 4. Do “NOT” custom code too much ● Hard to Maintain ● Leverage existing good contrib modules ● You are just re-inventing the wheel ● Contrib code tested and reviewed by many
  • 5. Do “NOT” hack core ● Why? ● Use Hooks, APIs from core and contrib
  • 6. Do “NOT” be too generic ● ● ● ● ● hook_init, hook_boot form_alters without check for form if Including JS, CSS through these init hook 403 - Use Drupal's permissions system instead Overriding other module’s behaviour - Use hook_menu_alter, hook_form_alter etc instead of hook_init
  • 7. Do “NOT” get into trouble ● ● ● hook_init hook_boot hook_exit() ● ● ● hook_node_access() hook_node_access_records() hook_node_access_alter() ● ● hook_node_grants() hook_node_grants_alter()
  • 8. Do “NOT” put code in database ● PHP Filter ● Views PHP module ● Why? ● Common Scenarios ● Alternative better approaches
  • 9. Do “NOT” clutter your site ● Dozens of unused modules, content types, vocabularies ● Be a miser
  • 10. Do “NOT” Content Typify Everything ● Use Custom Entities wherever Appropriate
  • 11. Do “NOT” just MYISAM ● InnoDB vs MyISAM
  • 12. Do “NOT” default PERMISSIONS ● ● ● Do not leave any permission checked or unchecked by default Uncheck all and start checking one by one after putting some thought Whenever is new module is added check the permissions added and see the roles that these permissions were granted to
  • 13. Do “NOT” default your FILTERS ● Input Formats ● Filters
  • 14. Do “NOT” leave out CACHING ● ● ● ● ● ● ● Block Caching Page Caching Views Caching Entity Cache module Boost/Varnish Memcache APC ● ● ● Set appropriate cache lifetimes Page Compression CSS/JS Aggregation
  • 15. Do “NOT” Log Everything Everywhere ● ● ● Disable DB Log Enable Syslog Disable Statistics, Use GA or similar
  • 16. Do “NOT” leave UI modules enabled ● UI Modules ● Simpletest ● Migrate ● Migrate Extras ● Coder ● Devel
  • 17. Do “NOT” Use them. Stay Away! ● Statistics ● .. ● .. ●
  • 18. Do “NOT” Leave behind 404 ● Use Fast 404 ● Prevent Bootstrap and Database operations for that favicon which is always missing