Ir al contenido principal

Entradas

Java: sealed class & interfaces

  El concepto de "clases e interfaces selladas" surge desde la versión Java 15 hasta la 17. Pero, ¿Qué son y para qué sirven las clases e interfaces sealed? Estas construcciones permiten un control más estricto sobre la herencia ( extends ) y la implementación ( implements ), lo que mejora la seguridad, el diseño del código y la claridad en la intención del desarrollador. Clases sealed: Una clase sellada es una clase que restringe qué otras clases pueden extenderla. Esto se logra especificando explícitamente las subclases permitidas mediante la palabra clave permits .    Interfaces sealed: Similar a las clases selladas, una interfaz sellada restringe qué clases o interfaces pueden implementarla o extenderla, también usando permits . Ejemplos de clases sealed public sealed class Vehiculo permits Coche, Moto { // Código de la clase } final class Coche extends Vehiculo { // Código de la clase } final class Moto extends Vehiculo { /...
Entradas recientes

Java: clases record

Las clases `` record `` son una implementación de las data-clases o del patrón Data Transfer Object , un tipo de clase cuyo único propósito es impulsar la programación con datos inmutables. Son clases que se usan para almacenar valores y poder agruparlos en un único identificador. A diferencia de una clase normal, el `` record `` es inmutable. Además que automáticamente genera métodos como equals(), hashCode() y toString(). Miremos un ejemplo. Auditor.java package com . mx . inforhomex ; /** * * @author Alquimista de código * */ public record Auditor { } Modificamos la clase `` record `` agregando tres campos: nombre de tipo String .  fchreg de tipo LocalDate .  horreg de tipo LocalTime . Clase `` record `` modificada: package com . mx . inforhomex ; import java . time . LocalDate ; import java . time . LocalTime ; /** * * @author Alquimista de código * */ public record Auditor(String nombre, LocalDate fchreg, LocalTime horreg) {...

Algunos plugins para Visual Code que deberías usar

Veremos una lista de plugins para Visual Code. In your face In Your Face es una extensión de VS Code que te muestra caras de "Ouch" de Doom (y Mister Increíble) que se correlacionan con la cantidad de errores en tu código https://marketplace.visualstudio.com/items?itemName=VirejDasani.in-your-face Live Server Este es un plugin que permite arrancar un servidor de desarrollo local con función de recarga en vivo para páginas estáticas y dinámicas. LiveServer Tabnine Tabnine es un asistente de codificación de IA gratuito. Puede ayudar a aumentar su productividad al proporcionarle finalizaciones de código en tiempo real. https://marketplace.visualstudio.com/items?itemName=TabNine.tabnine-vscode Codesnap Plugin que simplifica el proceso de hacer capturas de pantalla del código. https://marketplace.visualstudio.com/items?itemName=adpyke.codesnap Code Runner Este plugin proporciona una forma cómoda de ejecutar rápidamente fragmentos de código...

Comparando lenguajes: Lua y Python

En este post haremos una pequeña comparativa entre dos lenguajes de scripting: Lua & Python Lua Un lenguaje relativamente "nuevo" que ha empezado a tener cierta popularidad actualmente. Un lenguaje que es sumamente fácil de aprender. Muchos de los juegos populares se han programado en éste lenguaje. Que aunque muy simple, ha resultado muy poderoso. Lua combina una sintaxis procedimental sencilla con potentes construcciones de descripción de datos basadas en matrices asociativas y semántica extensible. Lua tiene tipado dinámico, se ejecuta interpretando el código de bytes para una máquina virtual basada en registros y tiene gestión automática de memoria con recolección de basura incremental, lo que lo hace ideal para configuración, programación y creación rápida de prototipos. Python El lenguaje favorito de muchos y de otros no tanto. En el cual permite la programación funcional, procedimental y orientada a objetos. Python también tiene tipado dinám...

Java en Python con Pyjnius

En una entrega anterior vimos como instalar Pyjnius : Python: instalando Pyjnius Como se dijo, Pyjnius es una librería para Python que permite acceder a clases Java. Es decir, podrás agregar clases Java a tus programas Python. Ejemplo 1. Creamos un programa que borre dos elementos de una lista, esto implementando la clase `` Stack `` de Java. stack.py from jnius import autoclass Stack = autoclass ( ' java.util.Stack ' ) stack = Stack ( ) stack . push ( ' ABC ' ) stack . push ( ' DEF ' ) print ( stack . pop ( ) ) # --> 'DEF' print ( stack . pop ( ) ) # --> 'ABC' Ejecución: $ py stack.py Salida: DEF ABC Ejemplo 2. Programa que solicite la edad de una persona para entrar a ver una película. Si su edad es igual o mayor a 18, puede ver la película. En caso contrario, no podrá hacerlo. Para esto usaremos la clase `` JOptionPane `` de Java para mostrar el aviso. pelicula.py from jnius import autocla...

Frameworks web para Haskell

  Los frameworks web nos ayudan a: Tener una configuración y estructura base para nuestras aplicaciones. Nos ayuda a reutilizar código. Automatizar tareas tediosas y repetitivas. Mayor seguridad. Tener un desarrollo comunitario. Mejor rendimiento y escalabilidad. Facilitan las pruebas unitarias. Nos ayudan con mejores prácticas y compatibilidad con los estándares. "Un framework web puede ser una herramienta poderosa para acelerar el desarrollo, mejorar la calidad del código y la seguridad de tu aplicación, todo mientras te permite enfocarte más en la lógica de negocio de tu proyecto" . En está ocasión veremos algunos de los frameworks web para Haskell. IHP: https://ihp.digitallyinduced.com/ Snap: http://snapframework.com/ Yesod: https://www.yesodweb.com/ Cada uno de éstos framework posee sus propias características y peculiaridades. El más famoso es Yesod, el cual se basa en plantillas para generar instancias de entidades listadas y funciones de procesami...

Rocket: un framework web para Rust

Rocket Framework es: Un framework web escrito en Rust.   Inspirado en Rails, Flask, Bottle y Yesod.  Admite el manejo de solicitudes HTTP, Web Sockets, JSON, plantillas y más. Creando un proyecto con Rocket Framework En primer lugar, verificamos la instalación de Rust en nuestras máquinas: rustc - - version Continuamos con la configuración de Rust nightly como nuestra cadena de herramientas predeterminada ejecutando el comando: rustup default nightly Si lo prefieres, una vez que configuremos un directorio de proyecto en la siguiente sección, puedes usar anulaciones por directorio para usar la versión nocturna solo para tu proyecto Rocket ejecutando el siguiente comando en el directorio: rustup override set nightly Creamos nuevo proyecto `` hola-rocket `` y nos ubicamos en el directorio creado: cargo new hola - rocket - - bin cd hola - rocket Con Cargo, agregamos la dependencia de rocket: cargo add rocket Abrimos el archivo `` Cargo.toml `` Ca...