SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Introducción a la programación en
Joomla!
Sobre mi
Email: roberto@phproberto.com Twitter: @phproberto
●
Desarrollador freelance
●
Contribuidor a Joomla! CMS & Framework
●
Contribuidor a Twitter Bootstrap,
Prestashop, K2, Joostrap
●
Mantenedor de Joomla en Github
●
Miembro del Joomla Production Leadership
Team (PLT)
¿Por qué Joomla?
Joomla vs otros
➔
WordPress = Peor código & mayor cuota de mercado
➔
Drupal = mejor código & menor cuota de mercado
✔
Evolucionable / sostenible
✔
POO, MVC... mejores prácticas
✔
Multilenguaje nativo
✔
Usado en todo el mundo
✔
+7800 extensiones
✔
100% responsive
✔
Aprende de sus errores
✔
OSM (fundación) + meritocracia
✔
Documentación
✔
Una gran familia
✔
Pruebas unitarias
Versiones
1. Versión MAYOR si haces cambios incompatibles en la API
2. Versión MENOR si añades una funcionalidad compatible
3. Parche para solucionar fallos de manera compatible
Ventajas como programador
➔
Git
➔
Phpcs
➔
Phing, Grunt, Gulp
➔
XDebug
➔
LESS, Sass
➔
Diseño responsive
➔
Curva de aprendizaje estable
➔
Desarrolla extensiones de extensiones
➔
Evoluciona como programador
+ inglés = trabajo!
Ventajas contribuidor
➔
Escaparate internacional
➔
Ser corregido por los mejores
➔
Realización personal
➔
Ventaja competitiva empresa
➔
Clientes indirectos
➔
Crea la última tecnología
➔
Sinergias con otros desarrolladores
➔
Patrocinio eventos Joomla
Casos de éxito
➔
Peter Van Westen
➔
Nicholas Dionysopoulos
➔
Nueva ley de cookies = $$$$$
Licencias
GPL
●
Requerido para JED
●
Licencia vírica
Ventajas
●
Cualquiera puede retomar tu proyecto
●
Confianza del cliente
●
Contribuciones
●
Fácil contratación
Modelos de negocio
●
Creación de sitios web
●
Desarrollo de extensiones
●
Consultoría
●
Subcontratación por
terceros
Perfecto ecosistema!
Desarrollo de extensiones
✔
Git no es opcional
✔
Keep It Simple Stupid (KISS)
✔
Itera, mejora
✔
Actualización = valor añadido
✔
Considera RAD
✔
Don't Repeat Yourself (DRY)
✔
Soporte para 2.5 y 3.x
✔
Joomla estandars
Recuerda
●
Copia, copia y copia
●
Documentación de calidad
●
Foro de soporte / contacto
●
Actualiza JED por la mañana :)
●
Gestiona tu tiempo / tareas
●
Conexión con otras extensiones
●
1 extensión en JED ~ 100 visitantes
●
Skype
Herramientas - IDE
●
Sublime Text
●
PhpStorm
●
Netbeans
●
Eclipse
Herramientas – Control de versiones
Herramientas – Tareas
Nada que no permita controlar tu tiempo!
Recursos
Documentación – docs.joomla.org
Foro – forum.joomla.org
Grupo google - Joomla! CMS DevelopmentCMS
Grupo google - Joomla! General Development
Grupo google - Framework on Framework
Desarrollo componente MVC:
http://docs.joomla.org/J2.5:Developing_a_MVC_Compone
nt/Introduction
y....
“Before software can be reusable
it first has to be usable.”
Ralph Johnson (computer scientist)

Contenu connexe

Tendances

Taller WPO - Carga condicional de plugins
Taller WPO - Carga condicional de pluginsTaller WPO - Carga condicional de plugins
Taller WPO - Carga condicional de pluginsFernando Puente
 
PHP para todos con Visual Studio Code Modulo 1
 PHP para todos con Visual Studio Code Modulo 1  PHP para todos con Visual Studio Code Modulo 1
PHP para todos con Visual Studio Code Modulo 1 Maleny Abrego
 
Modulo 2 Visual Studio Code
Modulo 2 Visual Studio CodeModulo 2 Visual Studio Code
Modulo 2 Visual Studio CodeMaleny Abrego
 
Blazor, un nuevo framework .NET
Blazor, un nuevo framework .NETBlazor, un nuevo framework .NET
Blazor, un nuevo framework .NETJonathan González
 
Angular, ionic y Django amigos con derecho a roce - Pycon 2017
Angular, ionic y Django  amigos con derecho a roce - Pycon 2017Angular, ionic y Django  amigos con derecho a roce - Pycon 2017
Angular, ionic y Django amigos con derecho a roce - Pycon 2017BeDjango
 
El editor clásico como ejemplo de deuda tecnológica - WordCamp Granada 2019
El editor clásico como ejemplo de deuda tecnológica - WordCamp Granada 2019El editor clásico como ejemplo de deuda tecnológica - WordCamp Granada 2019
El editor clásico como ejemplo de deuda tecnológica - WordCamp Granada 2019Fernando Puente
 
Webinar: Introducción a VUE.js
Webinar: Introducción a VUE.jsWebinar: Introducción a VUE.js
Webinar: Introducción a VUE.jsArsys
 
El proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open SourceEl proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open SourceJose Juan R. Zuñiga
 
Retos de WordPress para llegar al 50% de Internet
Retos de WordPress para llegar al 50% de Internet Retos de WordPress para llegar al 50% de Internet
Retos de WordPress para llegar al 50% de Internet Fernando Puente
 
#MM17ES - Theming en Magento 2 usando un framework de front-end
#MM17ES - Theming en Magento 2 usando un framework de front-end#MM17ES - Theming en Magento 2 usando un framework de front-end
#MM17ES - Theming en Magento 2 usando un framework de front-endRubén Rodríguez
 
El equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoEl equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoDavid Monllaó
 
Introducciòn a RequireJS
Introducciòn a RequireJSIntroducciòn a RequireJS
Introducciòn a RequireJSRené Olivo
 
Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!
Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!
Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!Fernando Puente
 

Tendances (20)

PHP
PHPPHP
PHP
 
Taller WPO - Carga condicional de plugins
Taller WPO - Carga condicional de pluginsTaller WPO - Carga condicional de plugins
Taller WPO - Carga condicional de plugins
 
Skipfish
Skipfish Skipfish
Skipfish
 
Caché y WordPress
Caché y WordPressCaché y WordPress
Caché y WordPress
 
PHP para todos con Visual Studio Code Modulo 1
 PHP para todos con Visual Studio Code Modulo 1  PHP para todos con Visual Studio Code Modulo 1
PHP para todos con Visual Studio Code Modulo 1
 
Modulo 2 Visual Studio Code
Modulo 2 Visual Studio CodeModulo 2 Visual Studio Code
Modulo 2 Visual Studio Code
 
Java poliglota
Java poliglotaJava poliglota
Java poliglota
 
Blazor, un nuevo framework .NET
Blazor, un nuevo framework .NETBlazor, un nuevo framework .NET
Blazor, un nuevo framework .NET
 
Angular, ionic y Django amigos con derecho a roce - Pycon 2017
Angular, ionic y Django  amigos con derecho a roce - Pycon 2017Angular, ionic y Django  amigos con derecho a roce - Pycon 2017
Angular, ionic y Django amigos con derecho a roce - Pycon 2017
 
El editor clásico como ejemplo de deuda tecnológica - WordCamp Granada 2019
El editor clásico como ejemplo de deuda tecnológica - WordCamp Granada 2019El editor clásico como ejemplo de deuda tecnológica - WordCamp Granada 2019
El editor clásico como ejemplo de deuda tecnológica - WordCamp Granada 2019
 
Pangoscrum
PangoscrumPangoscrum
Pangoscrum
 
Webinar: Introducción a VUE.js
Webinar: Introducción a VUE.jsWebinar: Introducción a VUE.js
Webinar: Introducción a VUE.js
 
Gestión proyecto DroidClic android app
Gestión proyecto DroidClic android appGestión proyecto DroidClic android app
Gestión proyecto DroidClic android app
 
El proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open SourceEl proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open Source
 
No quiero vuestra basura en Android
No quiero vuestra basura en AndroidNo quiero vuestra basura en Android
No quiero vuestra basura en Android
 
Retos de WordPress para llegar al 50% de Internet
Retos de WordPress para llegar al 50% de Internet Retos de WordPress para llegar al 50% de Internet
Retos de WordPress para llegar al 50% de Internet
 
#MM17ES - Theming en Magento 2 usando un framework de front-end
#MM17ES - Theming en Magento 2 usando un framework de front-end#MM17ES - Theming en Magento 2 usando un framework de front-end
#MM17ES - Theming en Magento 2 usando un framework de front-end
 
El equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoEl equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigo
 
Introducciòn a RequireJS
Introducciòn a RequireJSIntroducciòn a RequireJS
Introducciòn a RequireJS
 
Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!
Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!
Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!
 

En vedette

Deploying Joomla sites with GIT
Deploying Joomla sites with GITDeploying Joomla sites with GIT
Deploying Joomla sites with GITAshwin Date
 
Qué es el recambio ecologico
Qué es el recambio ecologicoQué es el recambio ecologico
Qué es el recambio ecologicoaram25
 
The SPRY domain of pyrin, mutated in familial mediterranean fever
The SPRY domain of pyrin, mutated in familial mediterranean feverThe SPRY domain of pyrin, mutated in familial mediterranean fever
The SPRY domain of pyrin, mutated in familial mediterranean feverJosé Luis Moreno Garvayo
 
Industry Brief: HP Rallies the Channel around Converged Infrastructure
Industry Brief: HP Rallies the Channel around Converged InfrastructureIndustry Brief: HP Rallies the Channel around Converged Infrastructure
Industry Brief: HP Rallies the Channel around Converged InfrastructureIT Brand Pulse
 
Fgxpress opportunity presentation powerpoint english
Fgxpress opportunity presentation powerpoint englishFgxpress opportunity presentation powerpoint english
Fgxpress opportunity presentation powerpoint englishViktor Fajta
 
Constancia coursera
Constancia courseraConstancia coursera
Constancia courseraUNAM
 
Trabajamos con los colores
Trabajamos con los coloresTrabajamos con los colores
Trabajamos con los coloresAulaVerde
 
Presentation De L\'audit Tcm Collectivité Territoriale
Presentation De L\'audit Tcm Collectivité TerritorialePresentation De L\'audit Tcm Collectivité Territoriale
Presentation De L\'audit Tcm Collectivité TerritorialePaul Ohana
 
Casa stahl-tics-presentacion
Casa stahl-tics-presentacionCasa stahl-tics-presentacion
Casa stahl-tics-presentacionWil Guamn
 
Folleto ofertas Navidad 2012
Folleto ofertas Navidad 2012Folleto ofertas Navidad 2012
Folleto ofertas Navidad 2012Grupo Ecomputer
 
Irma herrera competencias
Irma herrera competenciasIrma herrera competencias
Irma herrera competenciasIrma Ch Herrera
 
Hendrik Witt (Ubimax GmbH) Enterprise Smartglasses Projects
Hendrik Witt (Ubimax GmbH) Enterprise Smartglasses ProjectsHendrik Witt (Ubimax GmbH) Enterprise Smartglasses Projects
Hendrik Witt (Ubimax GmbH) Enterprise Smartglasses ProjectsAugmentedWorldExpo
 
Cogneon Praesentation Scrum Day 2009
Cogneon Praesentation   Scrum Day 2009Cogneon Praesentation   Scrum Day 2009
Cogneon Praesentation Scrum Day 2009Simon Dueckert
 
How DEWATS can be implemented to bio-remediate lakes
How DEWATS can be implemented to bio-remediate lakesHow DEWATS can be implemented to bio-remediate lakes
How DEWATS can be implemented to bio-remediate lakesbiomeshubha
 

En vedette (20)

Deploying Joomla sites with GIT
Deploying Joomla sites with GITDeploying Joomla sites with GIT
Deploying Joomla sites with GIT
 
Qué es el recambio ecologico
Qué es el recambio ecologicoQué es el recambio ecologico
Qué es el recambio ecologico
 
Red(i)d.
Red(i)d.Red(i)d.
Red(i)d.
 
IP-Dialog Forum Goethe University Frankfurt
IP-Dialog Forum  Goethe University FrankfurtIP-Dialog Forum  Goethe University Frankfurt
IP-Dialog Forum Goethe University Frankfurt
 
The SPRY domain of pyrin, mutated in familial mediterranean fever
The SPRY domain of pyrin, mutated in familial mediterranean feverThe SPRY domain of pyrin, mutated in familial mediterranean fever
The SPRY domain of pyrin, mutated in familial mediterranean fever
 
Industry Brief: HP Rallies the Channel around Converged Infrastructure
Industry Brief: HP Rallies the Channel around Converged InfrastructureIndustry Brief: HP Rallies the Channel around Converged Infrastructure
Industry Brief: HP Rallies the Channel around Converged Infrastructure
 
F&B Consulting analysis menu
F&B Consulting analysis menuF&B Consulting analysis menu
F&B Consulting analysis menu
 
Fgxpress opportunity presentation powerpoint english
Fgxpress opportunity presentation powerpoint englishFgxpress opportunity presentation powerpoint english
Fgxpress opportunity presentation powerpoint english
 
Constancia coursera
Constancia courseraConstancia coursera
Constancia coursera
 
Orillas11
Orillas11Orillas11
Orillas11
 
Trabajamos con los colores
Trabajamos con los coloresTrabajamos con los colores
Trabajamos con los colores
 
Presentation De L\'audit Tcm Collectivité Territoriale
Presentation De L\'audit Tcm Collectivité TerritorialePresentation De L\'audit Tcm Collectivité Territoriale
Presentation De L\'audit Tcm Collectivité Territoriale
 
Casa stahl-tics-presentacion
Casa stahl-tics-presentacionCasa stahl-tics-presentacion
Casa stahl-tics-presentacion
 
Folleto ofertas Navidad 2012
Folleto ofertas Navidad 2012Folleto ofertas Navidad 2012
Folleto ofertas Navidad 2012
 
Irma herrera competencias
Irma herrera competenciasIrma herrera competencias
Irma herrera competencias
 
Hendrik Witt (Ubimax GmbH) Enterprise Smartglasses Projects
Hendrik Witt (Ubimax GmbH) Enterprise Smartglasses ProjectsHendrik Witt (Ubimax GmbH) Enterprise Smartglasses Projects
Hendrik Witt (Ubimax GmbH) Enterprise Smartglasses Projects
 
Manual siemens microondas hf25g5l2
Manual siemens   microondas hf25g5l2Manual siemens   microondas hf25g5l2
Manual siemens microondas hf25g5l2
 
Optimum web - company profile
Optimum web - company profileOptimum web - company profile
Optimum web - company profile
 
Cogneon Praesentation Scrum Day 2009
Cogneon Praesentation   Scrum Day 2009Cogneon Praesentation   Scrum Day 2009
Cogneon Praesentation Scrum Day 2009
 
How DEWATS can be implemented to bio-remediate lakes
How DEWATS can be implemented to bio-remediate lakesHow DEWATS can be implemented to bio-remediate lakes
How DEWATS can be implemented to bio-remediate lakes
 

Similaire à Introduccción a la programación en Joomla!

Bedomax - Campus Party 2013
Bedomax - Campus Party 2013Bedomax - Campus Party 2013
Bedomax - Campus Party 2013bedomax
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfonycsalazart
 
DevOps, por donde comenzar? - DrupalCon Latin America 2015
DevOps, por donde comenzar?  - DrupalCon Latin America 2015DevOps, por donde comenzar?  - DrupalCon Latin America 2015
DevOps, por donde comenzar? - DrupalCon Latin America 2015Taller Negócio Digitais
 
Intro a Drupal 8: Drupal Global Training Day
Intro a Drupal 8: Drupal Global Training DayIntro a Drupal 8: Drupal Global Training Day
Intro a Drupal 8: Drupal Global Training DayHeissen López
 
Consejos de un perro viejo programador
Consejos de un perro viejo programadorConsejos de un perro viejo programador
Consejos de un perro viejo programadorBraulio Diez Botella
 
Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)Armando Picón Z.
 
Introducción a los Frameworks PHP
Introducción a los Frameworks PHP  Introducción a los Frameworks PHP
Introducción a los Frameworks PHP Aprende PHP
 
SharePoint Framework, paso a paso
SharePoint Framework, paso a pasoSharePoint Framework, paso a paso
SharePoint Framework, paso a pasoHaaron Gonzalez
 
Buenas practicas para nuestros desarrollos word press por JuanKa Díaz - WC Gr...
Buenas practicas para nuestros desarrollos word press por JuanKa Díaz - WC Gr...Buenas practicas para nuestros desarrollos word press por JuanKa Díaz - WC Gr...
Buenas practicas para nuestros desarrollos word press por JuanKa Díaz - WC Gr...JuanKa Díaz - jdevelopia
 
Introduccion al desarrollo con Launchpad
Introduccion al desarrollo con LaunchpadIntroduccion al desarrollo con Launchpad
Introduccion al desarrollo con LaunchpadDenis Fuenzalida
 
DotNet 2019 | Alberto Varela - Infraestructura como código en Azure
DotNet 2019 | Alberto Varela - Infraestructura como código en AzureDotNet 2019 | Alberto Varela - Infraestructura como código en Azure
DotNet 2019 | Alberto Varela - Infraestructura como código en AzurePlain Concepts
 

Similaire à Introduccción a la programación en Joomla! (20)

Dokeos (1)
Dokeos (1)Dokeos (1)
Dokeos (1)
 
IDEs y Frameworks mas utilizados
IDEs y Frameworks mas utilizadosIDEs y Frameworks mas utilizados
IDEs y Frameworks mas utilizados
 
Programmer visions
Programmer visionsProgrammer visions
Programmer visions
 
Frontend Developer
Frontend DeveloperFrontend Developer
Frontend Developer
 
Bedomax - Campus Party 2013
Bedomax - Campus Party 2013Bedomax - Campus Party 2013
Bedomax - Campus Party 2013
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfony
 
DevOps, por donde comenzar? - DrupalCon Latin America 2015
DevOps, por donde comenzar?  - DrupalCon Latin America 2015DevOps, por donde comenzar?  - DrupalCon Latin America 2015
DevOps, por donde comenzar? - DrupalCon Latin America 2015
 
Intro a Drupal 8: Drupal Global Training Day
Intro a Drupal 8: Drupal Global Training DayIntro a Drupal 8: Drupal Global Training Day
Intro a Drupal 8: Drupal Global Training Day
 
Consejos de un perro viejo programador
Consejos de un perro viejo programadorConsejos de un perro viejo programador
Consejos de un perro viejo programador
 
Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)
 
Manual Programacion Php
Manual Programacion PhpManual Programacion Php
Manual Programacion Php
 
Introducción a php
Introducción a phpIntroducción a php
Introducción a php
 
Introducción a los Frameworks PHP
Introducción a los Frameworks PHP  Introducción a los Frameworks PHP
Introducción a los Frameworks PHP
 
SharePoint Framework, paso a paso
SharePoint Framework, paso a pasoSharePoint Framework, paso a paso
SharePoint Framework, paso a paso
 
Buenas practicas para nuestros desarrollos word press por JuanKa Díaz - WC Gr...
Buenas practicas para nuestros desarrollos word press por JuanKa Díaz - WC Gr...Buenas practicas para nuestros desarrollos word press por JuanKa Díaz - WC Gr...
Buenas practicas para nuestros desarrollos word press por JuanKa Díaz - WC Gr...
 
Guia teorica
Guia teoricaGuia teorica
Guia teorica
 
Introduccion al desarrollo con Launchpad
Introduccion al desarrollo con LaunchpadIntroduccion al desarrollo con Launchpad
Introduccion al desarrollo con Launchpad
 
DotNet 2019 | Alberto Varela - Infraestructura como código en Azure
DotNet 2019 | Alberto Varela - Infraestructura como código en AzureDotNet 2019 | Alberto Varela - Infraestructura como código en Azure
DotNet 2019 | Alberto Varela - Infraestructura como código en Azure
 
PLATAFORMAS LMS
PLATAFORMAS LMSPLATAFORMAS LMS
PLATAFORMAS LMS
 
De Cero a Wordpress
De Cero a WordpressDe Cero a Wordpress
De Cero a Wordpress
 

Plus de Roberto Segura

Using twig as rendering system for your Joomla extensions
Using twig as rendering system for your Joomla extensionsUsing twig as rendering system for your Joomla extensions
Using twig as rendering system for your Joomla extensionsRoberto Segura
 
TDD for joomla extensions
TDD for joomla extensionsTDD for joomla extensions
TDD for joomla extensionsRoberto Segura
 
Joomla Entity - API semántica para Joomla
Joomla Entity - API semántica para JoomlaJoomla Entity - API semántica para Joomla
Joomla Entity - API semántica para JoomlaRoberto Segura
 
JLayout for extension developers
JLayout for extension developersJLayout for extension developers
JLayout for extension developersRoberto Segura
 
Plugin para-joomla-45-minutos
Plugin para-joomla-45-minutosPlugin para-joomla-45-minutos
Plugin para-joomla-45-minutosRoberto Segura
 
Git for joomla! development #JAB14
Git for joomla! development #JAB14Git for joomla! development #JAB14
Git for joomla! development #JAB14Roberto Segura
 
Joomla! future #jd14fr keynote
Joomla! future #jd14fr keynoteJoomla! future #jd14fr keynote
Joomla! future #jd14fr keynoteRoberto Segura
 

Plus de Roberto Segura (8)

Using twig as rendering system for your Joomla extensions
Using twig as rendering system for your Joomla extensionsUsing twig as rendering system for your Joomla extensions
Using twig as rendering system for your Joomla extensions
 
TDD for joomla extensions
TDD for joomla extensionsTDD for joomla extensions
TDD for joomla extensions
 
Joomla Entity - API semántica para Joomla
Joomla Entity - API semántica para JoomlaJoomla Entity - API semántica para Joomla
Joomla Entity - API semántica para Joomla
 
JLayout for extension developers
JLayout for extension developersJLayout for extension developers
JLayout for extension developers
 
Plugin para-joomla-45-minutos
Plugin para-joomla-45-minutosPlugin para-joomla-45-minutos
Plugin para-joomla-45-minutos
 
Joomla JLayout
Joomla JLayout Joomla JLayout
Joomla JLayout
 
Git for joomla! development #JAB14
Git for joomla! development #JAB14Git for joomla! development #JAB14
Git for joomla! development #JAB14
 
Joomla! future #jd14fr keynote
Joomla! future #jd14fr keynoteJoomla! future #jd14fr keynote
Joomla! future #jd14fr keynote
 

Introduccción a la programación en Joomla!

  • 1. Introducción a la programación en Joomla!
  • 2. Sobre mi Email: roberto@phproberto.com Twitter: @phproberto ● Desarrollador freelance ● Contribuidor a Joomla! CMS & Framework ● Contribuidor a Twitter Bootstrap, Prestashop, K2, Joostrap ● Mantenedor de Joomla en Github ● Miembro del Joomla Production Leadership Team (PLT)
  • 4. Joomla vs otros ➔ WordPress = Peor código & mayor cuota de mercado ➔ Drupal = mejor código & menor cuota de mercado ✔ Evolucionable / sostenible ✔ POO, MVC... mejores prácticas ✔ Multilenguaje nativo ✔ Usado en todo el mundo ✔ +7800 extensiones ✔ 100% responsive ✔ Aprende de sus errores ✔ OSM (fundación) + meritocracia ✔ Documentación ✔ Una gran familia ✔ Pruebas unitarias
  • 5. Versiones 1. Versión MAYOR si haces cambios incompatibles en la API 2. Versión MENOR si añades una funcionalidad compatible 3. Parche para solucionar fallos de manera compatible
  • 6. Ventajas como programador ➔ Git ➔ Phpcs ➔ Phing, Grunt, Gulp ➔ XDebug ➔ LESS, Sass ➔ Diseño responsive ➔ Curva de aprendizaje estable ➔ Desarrolla extensiones de extensiones ➔ Evoluciona como programador + inglés = trabajo!
  • 7. Ventajas contribuidor ➔ Escaparate internacional ➔ Ser corregido por los mejores ➔ Realización personal ➔ Ventaja competitiva empresa ➔ Clientes indirectos ➔ Crea la última tecnología ➔ Sinergias con otros desarrolladores ➔ Patrocinio eventos Joomla
  • 8. Casos de éxito ➔ Peter Van Westen ➔ Nicholas Dionysopoulos ➔ Nueva ley de cookies = $$$$$
  • 9. Licencias GPL ● Requerido para JED ● Licencia vírica Ventajas ● Cualquiera puede retomar tu proyecto ● Confianza del cliente ● Contribuciones ● Fácil contratación
  • 10. Modelos de negocio ● Creación de sitios web ● Desarrollo de extensiones ● Consultoría ● Subcontratación por terceros Perfecto ecosistema!
  • 11. Desarrollo de extensiones ✔ Git no es opcional ✔ Keep It Simple Stupid (KISS) ✔ Itera, mejora ✔ Actualización = valor añadido ✔ Considera RAD ✔ Don't Repeat Yourself (DRY) ✔ Soporte para 2.5 y 3.x ✔ Joomla estandars
  • 12. Recuerda ● Copia, copia y copia ● Documentación de calidad ● Foro de soporte / contacto ● Actualiza JED por la mañana :) ● Gestiona tu tiempo / tareas ● Conexión con otras extensiones ● 1 extensión en JED ~ 100 visitantes ● Skype
  • 13. Herramientas - IDE ● Sublime Text ● PhpStorm ● Netbeans ● Eclipse
  • 14. Herramientas – Control de versiones
  • 15. Herramientas – Tareas Nada que no permita controlar tu tiempo!
  • 16. Recursos Documentación – docs.joomla.org Foro – forum.joomla.org Grupo google - Joomla! CMS DevelopmentCMS Grupo google - Joomla! General Development Grupo google - Framework on Framework Desarrollo componente MVC: http://docs.joomla.org/J2.5:Developing_a_MVC_Compone nt/Introduction
  • 17. y.... “Before software can be reusable it first has to be usable.” Ralph Johnson (computer scientist)