¿Cómo montar mi sitio web? Descripción general

https://colorlib.com/wp/how-to-make-a-website/

Has querido iniciar esa idea de tener un blog, o quieres probar una idea de negocio inicial o solo quiere conocer el proceso, aquí te lo explico.

Todo sitio web tiene al menos 3 partes principales:

Nombre de dominio

Necesitamos una dirección fácil de recordar que describa bien nuestro concepto. Estos nombres de dominios son las direcciones web que conocemos, por ejemplo Mark Zuckerberg o alguien en facebook, en algún momento de su negocio compro facebook.com, en algún momento Steve Jobs o alguien en Apple compro el dominio apple.com.

Como funciona

Los nombres de dominio son la manera fácil de encontrar una página web. ¿Te has preguntado alguna vez como es que el navegador siempre encuentra la dirección correcta? Porque recuerda, las computadoras son identificadas por una dirección, pero no es una dirección con letras, es una colección de números y es conocida como dirección IP. La intención de este post no explicar todo con detalles demasiados técnicos.

Entonces el nombre de dominio lo relacionamos a una dirección IP, en donde estará nuestro servidor, y asi poder mostrar al mundo nuestra idea del billon de dólares.

Estos nombres de dominio lo compras de sitios como godaddy, namecheap, entre otros. Los precios varian desde $1 hasta miles o cientos de dólares. Todo dependen del nombre que busques y si alguien ya lo adquirió y te lo quieren revender.

Servidor

Antes de era «cloud» o de la «nube» si alguien quería una pagina o aplicación web tenía que montar su propio servidor, esto implicaba comprar una computadora bastante poderosa en cuanto a sus especificaciones técnicas, pero no era solo eso, cuando tienen mucho poder, eso significa mucho calor, necesitabas un cuarto especial para el servidor con su propio aire acondicionado, y no basta ahi, esto necesita mantenimiento, necesita rutinas de seguridad y redundancia de datos, y con esto ya suena bastan complicado no?

Por fortuna ya no estamos en esos tiempos. Ahora hay varios servicios «cloud» o en «la nube» donde nosotros alquilamos un espacio es un servidor por una cuota mensual (si, así como netflix) y ellos nos dan una dirección IP donde estarán nuestras cosas. Usando estos servicios no necesitamos preocuparnos de nada técnico, solo pagamos y tenemos acceso. Si te preocupan aspectos mas específicos como seguridad de datos o redundancia de datos ya puedes comprar que ofrecen los diferentes distribuidores de estos servicios. Por mencionar algunos tenemos:

  • AWS
  • Digital Ocean
  • Vultr
  • Linode

Como en cualquier otro mercado o servicio, cada uno tiene sus ventajas y desventajas, sus precios y sus features. El mas barato es vultr con un servicio de $2.5 al mes, que para una fase inicial o pruebas esta bastante bien, no recomendado para uso oficial o en producción.

 

En este punto ya tendríamos un nombre de dominio y una dirección ip (servidor en la nube), pero se necesitan conectar, para esto vamos a la pagina del distribuidor del nombre de dominio y buscamos alguna opción que diga dns manager, o simplemente dns, agregaremos una nueva entrada en los tipos AAA, donde nos pedirá el nombre de dominio a asignar y una dirección IP a asociar. Guardamos los cambios y esperamos. Estos cambios tardan en propagarse, puede ser entre 1 hora a 24 horas.

Ya tendríamos nuestra dirección web funcionando, pero y el contenido?

Pagina web

Dentro de nuestro servidor en la nube, tendremos que instalar nuestro servidor web preferido. Esto es un programa que se encarga de traducir dirección en contenido HTML que tu navegador ya puede presentar con estilo y funciones especificas. Entre estos los mas conocidos y usados son:

  • Nginx
  • Apache

Al combinar estas tres cosas ya tendrás una pagina web funcional. Claro hay muchas mas cosas por ver. Si es una aplicación web, se necesita una base de datos a usar. Si se espera mucho trafico se podría implementar un balanceador de carga. Si se quiere utilizar alguna función en tiempo real se puede implementar una base de datos no relacional como redis. Debería implentarse algun certificado SSL para responder al protocolo HTTPS por seguridad de los datos, hay opciones gratis como lets encrypt. También tomar alguna opción para redundancia y backups de datos. Y muchas cosas más.

Cada caso es único y tiene sus propias particularidades. Si tienes experiencia en estos temas lo recomendado es haz tus pruebas, solo así aprenderás.

Si no tiene experiencia técnica o el tiempo para hacer todo esto te recomiendo buscar asesoría o un experto en el tema, como yo :), puedes revisar mis proyectos en mi cuenta de github o linkedin.

 

Si llegaste hasta aquí gracias por tomarte el tiempo de leer, y déjame tu opinión al respecto, que otro aspecto importante debería tomarse en cuenta.

Hasta la próxima.

Código limpio, esencial pero ¿limpio para quién?

Si eres un desarrollador habrás escuchado esta frase varias veces, debemos hacer código limpio. Pero no les parece que un adjetivo como limpio, es subjetivo?

Es obvio (y si no es obvio para ti probablemente no te ha tocado leer código malo, feo, espaguethi o como le quieran llamar) que se necesita crear, editar actualizar código que sea legible y que sea fácil de entender.

Todos estamos en contra de las variables llamadas a, b, cdpTraxddo peor. De métodos o funciones que tienen a cientos de lineas, entrelazadas, mal nombradas, con código duplicado.

Un proyecto grande llegara al punto de: mejor gastar recursos y tiempo en iniciar desde cero que arreglar lo malo. Es un problema tan real como que los cerdos no vuelan. Y las repercusiones de estos problemas son enormes, imagina decirle al cliente todo tu dinero y tiempo invertido en este proyecto inservible fue desperdiciado, no podemos salvar tu inversión o tu negocio. Imagina ese momento en el que le das la noticia a alguien a quien le has cobrado miles de dólares, al que le prometiste ese software que resolvería todos sus problemas, que sería escalable, que le daría retorno de inversión, que resolvería la paz mundial, y pues, … ya no sirve, mejor deséchelo.

La importancia de esto no es cuestionable, es algo necesario y que todos los desarrolladores deberíamos saberlo como base. Si bien es cierto que no hay una regla absoluta de que es el código limpio, todos sabemos lo que es mal código. Los siguientes consejos los doy de mi lectura del libro Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin).

  • Ley de LeBlacn: Despues es igual a nunca. Cualquier cosa que pienses «luego lo hago» se traduce a que nunca lo haras. Surgiran nuevos bugs, te asignaran nuevas cosas, y tu deuda tecnica ira aumentando. Haz algo al respecto.
  • La lógica debe ser directa.
  • El código debe ser especifico y no especulativo.
  • Preocuparse por la legibilidad, prestar atención a los detalles.
  • No tener duplicados, cuando algo se repite es una señal que tenemos una idea que no terminamos de representar correctamente.
  • Que el método o objecto no haga mas de una cosa. Similar la S de los principios SOLID. Cada elemento tiene una y solo responsibilidad.
  • El código debe ser evidente, sencillo y atractivo, que cuente una historia, de principio a fin.
  • Ley del boy scout: dejar el campamento mas limpio de lo que se ha encontrado.
  • Cuando se ve código malo, no es necesario refactorar todo, empieza por cambios pequeños, cambiar de nombre a una variable, separar un método en otros métodos mas especificos.

 

Con esto terminaría la parte 1 de una serie de post hablando sobre este tema.

¿Cuál crees que es la importancia del código limpio? Déjame tu opinión abajo.