Contenido

12 principios para mantener tu código limpio

13 Nov

+ 17

Durante la evolución de un proyecto tendemos, sin darnos cuenta, a ensuciar nuestro código. Ya sea aplicando parches a los fallos encontrados o añadiendo nuevas funcionalidades no pensadas previamente. Por ese motivo conocer algunos principios básicos nos pueden ayudar a crear un código que se mantenga en el tiempo igual que el primer día.

1) Doctype STRICT

Si ya tienes algo de soltura deberías apostar por STRICT para definir en el doctype de tu web. De esta forma estarás asegurándote un poco más de tiempo con un doctype válido.

2) Cuidado con el carácter & (&) y demás carácteres especiales

Los carácteres especiales en el texto deben ir siempre codificados según el estandard, así conseguimos que nuestro código sea limpio y evitamos producir errores innecesarios y fáciles de solventar en el validador de la W3C.

3) Indentación, Indentación … indentación

Por encima de la eficiencia del código, la mayoría de proyectos deben ser claros y fáciles de interpretar por cualquiera. Piensa que no sabes si dentro de 3 meses o 5 años, vas a tener que volver a tocar el código. Así que dedícate un tiempo para indentar el código y dejarlo claro.

4) Separa el contenido de la funcionalidad y el diseño

No me cansaré de decir que la separación de capas es algo primordial, al igual que la identación ayuda a la comprensión del código, la separación de las diferentes capas ayuda a conocer donde está ubicada cada parte de la web. Sin contar que conseguir idependizarlas, lo que nos permite modificar cualquiera de ellas afectando a las demás sin necesidad de modificar las demás.

5) Usa los tags correctamente

Conocer las propiedades de los tags HTML permitirá que hagamos un código más semántico y sobretodo estandar. Es importante usar los tags correctamente ya que aunque el navegador permita mostrar el contenido como nosotros queremos mostrarlo, la estructura correcta nos ayudaría en terminos de SEO…

6) Elimina elementos innecesarios

Por desgracia al pasar del diseño en tablas al diseño con divs, podemos caer en una etapa de “divitis” que nos hace usar div’s para todo. No debemos usar elementos innecesarios para conseguir lo mismo que conseguiríamos con menos elementos. Este punto hace refecia directa al punto 5.

7) Piensa bien los nombres que usas

En muchos casos tendemos a usar nombres poco descriptivos a demasiado descriptivos. Este ejemplo muestra ua muestra clara de lo que quiero decir:

cleancode-7

8 ) Deja la tipografía a los CSS

Debemos pensar que el diseño lo controla el CSS, y por ello todo lo relacionado con él debe ir reflejado en los ficheros CSS. Por ejemplo, el texto en mayusculas podemos solventarlo con text-transform: uppercase;

9) Class/ID en el <body />

Una forma de conseguir mayor flexibilidad en nuestros CSS es usar id/class en nuestros elementos <body />. De esta forma podemos variar el diseño de ciertos elementos dependiendo dle tipo de body que especifiquemos.

10) Validación

La validación de nuestro código es más que poner un icono en la parte inferior. La validación nos ayuda a completar unos aspectos básicos que los diseños web deben cumplir. No implica que un desarrollo esté mejor o peor hecho, sinó que nos ayuda a conguir un mínimo imprescindible para diferenciarnos del código generado por un programa (Frontpage,…).

11) Aplícale lógica a la estructura

Hemos de pensar que el código se ha de leer de arriba hacia abajo y que siguiendo esta premisa debemos generar una estructura colocando elementos seguidos unos a otros de una forma lógica. Hemos de pensar 2 veces si colocamos un elemento en esa posición o lo ponemos en otra.

cleancode-11

12) Haz lo que puedas

El esfuerzo se nota y aunque no sea a la primera, ni a la segunda, llega un momento en el que ese esfuerzo se acaba recompensando. Simplemente hemos de ser pacientes y esperar a que ese momento llegue.

Drawter, programa páginas web con el ratón

10 Nov

+ 9

Drawter es una de esas aplicaciones curiosas que van saliendo cada X tiempo para mostrarnos una forma alternativa y cómoda de crear estructuras HTML para nuestras páginas web. Con Drawter, podemos crear estructuras HTML basadas en recuadros que compondrán la página que al final codificaremos.

drawter

Mediante el uso del ratón vamos creando las secciones de la página web y le vamos dando nombre a cada uno de ellos, especificando ciertos parámetros CSS que la aplicación nos deja modificar. Una vez creada la estructura podremos obtener el código CSS y HTML necesario para conseguir esa estructura

Guias de estilos soportados en clientes de Correo

19 Jun

+ 3

Si alguna vez has intentado generar un mail en formato HTML sabrás los problemas con los que nos encontramos al visualizar dicho correo en los diferentes cliente disponibles, ya sean Offline u Online.

Para estos casos, es bueno tener una lista como esta con los estilos disponibles para cada unos de los clientes de correo, que pese a no cubrir todos los disponibles (imagino que debe de haber millones, entre offline y online) nos consigue dar una idea realmente clara de que estilos podemos usar y cuales no.

Si trabajamos con ello a diario, podremos descargarlo en formato PDF o en un formato Excel.

El tag <module />

5 Ene

+ 0

Hace un año y unos meses, Douglas Crockford proponía la creación de un nuevo tag HTML que nos permita facilitar la creación de Mashups. La propuesta sobre el tag <module /> intenta separar los componentes que forman un mashup dentro de nuestra página del resto de elementos.

module.gif

La idea es la de usar una política similar al tag <iframe /> que mediante el uso de Javascript podamos unir nuestra página con el resultado obtenido del mashup separado en el módulo. Usando JSON para transportar datos, nuestras funciones javascript serán realmente sencillas y fáciles de implementar.
<module id="NAME" src="URL" style="STYLE" />

El tag estaría compuesto de 3 atributtos que nos permitirán definir nuestro módulo. El atributo id, informaría el nombre del módulo, único en cada página. src la ruta en la que se encuentre el mashup y style haría que nuestro módulo se integre perfectamente en nuestra página.

Al igual en el arbol DOM, tendríamos 2 métodos que nos permitirían trabajar con el módulo, receive() y send(), ambos pasando estructuras json como parámetro al módulo. Estos métodos tendrían sus respectivas funciones desde la parte del módulo que harán posible la interacción con nuestra página.

Como Douglas dice, esta propuesta ofrece un intento de ser el principio de un consenso sobre un nuevo modelo de seguridad para los navegadores. El desarrollo de aplicaciones web han hecho aumentar la demanda de tecnología significativamente y los navegadores, necesitan ponerse al día rápidamente.

Lamentablemente no he encontrado más información al respecto, por lo que metemo que se ha quedado en una simple propuesta al aire, pero la idea es realmente interesante.

El arte de enlazar, aprende como usar los enlaces en tu web

5 Nov

+ 6

Los chicos de Coding Horror, han escrito “Don’t Click Here: The art of Hyperlinkng“, un artículo muy interesante que Hector (Armonth) ha traducido al castellano para que no se nos escape ningún punto y podamos enlazar correctamente, o sin molestar en exceso a nuestro usuarios.

El artículo se compone de una serie de puntos que podemos usar a modo de guia: 

  1. Asegurate que los enlaces son lo suficiente grandes para que sea fácil hacer click en ellos.
  2. El primer enlace es el más importante.
  3. No abuses de los enlaces.
  4. No alternes radicalmente el comportamiento de los enlaces.
  5. No titules tu enlace como “Click aquí”.
  6. No enlaces cosas que el usuario puede querer seleccionar y copiar.
  7. No incluyas iconos en cada enlace.
  8. No hagas el contenido dependiente de los enlaces para funcionar.
  9. No ocultes tus enlaces.
  10. No mezcles anuncios y enlaces. 
  11. No ofusques tus URLs.

Para los más amantes del código unos consejos más :D

  1. Usa un texto descriptivo para tu enlace.
  2. Indica el idioma del destino con hreflang=""
  3. Usa rel="" siempre que puedas
  4. Informa el atributo type="" para indicar el tipo de documento que vas a visitar.
  5. Usa charset="" para que se pueda saber el charset del página destino.

Y recuerda,

NUNCA OLVIDAREMOS LA ACCESIBILIDAD. LOS ENLACES ENLAZAN

CORRECTO

 <script type="text/javascript">
    var el = document.getElementById("t");
    el.addEventListener("click", FUNCIONALIDAD, false);
</script>
 <a href="http:/...." id="t">Enlace correcto</a>

NO CORRECTO

<a href="#">Enlace NO Correct</a>

Estructura correcta de un HTML

4 Nov

+ 6

Muchas veces cuando nos ponemos manos a la obra para desarrollar una aplicación, no entran las ganas de ponernos a picar código y no nos paramos a pensar en la estructura que deberían tener nuestros HTML’s. Una buena solución a esto es tener una chuleta a mano que nos permite hacernos una idea rápida de lo que debemos hacer.

cleancode.jpg

Detecta el navegador del usuario mediante HTML

4 Oct

+ 3

Actualmente tenemos tres formas de detectar o condicionar nuestra aplicación dependiendo del navegador con el que nos visita el usuario, el CSS, que mediante hacks podemos hacer que se apliquen unos estilos para unos navegadores u otros para los restantes, mediante javascript intentando acceder a elementos del DOM disponibles solo para algunos navegadores, condicionando la ejecución del script o directamente desde el servidor, mostrando una página para cada navegador.

html20hacks-snapshot.png

Pero desde la aparición de nuevas versiones de HTML HTML 2.0, podemos condicionar esta problemática desde el propio HTML.

<img
   /src\x00="ie.gif"
 /''src\x00="firefox1_5.gif"
 /''src="firefox2_0.gif"
 /""src="gecko_others.gif"
   "s\x00rc="safari2.gif"
   "src="safari3.gif"
  ""src="konqueror.gif"
    src\x00="w3m.gif"
    src\x0c="opera.gif"
    src="others.gif"
    src="lynx.gif"
/>

De esta forma podemos detectar Firefox 2.0, Firefox 1.5, otros motores Gecko, Safari2, Safari3, Opera, IE, W3m, Lynx,…

[Demo]

Debido a que no hay un estandard respetado por todos los navegadores, no se puede decir que haya una forma correcta para detectar el navegador de usuario, es más todas lo son y todas nos ayudan a detectar el navegador en cada una de las capas que componen una página web.