Ruby On Rails
Outside-In
Pedro Visintin
contact@pedrovisintin.com
Presentaciones
hablemos del curso
• el entorno de desarrollo
• el horario
• el break
• el feedback
• el curso es ágil
html
css
web developer
? javascript
un malabarista SQL
http://www.flickr.com/photos/extranjerochapin/
MVC. Una buena idea
Porqué elegimos Ruby y Rails
• es un lenguaje orientado al programador
no a la máquina
• motiva al programador por la productividad
(más con menos)
• reduce la cantidad de código (el mejor
código es el no código)
• permite hacer metaprogramming
relativamente simple
Agile Web Development
• convention over configuration
• DRY (do not repeat yourself)
• best practices included
Ruby
class Ruby < Programming Language
attr_accessor :features
def initialize
@features = []
end
end
ruby = Ruby.new
ruby.features << “Fully Object Oriented”
ruby.features << “Inheritance and Mixins”
ruby.features << “Dinamyc Typed Language”
ruby.features << “Open Classes”
ruby.features << “Dynamic reflection and alteration of
objects”
non human human
presentation
api
controller
business logic (model)
non human human
experiencepresentation
api
controller
business logic (model)
El concepto detrás de
Ruby
"I wanted a scripting language that
was more powerful than Perl, and
more object-oriented than Python.
That's why I decided to design my
own language"
Yukihiro Matsumoto
que la busquen y la sigan buscando
esto no es mainstream
porqué programamos?
• nos gusta
• generalmente necesitamos $$$
• generalmente somos unas personas
particulares
• generalmente nos relacionamos de forma
especial con los que no son programadores
contexto
{
• Software libre
• Web 2.0 (compartir+/tener-)
• Software Colaborativo
(muchas veces, no siempre)
• Internet crece
exponencialmente
}
http://www.flickr.com/photos/4everyoung/313308360/
Desarrollo Web
• en general trabaja más de una persona
• los proyectos muchas veces no tienen fecha
de fin (permanent beta)
• necesitamos código mantenible para poder
continuar mejorando
Los mercados son
conversaciones.
no es lo mismo trabajar
solo que trabajar en
equipo
http://www.flickr.com/photos/teamtraveller/3745126618/
Cuando hablamos de Lenguaje estamos hablando
de comunicación?
Complejidad
Complejo, describe las
interacciones entre un múmero
de entidades. Si el número de
entidades aumenta, el número
de interacciones se incrementa,
el número de interacciones
entre ellas se incrementa
exponencialmente y se puede
llegar a un punto donde podría
ser imposible conocer y http://www.flickr.com/photos/brewbooks/223616349/
entender todas ellas.
• gente
• software
• negocios
The Agile Manifesto
• Individuals and interactions over processes
and tools
• Working software over comprehensive
documentation
• Customer collaboration over contract
negotiation
• Responding to change over following a plan
Porqué Extreme Programing es
una buena opción?
XP Values
• comunicación
• simplicidad (en contexto y YAGNI)
• feedback (acerca al objetivo perfectible)
• coraje (miedo yo? sí)
• respeto (por el equipo y el proyecto)
Prácticas que usaremos
(es un curso de rails no de XP)
• Test first Programming (BDD)
• Incremental design
• Pair programming
http://www.flickr.com/photos/hryckowian/2029393648/
quién se anima a meter mano en 10000
líneas de código que no conoce?
predicibilidad
TDD BDD
con Unit Test con Shoulda
Todos los
caminos
conducen AGILE
DEVELOPMENT
a Roma
varias formas de hacer lo mismo
pero el mismo concepto detrás
BDD BDD
con Context BDD con Rspec
con Contest
• No escribir código si no
falla ningún test
• El mejor código es el no
código (YAGNI)
ser parte del equipo
• nosotros pertenecemos
• estamos juntos en esto
• nosotros nos ayudamos entre nosotros a
trabajar, crecer y aprender
0 comments
Post a comment