SlideShare a Scribd company logo
1 of 66
Download to read offline
Desarrollo web. 
Repaso a tecnologías y metodologías de desarrollo actuales.
David López 
@lopezator 
b1ud13@gmail.com 
Mikel Torres 
@ojoven 
mikeltorresmail@gmail.com
WORK 
FRONT 
END 
BACK 
END 
METHODOLOGY
FRONT END
Transitions 
.box { 
width: 150px; 
height: 150px; 
margin: 20px auto; 
background-color: #999; 
} 
#box1 { 
transition: background-color 0.5s ease; 
background-color: red; 
} 
#box1:hover { 
background-color: green; 
}
Transforms 
#box3 { 
margin-top: 50px; 
transform: rotate(30deg); 
-ms-transform: rotate(30deg); /* IE 9 */ 
-webkit-transform: rotate(30deg); /* Safari and Chrome */ 
}
Animations 
#box5 { 
animation: my-animation 3s; 
animation-iteration-count: infinite; 
} 
@keyframes my-animation { 
0% { transform: rotate(0deg); } 
100% { transform: rotate(360deg); } 
}
SASS/LESS
Variables
Mixins
Nested Rules
Javascript
jQuery 
<a id="try-zoom" class="btn btn-primary">Zoom!</a> 
function initZoom() { 
$('#try-zoom').click(function() { 
zoom.to({ 
element: document.querySelector( '#to-zoom' ) 
}); 
}); 
$('#to-zoom').click(function() { 
zoom.out(); 
}); 
}
AJAX
AJAX 
function getStudents() { 
$(".student").click(function() { 
var url = urlBase + "/getstudent"; 
var studentId = $(this).parent().find('input[class="studentId"]').val(); 
$.get(url, { 
studentId: studentId 
}, function(response) { 
console.log(response); 
}); 
}); 
}
Responsive
Responsive 
.container { 
width:1024px; 
} 
@media screen and (max-width:768px){ 
.container { 
width:100%; 
} 
}
Web fonts
<link href='http://fonts.googleapis.com/css?family=Jolly+Lodger' 
rel='stylesheet' type='text/css'> 
font-family: 'Jolly Lodger', cursive;
BACK END
Composer 
“Composer is a tool for dependency management in PHP. It allows you to declare the dependent libraries 
your project needs and it will install them in your project for you.” 
http://getcomposer.org
Apache VirtualHosts 
The term Virtual Host refers to the practice of running more than one web site (such as company1. 
example.com and company2.example.com) on a single machine.
Bases de Datos
MySQL
Y bien, ¿cómo realizamos una 
consulta a MySQL desde PHP5?
Fácil, concatenamos la consulta con su condición en un string. 
$result = mysql_query("SELECT LUKE FROM PADRES WHERE PADRE =". $darth_vader);
Una consulta debe estar siempre parametrizada. 
* Por legibilidad 
* Por limpieza del código. 
* Y lo mas importante, evitar ataques SQL Injection. 
$stmt = $pdo->prepare("DELETE FROM SINGERS WHERE NAME = :name AND SURNAME = :surname”); 
$stmt->prepare(array(“name” => “Justin”, “surname” => “Bieber”);
Para NOTA: USA ORMS 
Diferentes opciones: 
* Doctrine 
* Propel 
* RedBean
API
Examples 
Twitter: https://dev.twitter.com/docs/api/1.1 
Facebook: https://developers.facebook.com/docs/graph-api/ 
Google: http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Earth%20Day 
Amazon: http://docs.aws.amazon.com/AWSECommerceService/latest/DG/ItemSearch.html
Framework
MVC: Modelo / Vista / Controlador 
http://librosweb.es/jobeet_1_4/capitulo_4/la_arquitectura_mvc.html 
http://students.com/students/get?studentId=123 
/** Students Controller **/ 
public function get() { 
// Get student id from request 
$studentId = $this->request->query['studentId']; 
// We call Student Model to retrieve Student 
$student = $this->Student->getStudent($studentId); 
// Set result to the view 
$this->set('student', $student); 
}
● Routing 
● ACL 
● Autentificación 
● Acceso a BD 
● Validación 
● Seguridad 
● Session 
● Cache 
● ...
WORK 
METHODOLOGY
IDE 
Diferentes opciones: 
* Eclipse 
* NetBeans 
* PHPStorm 
* Vim/Emacs (Apto para agilistas geeksters) 
* Dreamweaver
Debugging 
* Xdebug/Zend Debugger 
* Loggers integrados en frameworks 
* Firebug/Developer tools 
* Logs de servidor (Apache) 
* E-Mail (Sí, e-mail)
Git 
* Trabajar en equipo de forma, rápida, segura y prácticamente 
transparente. 
* Histórico de commits, posibilidad de rollbacks, recuperación de 
codigo antiguo, etc. 
* Compares (Otra herramienta de debugging) 
*Continuous deployment (No more FTP)
Manos a la obra! 
git clone https://github.com/lopezator/thumbNailGenerator.git
GitHub 
* Posibilidad de trabajo colaborativo, ofrece un servidor de 
código github, que puede ser público o privado. 
* Almacén de código para poder descargarlo desde cualquier 
lugar. 
* Muy relacionado al mundo del software libre. 
* Geekster.
Continuous Deployment 
* SVN Export 
* Git Pull (Hooks) 
*Hooks 
* Scripts propios (rsync, scp, bash…)
CLEAN CODE
public function getts() { 
$amin = date('Y-m-d H:i:s', time()-60); 
$ts = $this->find('all', array( 
'conditions' => array( 
'created >' => $amin 
) 
)); 
return $ts; 
} 
Example
Auto commented code: variable names 
public function getTweetsLastMinute() { 
$aMinuteAgo = date('Y-m-d H:i:s', time()-60); 
$tweetsLastMinute = $this->find('all', array( 
'conditions' => array( 
'created >' => $aMinuteAgo 
) 
)); 
return $tweetsLastMinute; 
}
public function getCompleteStudent($studentId) { 
$student = $this->getStudent($studentId); 
$student->images = $this->getImagesStudent($studentId); 
$student->courses = $this->getCoursesStudent($studentId); 
$student->teachers = $this->getTeachersStudent($studentId); 
return $student; 
} 
Auto commented code: function names
TDD
TEST 
describe("Player", function() { 
var player; 
var song; 
beforeEach(function() { 
player = new Player(); 
song = new Song(); 
}); 
it("should be able to play a Song", function() { 
player.play(song); 
//demonstrates use of custom matcher 
expect(player).toBePlaying(song); 
}); 
});
Empleo 
¿Buscas trabajo y no encuentras? 
Inténtalo de nuevo, inténtalo mejor.
● No te limites a Infojobs/echar CVs, adáptate a la situación actual. 
● Conexión con la realidad/comunidad local. (LinkedIn, Twitter, eventos (networking), 
comunidades locales, github, etc… 
● Blogging, investigación. 
● Toy projects/diferénciate del resto. 
● Especialización en tecnologías en liza, autoaprendizaje, actualización constante. 
● Teletrabajo (USA/EUROPA). 
● Start-ups. 
● Emprendizaje.
BONUS: 
RECURSOS
The Mêlée 
http://themelee.org
Katayunos 
http://katayunos.com
https://twitter.com/devsidestory 
http://favstar.fm/users/devsidestory
https://twitter.com/E1Am1g01nf0rma1 
http://favstar.fm/users/E1Am1g01nf0rma1
https://twitter.com/devopsreactions 
http://devopsreactions.tumblr.com/ 
Why DOS attacks stop - behind the scenes
BONUS: 
+1 LIFE
● Formación continua 
● Networking 
● Emprendizaje 
● Marketing 
● Toy Projects 
● Redes Sociales 
● Personal Brand 
● Stackoverflow
GRACIAS 
Mikel Torres 
@ojoven 
David López 
@lopezator &

More Related Content

What's hot

Marrow: A Meta-Framework for Python 2.6+ and 3.1+
Marrow: A Meta-Framework for Python 2.6+ and 3.1+Marrow: A Meta-Framework for Python 2.6+ and 3.1+
Marrow: A Meta-Framework for Python 2.6+ and 3.1+ConFoo
 
Writing and Publishing Puppet Modules - PuppetConf 2014
Writing and Publishing Puppet Modules - PuppetConf 2014Writing and Publishing Puppet Modules - PuppetConf 2014
Writing and Publishing Puppet Modules - PuppetConf 2014Puppet
 
Replacing "exec" with a type and provider: Return manifests to a declarative ...
Replacing "exec" with a type and provider: Return manifests to a declarative ...Replacing "exec" with a type and provider: Return manifests to a declarative ...
Replacing "exec" with a type and provider: Return manifests to a declarative ...Puppet
 
React PHP: the NodeJS challenger
React PHP: the NodeJS challengerReact PHP: the NodeJS challenger
React PHP: the NodeJS challengervanphp
 
Security Meetup 22 октября. «Реверс-инжиниринг в Enterprise». Алексей Секрето...
Security Meetup 22 октября. «Реверс-инжиниринг в Enterprise». Алексей Секрето...Security Meetup 22 октября. «Реверс-инжиниринг в Enterprise». Алексей Секрето...
Security Meetup 22 октября. «Реверс-инжиниринг в Enterprise». Алексей Секрето...Mail.ru Group
 
A new way to develop with WordPress!
A new way to develop with WordPress!A new way to develop with WordPress!
A new way to develop with WordPress!David Sanchez
 
My app is secure... I think
My app is secure... I thinkMy app is secure... I think
My app is secure... I thinkWim Godden
 
ZeroMQ Is The Answer: DPC 11 Version
ZeroMQ Is The Answer: DPC 11 VersionZeroMQ Is The Answer: DPC 11 Version
ZeroMQ Is The Answer: DPC 11 VersionIan Barber
 
My app is secure... I think
My app is secure... I thinkMy app is secure... I think
My app is secure... I thinkWim Godden
 
Any event intro
Any event introAny event intro
Any event introqiang
 

What's hot (20)

JavaScript on the Desktop
JavaScript on the DesktopJavaScript on the Desktop
JavaScript on the Desktop
 
Nubilus Perl
Nubilus PerlNubilus Perl
Nubilus Perl
 
PHP5.5 is Here
PHP5.5 is HerePHP5.5 is Here
PHP5.5 is Here
 
Marrow: A Meta-Framework for Python 2.6+ and 3.1+
Marrow: A Meta-Framework for Python 2.6+ and 3.1+Marrow: A Meta-Framework for Python 2.6+ and 3.1+
Marrow: A Meta-Framework for Python 2.6+ and 3.1+
 
Writing and Publishing Puppet Modules - PuppetConf 2014
Writing and Publishing Puppet Modules - PuppetConf 2014Writing and Publishing Puppet Modules - PuppetConf 2014
Writing and Publishing Puppet Modules - PuppetConf 2014
 
Perl Web Client
Perl Web ClientPerl Web Client
Perl Web Client
 
Replacing "exec" with a type and provider: Return manifests to a declarative ...
Replacing "exec" with a type and provider: Return manifests to a declarative ...Replacing "exec" with a type and provider: Return manifests to a declarative ...
Replacing "exec" with a type and provider: Return manifests to a declarative ...
 
PHP7 Presentation
PHP7 PresentationPHP7 Presentation
PHP7 Presentation
 
dotCloud and go
dotCloud and godotCloud and go
dotCloud and go
 
React PHP: the NodeJS challenger
React PHP: the NodeJS challengerReact PHP: the NodeJS challenger
React PHP: the NodeJS challenger
 
The new features of PHP 7
The new features of PHP 7The new features of PHP 7
The new features of PHP 7
 
Security Meetup 22 октября. «Реверс-инжиниринг в Enterprise». Алексей Секрето...
Security Meetup 22 октября. «Реверс-инжиниринг в Enterprise». Алексей Секрето...Security Meetup 22 октября. «Реверс-инжиниринг в Enterprise». Алексей Секрето...
Security Meetup 22 октября. «Реверс-инжиниринг в Enterprise». Алексей Секрето...
 
C99[2]
C99[2]C99[2]
C99[2]
 
A new way to develop with WordPress!
A new way to develop with WordPress!A new way to develop with WordPress!
A new way to develop with WordPress!
 
My app is secure... I think
My app is secure... I thinkMy app is secure... I think
My app is secure... I think
 
Lumberjack XPath 101
Lumberjack XPath 101Lumberjack XPath 101
Lumberjack XPath 101
 
ZeroMQ Is The Answer: DPC 11 Version
ZeroMQ Is The Answer: DPC 11 VersionZeroMQ Is The Answer: DPC 11 Version
ZeroMQ Is The Answer: DPC 11 Version
 
Php 101: PDO
Php 101: PDOPhp 101: PDO
Php 101: PDO
 
My app is secure... I think
My app is secure... I thinkMy app is secure... I think
My app is secure... I think
 
Any event intro
Any event introAny event intro
Any event intro
 

Similar to Charla EHU Noviembre 2014 - Desarrollo Web

09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)Igor Bronovskyy
 
Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Michelangelo van Dam
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch
 
Innovative Specifications for Better Performance Logging and Monitoring
Innovative Specifications for Better Performance Logging and MonitoringInnovative Specifications for Better Performance Logging and Monitoring
Innovative Specifications for Better Performance Logging and MonitoringCary Millsap
 
FP - Découverte de Play Framework Scala
FP - Découverte de Play Framework ScalaFP - Découverte de Play Framework Scala
FP - Découverte de Play Framework ScalaKévin Margueritte
 
4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebookguoqing75
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVCAlive Kuo
 
Quality Assurance for PHP projects - ZendCon 2012
Quality Assurance for PHP projects - ZendCon 2012Quality Assurance for PHP projects - ZendCon 2012
Quality Assurance for PHP projects - ZendCon 2012Michelangelo van Dam
 
Real world Webapp
Real world WebappReal world Webapp
Real world WebappThings Lab
 
HTML5 for the Silverlight Guy
HTML5 for the Silverlight GuyHTML5 for the Silverlight Guy
HTML5 for the Silverlight GuyDavid Padbury
 
Building Testable PHP Applications
Building Testable PHP ApplicationsBuilding Testable PHP Applications
Building Testable PHP Applicationschartjes
 
Facebook的缓存系统
Facebook的缓存系统Facebook的缓存系统
Facebook的缓存系统yiditushe
 
How Secure Are Docker Containers?
How Secure Are Docker Containers?How Secure Are Docker Containers?
How Secure Are Docker Containers?Ben Hall
 
Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008Guillaume Laforge
 
Reutov, yunusov, nagibin random numbers take ii
Reutov, yunusov, nagibin   random numbers take iiReutov, yunusov, nagibin   random numbers take ii
Reutov, yunusov, nagibin random numbers take iiDefconRussia
 
Groovy On Trading Desk (2010)
Groovy On Trading Desk (2010)Groovy On Trading Desk (2010)
Groovy On Trading Desk (2010)Jonathan Felch
 

Similar to Charla EHU Noviembre 2014 - Desarrollo Web (20)

09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
 
Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.js
 
Fatc
FatcFatc
Fatc
 
Innovative Specifications for Better Performance Logging and Monitoring
Innovative Specifications for Better Performance Logging and MonitoringInnovative Specifications for Better Performance Logging and Monitoring
Innovative Specifications for Better Performance Logging and Monitoring
 
FP - Découverte de Play Framework Scala
FP - Découverte de Play Framework ScalaFP - Découverte de Play Framework Scala
FP - Découverte de Play Framework Scala
 
4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook
 
Having Fun with Play
Having Fun with PlayHaving Fun with Play
Having Fun with Play
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC
 
Quality Assurance for PHP projects - ZendCon 2012
Quality Assurance for PHP projects - ZendCon 2012Quality Assurance for PHP projects - ZendCon 2012
Quality Assurance for PHP projects - ZendCon 2012
 
Real world Webapp
Real world WebappReal world Webapp
Real world Webapp
 
HTML5 for the Silverlight Guy
HTML5 for the Silverlight GuyHTML5 for the Silverlight Guy
HTML5 for the Silverlight Guy
 
Building Testable PHP Applications
Building Testable PHP ApplicationsBuilding Testable PHP Applications
Building Testable PHP Applications
 
Facebook的缓存系统
Facebook的缓存系统Facebook的缓存系统
Facebook的缓存系统
 
Play vs Rails
Play vs RailsPlay vs Rails
Play vs Rails
 
How Secure Are Docker Containers?
How Secure Are Docker Containers?How Secure Are Docker Containers?
How Secure Are Docker Containers?
 
Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008
 
Reutov, yunusov, nagibin random numbers take ii
Reutov, yunusov, nagibin   random numbers take iiReutov, yunusov, nagibin   random numbers take ii
Reutov, yunusov, nagibin random numbers take ii
 
Random numbers
Random numbersRandom numbers
Random numbers
 
Groovy On Trading Desk (2010)
Groovy On Trading Desk (2010)Groovy On Trading Desk (2010)
Groovy On Trading Desk (2010)
 

Recently uploaded

2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxcallscotland1987
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxDr. Sarita Anand
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structuredhanjurrannsibayan2
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the ClassroomPooky Knightsmith
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsKarakKing
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 

Recently uploaded (20)

2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 

Charla EHU Noviembre 2014 - Desarrollo Web

  • 1. Desarrollo web. Repaso a tecnologías y metodologías de desarrollo actuales.
  • 2. David López @lopezator b1ud13@gmail.com Mikel Torres @ojoven mikeltorresmail@gmail.com
  • 3. WORK FRONT END BACK END METHODOLOGY
  • 5.
  • 6.
  • 7.
  • 8. Transitions .box { width: 150px; height: 150px; margin: 20px auto; background-color: #999; } #box1 { transition: background-color 0.5s ease; background-color: red; } #box1:hover { background-color: green; }
  • 9. Transforms #box3 { margin-top: 50px; transform: rotate(30deg); -ms-transform: rotate(30deg); /* IE 9 */ -webkit-transform: rotate(30deg); /* Safari and Chrome */ }
  • 10. Animations #box5 { animation: my-animation 3s; animation-iteration-count: infinite; } @keyframes my-animation { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
  • 16.
  • 17. jQuery <a id="try-zoom" class="btn btn-primary">Zoom!</a> function initZoom() { $('#try-zoom').click(function() { zoom.to({ element: document.querySelector( '#to-zoom' ) }); }); $('#to-zoom').click(function() { zoom.out(); }); }
  • 18. AJAX
  • 19. AJAX function getStudents() { $(".student").click(function() { var url = urlBase + "/getstudent"; var studentId = $(this).parent().find('input[class="studentId"]').val(); $.get(url, { studentId: studentId }, function(response) { console.log(response); }); }); }
  • 21. Responsive .container { width:1024px; } @media screen and (max-width:768px){ .container { width:100%; } }
  • 23. <link href='http://fonts.googleapis.com/css?family=Jolly+Lodger' rel='stylesheet' type='text/css'> font-family: 'Jolly Lodger', cursive;
  • 24.
  • 26. Composer “Composer is a tool for dependency management in PHP. It allows you to declare the dependent libraries your project needs and it will install them in your project for you.” http://getcomposer.org
  • 27. Apache VirtualHosts The term Virtual Host refers to the practice of running more than one web site (such as company1. example.com and company2.example.com) on a single machine.
  • 29. MySQL
  • 30. Y bien, ¿cómo realizamos una consulta a MySQL desde PHP5?
  • 31. Fácil, concatenamos la consulta con su condición en un string. $result = mysql_query("SELECT LUKE FROM PADRES WHERE PADRE =". $darth_vader);
  • 32.
  • 33. Una consulta debe estar siempre parametrizada. * Por legibilidad * Por limpieza del código. * Y lo mas importante, evitar ataques SQL Injection. $stmt = $pdo->prepare("DELETE FROM SINGERS WHERE NAME = :name AND SURNAME = :surname”); $stmt->prepare(array(“name” => “Justin”, “surname” => “Bieber”);
  • 34. Para NOTA: USA ORMS Diferentes opciones: * Doctrine * Propel * RedBean
  • 35. API
  • 36. Examples Twitter: https://dev.twitter.com/docs/api/1.1 Facebook: https://developers.facebook.com/docs/graph-api/ Google: http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Earth%20Day Amazon: http://docs.aws.amazon.com/AWSECommerceService/latest/DG/ItemSearch.html
  • 38. MVC: Modelo / Vista / Controlador http://librosweb.es/jobeet_1_4/capitulo_4/la_arquitectura_mvc.html http://students.com/students/get?studentId=123 /** Students Controller **/ public function get() { // Get student id from request $studentId = $this->request->query['studentId']; // We call Student Model to retrieve Student $student = $this->Student->getStudent($studentId); // Set result to the view $this->set('student', $student); }
  • 39. ● Routing ● ACL ● Autentificación ● Acceso a BD ● Validación ● Seguridad ● Session ● Cache ● ...
  • 41. IDE Diferentes opciones: * Eclipse * NetBeans * PHPStorm * Vim/Emacs (Apto para agilistas geeksters) * Dreamweaver
  • 42. Debugging * Xdebug/Zend Debugger * Loggers integrados en frameworks * Firebug/Developer tools * Logs de servidor (Apache) * E-Mail (Sí, e-mail)
  • 43. Git * Trabajar en equipo de forma, rápida, segura y prácticamente transparente. * Histórico de commits, posibilidad de rollbacks, recuperación de codigo antiguo, etc. * Compares (Otra herramienta de debugging) *Continuous deployment (No more FTP)
  • 44. Manos a la obra! git clone https://github.com/lopezator/thumbNailGenerator.git
  • 45. GitHub * Posibilidad de trabajo colaborativo, ofrece un servidor de código github, que puede ser público o privado. * Almacén de código para poder descargarlo desde cualquier lugar. * Muy relacionado al mundo del software libre. * Geekster.
  • 46. Continuous Deployment * SVN Export * Git Pull (Hooks) *Hooks * Scripts propios (rsync, scp, bash…)
  • 48. public function getts() { $amin = date('Y-m-d H:i:s', time()-60); $ts = $this->find('all', array( 'conditions' => array( 'created >' => $amin ) )); return $ts; } Example
  • 49. Auto commented code: variable names public function getTweetsLastMinute() { $aMinuteAgo = date('Y-m-d H:i:s', time()-60); $tweetsLastMinute = $this->find('all', array( 'conditions' => array( 'created >' => $aMinuteAgo ) )); return $tweetsLastMinute; }
  • 50. public function getCompleteStudent($studentId) { $student = $this->getStudent($studentId); $student->images = $this->getImagesStudent($studentId); $student->courses = $this->getCoursesStudent($studentId); $student->teachers = $this->getTeachersStudent($studentId); return $student; } Auto commented code: function names
  • 51. TDD
  • 52. TEST describe("Player", function() { var player; var song; beforeEach(function() { player = new Player(); song = new Song(); }); it("should be able to play a Song", function() { player.play(song); //demonstrates use of custom matcher expect(player).toBePlaying(song); }); });
  • 53. Empleo ¿Buscas trabajo y no encuentras? Inténtalo de nuevo, inténtalo mejor.
  • 54. ● No te limites a Infojobs/echar CVs, adáptate a la situación actual. ● Conexión con la realidad/comunidad local. (LinkedIn, Twitter, eventos (networking), comunidades locales, github, etc… ● Blogging, investigación. ● Toy projects/diferénciate del resto. ● Especialización en tecnologías en liza, autoaprendizaje, actualización constante. ● Teletrabajo (USA/EUROPA). ● Start-ups. ● Emprendizaje.
  • 58.
  • 60.
  • 64. ● Formación continua ● Networking ● Emprendizaje ● Marketing ● Toy Projects ● Redes Sociales ● Personal Brand ● Stackoverflow
  • 65.
  • 66. GRACIAS Mikel Torres @ojoven David López @lopezator &