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.
El Mundo Era Tan Reciente, Que Muchas Cosas Carecían de Nombre, y para Mencionarlas Había Que Señarlarlas Con El Dedo.-Cien Años de Soledad de Gabriel García Marquez.