Implementa el patron MVC en PHP

El patron MVC (Modell-View-Controller) es muy conocido en el desarrollo de sitios web, de hecho en Microsoft están por liberar la versión estable de ASP.NET MVC, no es un nuevo lenguaje, es solo una metodología o Modelo de desarrollo el cual da muchos beneficios, como lo son pruebas mas sencillas, mantenimiento mas aislado y sin perdida de tanto tiempo, mejora en la estructuración del código, etc.

En el mercado existen muchos lenguajes que lo implementan, 2 de los mas comunes es Java y PHP, en este caso en Cristalab nos hablan un poco de implementar el patron MVC en PHP, vale la pena darle un vistazo.

Pagina del Instituto Tecnológico de León Bloqueada por Google

Hace unos días que intente entrar a la pagina de la Universidad donde estudie (salí en el 2007) y me encuentro con esta sorpresa ya que yo navego con Firefox.

Pagina de ITLeon bloqueada

La pagina esta bloqueada por Google por tener scripts maliciosos y realmente no lo dudo, la pagina es tan pobre tanto en diseño como en la forma en que se realizo, olvidemonos de que esta maquetada con tablas y con uso excesivo de Flash, se le puede hacer ataques tanto por SQL Injections como por cabeceras y demás, en resumidas cuentas la seguridad es nula.

Ahora por que pongo esto aquí y no los aviso?, sencillo, esto no tiene meses, tiene mas de 1 año así, y yo ya había avisado y hasta me ofrecí a remodelarla completamente como proyecto de titulación, pero por cosas de burocracia no se dio.

Ojala que puedan arreglar esto las personas del Tec, ya que durante un buen tiempo lograron ser una institución de prestigio pero hoy en día se están volviendo simplemente mediocres.

Ahora que si no arreglan eso, volveremos a tener un post aquí pronto pero ahora del sistema de calificaciones online :P .

Update: Al parecer ya lo solucionaron, muy bien por el ITL, felicidades!.

Documentas tu codigo?

Siempre documenten su código, les servira a ustedes y a mas personas de lo que te imaginas.

- Profesor del Tec de Leon

No te ocurre que cuando lees códigos que hiciste hace algun tiempo, no lo logras entender?.

Bueno, esto pasa por no documentar el código y por no hacer una programación entendible (mas humana), como es esto?, vamos a verlo un poco.

int myFunction(int n)
{
  if (n < 2)
    return n;
  else
    return myFunction(n - 1) + myFunction(n - 2);
}

A simple vista entiendes ese código?, y si te dijera que lo que hace es la serie de Fibonacci?.

No es tan sencillo a simple vista, por que nadamas son letras sin sentido para el ojo humano, ademas la palabra myFunction tampoco ayuda de mucho solo para indicarnos que es una Función Personalizada.

Casos como este se dan seguido cuando uno comienza a programar, no se diga del caso de las variables que usamos para los ciclos “i, j, k, … etc.“. O las variables que uno comienza a usar para operaciones básicas (suma, resta, multiplicación, etc..) como son “x, y, z, … etc.“.

Todo esto son cosas comunes en la programación ya que tenemos que pasarlas para comprender la importancia que tiene el no hacerlo de esa manera, – Para los nuevos, esto lo verán después de su primer programa de mas de 1,000 lineas de código – .

Ahora veamos un ejemplo mas entendible:

int Fibonacci(int n)
{
  if (n < 2)
    return n;
  else
    return Fibonacci(n - 1) + Fibonacci(n - 2);
}

Curiosamente solo se modifico el nombre de la función y con eso le da sentido a la misma, es decir, el nombre de la función nos dice algo sobre lo que vamos a encontrar dentro de ella, en este caso el calculo de la serie de Fibonacci a la cual le tenemos que pasar un dato entero como parámetro.

Pero vamos que se puede mejorar aplicando algunos comentarios en lugares claves y haciéndolos de una manera entendible.

// Calcula la serie de Fibonacci, recibe un entero como parametro.
int Fibonacci(int n)
{
  // Revisa si es la primera o segunda iteración de la recursividad
  if (n < 2)
    return n;
  else
    // Aquí se maneja la recursividad de (n -1) + (n - 2) que implica la formula
    return Fibonacci(n - 1) + Fibonacci(n - 2);
}

Ahora es mucho mas sencillo entenderlo, claro no explique la serie de Fibonacci en este ejemplo por que no era mi intención hacerlo, mi intención es dar a entender que si creas código con palabras concisas y que tengan un significado que sea relativo a lo que realiza ese bloque de código que quieres programar, vas a tener un código mas entendible y mantenible.

La cuestión de escribir poco, mucho o mejor código con mejores instrucciones, etc… es material de otro Post.

Espero les ayude esto. ;-)

Cambiando de Lenguaje

A partir de que deje mi antiguo trabajo, e estado cambiando algunas cosas, como por ejemplo de Lenguaje de programación, ahora dejo Visual FoxPro por Visual Basic .NET y C# .NET, realmente el cambio ya lo venia venir desde hace mucho y ya habia comenzado pero nada serio.

FoxPro Logo

Ahora con los proyectos que se estan dando me veo obligado a aprender .NET, y que decir lo vi en la escuela pero claro no lo vi a fondo, solo una introducción.

El lider de proyecto (mi buen Hector) nos dio un curso de Introducción a .NET y de POO avanzada, realmente nada que no hubiera visto anteriormente, pero la metodología de trabajo y los diagramas de UML simplemente un excelente trabajo, muy claro el curso y nos sirvió a todos los que asistimos (aunque yo solo fui a 3 clases :S ).

En fin, ahora que eh cambiado puedo decir que el IDE de .NET es una preciosidad para aprender, ya que te autocompleta absolutamente todo, sobre todo las clases que tu creas y que documentas ahi mismo te muestra todo, es simplemente genial, cosa que yo extrañaba en VFP.

Visual Studio Logo

También debido a los proyectos para la especialidad me veo obligado a regresar a PHP, que la verdad me encanta ese lenguaje, es simplemente genial, pero lo venia haciendo con Dreamweaver y con Notepad++ ya habia creado unas cuantas clases que me servían para lo que hacia, pero eso fue en épocas de escuela, ahora mismo requiero algo mucho mejor.

PHP Logo

Asi que viene el segundo cambio de IDE, ahora a Eclipse, que debo decir es genial :D esta muy bien cuidado y me encanta que no se tiene que instalar, además de la interaccion que tiene con otros lenguajes, el plugin para PHP y Aptana ahora son mis herramientas de trabajo, debo decir que con Dreamweaver me sentía como si estuviera escribiendo en Notepad ya que el autocompletado y la ayuda que te proporciona como IDE es muy pobre, ahora con el autocompletado de mis propias clases es una excelente ayuda para programar orientado a objetos.

Eclipse Logo

También debo decir que estoy cambiando a Linux para todo lo referente a la programación en web, ya que el IDE Eclipse es multiplataforma y la mayoria de sus plugins también, eh tenido algunos problemillas para la instalación pero ese es material de otro Post.