JavaRush /Blog Java /Random-ES /Pausa para el café #70. Cómo escribir código Java más ráp...

Pausa para el café #70. Cómo escribir código Java más rápido con Lombok. Lista de formación para programadores principiantes

Publicado en el grupo Random-ES

Cómo acelerar la escritura de código Java con Lombok

Fuente: Dev.to Escribimos el mismo código repetitivo en cada aplicación. Por ejemplo:
  • Captadores;
  • Colocadores;
  • Diseñadores;
  • Patrón de diseño de constructor;
  • y mucho más…
¿No sería bonito que este trabajo rutinario pudiera confiarse a alguien? Y aquí es donde Lombok puede ayudarnos.Pausa para el café #70.  Cómo escribir código Java más rápido con Lombok.  Mi lista de formación para programadores principiantes - 1

¿Qué está haciendo?

Genera código de bytes para estas tareas comunes (captadores, definidores, etc.) y los coloca en una clase ., haciéndolos utilizables en el código que escribimos.

¿Como sucedió esto?

Debe agregar la dependencia de Lombok a su compilación de Maven. Luego debe anotar las clases deseadas, campos con algunas anotaciones de Lombok. ¡Veamos el código! Sin Lombok:
public class Human {
    private int id;
    private String name;
    private int ageInYears;

    public Human() { }

    public Human(int id, String name, int ageInYears) {
        this.id = id;
        this.name = name;
        this.ageInYears = ageInYears;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public int getAgeInYears() {
        return ageInYears;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAgeInYears(int ageInYears) {
        this.ageInYears = ageInYears;
    }

    // Builder pattern
  public Human id(int id){
        this.id = id;
        return this;
    }
    public Human name(String name){
        this.name = name;
        return this;
    }
    public Human ageInYears(int ageInYears){
        this.ageInYears = ageInYears;
        return this;
    }

    @Override
  public String toString(){
        return String.format("Human(id=%s, name=%s, ageInYears=%s)",
                this.id, this.name, this.ageInYears);
    }
}
Ahora usemos Lombok:
import lombok.*;
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
@Builder @ToString
public class Human {
    @Setter(AccessLevel.NONE)
    private int id;
    private String name;
    private int ageInYears;
}
La dependencia de Maven tiene este aspecto:
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.16</version>
    <scope>provided</scope>
</dependency>
Nota: La parte de la versión cambiará según la última versión de Lombok.

¿Qué hemos hecho?

Usamos anotaciones para crear captadores, definidores, constructores, el patrón de diseño Builder y la implementación de toString. También podemos realizar cambios en algunas anotaciones, como el definidor del campo de identificación. Establecemos su nivel de acceso en Ninguno: esto significa que no creamos un configurador para él.

¿Valió la pena hacerlo?

Escribimos 52 líneas cuando no usábamos Lombok. Escribimos 8 líneas usando Lombok. Lombok nos ayudó a reducir el tamaño del código casi 4 veces . Esta puntuación se puede mejorar si tenemos más variables en nuestras aulas. Lombok tiene muchas más anotaciones con mucha información útil. Para verlos, visite el sitio web .

Conclusión

Lombok lo ayuda a concentrarse en su código comercial y no preocuparse por los pequeños detalles (captadores/definidores/constructores/patrones de diseño generales y otras construcciones de Java).

Lista de formación para programadores principiantes

Fuente: DZone Mi amigo tiene un hijo que pronto se graduará de la escuela secundaria. Sabe un poco de programación y se pregunta si debería convertirse en programador. Recientemente me preguntó: "¿Qué debo enseñar a continuación?" Pausa para el café #70.  Cómo escribir código Java más rápido con Lombok.  Mi lista de formación para programadores principiantes - 2Cuando comencé a aprender programación, asumí que la respuesta a la pregunta "¿Qué debo aprender a continuación?" sería una nueva tecnología de programación, un nuevo lenguaje, una nueva biblioteca o algo así. A medida que avanzaba en mi carrera, cambié de opinión. Además de perfeccionar sus habilidades de programación y aprender nuevos lenguajes, los aspirantes a programadores deben estudiar en campos relacionados (lo explicaré a continuación). En este texto, quiero recopilar una lista de habilidades que recomendaría dominar a los programadores. Mi objetivo no es enumerar todos los conocimientos actuales ni proporcionar enlaces a tutoriales. En cambio, quiero ayudar a los principiantes a familiarizarse con un conjunto de herramientas, técnicas y habilidades que pueden ayudarles a escribir programas.

Línea de comando

Supongo que ya me consideran "viejo" según algunos estándares. En mi época, usar una computadora significaba sentarse en DOS y escribir comandos. Mucho ha cambiado desde entonces. Es muy importante aprender a utilizar la línea de comando. Muchas herramientas sólo proporcionan una interfaz de línea de comandos. En algunos casos, puede trabajar más rápido en la línea de comando. Deberías poder hacer cosas básicas como:
  • Recorrido de directorio.
  • Gestión de archivos (copiar/mover/eliminar).
  • Compilación y/o ejecución de código fuente.
Si utiliza Windows, le recomiendo que se familiarice con Linux, tal vez utilizando WSL2 en lugar de una máquina virtual completa. Si estás en una Mac, puedes usar el shell integrado en el sistema operativo. También puede obtener una buena experiencia instalando una máquina virtual Linux.

Control de versiones

Necesita aprender a rastrear su código fuente usando el control de versiones. El software de control de versiones le permite realizar un seguimiento del historial de revisiones de su proyecto, lo que puede ser vital para la depuración. También facilita la colaboración en el código base. GitHub y GitLab son dos sitios populares para alojar proyectos de código abierto. Ambos usan Git (como supongo que sugieren los nombres). Git es la herramienta más popular hoy en día, por lo que recomendaría familiarizarse con el uso de Git en la línea de comandos con GitHub o GitLab como repositorio.

Redes

La mayoría de los programas actuales requieren al menos cierto nivel de networking. Comprender cómo funcionan las redes es importante. Como mínimo, debes comprender los conceptos básicos como direcciones IP, puertos y protocolos. Aprender sobre firewalls, equilibrio de carga y servidores proxy dará sus frutos más adelante. Y no sólo en tu carrera de programación. De acuerdo, es genial entender la pregunta "¿por qué no funciona el Wi-Fi?" También recomendaría aprender los conceptos básicos de los servicios en la nube como AWS y Azure. Intentar configurar una nube privada virtual de AWS con subredes, reglas de inicio de sesión y puertas de enlace le brindará experiencia en redes.

Pruebas

Una parte integral de escribir un buen software es aprender a probarlo. Muchos de nosotros aprendemos a programar y luego "probar" nuestro código. Las pruebas unitarias y de integración son habilidades esenciales que se pueden aplicar a casi cualquier software en el que trabaje. Aunque las pruebas pueden parecer tediosas al principio, esta habilidad dará sus frutos y le permitirá trabajar más rápido y con más confianza.

Integración continua

La integración continua, o CI, combina pruebas y control de versiones. Cada vez que crea una nueva iteración de código, tiene un conjunto de pruebas que se ejecutan automáticamente. Las herramientas de CI han mejorado significativamente en los últimos 10 años. GitHub y GitLab tienen soluciones de CI integradas (GitHub Actions y GitLab CI, respectivamente) y es fácil comenzar con ellas. Al igual que con las pruebas, comenzar con la CI será difícil. Pero una vez que aprenda los conceptos básicos, encontrará los problemas mucho más fácil y rápidamente. Recomendaría buscar un tutorial detallado con ejemplos para el lenguaje de programación que está utilizando.

Habilidades de escritura

Esta es probablemente el área que más subestimé cuando comencé a trabajar como programador. No exagero: ahora creo que la habilidad más importante que un programador puede añadir a su arsenal es la escritura. Una buena habilidad de escritura significa que puedes explicar claramente una idea usando una cantidad mínima de palabras. Cuando aprendes a programar, normalmente trabajas por tu cuenta, por lo que no es necesario escribir. Pero cuando empieces a trabajar en equipo, necesitarás escribir:
  • Documentación;
  • Informes de errores;
  • Peticiones de características;
  • Sugerencias de clientes;
  • Documentos con requisitos;
  • Correos electrónicos (¡muchos correos electrónicos!);
  • Mensajes de texto;
  • Publicaciones de blog (posiblemente);
Aprende a escribir. Ejercicio. Toma un curso de escritura. Pagará dividendos por el resto de tu vida. Además: aprende a leer bien. Cuando comencé el desarrollo profesional, me sentí intimidado por los documentos de requisitos. Ahora me doy cuenta de que dedicar unas horas a estudiar detenidamente esta información le ahorrará meses desperdiciados construyendo algo incorrecto.

Otros lenguajes de programación

Hoy en día no basta con saber un solo lenguaje de programación. Casi todos los programadores deberían conocer al menos algunos. Es importante estudiar otros idiomas para aprender nuevas técnicas. Recomiendo aprender algunas categorías diferentes de idiomas. En orden de prioridad descendente: Programación funcional. La mayoría de las escuelas todavía no enseñan programación funcional (FP). FP es un enfoque poderoso que facilita la escritura de muchos tipos de código. Soy parcial, pero recomendaría Haskell como el mejor idioma para aprender, ya que te ayudará a comprender FP mejor que muchos otros idiomas. También es útil aprender un idioma de la familia LISP. Aprender programación funcional le ayudará a escribir mejor código en casi cualquier idioma. Programación del sistema. Los lenguajes del sistema pertenecen a un nivel inferior y permiten un mejor control sobre el funcionamiento del programa. Al estudiarlos, aprenderá cómo funciona el programa en el sistema, lo que puede resultar muy útil para comprender y depurar problemas en otros idiomas. Recomiendo aprender Rust, luego C y C++. Lenguajes orientados a objetos. Java y C# son los dos lenguajes orientados a objetos más populares de esta familia. (Sí, Python y C++ también son populares, pero los resaltaré por separado). La programación orientada a objetos introdujo muchos paradigmas nuevos y probablemente sigue siendo el enfoque de programación más popular, aunque personalmente prefiero los enfoques de programación funcional. Sin embargo, hay mucho que aprender de la programación orientada a objetos y es probable que termines escribiendo código orientado a objetos en tu carrera. La escritura de guiones. Python y Ruby son dos lenguajes de programación populares en la familia de aplicaciones orientadas a objetos. En particular, Python se usa ampliamente en campos relacionados como DevOps y ciencia de datos. Además, es un lenguaje simple con el que es bastante fácil comenzar.

Métodos de programación

Independientemente del lenguaje de programación que utilice, vale la pena familiarizarse con algunas técnicas adicionales que van más allá de su lenguaje específico, entre ellas:
  • Programación de bases de datos. Recomiendo encarecidamente aprender SQL. SQLite y PostgreSQL son dos DBMS de código abierto para explorar.
  • Paralelismo y programación asincrónica. Esto es cada vez más importante hoy en día.
  • Programación de redes , especialmente creación de servidores y clientes HTTP.
  • Creación de una interfaz web utilizando HTML/CSS/JavaScript.
  • Serializar datos en formatos como JSON, YAML y archivos binarios.

Conclusión

La información anterior puede parecer complicada. No tienes que pensar que necesitas aprender todo esto para convertirte en programador. Esto está mal. Convertirse en un gran programador requiere tiempo y práctica profesional. Si aún no ha comenzado a programar, le recomendaría comenzar con algunos proyectos favoritos. Considera contribuir a proyectos de código abierto, lo que te ayudará a sentirte cómodo y aprender de programadores experimentados. A muchos programadores les encanta compartir sus conocimientos con los principiantes.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION