Programación

programacion

La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado.

Subcategorías

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Yo no soy muy amante de utilizar framework para todo y menos para algo trivial ( no soy diseñador ). CSS en principio para mi siempre fue algo trivial hasta que empecé a trabajar para diseñadores y dejas de pensarlo. Entoces ya te planteas usar un framework para cubrir esas exigencias delo diseñadores para los que te contratan, exigencias como:  usabilidad, el uso distintos dispositivos, distintos navegadores y sobretodo presentación milimitrada, por ello sin framework se haría casi imposible.

Principalmente bootstarp 3 es el mas utilizado y el que me exigen utilizar, con el uso te vas dando cuenta que a veces no es le mejor a utilizar, ya que hace una carga completa, css y js que realmente no es necesario para todos los proyectos, por este motivo me pongo de vez encuenta a buscar informacion de FRAMEWORK DE CSS y esta vez caigo en la siguiente entrada   " 6 Framework de CSS mas populares del 2019" en ingles que aquí resumo.

  1. Bulma
  2. Tailwind CSS
  3. Bootstrap 4
  4. Semantic UI
  5. Foundation
  6. Materialize CSS
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Estandares de programación

Los estándares de programación también conocidos como guías de estilos o convenciones de código. Varía según el lenguaje de programación que se haya seleccionado. Si queremos crear un estándar de programación para un proyecto tenemos que tener en cuenta los lenguajes de programación que vamos utilizar y son estrictos o no.

 

Selección de estandares para los nombres de variables, funciones, metodos y Clases

Utilizar por norma general nombres descriptivos.

Variables y constantes:

Hay que diferenciar entre variables que son: constantes , variables resultados y variables de banderas, estas ultimas puede ser creadas por un simple caracter, ya que muere la variable a las pocas lineas de crearlas.

La variables deben ser descriptivas, si estan compuestas por varias palabras deben estar separadas por  Underscore [ _ ] ó guion bajo en español.

 Funciones o metodos :

Como norma para las funciones o metodos utilizamos lowerCamelCase, siendo la convención de nomenclatura en la que un nombre está formado por varias palabras que se unen, estas separan poniendo en mayusculas la primera letra de cada palabra, excepto la primero.

Clases:

Utilizamos la convencion nomenclatura de UpperCamelCase que es separamos las palabras unidas, poniendo en mayusculas la primera letra de cada palabra, incluso la primera palabra.

 

Uso de prefijo y sufijos: Tanto sea camelcase o undesscore se debe usar prefijos y sufijos para poder entender la variables y funciones a primera vista.

 

Lineas y uso de tabulador

Se recomienda un uso máximo de 75-85 caracteres por linea para una mejor lectura del código.

Hay lenguajes de programación que el uso de caracteres de tabulador estan prohibidos,por lo que recomiento cambiar caracter tabulación por un grupo espacios ( 4) , normalmente en los editores de programación se puede configurar.

Utilizar los espacios evita problemas con controladores de versiones , diffs, parches, historiales y anotaciones.

 

 

 

 

Fuentes:

Manual codificacion de PHP:Pear

Php-fig:The PHP Framework Interoperability Group: Un grupo de programadore  y proyectos que tiene por objetivo mejorar como trabajar juntos, los creadores PSR1,PSR2,PSR3,PSR4... que es utilizado por muchos proyectos muy importantes como laravel,joomla, ....

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Aprender a programar

Es bastante indefinido, ya que aprender a programar ¿qué? es realmente la siguiente pregunta.

Aprender a programar es algo que mucha gente se plantea, pero hay toda disciplina y planificación antes, ya hay que tener claro que aprender programación no es tarea de un día ni de una semana: aprender programación requiere al menos varios meses y, si hablamos de programación a nivel profesional, varios años.

Aunque para mi, aprender a programar requiere esfuerzo y sobretodo ganas.

 

 

http://www.codecademy.com/?locale_code=es

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

En está sección no puede falta una guía de comandos de VIM el editor por excelencia de los programadores, aunque tengo que reconocer que yo no lo utilizo mucho, porque mi preferido es geany, porque os quiero recordar que vengo windows. :-)

Esta lista comando la copie de http://web.ua.es/cuantica/docencia/ccem/teoria/node127.html

 

Comandos "vi" ("vim") de uso frecuente

ESC Abandonar el modo de inclusión de texto para volver al modo de comandos; también se usa para cancelar comandos. (Usarlo en caso de duda)
Cntl-F Avanzar una pagina hacia adelante
Cntl-B Avanzar una pagina hacia atrás
Cntl-L Refrescar la pantalla
G Cursor al final del fichero
1G Cursor al principio del fichero
$ Cursor al final de la linea
0 (cero) Cursor al principio de la linea

.

a Añadir texto a continuacion del cursor [TEXTO]
i Insertar texto en la posicion del cursor [TEXTO]
A Añadir texto al final de la linea [TEXTO]
I Insertar texto al principio de la linea [TEXTO]
o Añadir una linea debajo de la del cursor [TEXTO]
O Añadir una linea encima de la del cursor [TEXTO]
   
u Deshacer el último cambio realizado
:red Rehace los cambios deshechos con ''u'' o '':u''
   
x Borrar un caracter (y ponerlo automaticamente en el ALMACEN)
D Borrar el resto de la linea (a la derecha del cursor)
dw Borrar una palabra (hasta el primer blanco a la dcha. del cursor)
dd Borrar la linea entera
8x Borrar 8 caracteres
2dw Borrar 2 palabras
7dd Borrar 7 lineas
   
p Poner el contenido del ALMACEN temporal a continuacion del cursor
P Poner el contenido del ALMACEN temporal antes del cursor
   
s Substituir un caracter por texto [TEXTO]
15s Substituir 15 caracteres por texto [TEXTO]
r Substituir un solo caracter por otro nuevo, sin entrar en modo de TEXTO
   
R Sobreescribir [TEXTO]
   
J Unir la linea del cursor y la siguiente
i [ENTER] Romper una linea en dos
   
. Repetir el último cambio realizado
   
yy Poner la linea presente en el almacen temporal
5yy Poner cinco lineas en el almacen
   
:w Guardar en el fichero que se esta editando los cambios realizados
  (Aconsejable ejecuarlo de vez en cuando)
:w! Idem, forzandolo si fuese necesario.
:w Fichero Guardar en el fichero "Fichero"
:wq Guardar y salir de "vi".
:wq! Idem, forzandolo si fuese necesario.

NOTA: Cada vez que se borra texto, el texto borrado pasa a un ALMACEN temporal, de donde elimina lo que estuviese almacenado previamente.

 

:q Salir de "vi", si no se han realizado cambios desde
  la última vez que se han salvado.
:q! Salir de "vi" en todo caso. No se guardan aquellos cambios que no se hayan salvado.
   
   
:set nu Visualizar los numeros de las lineas
:set nonu Ocultar los numeros de las lineas
   
+ Ir a la linea siguiente
- Ir a la linea anterior
:+8 Ir a la linea que esta 8 puestos más abajo
:-9 Ir a la linea que esta 9 puestos más arriba
:6 Ir a la linea numero 6
   
ma Marcar la linea del cursor con la etiqueta 'a'.
  (Sólo puede usarse una letra)
'a Ir a la linea marcada con 'a".
:$ Ir a la última linea del fichero, "$".
:P,U d Borrar las lineas entre P y U, ambas incluidas. P y U son identificadores de lineas, es decir, numeros de lineas o etiquetas. Ejemplos:
:6,'a d borrar las lineas entre la "6" y la 'a'
:'a,'b d borrar las lineas entre la 'a' y la "b"
:'a,$ d borrar las lineas desde 'a' hasta el final
   
   
   
   
   
   
:P,U w Fichero Escribir en el fichero "Fichero" las lineas comprendidas entre P y U, ambas incluidas
   
   
:r Fichero Leer el contenido del fichero "Fichero" y ponerlo a continuacion de la linea del cursor.

 




/texto/ Buscar, hacia adelante, la aparicion de "texto".
?texto? Buscarlo hacia atras.
n Continuar la busqueda en la direccion elegida.
N Continuar la busqueda en la direccion opuesta./i.ad/ busca iXad, donde X es cualquier caracter.
/i...ad/ busca iXXad, donde XX son dos caracteres cualesquiera
:P,U s/texto viejo/texto nuevo/ Substituir texto desde las lineas P a U; solo la
  primera vez que aparezca en cada linea. Ejemplos:
:1,$ s/hola/adios/ substituir el primer "hola" de cada linea del fichero por 'adios'
   
   
:P,U s/texto viejo/texto nuevo/g Substituir texto desde las lineas P a U; todas las veces que aparezca.
:'a,$ s/hola/adios/g substituir todos los "hola" por 'adios' desde la linea marcada 'a' hasta el final
   
   
   
   
:set ic Ignorar mayusculas/minusculas en busquedas y substituciones
   
:set noic No ignorarlas
   
:set ai Auto-margen: cada nueva linea aparece con el mismo margen que la linea anterior. (Util cuando se escriben ficheros FORTRAN)
   
   
:set noai No auto-margen.
   
abb ABREV texto Definicion de una abreviatura (ABREV en este caso) para "texto"
   
   
$>>$ Desplaza una linea hacia la derecha
  5$>>$ Que hace esto ?
   
$ << $ Desplaza una linea hacia la izquierda
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Introducción y definición POO

La programación orientada a objetos (POO) está basada en herencia, cohesión , abstracción , polimorfismo, acoplamiento y encapsulado.

 

Los objetos son entidades que tienen :

 

Atributos : Son los datos que tiene el objeto

Métodos: Son operaciones o funciones que puede responde el objeto, que se pueden realizar con el objeto.

 

Un objeto contiene toda la información necesaria para identificarlo de otros objetos e incluso de la misma clase.

 

Los programadores orientados a obejtos lo primero que piensa en definir objetos para enviarles mensajes a estos para solicitarles realicen métodos ellos mismos.

 

La programación orientada en objetos hoy en día soportada por muchos lenguajes  como: php, pyhton, Java, C++, Ruby …

 

Conceptos Básicos y Fundamentales.

 

Clase

Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.

 

Herencia

(Por ejemplo, herencia de la clase C a la clase D) es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables públicas declaradas en C. Los componentes registrados como "privados" (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de POO.

 

Objeto

Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa). Es una instancia a una clase.

 

Método

Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.

 

Evento

Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento la reacción que puede desencadenar un objeto; es decir, la acción que genera.

 

Atributos

Características que tiene la clase

 

Mensaje

Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.

 

Propiedad o atributo

Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.

 

Estado interno

Es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.

 

Componentes de un objeto

Atributos, identidad, relaciones y métodos.

 

Identificación de un objeto

Un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.

 

En comparación con un lenguaje imperativo, una "variable" no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método del objeto.

 

 

 

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Las expresiones regulares también llamadas regex, son secuencias de caracteres que forma un patrón, principalmente utilizada para la búsqueda de patrones de cadenas de caracteres y poder realizar operaciones de sustituciones.

En casi todos los lenguajes de programación, las expresiones regulares se utilizan para que de una forma flexible reconocan una cadenas de texto.

Todo programdor es fundamental conocer y utilizar las expresiones regulares, ya que con expresiones regulares no puede ahorrar mucho tiempo y muchas lineas de codigo.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Xdebug es una extensión de PHP que proporciona capacidades de depuración y creación de perfiles. Utiliza el protocolo de depuración DBGp. La información de depuración que Xdebug nos proporciona puede ser:

  • La pila de memoria que utiliza y los mensajes de error con:
    • Visualización completa de parametros para funciones definidas por el usuario.
    • Nombre de función , nombre archivo e indicaciones de linea.
    • Soporte para funciones miembro.
  • Asignación de memoria.
  • Protección para recursiones infinitas.
  • Información de perfil del script PHP
  • Análisis de cobertura del código.
  • Capacidad de depurar sus scripts interactivamente con un front-end de depurador.

Una vez instalado y activado recuerda que debes reiniciar el servidor, puede ser con:

systemctl restart apache2

¿ Activar Xdebug ?

Muy similar como activar en versiones distinta de php.

phpenmod xdebug

¿Desactivar Xdebug?

phpdismod xdebug
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Un algoritmo es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas donde alguien o algo le permite realizar una actividad, paso a paso que no generen ninguna duda a quien lo realizar.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

La intención de este post es saber cuantas versiones tenemos de php en nuestro servidor apache y como cambiarlas según las necesidades.

Nuestro técnico de sistema nos preparo el servidor local para poder utilizar cualquiera de estas versiones php:

  • php 5.6
  • php 7.0
  • php 7.1
  • php 7.2

Lo primeros saber que versiones tenemos instaladas de nuestra maquina. Una forma comoda sería:

ls etc/php 

En nuestro equipo nos aparece el listado de las distintas versiones que tenemos instaladas.

Esto es útil para poder testear webs en distintas versiones de php, ya que muchas veces los servidores que tienen nuestros clientes no siempre tienen la utlima version de php.

Lo primero que hay que saber es que version tienes ahora activa:

  • Viendo phpinfo()-> Te lo indica...
  • Con ls /etc/apache2/mods-enabled/php* nos indicara que versiones tenemos activas :-)

Para activar una version lo hacemos con a2enmod, por ejemplo queremos activar php5.6 con: