general

Cómo usar con Doctrine de PHP nombres de tablas dinámicos

2022-01-23 - Categorías: General / PHP / Symfony
Objetos relacionados base de datos

Este es un pequeño howto para darle una vuelta de tuerca al tema de los repositorios, Doctrine, nombres de tablas, Symfony, etcétera. Doctrine es un ORM que facilita mucho el manejo de los datos en BD. De casa viene configurado para usarse de forma que una tabla corresponde a una entidad, pero esto se puede hacer dinámico fácilmente.

Supongamos entonces que estamos usando una BD relacional Mysql, tenemos entonces que una entidad se asocia a una tabla. Y podemos tener el supuesto de que queramos dividir los datos en tablas por mes.

Continuar leyendo..

ReactPHP, máximo rendimiento, asíncrono y con servidor web embebido

2021-10-28 - Categorías: General / PHP

En el mundo PHP hay una serie de proyectos muy interesantes, alrededor de lo que se llama ReactPHP. Este post es un codekata sobre cómo empezar con esta herramienta de trabajo en Sistemas Distribuidos. Se trata de cómo crear proyectos a base de microservicios, encapsulando un servidor web HTTP de alto rendimiento construido 100% en PHP dentro de cada microproyecto.

Este servidor web HTTP no está en desarrollo, como reza su web, y ya se está usando en millones de instalaciones en producción.

La idea principal no es nueva. Simplemente se usan loops, los clásicos bucles infinitos, en los que se establecen y procesan peticiones asíncronas, siempre tratando de sacar el máximo rendimiento. El cuello de botella normalmente está en los input/output que se hacen a ficheros, red, etc.. entonces se alcanza su máximo rendimiento no procesando linealmente, sino asíncronamente cada petición en un mismo núcleo de procesador al 100%.

Este sistema se puede balancear y escalar horizontalmente de igual forma que cualquier otro sistema, pero más fácil porque ya tenemos el servidor web embebido. Se eliminan entonces intermediarios, que siempre van a tener un coste de computación.

Si a esto le unimos la velocidad de las últimas versiones de PHP7+ 8+, con la compilación JIT Just In Time, tenemos un cócktel muy pero que muy interesante. Empezamos con el codekata?¿

Continuar leyendo..

Del código fuente a la ejecución de los programas

2018-06-08 - Categorías: General
Programming programando

Ya tenemos el código fuente, ¿y ahora? ¿cuál es la magia que hace posible que un código fuente se ejecute?

Todo programa necesita un traductor, que compile o interprete el código fuente para que pueda ser ejecutado. Es una primera diferencia que puede marcarse entre los lenguajes de programación, ya que un lenguaje puede ser interpretado, compilado, o incluso ambas cosas. Además, la ejecución puede ser dependiente de la máquina, o ejecutarse en una máquina virtual, que te independiza de la máquina.

Por ejemplo los lenguajes funcionales o lógicos suelen usarse primeramente interpretados, como Prolog o Haskell mientras se desarrolla, pero también tenemos disponible un compilador para mejorar su eficiencia. PHP es interpretado, aunque ha habido compiladores para mejorar su eficiencia de ejecución. Cabe destacar como curiosidad la Hip Hop Virtual Machine de Facebook que crearon para agilizar PHP, que precisamente compila los ficheros fuente a un código objeto intermedio más rápido de ejecutar. Javascript, Typescript, Ruby, también son interpretados. C, C++, VB, C# son compilados, es decir, se necesita compilar el código fuente a códigos objeto, estos códigos objeto a su vez se linkan, se retraducen, para ejecutarse finalmente en la máquina.

Continuar leyendo..

Características de los lenguajes de programación

2018-05-26 - Categorías: General
Código fuente

No es fácil elegir un lenguaje de programación para cada proyecto. Dependiendo de las características del proyecto, entorno, etc.. deberemos de elegir bien. Será más complejo aún, si además convivirán varios sistemas informáticos interconectados, comunicándose entre sí. De la misma forma, será más complejo si en el proyecto tenemos elementos programados a bajo y alto nivel. También se añade complejidad si los entornos de ejecución son varios: escritorio, web, móvil.. o varios sistemas operativos.

Es importante tener claras las características, y conocer, por lo menos en líneas generales, la mayor cantidad de lenguajes. Así elegiremos bien, y luego profundizaremos más y más a lo largo del proyecto, o subproyecto. Una mala decisión inicial del lenguaje, framework o plataforma, acarreará grandes problemas a la larga. Puede desembocar en grandes gastos y esfuerzos que se podrían haber evitado, o en una merma de la calidad final del proyecto.

Continuar leyendo..

PHP: qué es un Singleton y para qué nos puede servir

2018-01-21 - Categorías: General / PHP / Principios y patrones
Coding

Este es uno de los patrónes de diseño de software más sencillos de implementar. Se trata del Singleton, que simplemente es un tipo de objeto de programación. En Programación Orientada a Objetos (POO), tenemos este tipo de objetos que se usan para sólo instanciar uno y exclusivamente uno en todo el programa.

No sabemos cuántas veces ni en cuántos lugares se va a usar el objeto. Pero sí que sabemos que necesitamos que sólo exista uno como máximo. De aquí que viene su nombre de Singleton.

Se dice que viola los principios SOLID del diseño de software porque en sí mismo controla el proceso de creación, pero de hecho, en patrones más avanzados como en las fábricas es necesario implementarlos.

Continuar leyendo..

© 2022 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.