Alfredo Juarez

Power to programmer...

Archive for the 'Web Development' Category

Sun, Oct 21st, 2007
posted by alfredojv 12:10 PM

En CalinSoft acabo de leer una lista con 40 sugerencias para optimizar el código PHP, aqui les mostraré algunas y los invito a que lean el artículo; verdaderamente vale la pena.

  1. Dedica tiempo a estudiar PHP, está en un continuo proceso de crecimiento y sus características van cambiando con el tiempo.
  2. Si necesitas escribir HTML hazlo directamente sin utilizar echo o print. Usa PHP para imprimir información sólo cuando sea necesario.
  3. Utiliza memory_get_usage() y microtime() para comprobar la velocidad y la memoria que consume tu código.
  4. Los if / else son siempre más rápidos que los switch / case.
  5. Si un método puede ser static, decláralo estático. La velocidad se incrementa en un factor de 4.
  6. do-while es más rápido que while, pero más lento que for. Lo primero a optimizar de un programa son los bucles ( un viejo truco de Algoritmia y Arquitectura de computadores ).
  7. Utiliza paths absolutos a los ficheros en los include() y require(), el SO tarda menos en resolver las rutas al fichero.
  8. $row[’id’] es hasta 7 veces más rápido que $row[id].
  9. Incrementar una variable global es dos veces más lento que hacerlo con una variable local.
  10. $localvar++ es hasta 15 veces más rápido que function inc(){ $localvar++; }.

Para leer las restantes deberás ir aquí.

Via | CalinSoft
Links |PHPLens (HOWTO on Optimizing PHP)

Mon, Jul 30th, 2007
posted by alfredojv 09:07 PM

“Divide et vinces”: Divide y Vencerás
Julio Cesar

Muchos diseñadores web están acostumbrados a tener las etiquetas HTML, junto con las reglas CSS y las funciones JavaScript. Para los que se pregunten ¿Y eso que tiene de malo?  Este método no es de lo mas eficiente, ya que tienes una ensalada de lenguajes, esto hace que a la hora de querer hacer una revisión te pierdas entre tanto jeroglífico; por otro lado si tienes todo en un solo archivo la carga de la página se pone algo lenta ya que para el navegador es mas pesado cargar un archivo de muchos Bytes.
Hace tiempo hable sobre los Patrones de diseño, pero olvide mencionar que también existen los Anti-Patrones los cuales describen las malas conductas que no debe de tomar nunca un desarrollador, a continuación les pongo la descripción del antipatron que les estoy mencionando.
Código espagueti (spaghetti code): Construir sistemas cuya estructura es dificilmente comprensible, especialmente debido a la escasa utilización de estructuras de programación.

Mantener todo separado

Es sabido que las páginas Web se dividen 3 partes fundamentales:

  • Contenido: Define el contenido del sitio.
  • Presentación: Define el aspecto visual del sitio.
  • Comportamiento: Define las acciones del sitio.

Este método es llamado “Separación de preocupaciones”.

Entender e implementar éste método lleva tiempo y se necesita un poco de disciplina, pero una vez que hallan comprendido los beneficios de mantener todo separado tratarán de siempre hacerlo de esta manera.

Read the rest of this entry »

Sat, Jul 14th, 2007
posted by alfredojv 06:07 PM

Estoy seguro que muchos han leí­do y/o escuchado hablar sobre AJAX, el cual es algo viejo, pero relativamente recien descubierto. Mas de alguno (o la mayori­a) ha lei­do sus conceptos y demas; en este Tutorial no me enfocare a explicar los principios de esta metodologi­a de desarrollo Web. Para los que prefieren leer alguna introduccion pueden ir aqui­ (Por cierto en la red existen muchi­simos arti­culos sobre esta metodologi­a o bien si lo prefieren existen muy buenos libros recomendables).
Bien pasemos a lo que nos interesa, que es programar ejemplos en AJAX con ayuda de PHP.

Read the rest of this entry »

Thu, Jun 28th, 2007
posted by alfredojv 03:06 PM

-En esta ocasión comentaré un poco de la Programación Orientada a Objetos en PHP, iré mostrando ejemplos, para que esto sea cien por ciento práctico, la verdad es que estoy realizando un proyecto y con el fin de facilitarme las cosas decidí desarrollarlo Orientado a Objetos, de esta forma me facilitaba el trabajo y aprendía este estilo de programación, que si bien es cierto ya tiene algo de tiempo que salió en PHP no me había adentrado mucho en el.

Bueno fuera de tanto rollo, empecemos con un poco de teoría de lo que es la Programación Orientada a Objetos (POO).Si bien es cierto esta técnica de programación vino a revolucionar al mundo, ya que te lleva a un nivel de abstracción distinto, y puedes manejar la programación de una manera más sencilla y a su vez reutilizando el código para nuevos proyectos, con unas mínimas modificaciones.

La idea de esta técnica radica en manejar todo en base a la vida real, tomemos como ejemplo el objeto “Automóvil”, este objeto tiene las propiedades color, velocidad, transmisión, etc., como también las funciones (Léase Métodos) acelerar, frenar, parar, etc.

Veamos el ejemplo en código:

class auto
{
	var $llantas = 4;
	var $color = “”;
	var $velocidad = “”;
	public function acelerar($velocidad)
	{
		$this->velocidad += $velocidad;
		return $velocidad;
	}

	public function frenar($velocidad)
	{
		$this->velocidad -= $velocidad;
		return $velocidad;
	}

	public function parar( )
	{
		$this->velocidad = 0;
	}
}

Partiendo de este ejemplo se pueden crear diferentes automóviles con algunas propiedades distintas o algunas otras nuevas, por ejemplo:

<?php

$bmw = new auto;

$mini = new auto;

$bmw->color = "rojo";

$mini->color = "azul";

$bmw->acelerar(60);

$mini->acelerar(40);

// a esta altura de la carrera el bmw va ganando por que lleva mas velocidad :P 

?>

Como podremos ver, hemos creado dos objetos del tipo “auto”, que son un bmw y un mini, a cada uno les establecimos un color distinto, y les indicamos que aceleren, como se aprecia en el ejemplo el bmw esta acelerando a una velocidad de 60 k/h, por que lo que va adelantado en la carrera contra 40 k/h que lleva el mini. Espero que con este ejemplo quede más claro el concepto de orientación a objetos, por el momento no entraré en más detalle sobre este tipo de programación ya que existen muchos libros sobre ella y el tema de este tutorial es precisamente de su aplicación en PHP.

Pasando a otro punto, veamos ahora una aplicación real en php, supongamos que queremos manejar información en bases de datos, veamos como ejemplo una clase:

class DB
{
	// en esta clase declararemos los metodos de algunas de las funciones de php y mysql
	var $link;
	var $ssql;

	public function connect($server='', $username='', $password='')
	{
		$this->link = mysql_connect($server, $username, $password);
	}

	public function error()
	{
		return mysql_error($this->link);
	}

	public function query($query)
	{
		return mysql_query($query, $this->link);
	}

	public function insert($table,$rows,$values)
	{
		$this->ssql = "INSERT INTO $table ($rows) values ($values)";
		return mysql_query($this->ssql, $this->link);
	}

	public function fetch_array($result, $array_type = MYSQL_BOTH)
	{
		return mysql_fetch_array($result, $array_type);
	}

	public function fetch_object($result)
	{
		return mysql_fetch_object($result);
	}

	public function close()
	{
		return mysql_close($this->link);
	}

}

Por cuestiones de agilizar la lectura, solo eh declarado algunas de las funciones básicas para el manejo de base de datos, ahora veamos su implementación.

<?php

	$sql = new DB( );
	$sql->connect('localhost',"usuario','password'); // conectamos con la base de datos...
	$sql->query('use users'); // correspondiente a la funcion mysql_select_db( );
	$rid = $sql->query("SELECT * FROM users");

	while ( $row = $sql->fetch_object($rid) )
	{
		echo $row->nombre;
		echo "<br>";
		echo $row->dirección;
	}

?>

Con este ejemplo pienso que les quedará claro la implementación de POO en PHP, igual si desean usar la clase de ejemplo y agregarle las funciones restantes lo pueden hacer, esto es todo por hoy, espero que les haya servido de algo mi explicación, pronto escribiré algo mas complejo, es fue a manera de introducción, por lo pronto terminamos, cualquier duda o comentario, o si tengo algún error en alguno de los ejemplos, envíenme un mail.

 

You are currently browsing the archives for the Web Development category.

 

November 2008
M T W T F S S
« Oct    
 12
3456789
10111213141516
17181920212223
24252627282930
Ayuda a mantener este espacio