Está en la página 1de 15

Que es UX?

Experiencia de usuario (UX) es un trmino para el nivel de satisfaccin total de usuarios


cuando utiliza tu producto o sistema. Si es una buena experiencia, ellos estn felices, si es
una mala experiencia, tus clientes no regresaran. Y ellos le dirn a sus amigosy a
Google.

Vea que podemos hacer por usted>

UX= suma de una serie de interacciones
Experiencia de usuario (UX) representa la percepcin dejada en la mente de alguien
despus de una serie interaccin entre la gente, dispositivos y eventos- o una combinacin
de esas. Serie es la palabra operativa.

Algunas interacciones son activas: saliendo de la lluvia durante un da de campo.

Algunas interacciones son pasivas: mirando una puesta del sol hermosa provocar el
sistema lmbico para liberar la dopamina (una recompensa qumica).
Algunas interacciones son secundarias a la ltima experiencia: la comida sabe bien porque
el chef ha elegido ingredientes de calidad y los ha preparado bien. Los ingredientes son de
buena calidad porque el agricultor cuida sus campos. La cosecha interactu bien con la
lluvia ese ao

Todas las interacciones estn abiertas a la interpretacin subjetiva- a algunas personas no
les gusta el apio o los atardeceres. Recuerde, la percepcin es siempre verdadera en la
mente de quien lo percibe. Si usted piensa que los atardeceres son deprimentes, hay poco
que nosotros podemos hacer para convencerlo de otra manera. Sin embargo, esto es
porqu los diseadores continuamente utilicen la mejor practica- la mayora de la gente
responden positivamente a los atardeceres.

Diseo UX= combina tres tipos de actividades
Diseando una experiencia de usuario, por lo tanto, representa la accin consciente.


Coordina interacciones que pueden ser revisadas (seleccionar ingredientes de la comida,
entrenar meseros, disear y programar botones)
Interacciones de cognicin que estn ms all de nuestro control (asientos incmodos en
un teatro de 100 aos, falta de productos frescos en invierno, nubes bajas que ocultan el
atardecer.)
Reducir las interacciones negativas (proporcionando tiendas de emergencia como techo
en eventos al aire libre en caso de lluvia, asegurndose que en un restaurant la mesa junto
a la puerta de la ruidosa cocina es la ltima en ser llenada, poniendo una pausa extra, de
modo que la gente pueda estirar sus piernas.)
Un buen diseador de experiencia, debe ser capaz de ver ambos, el bosque y los arboles.
Esto quiere decir que la experiencia de usuario tiene las implicaciones que van mucho ms
all de la utilidad, el diseo visual y expectativas fsicas. Como diseadores UX, nosotros
orquestamos una compleja serie de interacciones.

Quiere saber cmo puede utilizar las modernas tcnicas UX para incrementar sus ventas y
satisfaccin de cliente? Denos una llamada!

Qu es el Responsive Design y por qu tu
web debera tenerlo

A estas alturas y an sin tener una versin mvil de tu web? Bueno bueno! No
te desesperes, en este post te voy a explicar todo lo que necesitas para que tu web est a
la ltima.
Pero qu es el Responsive Design?
El Responsive Design o diseo adaptativo, es la tcnica que se usa en la actualidad
para tener una misma web adaptada a las diferentes plataformas que nos brinda la
tecnologa: ordenador, tablet y Smartphone.
Consiste en una serie de hojas de estilo en CSS3, que usando el atributo
mediaquery convierten una web ordinaria en una web multiplataforma capaz de adaptarse
a todos los tamaos que existen, ofreciendo una experiencia para el usuario mucho ms
amena y cubriendo las necesidades de nuestro pblico. Atrs quedan las webs que vistas en
un Smartphone se tenan que ampliar para poder leer algo.
Por qu tu web debera ser Responsive?
Las ventajas del Responsive Design son muchas y leyendo cuales son, seguro que te
convences para convertir tu web en una web multiplataforma:
Mejor experiencia de usuario. Eso repercute en la opinin que los usuarios
tienen de tu sitio web y el uso que le darn a ella. Mejorar tanto tu imagen de
marca como el tiempo de permanencia en la web y aumentar la tasa de rebote
entre pginas de tu web.
Se acabaron los contenidos duplicados. Si usabas una versin mvil para que los
usuarios que accedan a tu web vieran el contenido adaptado al dispositivo,
era perjudicial para tu SEO, ya que eso creaba contenido duplicado y por lo
tanto Google penalizaba a tu web. Un diseo Responsive evita este problema ya que
es el mismo contenido que se organiza de manera distinta segn el dispositivo en
el que se vea.
Se reducen los costes de desarrollo y mantenimiento de la web. Al usar la misma
plantilla para todas las plataformas, se reduce la inversin en mantenimiento y
desarrollo, ya que un slo cambio repercute en todas las versiones.
Aumenta la viralidad. Un reciente estudio certifica que el 70% de los accesos a las
redes sociales se hacen a travs de dispositivos mviles, eso significa que si
un usuario accede a nuestra web a travs de un Smartphone, seguramente tenga
las aplicaciones sociales abiertas y si quiere compartir algo, es mucho ms rpido
y natural.

Por supuesto que no todo son ventajas, tambin hay inconvenientes, como por ejemplo,
el coste de desarrollo inicial es mayor al de una web normal ya que su dificultad tcnica
es mayor, o que el tiempo de carga de las imgenes es mayor debido a que usa las
mismas en web que en un ordenador por qu slo escala el tamao y no usa unas
especficas. El Responsive Design se est generalizando a pasos agigantados y eso ha
producido varios desarrolladores creen frameworks (aplicaciones preconfiguradas) para que
no se tengan que crear las pginas adaptativas desde cero, nos facilitan la vida y hacen
que todo el proceso de creacin sea mucho ms fcil para los desarrolladores. Uno de
los ms generalizados es Bootstrap, un framework creado por el equipo de desarrollo
de Twitter y de cdigo abierto, muy usado por desarrolladores freelances. Foundation
3 es otro framework muy popular el cual ellos mismo definen como el framework
ms avanzado del mundo. Y finalmente HTML5 Boilerplate, el framework que usan
ms marcas conocidas como Google, Microsoft, Nike o el equipo de desarrolladores de
Barack Obama.
Aunque se use la misma pgina para todas las vistas de tu web, es importante tener
claro qu se debe mostrar en cada versin y qu no, ya que habr informacin que no sea
til para unas vistas y otras. Existen guas muy buenas de cmo disear para
dispositivos mviles, como por ejemplo esta: 10 buenas prcticas en el diseo de web
mobiles.
Ahora que ya sabes todo lo que debes saber sobre el Responsive Design, A qu
esperas para convertir tu web en un web adaptativa y ser mejor que tu competencia? En
nuestroMaster en Negocios Mviles aprenders a preparar una estrategia adecuada para
cada dispositivo Ests preparado?



Qu es Cross Browser
Por Miguel Angel Alvarez


29 de diciembre de 2005
2 Comentarios
Desarrollo, Javascript, CSS
Se refiere Cross Browser al desarrollo de pginas web que se ven
exactamente igual en cualquier navegador.

Desde que los navegadores los realizan diferentes empresas u organizaciones de
desarrollo de software, con sus propios intereses, las diferencias en los navegadores han
sido patentes. Existen unos organismos que definen cmo deben de ser lenguajes como
HTML, CSS o Javascript, pero a veces las interpretaciones son distintas por parte de las
empresas desarrolladoras de software, o incluso estas se permiten el lujo de crear nuevas
etiquetas o funcionalidades, incluso decidir cules soportan.
A medida que los navegadores evolucionan, tambin las especificaciones se mejoran,
por lo que las distintas versiones del mismo software de exploracin web tambin
pueden mostrar las pginas de manera distinta entre si.
Con todo esto tenemos que lidiar los desarrolladores del web, pues los programas con
los que el pblico visualizar nuestros trabajos pueden ser muy distintos y el aspecto de
las webs puede cambiar bastante de unos a otros. Lo mejor que podemos hacer es
realizar pginas web que se vean igual en todos los navegadores. Esas soluciones que se
adaptan a todo tipo de navegadores decimos que son Cross-Browser.
Una vez aclaradas la bases, hay que decir que el cross browser se puede aplicar a
muchas tecnologas, que son las que entienden los navegadores y con las que
trabajamos los desarrolladores. La primera vez que escuch hablar de Cross-Browser
fue con Javascript y el trabajo con capas. Los programas ms populares para el web en
aquellos momentos eran Netscape Navigator e Internet Explorer y la manera de
controlar el sistema de capas era notablemente distinta. Por lo tanto, haba que encontrar
mecanismos para que las pginas web se visualizasen perfectamente en varios
navegadores.
Con CSS (Hojas de estilo en cascada) tambin se habla de Cross Browser, porque
distintos navegadores o sus versiones, interpretan ms o menos etiquetas y atributos de
estilo. Tambin porque un mismo atributo puede ser interpretado con sutiles diferencias
que hacen que el trabajo no se vea perfecto en dos navegadores a la vez. Hay entonces
que utilizar pequeos trucos para que el efecto sea el mismo en todos los navegadores.
A veces los trucos son utilizar un atributo en vez de otro, pero a menudo se proponen
trampas que hacen que se vea bien el resultado, a costa de tener un cdigo ms
complejo o incluso incorrecto sintcticamente.
Con HTML, aunque tambin hay cambios entre distintos navegadores, son mucho
menores y de efecto mnimo, por lo que no se suele utilizar aqu el trmino.
En el Manual de CSS y el taller de CSS explicamos en algunos casos cmo realizar
cdigo que se vea igual en todos los navegadores. Pero sobretodo hemos tratado hasta
este momento unos cuantos artculos y un manual para ensear cmo realizar cdigo
Javascript Cross-browser para el manejo de capas.

Autor
Miguel Angel Alvarez
Miguel es fundador de DesarrolloWeb.com y la plataforma de formacin online EscuelaIT.
Comenz en el mundo del desarrollo web en el ao 1997, transformando su hobby en su trabajo.
Subir
Manual
Qu es cada tecnologa
La filosofa Basecamp y Ruby on Rails
Qu es Telnet y SSH?
Comentarios
Enviar un comentario al artculo
Michael Doporto
18/1/2007
Es en verdad cierto, la forma tan variada en que los diferentes navegadores pueden
mostrar una misma pgina html, cuando se usan para su diseo tecnologas css y js.
Pero tambin existen modalidades o ms bien dicho instrucciones pasadas como
variables, que se pueden generalizar para que el aspecto en cada uno de los diferentes
navegadores existentes sea el mismo, o casi el mismo segn sea el caso.
Tarea algo dificil, pero no imposible, solo hay que tomar en cuenta el modo en que cada
navegador trabaja la vista de cada instruccin, identificar que navegador es el que
visualiza la pgina html, y mostrar su instruccin para que trabaje exclusivamente en su
propio lenguaje.
Ciertamente sto demerita en ocasiones en tareas de multiple programacin, pero tambin
asegura que el resultado ser el mismo se vea donde se vea.


Mockup


Transbordador de simulacin fuera del Space Shuttle America; un ejemplo de mockup
En la manufactura y diseo, un mockup, o maqueta es un modelo a escala o tamao real
de un diseo o un dispositivo, utilizado para la demostracin, evaluacin del diseo,
promocin, y para otros fines. Un mockup es un prototipo si proporciona al menos una
parte de la funcionalidad de un sistema y permite pruebas del diseo.
1
Los mockups son
utilizados por los diseadores principalmente para la adquisicin de comentarios por parte
de los usuarios. Los mock-ups abordan la idea capturada en la ingeniera popular: Usted
puede arreglarlo ahora en el dibujo con una goma de borrar o ms tarde en la obra con un
martillo..
2


Que es un FRAMEWORK ?. Cuales son sus
ventajas y desventajas?. Y que Sw poseen este
framework?
Gracias por la informacion.
Mejor respuesta

Sir John respondida hace 7 aos
Una definicin de framework es la de un marco de aplicacin o conjunto de bibliotecas
orientadas a la reutilizacin a muy gran escala de componentes software para el desarrollo
rpido de aplicaciones. En esta categora se incluye la Biblioteca de Componentes Visuales
(VCL) de CodeGear, Swing y AWT para el desarrollo de aplicaciones con formularios en Java,
Struts, para aplicaciones web tambin en Java, Ruby On Rails para aplicaciones web con
Ruby, y las antiguas Microsoft Foundation Classes y Turbo Vision de Borland.

Las principales ventajas de la utilizacin de un framework son:
1. El desarrollo rpido de aplicaciones. Los componentes incluidos en un framework
constituyen una capa que libera al programador de la escritura de cdigo de bajo nivel.
2. La reutilizacin de componentes software al por mayor. Los frameworks son los paradigmas
de la reutilizacin.
3. El uso y la programacin de componentes que siguen una poltica de diseo uniforme. Un
framework orientado a objetos logra que los componentes sean clases que pertenezcan a una
gran jerarqua de clases, lo que resulta en bibliotecas ms fciles de aprender a usar.

Las desventajas de los frameworks son:
1. La dependencia del cdigo fuente de una aplicacin con respecto al framework. Si se desea
cambiar de framework, la mayor parte del cdigo debe reescribirse.
2. La demanda de grandes cantidades de recursos computacionales debido a que la
caracterstica de reutilizacin de los frameworks tiende a generalizar la funcionalidad de los
componentes. El resultado es que se incluyen caractersticas que estn "de ms", provocando
una sobrecarga de recursos que se hace ms grande en cuanto ms amplio es el campo de
reutilizacin.

El trmino framework tiene una acepcin ms amplia, en donde adems de incluir una
biblioteca de componentes reutilizables, es toda una tecnologa o modelo de programacin que
contiene mquinas virtuales, compiladores, bibliotecas de administracin de recursos en tiempo
de ejecucin y especificaciones de lenguajes. Tal es el caso del framework Microsoft .NET.

Otra ventaja de los frameworks, y en especial de esta acepcin ampia, es la portabilidad de
aplicaciones de una arquitectura a otra. Por ejemplo, los bytecodes generados a partir del
cdigo fuente de clases en Java pueden ser ejecutados sobre cualquier mquina virtual,
independientemente de la arquitectura hardware y software subyacente.

Framework

La palabra inglesa "framework" (marco de trabajo) define, en trminos generales, un
conjunto estandarizado de conceptos, prcticas y criterios para enfocar un tipo de
problemtica particular que sirve como referencia, para enfrentar y resolver nuevos
problemas de ndole similar.
En el desarrollo de software, un framework o infraestructura digital, es una estructura
conceptual y tecnolgica de soporte definido, normalmente con artefactos o mdulos
de software concretos, que puede servir de base para la organizacin y desarrollo
de software. Tpicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje
interpretado, entre otras herramientas, para as ayudar a desarrollar y unir los diferentes
componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de las
entidades del dominio, y provee una estructura y una especial metodologa de trabajo, la
cual extiende o utiliza las aplicaciones del dominio.
1

ndice
[ocultar]
1 Introduccin
2 Bsicos
o 2.1 Arquitectura
o 2.2 Estructura
3 Lgica
4 Ejemplos
o 4.1 Aplicar
o 4.2 Extender
o 4.3 Ver
5 Vase tambin
6 Referencias
Introduccin[editar]
Los frameworks tienen como objetivo ofrecer una funcionalidad definida, auto contenida,
siendo construidos usando patrones de diseo, y su caracterstica principal es su alta
cohesin y bajo acoplamiento. Para acceder a esa funcionalidad, se construyen piezas,
objetos, llamados objetos calientes, que vinculan las necesidades del sistema con la
funcionalidad que este presta. Esta funcionalidad, esta constituida por objetos llamados
fros, que sufren poco o ningn cambio en la vida del framework, permitiendo la
portabilidad entre distintos sistemas. Frameworks conocidos que se pueden mencionar por
ejemplo son Spring Framework, Hibernate, donde lo esencial para ser denominados
frameworks es estar constituidos por objetos cuasi estticos con funcionalidad definida a
nivel grupo de objetos y no como parte constitutiva de estos, por ejemplo en sus mtodos,
en cuyo caso se habla de un API o librera. Algunas caractersticas notables que se
pueden observar:
Lainversin de control: En un frame, a diferencia de las bibliotecas, el flujo de control
no es dictado por el programa que llama, sino por el mismo.
1

La funcionalidad o comportamiento predeterminado: Un marco tiene un
comportamiento predeterminado. Este comportamiento por defecto debe ser un
comportamiento til, definido e identificable.
Su extensibilidad : Un marco puede ser ampliado para proporcionar una funcionalidad
especfica. El frame, en general, no se supone que deba ser modificado, excepto en
cuanto a extensibilidad. Los usuarios pueden ampliar sus caractersticas, pero no
deben ni necesitan modificar su cdigo.
Bsicos[editar]
No es ms que una base de programacin que atiende a sus descendientes (manejado de
una forma estructural y/o en cascada), posibilitando cualquier respuesta ante las
necesidades de sus miembros, o en secciones de una aplicacin (web), satisfaciendo as
las necesidades ms comunes del programador.
Arquitectura[editar]
Dentro de este aspecto, podemos basarnos en el modelo MVC (Controlador => Modelo =>
Vista), ya que debemos fragmentar nuestra programacin. Tenemos que contemplar estos
aspectos bsicos en cuanto a la implementacin de nuestro sistema:
Modelo
Este miembro del controlador maneja las operaciones lgicas, y de manejo de
informacin (previamente enviada por su ancestro), para resultar de una forma
explicable y sin titubeos. Cada miembro debe ser meticulosamente llamado, con su
correcto nombre y en principio, con su verdadera naturaleza: el manejo de
informacin, su complementacin directa.
Vista
Al final, a este miembro de la familia le corresponde dibujar, o expresar la ltima
forma de los datos: la interfaz grfica que interacta con el usuario final del
programa (GUI). Despus de todo, a este miembro le toca evidenciar la
informacin obtenida hasta hacerla llegar al controlador. Solo (e inicialmente), nos
espera demostrar la informacin.
Controlador
Con este apartado podemos controlar el acceso (incluso todo) a nuestra aplicacin,
y esto puede incluir: archivos,scripts, y/o programas; cualquier tipo de informacin
que permita la interfaz. As, podremos diversificar nuestro contenido de forma
dinmica, y esttica (a la vez); pues, slo debemos controlar ciertos aspectos
(como se ha mencionado antes).
Estructura[editar]
Dentro del controlador, modelo o vista podemos manejar lo siguiente: datos.
Depende de nosotros como interpretar y manejar estos 'datos'. Ahora,
sabemos que el nico dato de una direccin esttica web es: conseguir un
archivo fsico en eldisco duro o de internet, etc. e interpretado o no,
el servidor responde.
El modelo, al igual que el controlador y la vista, maneja todos los datos que se
relacionen consigo (solo es el proceso medio de la separacin por capas que
ofrece la arquitectura MVC). Y slo la vista, puede demostrar dicha
informacin. Con lo cual ya hemos generado la jerarqua de nuestro programa:
Controlador, Modelo y Vista.
Lgica[editar]
Al parecer, debemos inyectar ciertos objetos dentro de sus parientes en esta
aplicacin, solo as compartirn herencia y coherencia en su aplicacin.
Rpidamente, para una aplicacin web sencilla debemos establecer estos
objetos:
Una base (MVC)
Controlador: ste debe ser capaz de manejar rutas, archivos, clases,
mtodos y funciones.
Modelo: es como un script habitual en el servidor, solo que agrupado
bajo un 'modelo' reutilizable.
Vista: como incluyendo cualquier archivo en nuestra ejecucin, muy
simple.
Un sistema
Ruteador: con l podemos dividir nuestras peticiones sin tantas
condicionales.
Cargador

RESUMEN DEL LIBRO

Cada ao, se invierten innumerables horas y se pierden numerosos recursos
debido a cdigo mal escrito, ralentizando el desarrollo, disminuyendo la
productividad, generando graves fallos e incluso pudiendo acabar con la
organizacin o empresa.El reconocido experto de software Robert C. Martin,
junto con sus colegas de Object Mentor, nos presentan sus ptimas tcnicas y
metodologas giles para limpiar el cdigo sobre la marcha y crearlo de forma
correcta, de este modo mejorar como programador.Esta obra se divide en tres
partes. La primera describe los principios, patrones y prcticas para crear
cdigo limpio. La segunda incluye varios casos de estudio cuya complejidad va
aumentando. Cada ejemplo es un ejercicio de limpieza y transformacin de
cdigo con problemas. La tercera parte del libro contiene una lista de heurstica
y sntomas de cdigo errneo (smells) confeccionada al crear los casos
prcticos. El resultado es una base de conocimientos que describe cmo
pensamos cuando creamos, leemos y limpiamos cdigo.Imprescindible para
cualquier desarrollador, ingeniero desoftware, director de proyectos, jefe de
equipo o analista de sistemas interesado en crear cdigo de mejor calidad.El
libro que todo programador debe leer!

ADICIONAL
No me gusta recurrir a los argumentos de autoridad, pero creo que es conveniente comenzar
esta resea explicando que el autor principal del libro del que os hablo hoy, Clean Code, o
Cdigo Limpio, es Robert C. Martin, a.k.a Uncle Bob, experto en desarrollo de software,
miembro fundador de la Agile Alliance, primer presidente de la asociacin y coautor del
Manifiesto gil. Hechas las presentaciones, pasemos a hablar del libro.
Clean Code se estructura alrededor de una idea bsica: la de que el buen cdigo es
resultado, ante todo, de prestar atencin a los pequeos detalles. Muchas veces estamos tan
centrados en la arquitectura, o en acumular patrones y principios que no sabemos aplicar
correctamente, que no damos la importancia que se merece a otros detalles que pueden
parecer menores, pero que tienen igual o mayor importancia. No olvidemos que antes de
correr, se ha de aprender a andar.
Antes de comenzar a leer y coleccionar libros sobre metodologa, gestin de proyectos,
pruebas o diseo de software, por favor, empieza leyendo este. Es posible que muchas de
las cosas que explica te parezcan obvias a estas alturas, pero creo que es preferible hacerte
perder algo de tiempo, a que, por vanidad o desconocimiento, ests descuidando las bases.
En todo caso, creo que es imposible no aprender al menos una cosa nueva en cada captulo,
independientemente de tu nivel.
El libro est dividido en tres partes, siendo los 13 primeros captulos consejos razonados de
cmo escribir cdigo limpio, divididos por temticas. Una lectura muy amena en la que se
habla del aspecto que deberan tener, para que nuestro cdigo sea limpio, los nombres,
funciones, comentarios, clases, objetos, estructuras de datos, el manejo de errores y las
pruebas unitarias.
El captulo dedicado a las funciones, por ejemplo, explica que la primera regla al escribir
funciones es que tienen que ser cortas; la segunda, que tienen que ser an ms cortas.
Tambin habla de la necesidad de que cada funcin haga una nica cosa (SRP), de limitar el
nivel de anidamiento y el nmero de parmetros, o de por qu los parmetros booleanos a
modo de flag son una mala seal.
La segunda parte es el trabajo duro, donde realmente interiorizamos los conceptos que
hemos estado leyendo. Consiste en un par de captulos con casos de estudio reales (JUnit y
SerialDate) en los que tienes la posibilidad de ver cmo y por qu se aplican distintas
refactorizaciones para obtener, paso a paso, un cdigo mucho ms legible. Ambos ejemplos
estn escritos en Java, aunque no es necesario conocer el lenguaje para seguirlos. Slo estar
familiarizados con lenguajes similares.
La tercera y ltima parte consiste en un resumen de los olores y heursticas explicados a
travs del libro, que puede servir a modo de repaso y referencia, y para empapelar la pared
de alguna que otra oficina que yo conozco.
Si terminas por leer Clean Code, cosa que recomiendo encarecidamente, y te quedas con
ganas de ms, tambin me gustara recomendarte Code Complete, uno de mis libros
preferidos sobre programacin. Cambiarn totalmente tu forma de entender la
programacin.
ADICIONAL
Aprendiendo a escribir cdigo
limpio con Clean Code
Publicado el 23 de marzo de 2011

Por fn he terminado de leer Clean Code, el famoso libro de Robert C.Martin a.k.a. Uncle
Bob, que algunos conoceris por ser uno de los autores del manifiesto gil. Despus de
haberme encontrado con innumerables referencias al libro tanto en twitter, como en
algunos blogs que sigo habitualmente (que ahora recuerde este de@kinisoftware y este
de @jacegu) me propuse leerlo como uno de los objetivos para este ao.
Escribir cdigo que funciona es una tarea relativamente sencilla. Lo difcil es escribir
cdigo que, con el tiempo, no se convierta en un chorizo imposible de ampliar y/o
mantener, y que sea entendible por otros programadores. En Clean Code, Uncle Bob nos
explica su visin del buen cdigo: el cdigo limpio.
Resumiendo mucho, un cdigo limpio (y bueno segn el autor):
Incluye nombres significativos en variables, funciones, clases, etc.
Incluye funciones con responsabilidades bien diferenciadas, los parmetros
justos, un nivel de abstraccin uniforme.
No repite cdigo.
Est autodocumentado, por lo que no es necesario usar comentarios.
Est bien diseado. Por ejemplo, hace uso de interfaces en vez de implementaciones
concretas.
Tiene bien separado el manejo de errores para que esto no interfiera en la
comprensin del cdigo.
Se integra bien con otras aplicaciones, manteniendo limpias las fronteras y
transformando la informacin externa en objetos de nuestra aplicacin.
Est cubierto al 100% por una batera de tests que comprueban todos los posibles
caminos de ejecucin.
Est dividido y organizado en clases de un tamao justo con responsabilidades
bien definidas.
Separa claramente la construccin e inicializacin del sistema de lo que es la
ejecucin en s.
Crece de una forma sostenible, es decir que la arquitectura evoluciona
incrementalmente y el cdigo no va degenerando sino todo lo contrario, con cada
cambio es ms fino y siempre cumple las 4 reglas de Kent Beck para escribir
cdigo limpio.
El libro est repleto de cdigo escrito en Java. Hay 2 captulos donde Uncle Bob explica
las refactorizaciones de una clase de JUnit y la claseorg.free.date.SerialDate. Estos ejemplos
son muy educativos, aunque exigen bastante atencin.
En general no es un libro de piscina ni de vter, sino que requiere bastante
esfuerzo: reeler los ejemplos para entenderlos, subrayar y tomar notas, consultar
referencias, etc.
Me ha gustado por que no slo te explica cmo escribir si no que tiene bastantes referencias
y conceptos como la Ley de Demetrio, Desarrollo guiado por pruebas (TDD) y las reglas
F.I.R.S.T., Separation of Concerns, Single Responsability Principle (Principio de
Responsabilidad nica), Open-Closed Principle, Inversion of Control y el patrn Depency
Injection, Domain Specific Languajes, etc.
Tambin ayuda a ver y compreder algunos patrones de diseo como Abstract
Factory y Adapter (Wrapper).
El ltimo captulo incluye una referencia de Smells and heuristics, que son
unaampliacin de los Code Smells del libro de Refactoring de Martin Fowler y que
sirve como muy buen resumen del resto del libro.
Sin duda, Clean Code puede marcar un antes y un despus en tus capacidades de
programacin si lo estudias con dedicacin.
Y cmo la prctica hace al maestro, ahora toca practicar!
ADICIONAL
La tecnologa detrs de Facebook
Escrito por John Mitchell | Traducido por Mara J. Caballero








El fundador y CEO de Facebook, Mark Zuckerberg.
Pool/Getty Images News/Getty Images
Desde su creacin en febrero de 2004, Facebook ha demostrado ser un sitio de redes
sociales innovador y exitoso utilizando slo plataformas de software de cdigo abierto para
construir y mantener el sitio web. Al frente de la empresa est el fundador y CEO, Mark
Zuckerberg, quien es el responsable de la programacin del sitio original y supervisar la
direccin tecnolgica general del sitio existente.
Otras personas estn leyendo
Cmo puedo hacer mi propio sitio web de redes como Facebook y Myspace?
Secretos de un millonario en Internet
PHP
Todo el sitio web de Facebook se basa en y alrededor del preprocesador de
hipertexto PHP. PHP es un lenguaje de secuencia de comandos del lado del servidor
que crea y enva las pginas HTML dinmicas. Un juego PHP que Facebook utiliza
ampliamente para convertir PHP a cdigo C++ es el HipHop para el marco PHP.
Este conjunto de secuencias de comandos le permite al sitio web funcionar mejor y
obtener el mximo rendimiento de sus servidores muy utilizados.
Cache
Facebook cuenta con Memcached para depositar y almacenar las pginas web en la
memoria. El software acta como una capa entre los servidores de alojamiento
regulares y sus servidores debases de datos MySQL. Esto ayuda a que el sitio cargue
mucho ms rpido que otros sitios de redes sociales, dando a los usuarios una
experiencia ininterrumpida casi sin fisuras. En general, el almacenamiento en
cach ayuda a acelerar los sitios web mediante el almacenamiento de archivos de
uso comn y recuperndolos del buffer de memoria del servidor.
Base de datos
MySQL, una base de datos de software de cdigo abierto, es uno de los principales
componentes de la tecnologa detrs de Facebook. Se implementa por medio de
cientos de miles de sitios web, ya que escala muy bien, lo que permite al cdigo PHP
recuperar rpidamente datos importantes, y muchas veces, seguros. Facebook
cuenta con ms de 30.000 servidores y una gran parte de estos son servidores
de bases de datos MySQL.
Almacenamiento de fotos
Desde junio de 2011, Facebook es el mayor sitio web del mundo para compartir
fotos en internet. Para hacer frente a la gran cantidad de fotos que subidas y vistas
en el sitio web, laempresa utiliza Haystack. Este software de cdigo abierto es una
plataforma de almacenamiento de objetos de alto rendimiento, que cuenta da
potencia a la caracterstica de fotos de Facebook. La compaa ha ajustado
Haystack para guardar una foto cargada en cuatro resoluciones diferentes para
ayudar a acelerar el proceso de recuperacin, lo que depende del tamao de la foto
requerida por el cdigo PHP de Facebook.

También podría gustarte