grupo hasten-logos

Política General de Sostenibilidad

Como sabéis, Hasten ha aprobado una Política General de Sostenibilidad que establece los Principios y Directrices relacionados con su Gestión Medioambiental y Objetivos de Desarrollo Sostenible.

Como resultado de esta Política, la compañía ha decidido unirse a varias iniciativas internacionales como son UNGC (Pacto Global de las Naciones Unidas), SBTi (Science Based Target iniciative), además de establecer un Sistema de Gestión Medioambiental siguiendo la norma ISO 14001:2015. De igual forma, se establecen acciones periódicas, como la medición anual de su Huella de Carbono, llegando a compensarla hasta conseguir cero emisiones.

De esta forma, Hasten persigue el objetivo de avanzar hacia una economía que mejore el futuro de nuestro planeta siguiendo las metas que Unión Europea estableció a través del Pacto Verde, marcando como objetivo el convertir a nuestro continente en el primero en ser neutro en carbono en 2050


Grupo-hasten

Grupo Hasten en Expansión & Empleo

Os trasladamos el contenido del artículo sobre nuestra compañía publicado en el diario Expansión en su sección «Expansión & Empleo»:

Hasten (marca comercial que aglutina las empresas Winning Results y Twinbee Home) basa su crecimiento en una mayor especialización, capacitación y colaboración de sus equipos de talento y desarrollo de negocio con un enfoque orientado a satisfacer las necesidades de sus clientes.

La pandemia y los enormes cambios de los tres últimos años han puesto a prueba a muchas grandes empresas, que se están transformando más a fondo y en menos tiempo, lo que llamamos transformación comprimida, asumiendo que todas las estrategias exigen más tecnología. “Este escenario de necesidad tecnológica ha sido clave para que Hasten concentre sus esfuerzos en la captación de talento técnico especializado que pueda satisfacer la creciente demanda, además de implementar políticas de I+D+I que nos han consolidado como Pyme Innovadora”, afirma Eugenio Malanda, director de RRHH y Outsourcing del grupo Hasten. “A nivel de talento en el sector, se percibe un escenario en el que se puede llegar a producir cierta sobresaturación de determinados perfiles IT. Esta percepción nos obliga a aumentar la exigencia en los procesos de selección a fin de aportar servicios de mayor calidad, donde la experiencia tecnológica, el compromiso y las habilidades sociales de los candidatos son factores clave en las contrataciones”.


«El escenario de necesidad tecnológica ha sido clave para que Hasten concentre sus esfuerzos en la captación de talento técnico especializado que pueda satisfacer la creciente demanda»


Además, el escenario de la pandemia supuso la deslocalización de los servicios y la proliferación de los escenarios de teletrabajo, de forma que, a día de hoy, el teletrabajo supone el 90% del formato de prestación de servicio en el Hasten. De hecho, las políticas de compañía han contribuido, con su flexibilidad y sensibilidad hacia los empleados, a propiciar un escenario de estabilidad y reducir la rotación en el sector. “La apuesta de Hasten por contratos laborales estables (no hay un solo contrato temporal), acometiendo proyectos de larga duración, propicia escenarios de crecimiento y desarrollo profesional de nuestros empleados y permite acometer con mayor garantía las políticas de RRHH”, asegura Eugenio Malanda. Y añade que, “Hasten ha reforzado las políticas de acogida, integración, seguimiento y capacitación de los empleados para fomentar en ellos su compromiso, siendo a la vez flexibles a la hora de promover la internalización de nuestros profesionales en nuestros clientes, convirtiéndonos con frecuencia en aceleradores de carreras profesionales dentro del sector”.

Otro de los factores que están directamente relacionados con el crecimiento referido es la consolidación de la marca Hasten en el sector, con una alta presencia en grandes multinacionales del sector IT y otros clientes finales que depositan cada vez más su confianza en ellos. “¿Los motivos? La flexibilidad en el modelo de colaboración (ofrecemos servicios de Outsourcing, Headhunting y llave en mano), y nuestra apuesta por el cumplimiento de los niveles de servicio establecidos con los clientes”, comenta Milagros Del Toro, directora comercial del Grupo Hasten.

 

DIGITALIZACIÓN Y SOSTENIBILIDAD

La apuesta por la transformación digital interna y por expandir la marca Hasten han sido un factor clave en el crecimiento obtenido. Así, Hasten ha renovado la plataforma tecnológica de gestión del talento, los procesos de facturación, reforzando las líneas de inversión para optimizar la gestión, el control y el seguimiento de negocio. Asimismo, han ampliado la inversión en la expansión de la marca Hasten, potenciando nuestra participación en eventos de marcado carácter técnico (Codemotion 2023, Google), fomentando los contenidos de las RRSS y renovando al completo su página web.


«Hasten ha aprobado una Política General de Sostenibilidad que establece los Principios y Directrices relacionados con su Gestión Medioambiental y Objetivos de Desarrollo Sostenible»


A pesar de la creencia generalizada de que se avecina una recesión global, desde Hasten opinan que las perspectivas macroeconómicas para el sector IT no son malas. De hecho, según estudios, la mayoría de las organizaciones tienen previsto aumentar el gasto en tecnología en 2023, en el que Hasten apuesta decididamente por ser un partner de referencia en la cadena de valor de nuestros clientes. “Respecto a la situación del sector tecnológico en la actualidad, se evidencia una cierta ralentización de los servicios de desarrollo de software consecuencia de la finalización de procesos de transformación digital y una apuesta decidida por servicios especializados de ciberseguridad, Inteligencia Artificial e Infraestructuras Cloud, áreas tecnológicas en las que Hasten está colaborando de manera exitosa con gran parte de sus clientes”, puntualiza Milagros del Toro.

Por último, y no por ellos menos reseñable, hay que destacar el compromiso de Hasten por la sostenibilidad. Para ello, Hasten ha aprobado una Política General de Sostenibilidad que establece los Principios y Directrices relacionados con su Gestión Medioambiental y Objetivos de Desarrollo Sostenible. Como resultado de esta Política, la compañía ha decidido unirse a varias iniciativas internacionales como son UNGC (Pacto Global de las Naciones Unidas), SBTi (Science Based Target iniciative), además de establecer un Sistema de Gestión Medioambiental siguiendo la norma ISO 14001:2015. De igual forma, se establecen acciones periódicas, como la medición anual de su Huella de Carbono, llegando a compensarla hasta conseguir cero emisiones. De esta forma, Hasten persigue el objetivo de avanzar hacia una economía que mejore el futuro de nuestro planeta siguiendo las metas que Unión Europea estableció a través del Pacto Verde, marcando como objetivo el convertir a nuestro continente en el primero en ser neutro en carbono en 2050.


meta-gpt

MetaGPT puede ayudarte a crear aplicaciones web en un instante

MetaGPT es una aplicación de creación de aplicaciones web que funciona gracias a la tecnología GPT. Esta aplicación utiliza un modelo de lenguaje natural para crear aplicaciones a partir de lo que el usuario le solicite.

Recordad que GPT es una tecnología basada en redes neuronales que se utiliza en el procesamiento del lenguaje natural. Su nombre viene de «Generative Pre-training Transformer», y su función es la de poder entender el lenguaje humano y procesarlo de manera efectiva.

¿Cómo funciona MetaGPT?

MetaGPT es una aplicación que se utiliza para crear aplicaciones web sin la necesidad de escribir código. La forma de utilizar esta aplicación es sencilla: el usuario escribe en lenguaje natural lo que quiere que la aplicación haga, y MetaGPT se encarga de traducir esa idea en una aplicación funcional.

Para hacer uso de MetaGPT, el usuario simplemente escribe lo que desea que la aplicación haga, como por ejemplo que pregunte por el nombre y edad del usuario y que luego genere una respuesta personalizada. La aplicación se encarga de generar el código necesario para que la aplicación cumpla con estos requisitos. Una vez generado el código, la aplicación puede ser probada directamente en el navegador.

Limitaciones de MetaGPT

Aunque MetaGPT puede ser una herramienta muy útil para la creación de aplicaciones simples, como formularios y preguntas personalizadas, tiene algunas limitaciones que hay que tener en cuenta.
Por ejemplo, la aplicación sólo puede crear aplicaciones web de una sola página y no puede manejar información compleja como múltiples páginas o bases de datos. De esta forma, si se le pide que haga algo muy complejo, es posible que MetaGPT no pueda generar la aplicación correctamente.

El futuro de MetaGPT y la innovación

La creación de aplicaciones web es un campo que ha sido tradicionalmente dominado por programadores experimentados. Sin embargo, MetaGPT promete cambiar eso, ya que permite a los usuarios crear aplicaciones sin tener que aprender a programar.

A medida que MetaGPT mejore y sea capaz de crear aplicaciones más complejas, es posible que esto tenga un impacto significativo en el mercado de desarrollo de software. Al hacer que sea más fácil crear aplicaciones web, es posible que se reduzca la demanda de programadores experimentados.

Por otro lado ¿Cómo será el futuro de la programación si cualquiera puede crear una aplicación web en un instante? ¿tendremos miles de apps muy parecidas y pocos programadores que decidan dedicarse a este mundo? ¿Tendremos un verdadero boom en innovación al ver cómo las ideas se transforman en productos sin necesidad de acudir a programadores profesionales?


Revisión código-hasten

Lista de verificación para revisión de código: 7 pasos para mejorar tu proceso de revisión

Una revisión de código es cuando alguien que no es el autor inspecciona el código fuente y busca problemas. Ya sea que tengas que realizar revisiones de código o que estés en el extremo receptor, habrás visto las latencias que pueden agregar a tu flujo de trabajo. Afortunadamente, una gran lista de verificación de revisión de código puede acelerar el proceso y aumentar la exhaustividad de las revisiones de código.

Seguir las mejores prácticas de revisión de código puede beneficiar a tu negocio y al producto final. Ya sea que tus revisiones dependan de varias personas, de la automatización o de la retroalimentación asincrónica, nuestra guía cubre cómo puedes ser un mejor revisor de código. Para ir más allá, compartiremos recursos que todo desarrollador debería tener, incluyendo nuestra plantilla de lista de verificación de revisión de código.

Tabla de contenido:

  • Una lista de verificación de revisión de código completa
  • Plantilla de lista de verificación de revisión de código
  • ¿Cuál es el propósito de las revisiones de código?
  • En qué no enfocarse en una revisión de código
  • Cómo mejorar tu proceso de revisión de código
  • Preguntas frecuentes sobre revisión de código
  • Descubre cómo Pluralsight Flow puede mejorar tus revisiones de código

Una lista de verificación de revisión de código completa

Los desarrolladores senior siguen varias pautas de revisión de código al estudiar el trabajo de alguien. Tienen que considerar el diseño del código, el estilo, la funcionalidad, la complejidad, la nomenclatura y las pruebas. Hay muchas piezas en movimiento en una revisión de código exhaustiva, por eso es tan importante que los revisores de código adopten un enfoque estructurado y meticuloso. Aprovechar nuestra lista de verificación de siete pasos asegurará que no se omita nada.

Verificar los requisitos de la funcionalidad

Cada revisión comienza con una pregunta básica: "¿Este código cumple con lo que el usuario final necesita?" Los desarrolladores que trabajan en un proyecto no están codificando en un vacío. Su programa debe realizar funciones de manera confiable que el usuario espera. Si el desarrollador omitió este paso, pospone la revisión hasta que el código ofrezca el rango completo de características.

Para verificar los requisitos de la funcionalidad, pregúntate:

  • ¿Hay alguna funcionalidad que falte?
  • ¿Hay funciones implementadas deficientemente?
  • ¿Podrían agregar funciones relacionadas que el usuario quisiera?

Evaluar la legibilidad

Incluso si el código hace lo que se anuncia, aún no estás fuera de peligro. Además de cumplir con los requisitos básicos, deseas un código fácil de entender y limpio.

Revisa la legibilidad haciendo estas preguntas:

  • ¿Puedes identificar fácilmente el punto de inicio y finalización del bloque de código?
  • ¿Las líneas pueden ajustarse a una pantalla de computadora portátil estándar (14 pulgadas) o de escritorio (22-24 pulgadas)?
  • ¿El código habla por sí mismo y transmite su propósito?
  • ¿Prioriza la claridad y la brevedad?
  • ¿Evita el lenguaje oscuro?
  • ¿Puedes discernir el papel de funciones,?
  • ¿El desarrollador dividió el código en partes fáciles de entender?

Prueba de mantenibilidad

Con el tiempo, es posible que deba expandir o cambiar su código, por lo que asegurarse de que sea fácil de mantener y ajustar le ahorrará algunos dolores de cabeza.

Hágase estas preguntas para evaluar la mantenibilidad:

  • ¿El código es fácil de probar y depurar?
  • ¿Puedes configurar el código para cambiar rápidamente los valores de los datos?
  • ¿El código está vinculado a otro sistema o a un programa desactualizado?
  • ¿El código se basa en funciones o tecnología que desea eliminar?

Verifica las vulnerabilidades de seguridad

El código perfectamente funcional aún puede presentar vulnerabilidades que su desarrollador estaba demasiado ocupado para notar. Si bien un programador privado de sueño puede pasar por alto algunos riesgos de seguridad , los revisores de código no pueden arriesgarse a que alguien explote su código.

Para evitar vulnerabilidades de seguridad, haga estas preguntas:

  • ¿El código utiliza herramientas obsoletas o con problemas de seguridad conocidos?
  • Si quisiera robar datos o acceder a un sistema, ¿ve vulnerabilidades?
  • ¿El código aprovecha la autenticación y la autorización para la seguridad?
  • ¿Se desinfecta la entrada del usuario para evitar ataques de seguridad?
  • ¿El código almacena de forma segura los datos del usuario?
  • ¿El código protege P2 u otros datos relacionados con el RGPD ?

Considera la velocidad y el rendimiento

Sus problemas no terminan con la seguridad; el usuario sigue esperando un rendimiento fiable. Los revisores de código también deben sopesar el consumo de recursos de un programa frente a su velocidad. Equilibrar estas prioridades no siempre es fácil, pero un gran código debe marcar ambas casillas.

Hágase algunas preguntas para evaluar la velocidad y el rendimiento:

  • ¿El código contiene concatenaciones de cadenas, registros o asignaciones de objetos ineficientes?
  • ¿Puedes ver el código duplicado que no necesitas?
  • ¿El programa afectará negativamente el rendimiento general del sistema?
  • ¿El código se basa en activos mal optimizados o en varias solicitudes de API?

Confirma la documentación adecuada

La mejor documentación explica qué hace un código base y cómo puede usarlo. Sin embargo, incluso un gran código puede necesitar alguna documentación externa para facilitar su uso.

Para asegurarse de que la documentación esté al día, pregunte:

  • ¿La documentación explica el propósito del código?
  • ¿La documentación le enseña al usuario cómo usar el código?
  • ¿Hay nuevas características o cambios en el código que justifiquen documentación adicional?
  • ¿La documentación es clara y está bien escrita?

Inspecciona las convenciones de nomenclatura

Las convenciones de nomenclatura claras facilitan la lectura y comprensión del código. Cuando los programadores eligen nombres arbitrarios o subóptimos, incluso los grandes programas se vuelven difíciles de entender para los demás.

Puede inspeccionar las convenciones de nomenclatura preguntando:

  • ¿Ha revisado los nombres de variables, constantes, campos de clase, propiedades y métodos?
  • ¿Los nombres son simples y legibles?
  • ¿Los nombres se ajustan a las convenciones de nombres de su empresa?
  • ¿Los nombres transmiten qué es una función o variable?
  • ¿Los nombres explican el contexto o el alcance del código base general?

¿Cuál es el propósito de las revisiones de código?

La ventaja más evidente de las revisiones de código es garantizar que el código incorrecto no llegue a producción. Aún así, hay muchos otros beneficios, como el intercambio de conocimientos, la mejora de la seguridad y el fomento del trabajo en equipo. Los gerentes que realizan revisiones de código también ayudan a las organizaciones a lograr una mayor estandarización.

Beneficios de las revisiones de código: garantice la calidad del código, mejore la seguridad, comparta conocimientos, reduzca los costos de desarrollo

Asegurar código de calidad

Para cuando haya terminado de programar, probablemente esté cansado de mirar las mismas líneas de código. En este punto, es difícil mantenerse objetivo y se corre el riesgo de no cometer errores.

Ahí es cuando un par de ojos frescos ayuda. En primer lugar, te da la tranquilidad de que alguien más detectará cualquier problema en el código fuente mientras preparas un café (o té) muy necesario. Las revisiones también eliminan la depuración al principio del ciclo de vida del desarrollo en lugar de parchear los errores después del lanzamiento.

Compartir conocimientos y mejorar el trabajo en equipo

Aunque pueden parecer un obstáculo durante la producción, las revisiones de código brindan tanto al revisor como al revisor la oportunidad de aprender. Por ejemplo:

  • La persona que revisa el código estudia el código fuente y el estilo.
  • Los autores del código pueden aprender de cualquier comentario compartido y tener la oportunidad de poner en práctica sus lecciones.
  • Ambas partes se benefician de una mejor comunicación.

A través de este proceso, los autores y revisores de código pueden intercambiar ideas, discutir objetivos y desarrollar flujos de trabajo. Además de eso, la colaboración adicional rompe los silos entre el personal.

Mejorar la seguridad

Las revisiones de código seguro ayudan a identificar vulnerabilidades y fallas de seguridad en un proceso manual o automatizado. Los fallos de seguridad pueden dar lugar a:

  • Defectos en etapa tardía
  • Mala calidad en general
  • Menos mantenibilidad con el tiempo
  • Mayor deuda técnica
  • Robo de información del usuario

La prevención de problemas de seguridad por adelantado ahorra tiempo y la reputación de su empresa. Unos pocos minutos adicionales dedicados a verificar la seguridad se pagarán con creces.

Reducir los costos de desarrollo

Las revisiones de código detectan problemas menores que podrían convertirse en problemas importantes. La corrección temprana de errores puede ahorrar costos de desarrollo y ayudar al evaluado a identificar los problemas que debe tener en cuenta. Cuando es rentable y educativo, (literalmente) no puede darse el lujo de saltarse una revisión.

En qué no centrarse en una revisión de código

Hay mejores formas de pasar el tiempo que revisar cada detalle en una revisión de código. Algunas áreas tienen prioridad sobre otras, especialmente cuando busca optimizar su proceso. Con eso en mente, puede evitar centrarse en:

  • Tareas automatizables: incorpore la automatización en su revisión de código para ahorrar tiempo. Con la automatización, puede concentrarse en las tareas que la IA no puede manejar. Solo asegúrese de verificar el trabajo automatizado para evitar problemas de automatización .
  • Estética: si bien la legibilidad es importante, no es necesario llevar demasiado lejos la presentación del código. Manténgalo claro y fácil de seguir, pero no desperdicie recursos en estilo visual.
  • Preferencias personales: estandarice el código según las preferencias de su empresa o equipo, no las suyas. Cumplir con las pautas comerciales hace que el código de todos sea reconocible para los demás miembros del equipo.
Imagen de un gráfico que enumera el código revisa las prioridades de la más importante a la menos importante

Cómo mejorar su proceso de revisión de código

Ahora que sabe qué buscar en una revisión de código, puede perfeccionar el proceso. Hemos resumido algunos consejos para mejorar su proceso de revisión de código:

  • Adopte una guía de estilo: resuelva los debates de estilo adoptando una guía de estilo de código para toda la organización. No solo debe definir elementos superficiales como reglas de espacios en blanco o convenciones de nomenclatura, sino también cómo aprovechar las funciones de cualquier lenguaje de programación.
  • Vea las revisiones de código como tareas de alta prioridad: establezca pautas internas sobre la rapidez con la que debe terminar el código (como un tiempo de respuesta de un día para el código de cierta longitud o más si el código es significativamente más grande).
  • Apunte a comentarios procesables y preguntas de sondeo: en lugar de comentar el código, pregunte al autor por qué formatearon el código de cierta manera o cuál fue la intención detrás de una decisión. Usted está apuntando a un diálogo aquí.
  • Reemplace "usted" con "nosotros": cuando mencione un problema, formatee su respuesta en una declaración "Nos gusta hacer X porque Y". Evite comentarios como: "No siguió nuestras pautas de estilo aquí". Recordarles a los desarrolladores que todos trabajan para el mismo equipo mantiene la moral alta.
  • Apóyate en los principios, no en las opiniones: Apunta a una retroalimentación objetiva basada en marcos o principios de codificación. Esto también proporciona una cultura de aprendizaje para que el autor comprenda mejor el "por qué" detrás de cierta retroalimentación.
  • Concéntrese en los aspectos que aportarán el mayor valor: no se centre en todas las oportunidades para mejorar el código durante una revisión. La perfección es excelente, pero dado el tiempo y el alcance de un proyecto, concéntrese en las áreas que tendrán el mayor impacto.
¿Cómo puedo ser un mejor revisor de código? Critique el código, no al autor. Mantente humilde.

Preguntas frecuentes sobre la revisión del código

¿Todavía tiene algunas preguntas sobre las pautas de revisión de código o qué buscar en una revisión de código? No te preocupes, tenemos respuestas.

¿Cuál es la diferencia entre una revisión de código y un verificador de código?

Los verificadores de código usan software para analizar el código fuente. Algunas organizaciones utilizan verificadores de código durante el desarrollo para acelerar el proceso de revisión y reducir la posibilidad de errores humanos. Este software utiliza análisis estático para revisar el código fuente en busca de errores, errores lógicos, estilo, documentación y sintaxis.

¿Qué herramientas agilizan las revisiones de código?

Los gerentes no tienen que trabajar solos en una lista de verificación de revisión de código seguro. Con las herramientas adecuadas, puede acelerar el proceso. Nosotros recomendamos:

  • Herramientas de análisis de código estático: el análisis estático analiza el código fuente en busca de errores y problemas de seguridad. Usar uno antes de su revisión puede ayudarlo a concentrarse en problemas más difíciles de encontrar.
  • Complementos para correcciones: los complementos para formatear, depurar y sugerir mejores prácticas pueden ayudarlo durante su revisión. Durante la revisión, estos complementos señalan problemas que podría haber pasado por alto.
  • Rastreadores de comentarios de revisión de código: las aplicaciones de revisión colaborativa y las herramientas de seguimiento de comentarios describen quién interactuó con el código y lo cambió. Cuando su revisión pasa por más de una fase, estas herramientas pueden ayudar a organizar el proceso.

¿Qué puntos de referencia y métricas debo tener en cuenta?

Los equipos deben seleccionar métricas o puntos de referencia de ingeniería de software para realizar un seguimiento de la eficacia de sus revisiones de código y su impacto en la calidad del código. Las métricas también brindan a los equipos medidas objetivas para estructurar las revisiones de código.

Las siguientes cuatro métricas son buenos puntos de partida para incluir en su proceso de revisión:

  • Tiempo de reacción: esta métrica ayuda a impulsar la colaboración en proyectos con múltiples desarrolladores. Simplemente registre cuánto tiempo le toma a un revisor responder a un comentario dirigido a él. Los tiempos de reacción más cortos generalmente significan un equipo más colaborador y receptivo.
  • PR no revisados: los líderes consultan los PR no revisados ​​para ver cuánto tiempo espera el código para una revisión por pares después de enviarlo. Los tiempos más cortos apuntan a una canalización efectiva donde las revisiones de código se realizan según lo programado.
  • Relaciones públicas revisadas minuciosamente: esta métrica mide la profundidad de cada revisión. El seguimiento de las relaciones públicas revisadas minuciosamente garantiza que nadie ponga el sello de goma a sus revisiones.
  • PR iterados: puede ver con qué frecuencia las revisiones de código dan como resultado errores corregidos o calidad mejorada a través de PR iterados. Una gran cantidad de PR iterados significa que las revisiones de su código dan como resultado mejoras medibles.

¿Cuántas líneas de código debo revisar a la vez?

Para obtener los mejores resultados, no revise más de 400 líneas de código a la vez. Más que eso, y corre el riesgo de perder errores, fallas lógicas y otros defectos. Mejor aún, si puede limitarse a 200 líneas de código a la vez, tendrá más éxito.


Cómo usar ChatGPT para escribir código

¡Saludos, desarrolladores! ¿Alguna vez has tenido un caso de "bloqueo del codificador" en el que necesitas un poco de ayuda o inspiración para escribir código? ¿O necesitas ayuda para comprender el código que heredó de otra persona? Bueno, ¡estás de suerte! Desde la generación de código repetitivo hasta la depuración o explicación del código existente, ChatGPT es una forma sencilla de ser un desarrollador de software más rápido y eficiente.

ChatGPT de OpenAI cae en la categoría de IA generativa , que es un tipo de inteligencia artificial que genera contenido nuevo o novedoso en función de los datos en los que ha sido entrenado. Eso significa que ChatGPT no solo puede escribir ensayos, chistes y poemas para ti; también puede ser una ayuda para el programador.

Entonces, profundicemos y veamos cómo puede usarlo para trabajar de manera más inteligente, no más difícil.

Tabla de contenido

  • ¿ChatGPT puede escribir código?
  • ¿Debería codificar con ChatGPT?
  • ¿Se puede confiar en la codificación de ChatGPT?
  • ¿Cómo ayuda ChatGPT a aumentar tus habilidades de codificación?
  • ¿De qué otra forma puedo usar ChatGPT como desarrollador?
  • Cómo usar ChatGPT como programador: Ejemplos de avisos de ChatGPT
  • ¿ChatGPT reemplazará a los programadores? ¿Puedo usar ChatGPT para hacer mi trabajo por mí?
  • Conclusión

¿ChatGPT puede escribir código?

Como modelo de lenguaje grande, ChatGPT tiene que ver con el texto. Y ese texto incluye, ¡por suerte para ti!, código. Tiene la capacidad de escribir fragmentos de código en lenguajes de programación populares como JavaScript, Python, C#, PHP y Java. O genere una entrada CSV de muestra para un problema de ciencia de datos. O cree scripts bash o plantillas de infraestructura como código en JSON o YAML. Y mucho más.

Veamos un ejemplo. Tal vez necesite algún código repetitivo para una página index.html simple que diga "Hola mundo". Usando una solicitud de lenguaje natural, puede liberar ChatGPT para resolver este problema.

ChatGPT no solo genera un código (que se puede copiar y pegar), sino que también explica qué está haciendo el código, lo que puede ser especialmente útil si eres nuevo en el idioma.

¿Necesitas diseñar esta página web usando algo de CSS? ¡Preguntemos!

Sé lo que estás pensando: “¿Puedo usar IA para escribir CSS? ¡SÍ! Si me dices que también puede escribir expresiones regulares, estoy totalmente convencido”. (Pista: ¡puede!)

¿Debería codificar con ChatGPT?

Entonces. El hecho de que pueda escribir código con ChatGPT, ¿significa que debería hacerlo ? Hay una variedad de opiniones al respecto. Por un lado, la gente argumenta que usar una herramienta de IA para escribir código te vuelve perezoso e incapaz de pensar por ti mismo. Por otro lado, la gente dice que aprovechar ChatGPT puede convertirte en un programador más rápido, liberando tu tiempo para concentrarte en las cosas más importantes como la arquitectura, las mejores prácticas y los requisitos comerciales.

Puedo ver ambos lados del argumento. Echemos un vistazo a algunos pros y contras.

Los profesionales

  • Es rápido y fácil generar código usando ChatGPT. Si fuera a StackOverflow o Google para encontrar un fragmento de código de todos modos, ¿por qué no acortar la cantidad de tiempo que lleva encontrarlo?
  • Por lo general, ChatGPT obtiene la sintaxis correcta, lo que podría ahorrarle tiempo en la búsqueda de errores en tiempo de compilación o tiempo de ejecución que los humanos podemos introducir si codificamos desde cero.
  • Al usar ChatGPT para la codificación, es posible que se le presenten algunas formas alternativas de hacer cosas en las que no habría pensado de otra manera.
  • ChatGPT hace que sea más rápido y fácil aprender nuevos idiomas y conceptos, con explicaciones y código, todo en la misma interfaz.

Los contras

  • Si bien la inteligencia artificial ha recorrido un largo camino y ChatGPT es francamente alucinante, no es 100% correcto en todo momento. Comete errores como nosotros. Y a veces tiene mucha confianza cuando comete esos errores. Por lo tanto, aún debes verificarlo, probarlo y depurarlo, tal como lo has hecho en el pasado.
  • ChatGPT carece del contexto general de lo que está creando y por qué. Claro, puede proporcionarte un fragmento de código o incluso un archivo de código completo. Pero no entenderá las convenciones o las mejores prácticas para tu proyecto. No sabe cómo ese código interactuará con otro código. No comprende los requisitos de rendimiento, seguridad, privacidad, accesibilidad, etc. Nuevamente, como ser humano, eres el responsable final del código que se envía.

¿Es confiable la codificación de ChatGPT?

Veamos qué tiene que decir ChatGPT sobre su propia confiabilidad.

¡Incluso ChatGPT es consciente de sus propias limitaciones! Así como no confiarías en la funcionalidad de autocorrección de tu teléfono para enviar un mensaje de texto importante, no deberías confiar en ChatGPT para escribir un código perfecto.

Toma la codificación segura, por ejemplo. Recuerda que ChatGPT funciona “aprendiendo” un gran conjunto de datos existentes. En el caso de la versión 3 de ChatGPT, se entrenó con datos hasta fines de 2021. Debido a que el panorama de la seguridad cibernética cambia constantemente y todos los días aparecen nuevas vulnerabilidades, ChatGPT no tendrá la inteligencia más reciente para informar el código que escribe.

ChatGPT no tiene conocimiento de tus requisitos específicos de autenticación, confidencialidad, componentes de terceros, análisis de vulnerabilidades, etc. Podría proporcionarte un código repetitivo con un marcador de posición para las credenciales codificadas. Si no sabe que deben almacenarse en una variable de entorno o en un servicio de administración de secretos, esto es un gran riesgo de seguridad para tu aplicación.

En última instancia, si bien ChatGPT es bueno para escribir fragmentos de código y aplicaciones simples, los desarrolladores humanos tienen el trabajo fundamental de unir las piezas y aplicar las mejores prácticas.

¿Cómo ayuda ChatGPT a aumentar tus habilidades de codificación?

Cuando necesitas aprender un nuevo lenguaje de programación o función, ¿qué haces hoy? Puedes buscar tutoriales, ver cursos, intentar escribir y ejecutar código para ver qué hace. Es probable que esto implique saltar a varios recursos diferentes, lo que puede llevar mucho tiempo. ¿Y cuántas veces encuentras errores al intentar ejecutar el código que encontraste en internet?

ChatGPT puede reducir la cantidad de tiempo que lleva hacer todo esto. Agrega efectivamente información de las muchas fuentes en las que se entrenó y te las presenta en una sola interfaz. También explica lo que hace el código y, a veces, incluso le brinda formas alternativas de hacer las cosas. Es como tener un tutor en tiempo real contigo mientras escribes y lees el código.

Otra gran ventaja de aprender a través de ChatGPT es el hecho de que utiliza el procesamiento de lenguaje natural para la entrada y salida. Es decir, solo haces preguntas en un lenguaje sencillo, como si le estuvieras preguntando a un tutor o a un amigo. No es necesario que conozcas los términos técnicos exactos o la sintaxis para hacer la pregunta.

También puedes refinar y desarrollar tu conversación con el tiempo. Si no entendiste bien un concepto que explicaba, puedes preguntar algo como: "¿Puedes explicar eso de una manera más simple?" O, "¿Puedes explicar eso para un niño de 5 años?" Ser capaz de adaptar las respuestas a tu nivel actual de comprensión es un beneficio bastante notable.

¿De qué otra forma puedo usar ChatGPT como desarrollador?

Hasta ahora, nos hemos centrado en usar ChatGPT para escribir código, pero hay otras formas en las que puede hacerlo más rápido en tu trabajo. Por ejemplo, puede explicarte el código, ayudarte a refactorizar, escribir casos de prueba e incluso corregir errores.

Digamos que encontraste algún código en StackOverflow, pero no entiendes muy bien lo que hace. Pidámosle ayuda a ChatGPT.

¡Y voilá! Una explicación que nos puede ayudar a entender mejor el código.

¿Qué tal obtener ayuda para refactorizar y limpiar nuestro código?

Y veamos un ejemplo más de cómo obtener ayuda con las pruebas unitarias. Le pediremos a ChatGPT que genere pruebas unitarias para la clase Person mencionada anteriormente.

Como puedes ver, hay muchas formas de usar ChatGPT para acelerar las tareas diarias. Como siempre, querrás validar el resultado que le brinda, pero como punto de partida, esto es bastante difícil de superar.

Mira este breve video para conocer formas adicionales de usar ChatGPT como desarrollador.

Cómo usar ChatGPT como programador: Ejemplos de avisos de ChatGPT

A medida que las herramientas de IA se vuelven cada vez más frecuentes en nuestras vidas, la forma de obtener una "ventaja" es saber cómo usarlas de manera efectiva. Para ChatGPT específicamente, eso significa que deberá poder escribir indicaciones efectivas para obtener las respuestas que desea y rápidamente. Aquí hay algunas plantillas que puede usar.

Para escribir código nuevo

Prompt template: Actuar como [función técnica] . Escribe [una descripción de lo que quieres escribir, usando tantos detalles como puedas.]

Ejemplo: actuar como desarrollador front-end. Escribe código para validar un formulario de contacto que incluya nombre, dirección de correo electrónico y mensaje. La dirección de correo electrónico es obligatoria y debe tener el formato de un correo electrónico válido. Si el formulario se envía correctamente, muestra un mensaje de éxito.

Para escribir código nuevo para un conjunto de tecnologías específicas

Prompt template: Actuar como [función técnica] . El conjunto de tecnologías es [describa las diferentes tecnologías que está utilizando] . Escribe [una descripción de las cosas que está construyendo] .

Ejemplo: Actuar como desarrollador full-stack. El conjunto de tecnologías es AWS Lambda, DynamoDB, API Gateway y HTML. Escribe una función Lambda para calcular la suma de dos números ingresados ​​por el usuario y guárdelos en DynamoDB. Escribe un archivo HTML con cuadros de entrada para dos números. Cuando el usuario haga clic en enviar, pase los dos números a API Gateway.

Para depurar código existente

Prompt template: Recibo el siguiente error en mi código [pegue el error] . ¿Cómo puedo arreglarlo?

Ejemplo: Recibo el siguiente error en mi código: Módulo no encontrado: Error: No se puede resolver './app'. ¿Cómo puedo arreglarlo?

Para evaluar diferentes tecnologías.

Prompt template: Actuar como [función técnica] . Describe dos tecnologías diferentes para [realizar alguna tarea] . Dame pros y contras, junto con ejemplos.

Ejemplo: Actuar como analista de datos. Describa dos tecnologías diferentes para hacer análisis de datos exploratorios. Dame pros y contras, junto con ejemplos.

¿ChatGPT reemplazará a los programadores? ¿Puedo usar ChatGPT para hacer mi trabajo por mí?

ChatGPT es muy impresionante y lanzó la "revolución de la IA" a toda marcha, con nuevas herramientas y características que aparecen todos los días. Y debido a que está aprendiendo continuamente a través de los comentarios de los usuarios y nuevos datos, seguirá mejorando cada vez más. Lo que plantea la pregunta: ¿ChatGPT me quitará el trabajo?

Como programador, recuerda que tu trabajo principal es traducir los requisitos comerciales en código. Eso requiere mucho análisis, creatividad, pensamiento crítico, sopesar diferentes opciones, arquitectura, optimización, etc. Los humanos son mucho mejores en esas habilidades que los robots, y no creo que ChatGPT amenace eso.

Además, como hemos visto en los ejemplos anteriores, debes comprender cómo funciona una tecnología para hacer las preguntas correctas y validar las respuestas que le brinda ChatGPT. En otras palabras, debes ser un desarrollador experto para usar ChatGPT de manera efectiva para cosas relacionadas con el desarrollador. Pero dejes que haga el trabajo tedioso que probablemente tengas que buscar de todos modos.

En resumen, creo que ChatGPT se usará para acelerar el trabajo, al igual que IntelliSense, análisis de código estático, autocompletado, verificación de errores en tiempo de compilación, pruebas automatizadas, IDE y otras herramientas para desarrolladores durante años. Es otra herramienta en el kit de herramientas para convertirte en un programador mejor y más rápido.

Conclusión

¡Y eso es todo! Con suerte, ya tienes una buena idea de cómo ChatGPT puede ayudarte a mejorar tus habilidades de desarrollo de software día a día. Ya seas un desarrollador experimentado que quiere escribir menos código, o un novato que quiere aprender un nuevo lenguaje de programación, ChatGPT es una herramienta poderosa para hacerlo realidad. Es como tener un compañero experto programando a tu lado.


Meta pisa el acelerador en la carrera de la inteligencia artificial

A principios de febrero, coincidiendo con la presentación de sus resultados trimestrales, Marck Zuckerberg lanzaba un aviso a navegantes, casi, casi una declaración de intenciones: Meta quiere ser «líder en Inteligencia Artificial (IA) generativa». En un sector marcado por la competencia, con OpenAI, Microsoft o Google apostando fuerte, la antigua Facebook quiere demostrar que no piensa solo en el metaverso y hacerse notar en un campo que, en realidad, lleva explorando desde que en 2013 puso en marcha el grupo Facebook AI Research (FAI).

Ayer la compañía y el propio Zuckerberg quisieron ir más allá y reivindicar su presencia en la carrera de la IA presentando su nuevo modelo: LLaMA.

¿Qué es eso de LLaMA? Las siglas de Large Language Model Meta AI, un modelo de lenguaje que la compañía ha decidido enfocar a los investigadores en el campo, precisamente, de la inteligencia artificial. El matiz es importante. LLaMA se plantea a modo de herramienta para investigadores, no como un sistema con el que cualquiera pueda interactuar, caso de ChatGPT o el nuevo bot de Bing. Meta ha decidido lanzarlo en varios tamaños—65B, 33B, 13B y 7B—, entrenados con diferentes cantidades de tokens y textos en una veintena de idiomas distintos.

«LLaMA-13B supera a GPT-3 (175B) en la mayoría de las pruebas, y LLaMA-65B compite con los mejores modelos, Chinchilla70B y PaLM-540B», asegura Meta, que reconoce, eso sí, que «la tasa de respuestas correctas sigue siendo baja».

¿Y cuál es el objetivo del modelo? Mark Zuckerberg aseguraba ayer que su propósito es «ayudar a los investigadores a avanzar en su trabajo» en el campo de la IA. «Los modelos más pequeños y de mayor rendimiento como LLaMA permiten estudiarlos a otros miembros de la comunidad investigadora sin acceso a grandes infraestructuras, lo que democratiza todavía más el acceso a este campo tan importante y cambiante», reivindica la multinacional en su blog oficial.

Meta asegura que LlaMA requiere «mucha menos potencia y recursos informáticos» a la hora de experimentar con nuevos enfoques, validar trabajos y explorar aplicaciones. “A pesar de los recientes avances en los modelos lingüísticos de gran tamaño, la investigación sigue teniendo un acceso limitado a ellos debido a los recursos necesarios para entrenarlos y ejecutarlos”, subraya.

¿Trabajar en qué? Meta reconoce que los modelos lingüísticos han avanzado en la generación de textos, la resolución de problemas matemáticos o la respuesta de preguntas de comprensión lectora, pero asegura que las restricciones de acceso que ocasionan los recursos necesarios para su entrenamiento ha limitado la capacidad de los investigadores para comprender cómo funcionan: «Han obstaculizado los avances en los esfuerzos por mejorar su solidad y mitigar problemas conocidos, como el sesgo, la toxicidad y el potencial para generar información errónea».

«Aún queda mucho por investigar para hacer frente a los riesgos de sesgo, comentarios tóxicos y alucinaciones en los grandes modelos lingüísticos. Al igual que otros modelos, LLaMA comparte estos retos […]. Al compartir el código otros investigadores pueden probar más fácilmente nuevos enfoques para limitar o eliminar estos problemas en grandes modelos», recalca la antigua Facebook.

¿Es accesible LLaMA? Meta ha publicado su modelo bajo una licencia no comercial centrada en su uso para investigaciones. El acceso, detalla, se concederá “caso por caso” a investigadores académicos que estén afiliados a organismos y laboratorios. Quienes quieran solicitarlo deben enviar una solicitud. ¿El motivo? La compañía quiere «mantener su integridad y evitar usos indebidos».

¿Es importante el contexto? Desde luego. El anuncio de Meta llega poco después de que el propio Zuckerberg reivindicase que aspira a ser «líder en AI generativa» y en plena carrera por el desarrollo de herramientas. A lo largo de los últimos meses Microsoft ha apostado con contundencia por OpenAI y aprovechado el potencial de ChatGPT para dar un impulso a Bing. Mientras, Google presentaba su propia IA conversacional (Bard) y herramientas como MusicLM.

¿Es este el primer movimiento de Meta? No. En noviembre su área de investigación de IA, capitaneada por Yann LeCun, ya lanzó una herramienta de IA orientada a los investigadores y basada también en Large Language Model, LLM: Galactica. «Puede resumir literatura académica, resolver problemas matemáticos, generar artículos Wiki o escribir código científico», aseguraban sus responsables coincidiendo con el lanzamiento de una demo que permitía probarla.

El experimento no salió sin embargo cómo esperaba. Poco después la multinacional se veía obligada a recular y echar el freno a la demostración entre críticas de científicos que aseguraban que en ocasiones las respuestas de Galactica no eran correctas. «Le pregunté sobre cosas que sé y estoy preocupado. En todos los casos estaba mal o sesgado, pero sonaba correcto y con autoridad. Creo que es peligroso», alertaba Michael Black, del Instituto Max Planck. También el nuevo Bing se ha visto en la necesidad hace poco de ajustarse sobre la marcha.

Fuente: Xataka


Clean Code: ¿Qué es y por dónde empezar?

En este artículo vamos a describir la filosofía del Clean Code o Código Limpio, indicando los principios en los que se basa, y a mostrar las múltiples ventajas que tiene su uso y mostraremos ejemplos de código en los que se utilizan estas técnicas.

¿Qué es?

Clean Code es una filosofía utilizada en el desarrollo de software cuyo objetivo es hacer más fácil la lectura y escritura de código. Se basa en la aplicación de técnicas sencillas con las que generamos un código claro e intuitivo que es más fácil de modificar. Es especialmente útil cuando se trabaja en grupo, ya que es posible que tu código lo tenga que modificar posteriormente otra persona.
Escribir código limpio puede implicar tanto escribir más código de lo normal como escribir menos, dependerá de las circunstancias, pero siempre dejará claro lo que quiere conseguir. Las técnicas mencionadas anteriormente se basan en gran medida en el contenido del libro escrito en 2008 por Robert C. Martin y titulado “Clean Code: A Handbook of Agile Software Craftsmanship”. En este libro, se habla acerca de cómo generar código que al estar bien estructurado sea fácil de entender y, por tanto, sea fácil de mantener. Es un libro útil para cualquier desarrollador, independientemente de la experiencia que tenga. Si eres un desarrollador con experiencia seguro que hay detalles que no tenías en cuenta y que puedes poner en práctica para mejorar. Sin duda resultará mucho más útil para desarrolladores de software principiantes porque les proporcionará una buena base para generar un código de calidad.

Principios generales

A continuación, voy a describir las principales reglas en las que se basa el Clean Code:

Nombres descriptivos

La idea de este principio es que las variables, funciones, clases, métodos, etc… tienen que tener un nombre que exprese su intención. Es decir, solo con leer el nombre de un objeto deberíamos saber cuál es su propósito. Puede parecer algo insignificante, pero es muy importante para entender el código. Un ejemplo muy sencillo, pero con el que se entiende bien el concepto es el siguiente: si vamos a declarar una variable para almacenar el campo ZLSCH (vía de pago) de la tabla BSID, no lo llamemos lv_zlsch sino lv_viaPago.
Si, por ejemplo, una función necesita tener un nombre largo para que se entienda su función, adelante con ese nombre. No hay problema porque un objeto tenga un nombre largo, porque así evitaremos tener que adentrarnos en la función para saber qué es lo que hace. Para la nomenclatura de los objetos, podemos usar la práctica de escritura CamelCase. Consiste en unir dos o más palabras sin dejar espacios entre ellas y diferenciándolas en que la primera letra de cada palabra la ponemos en mayúscula (excepto la primera).

Regla del boy scout

Este principio es muy simple y consiste, aplicándolo a la codificación, en dejar el código que modifiques más limpio que como lo encontraste. Es decir, si modificas un código y ves cosas que no cumplen con el Clean Code, cámbialas para mejorar la calidad del código (aunque no formen parte de tu modificación).

Principio Don’t Repeat Yourself (DRY)

La traducción exacta de este principio sería “No te repitas a ti mismo”. Aplicado al área de la programación, consistiría en un mismo código que se repite en más de un sitio. Es habitual, pero es muy desaconsejable porque empeora la mantenibilidad del código. Además, es más probable que a causa de lo anterior, se produzcan errores, ya que se nos puede olvidar realizar un cambio en todos los sitios en donde esta ese código.
Solución para ello: crear una función que realice ese código y llamarla en todos los puntos donde sea necesario. De esta manera, si posteriormente hay que realizar un cambio solo habrá que hacerlo en un sitio, en la función.

Funciones

Una regla fundamental es que una función realice una sola cosa, y como hemos dicho anteriormente, el nombre de dicha función tiene que indicar cuál es esa cosa. Con ello generamos que cualquier programador pueda saber lo que realiza la función sin tener que mirar su código.
Tiene que ser lo más pequeña posible. Si una función es más grande de lo que debería, lo ideal es generar funciones que hagan distintas partes de ese código. Gracias a ello conseguimos que el código sea más reutilizable.
También es aconsejable usar el menor número posible de argumentos de entrada/salida, facilitando así entender lo que hace una función y también provocará que el tiempo usado para probarla sea menor porque las combinaciones posibles también son menores.
Otro consejo es utilizar siempre excepciones en vez de devolver códigos de error, porque con ellas queda más claro la causa del error sin tener que añadir más código o comentarios.

Estructura del código

Estructurar de manera clara el código provoca que sea más fácil de leer y por tanto de mantener. A continuación, os mostramos ideas de como estructurar el código:

  • Nuestras diferentes variables deben declararse todas juntas al principio de la función, método, etc…
  • Cada sentencia del código debe ir en una línea.
  • Por lo tanto, las sentencias relacionadas deben estar en líneas consecutivas para separarlas del resto de código.
  • Cada grupo de sentencias relacionadas deben separarse por líneas en blanco.
  • Aunque no haya establecido un límite máximo de caracteres por línea, no es aconsejable escribir líneas de código muy largas porque dificulta la lectura rápida del código.
  • Es importante tabular el código correctamente.

Todas estas ideas tan simples pueden mejorar mucho la lectura del código porque ahorramos tiempo a la hora de modificarlo. A la hora de trabajar en un equipo es muy aconsejable que todos sus miembros sigan estas directrices para no perder tiempo a la hora de extender el código.

No penalizar el rendimiento

Cuando se modifica un objeto existente, es importante no hacerlo de manera incorrecta y por tanto penalizando el rendimiento de ese programa, función, método, etc… Para ello, hay que revisar el objeto para ver el mejor sitio posible donde hacer la modificación. A pesar de que eso conlleve algo más de tiempo, es beneficioso a la larga porque nos ahorramos posteriormente tener que revisar el rendimiento de dicho objeto. Después de haber seguido todos los principios del código limpio, revisar ese objeto no nos llevará tanto tiempo como podríamos pensar.

Ventajas de usar Clean Code

Son múltiples las ventajas de usar estas técnicas. A continuación, comentamos algunas de ellas:

  • El código es más fácil de leer para cualquier persona, sobre todo para aquella que no es quien lo ha desarrollo, es muy útil cuando se trabaja en equipo.
  • El código es más fácil de mejorar y por tanto de mantener.
  • Una situación bastante común es, debido a no entender bien el código ya desarrollado, implementar un nuevo cambio añadiendo código al final del objeto. Esto se evita utilizando estas técnicas, ya que el tiempo empleado en ver el punto a tocar es menor si se usan estas técnicas. De esta manera, añadimos el nuevo
    código en el punto correcto y en poco tiempo.
  • La calidad del código aumenta considerablemente y, por tanto, la calidad de nuestro trabajo.
  • Usando estas técnicas, se benefician no solo los demás, sino también nosotros mismos. Piensa que puedes ser tú mismo quien tenga que modificar un objeto (por ejemplo) un año después de la última modificación. ¿Crees que te acordaras de porque escribiste esas líneas de código? De esta manera, solo tendrás que leer el código para entenderlo y podrás realizar las modificaciones sin ningún problema.ç
  • En definitiva, una ventaja esencial es que con estas prácticas generamos código limpio para todo el mundo.

Ejemplos prácticos de Clean Code

Ahora vamos a exponer ejemplos de cada una de las principales reglas del Clean Code:

Nombres descriptivos
En caso de tener que recuperar el campo BUKRS de la tabla de base de datos EVER para posteriormente mostrarlo en un ALV. Nombraremos esa variable con un nombre que nos permita saber que almacena sin tener que ir a ver la descripción de ese campo en la tabla de BBDD. Por tanto, en vez de generar un código como este:

DATA: lv_bukrs TYPE ever-bukrs.
SELECT SINGLE bukrs INTO lv_bukrs
FROM bukrs
WHERE vertrag EQ pi_contrato.

Debemos generar el siguiente:

DATA: lv_sociedad TYPE ever-bukrs.
SELECT SINGLE bukrs INTO lv_sociedad
FROM bukrs
WHERE vertrag EQ pi_contrato.

Otro ejemplo lo podríamos poner para los nombres de las funciones. Al generar una función para obtener el número de orden a partir del número de objeto, tenemos que ponerle un nombre que nos permita saberlo sin tener que entrar a mirar su código. Por tanto, en vez de ponerle el nombre (por ejemplo) “ZGet_aufnr”, deberíamos nombrarla “ZGet_Aufnr_From_Objnr”.

Regla del boy scout
Como ejemplo podría poner el siguiente: tenemos que añadir en un form de un programa una lógica para separar en 2 campos el valor de un campo y su descripción (actualmente se están mostrando concatenados en un solo campo). Y resulta que está obteniendo las descripciones del campo en una tabla interna normal.
¿Te limitarías a realizar tu cambio o mirarías si esta tabla se podría hacer por ejemplo hashed (tabla que es más rápida y por tanto mejora el rendimiento)? En eso consiste esta práctica. Tardarías algo más en hacer el cambio, ¡pero generaras un código de más calidad y más óptimo!

Principio Don’t Repeat Yourself
Hace muy poco tiempo en el trabajo usé este principio. Me pidieron modificar dos funciones para añadir en ambas un cambio consistente en cambiar la unidad de servicio en la operación de Servicios a certificar. La opción más rápida sería haber cambiado ambas funciones añadiendo las llamadas a las BAPI  correspondientes. Sin embargo, de esa manera no hubiera cumplido este principio. Lo que hice fue generar una función Z en donde añadí las llamadas a las BAPI y, posteriormente, en ambas funciones llamé a la nueva función creada.

 


Me llevó algo más de tiempo codificarlo, pero posteriormente gané tiempo porque en las pruebas al tener que realizar cambios, solo tuve que realizarlos en un sitio. Además, de esta manera evité el problema de olvidarme de realizar los cambios en alguna de las dos funciones.

Funciones
Un ejemplo podría ser una función que realice ciertos cálculos aritméticos a partir de campos de una tabla de BBDD y que posteriormente actualice un registro de esa tabla. En vez de generar una sola función que haga ambas tareas, lo ideal en este caso, es generar una función para la actualización del registro y otra función que realice los cálculos aritméticos. Vamos a verlo en código.

FUNCTION ZGET_MODIFY_DUE_DATE.
CLEAR: lv_fecha_base_vencimiento,
lv_dias_descuento.
SELECT zfbdt zbd1t INTO (lv_fecha_base_vencimiento, lv_dias_descuento)
FROM bsik
UP TO 1 ROWS
WHERE lifnr EQ i_proveedor.
ENDSELECT.
CLEAR lv_fecha_vencimiento.
lv_fecha_vencimiento = lv_fecha_base_vencimiento + lv_dias_descuento.
CLEAR ls_info_proveedor.
SELECT SINGLE * INTO ls_info_proveedor
FROM zinfo_proveedor
WHERE lifnr EQ i_proveedor.
IF sy-subrc EQ 0.
ls_info_proveedor-zfecha_vencimiento = lv_fecha_vencimiento.
UPDATE zinfo_proveedor FROM ls_info_proveedor.
IF sy-subrc EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
ENDIF.
ENDFUNCTION.

En vez de crear una sola función con todo ese código, lo ideal es crear dos funciones que hagan cada una de las partes.

FUNCTION ZGET_DUE_DATE.
CLEAR: lv_fecha_base_vencimiento,
lv_dias_descuento.
SELECT zfbdt zbd1t INTO (lv_fecha_base_vencimiento, lv_dias_descuento)
FROM bsik
UP TO 1 ROWS
WHERE lifnr EQ i_proveedor.
ENDSELECT.
CLEAR e_fecha_vencimiento.
e_fecha_vencimiento = lv_fecha_base_vencimiento + lv_dias_descuento.
ENDFUNCTION.
FUNCTION ZMODIFY_DUE_DATE.
CLEAR ls_info_proveedor.
SELECT SINGLE * INTO ls_info_proveedor
FROM zinfo_proveedor
WHERE lifnr EQ i_proveedor.
IF sy-subrc EQ 0.
ls_info_proveedor-zfecha_vencimiento = i_fecha_vencimiento.
UPDATE zinfo_proveedor FROM ls_info_proveedor.
IF sy-subrc EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
ENDIF.
ENDFUNCTION.

Estructura del código
¿Entiendes mejor este código?

IF x_obj-trig-etrg-abrvorg2 EQ '03'.
DATA: lv_status_contrato TYPE ever-bstatus.
CLEAR lv_status_contrato.
SELECT bstatus INTO lv_status_contrato FROM ever UP TO 1 ROWS WHERE vertrag EQ i_ve
IF ( lv_status_contrato EQ '08' OR lv_status_contrato EQ '09' ).
DATA: lv_status_orden_calculo TYPE etrg-trigstat.
CLEAR lv_status_orden_calculo.
SELECT trigstat INTO lv_status_orden_calculo FROM etrg UP TO 1 ROWS WHERE anlage EQ
IF lv_status_orden_calculo EQ '01'.
DATA: lv_mensaje TYPE string.
* No permito la generación del cálculo
CLEAR lv_mensaje_error.
lv_mensaje_error = 'Cálculo de baja a la espera por lectura de ciclo anterior.'.
MESSAGE lv_mensaje_error TYPE 'I'.
RAISE general_fault.
ENDIF.
ENDIF.
ENDIF.

¿O este otro?

DATA: lv_status_contrato TYPE ever-bstatus,
lv_status_orden_calculo TYPE etrg-trigstat,
lv_mensaje TYPE string.
IF x_obj-trig-etrg-abrvorg2 EQ '03'.
8/9
CLEAR lv_status_contrato.
SELECT bstatus INTO lv_status_contrato
FROM ever
UP TO 1 ROWS
WHERE vertrag EQ x_obj-bill-erch-vertrag.
ENDSELECT.
IF ( lv_status_contrato EQ '08' OR lv_status_contrato EQ '09' ).
CLEAR lv_status_orden_calculo.
SELECT trigstat INTO lv_status_orden_calculo
FROM etrg
UP TO 1 ROWS
WHERE anlage EQ x_obj-trig-etrg-anlage AND
abrdats EQ x_obj-pbill-erch-abrdats.
ENDSELECT.
IF lv_status_orden_calculo EQ ’01’.
* No permito la generación del cálculo
CLEAR lv_mensaje_error.
lv_mensaje_error = 'Cálculo de baja a la espera por lectura de ciclo anterior.'.
MESSAGE lv_mensaje_error TYPE 'I'.
RAISE general_fault.
ENDIF.
ENDIF.
ENDIF.

Pues creo que aquí no hay mucho que decir. El segundo código se lee y se entiende mucho más rápido que el primero.

No penalizar el rendimiento
Para mostrar esta práctica se podría poner como ejemplo un cambio a realizar en un programa para mostrar el campo nuevo INVOICING_PARTY de la tabla de BBDD EVER en el ALV de salida que ya genera dicho programa.
Puede que ese programa sea muy extenso y que realice muchos select para la obtención de datos. Y puede que, para no perder tanto tiempo, no revisemos todos esos select y se nos escape que el programa ya busca en esa tabla de BBDD. Añadiríamos otro select a la misma tabla para obtener el nuevo campo. El cambio correcto sería modificar la consulta actual para recuperar también el campo nuevo.
En caso de elegir la opción incorrecta, podemos penalizar mucho el rendimiento. Debido a que no sería solo la nueva consulta a base de datos, sino también una nueva tabla interna para guardar los datos con su consecuente READ TABLE nuevo… Es decir, duplicaríamos muchas sentencias innecesarias. Contamos con una tabla grande puede que aumente considerablemente el tiempo de ejecución y por tanto las quejas de los usuarios. Usando las normas del Clean Code en este programa no se tardaría tanto en entender…

Con todo lo expuesto, podemos concluir que seguir estas prácticas de fácil aplicación mejoran la calidad del código, además de ahorrarnos tiempo al facilitarnos la lectura y por tanto el mantenimiento del código. Estas prácticas son útiles independientemente de la experiencia del programador y permiten que pueda extender el código cualquier persona, aunque no sea el autor.

Fuente: Viewnext


ces-2023

CES 2023: qué nos ha mostrado la mayor feria de tecnología del mundo

El CES, la feria de electrónica de consumo más grande del planeta, ha vuelto otro año más a Las Vegas. Tras una edición presencial algo más descafeinada de lo habitual por las restricciones de la pandemia, más de 2.400 expositores mostraron sus innovaciones tecnológicas entre el 5 y el 8 de enero en los hoteles y los centros de convenciones de la ciudad del Estado de Nevada. Si el 2022 fue el año en el que el metaverso y la tecnología espacial cobraron más fuerza que nunca, en esta edición los protagonistas sean también la Web 3, la salud digital, la tecnología de los alimentos y de los vehículos, la inteligencia artificial y la robótica.

La CTA, la asociación organizadora de la cita, se muestra optimista y espera volver a las cifras prepandemia. Si en 2020 la feria dio la bienvenida a más de 100.000 asistentes, en 2021 se realizó únicamente de forma virtual por la covid-19 y en 2022 recibió a unas 40.000 personas. Ahora la CTA calcula que unos 100.000 asistentes —un tercio de fuera de Estados Unidos— acudirán a la feria, que se celebra desde 1967. Además, el espacio para los expositores crece un 50% y alcanza los 186.000 metros cuadrados. Estas serán las grandes tendencias tecnológicas que se abordarán:

El futuro de Internet

Desde la CTA la describen como “un Internet sin ataduras a los términos y servidores del proveedor de servicios” y “una plataforma ideal para la expansión del metaverso”. “Debido a que estas aplicaciones se basan en blockchain, los sitios Web3 brindan más anonimato y seguridad al usuario que muchos de los sitios web actuales que viven en servidores centralizados”, señala. Pese a que una renovación total de Web2 “está lejos de ser inminente”, varios expertos debatirán sobre los avances de la Web3 y sus ventajas y limitaciones.

Realidad virtual para las fobias y ‘apps’ de meditación

“Los servicios de salud han evolucionado de las visitas virtuales las 24 horas del día los 7 días de la semana, el acceso a farmacias en línea y la entrega rápida de recetas a aplicaciones mejoradas de registros de salud y plataformas de monitoreo remoto de pacientes y acondicionamiento físico y bienestar”, afirman desde la CTA. Otras tecnologías como la realidad virtual pueden ser de ayuda en el tratamiento de la fobia a volar, a las alturas, a las arañas, a los perros o a las agujas.

Cada vez más usuarios afirman estar dispuestos a usar este tipo de tecnologías. Según la CTA, están interesados principalmente en las aplicaciones de meditación y mindfulness, las que monitorizan el sueño, la realidad virtual y aumentada y las plataformas de terapia y asesoramiento en línea. En esta edición del CES, la salud digital es una de las áreas con un mayor crecimiento y se va a debatir sobre todas estas tecnologías, el papel de los gigantes tecnológicos en el sector, el potencial de las pruebas de diagnóstico en el hogar y el futuro de la atención al paciente.

Marisco vegetal y hamburguesas sin carne

De hamburguesas “sangrantes” a salchichas, nuggets y albóndigas que no proceden de animales, además del marisco vegetal. Los productos que imitan la carne y el pescado a base de plantas y hongos están remodelando la industria alimentaria. En 2022 la feria estrenó un área dedicada exclusivamente a la tecnología e innovación de alimentos. Compañías como Moa FoodTech o MycoTechnology exhibieron sus avances en el sector de cara a conseguir una alimentación más sostenible.

En esta edición, además de debatir sobre cómo conseguir proteínas alternativas basadas en plantas, se va a abordar cómo reinventar el sistema alimentario en un planeta cada vez más poblado, el futuro de la agricultura y el papel de los robots y otras tecnologías en el sector. Algo especialmente importante teniendo en cuenta que “la forma en que se preparan y cocinan los alimentos cambiará drásticamente en los próximos 10 o 20 años”. Así lo indica la CTA, que espera que la cuota de mercado de la tecnología alimentaria supere los 342.000 millones de dólares en 2027.

De coches eléctricos a tractores autónomos

Una de las áreas con más crecimiento en esta edición es la tecnología de vehículos. “Con funciones como el control de crucero adaptativo, la prevención de colisiones y la indicación de carriles, la tecnología allana el camino hacia carreteras más seguras”, afirma la CTA. En esta edición, compañías como Bridgestone, Caterpillar y General Motors pretenden exhibir sus soluciones para reducir la contaminación, aliviar la congestión del tráfico y hacer más segura la conducción.

Cada vez más fabricantes y usuarios optan por vehículos eléctricos. Así lo destaca la CTA, que indica que Hyundai ofrecerá 23 modelos de automóviles eléctricos y de hidrógeno para 2025, mientras que Stellantis planea tener 55 automóviles y camiones eléctricos en Estados Unidos y Europa ese mismo año. La asociación organizadora del CES insiste en que en esta categoría no solo se va a debatir sobre automóviles, sino que también va a ganar importancia la tecnología de vehículos marinos y agrícolas. Por ejemplo, los tractores eléctricos autónomos o las máquinas para reducir el uso de herbicidas.

Máquinas que predicen enfermedades y robots

La robótica y la inteligencia artificial han transformado múltiples sectores: desde la movilidad y las entregas hasta la producción y la fabricación. Se trata de un sector en auge. Solo el gasto global en automatización de almacenes fue de 17.500 millones de dólares en 2022, según datos de Prologis citados por la CTA. Múltiples expositores como Aeolus Robotics, Blue Frog Robotics o Gausium pretenden mostrar cómo la inteligencia artificial y la robótica aspiran a revolucionar el transporte, las tareas del hogar o la recreación.

En el CES, también se debatirá hasta qué punto la inteligencia artificial jugará un papel decisivo en otros campos como el de la salud y el del procesamiento del lenguaje natural. Mientras que algunas máquinas ya pueden predecir el riesgo de sufrir enfermedades mejor que los propios humanos, herramientas como ChatGPT —que consiguió más de un millón de usuarios en apenas cinco días tras su lanzamiento— ponen de manifiesto el potencial de este tipo de tecnologías.

Fuente: El País


supercookie

La ‘supercookie’ de Telefónica, Orange y Vodafone va en serio: piden permiso a la UE para usarla.

Cuatro de las mayores operadoras de Internet de Europa (Telefónica, Orange, Vodafone y Deutsche Telekom) han solicitado autorización a la Unión Europea para formar una ‘joint venture’ destinada a lanzar TrustPid, la ‘supercookie de las telecos’, capaz de rastrear por donde navegas (y así facilitar la personalización de la publicidad online) sin revelar tu identidad real.

TrustPid, una creación de Vodafone, en España lleva desde el pasado verano siendo probado también por Movistar y Orange, pero sólo ahora comenzará a ser explotado masivamente a nivel comunitario (siempre y cuando la UE conceda el pertinente permiso).

Este nuevo sistema se basa en el uso de tokens: cada token actúa como equivalente pseudonimizador de un único usuario. Por supuesto, que no se proporcione el nombre del usuario no significa que la acumulación de datos sobre sus gustos no pueda permitir deducir su identidad: dicho conjunto de datos no llegaría a manos de los anunciantes… pero sí de las propias operadoras.

Hasta ahora, la web española de TrustPid permite deshabilitar el servicio… pero sólo durante 90 días, tras los cuales será necesario volver a desactivarlo. En realidad, no es posible bloquearlo mediante un adblock ni recurrir al enmascaramiento de direcciones IP, porque TrustPid se implementa a nivel de proveedor de servicio.

Conoceremos la respuesta de la UE el 10 de febrero, como muy tarde

Como describía el pasado verano Patrick Breyer, del Partido Pirata Alemán:

«La creación de perfiles de personalidad, que incluso cubren opiniones políticas, orientación sexual o condiciones médicas, son un riesgo para la privacidad pero también para la seguridad nacional, donde los funcionarios pueden ser chantajeados, y también para la democracia, donde las elecciones y los referéndums pueden ser manipulados».

«Una identificación única permitiría monitorear toda nuestra vida digital. Estos esquemas son totalmente inaceptables, y los juicios deben detenerse».

Ahora, la solicitud presentada a la UE por Deutsche Telekom, Telefónica, Orange y Vodafone presenta así su proyecto:

«La joint venture podrá ofrecer una solución de identificación digital basada en la privacidad para respaldar el marketing digital y actividades publicitarias de marcas y editores. Sujeto al consentimiento explícito del usuario proporcionado a una marca o editor (solo con la opción de participar), generará un seguro, pseudonimizado token derivado de una identidad interna seudónima cifrada/hash vinculado a la identidad de un usuario cuya suscripción de red será proporcionada por los operadores de red participantes».

Cuate, aquí hay… negocio

Hoy en día, el negocio de la publicidad online está en manos de las grandes tecnológicas, como Google y, en menor medida, de Meta y Apple… mientras las operadoras que mantienen la infraestructura de acceso a la red ven cómo en los últimos años han ido reduciéndose progresivamente sus márgenes de beneficio.

Eso, unido al vacío que queda en el ámbito de la ‘publicidad orientada a intereses’ gracias a la desaparición inminente de las cookies de terceros (gracias al rechazo de los principales navegadores), ha animado a las operadoras a intentar hacerse ahora con su parte del pastel.

¿Bloqueables o no?

Hemos comentado que la ‘prueba piloto’ realizada estos últimos meses en España permitía sólo pausar las supercookies durante 90 días. Ahora, el documento presentado por las operadoras a la UE habla de «un portal de privacidad de fácil uso» en el que los usuarios «podrán revisar a qué marcas y editores han dado su consentimiento y retirarlo». Entonces, ¿por qué nos estamos preguntando si TrustPid será o no bloqueable?

La cuestión es que, con lo que sabemos por ahora, el usuario quedará en manos de las operadoras, y deberá fiarse de que los permisos de tipo temporal (ahora) y según anunciante (en un futuro cercano) se cumplan tal y como estas empresas prometen… pero lo relevante es que no hay ningún mecanismo que permita al usuario (en caso de que desconfíe) asegurarse de que dichas cookies quedan efectivamente bloqueadas, porque su implementación se realiza a nivel de infraestructura de conexión, no de navegador/PC.

Fuente: Genbeta y BandaAncha


Las 10 tecnologías que marcarán el 2023

Optimizar, escalar y ser pioneros son las premisas que la consultora Gartner identifica que deben tener las tecnologías que implementen las compañías. Para ello, cree que hay 10 tendencias estratégicas que despuntarán en 2023. “Las industrias se verán afectadas por las expectativas y regulaciones ambientales, sociales y de gobernanza, que se traducen en la responsabilidad compartida de aplicar tecnologías sostenibles”, dice David Groombridge. “Cada inversión deberá compensarse con su impacto en el medio ambiente teniendo en cuenta a las generaciones futuras”.

Estas son las principales tendencias que ve la consultora:

Sostenibilidad

En una encuesta reciente, los directores ejecutivos informaron que los cambios ambientales y sociales ahora son una de las tres prioridades principales para los inversores, tras las ganancias y los ingresos. Esto significa que deben invertir más en soluciones innovadores para cumplir con sus objetivos de responsabilidad social. Para ello, se necesita un nuevo marco de tecnología que aumente la eficiencia energética y material de los servicios de TI, permita la trazabilidad, el análisis, la energía renovable y la inteligencia artificial (IA), e implemente soluciones de TI para ayudar a los clientes a alcanzar sus propias metas.

Metaverso

La firma de análisis define el metaverso como un espacio colectivo compartido en 3D, creado por la convergencia de una realidad física y digital virtualmente mejorada. Gartner cree que el metaverso completo será independiente del dispositivo y no será propiedad de un solo proveedor. Tendrá una economía virtual propia, habilitada por monedas digitales y NFT. Para 2027, más del 40% de las grandes organizaciones de todo el mundo usarán una combinación de Web3, realidad aumentada en la nube y gemelos digitales en proyectos de este tipo.

 

Superaplicaciones

Una superaplicación combina las características de una aplicación, una plataforma y un ecosistema en un solo software. No solo tiene su propio conjunto de funcionalidades, sino que también proporciona la posibilidad de que terceros desarrollen y publiquen sus propias miniaplicaciones. Para 2027, más del 50% de la población mundial será usuaria a diario de estas soluciones.

 

Inteligencia artificial

Los sistemas de IA adaptativa tienen como objetivo volver a entrenar continuamente los modelos y aprender dentro del tiempo de ejecución y los entornos de desarrollo en función de nuevos datos para adaptarse rápidamente a los cambios en las circunstancias del mundo real que no se previeron o no estaban disponibles durante el desarrollo inicial. Utilizan comentarios en tiempo real para cambiar su aprendizaje de forma dinámica y ajustar los objetivos.

 

Sistema Digital Inmunológico (DIS, de sus siglas inglesas)

El 76% de los equipos responsables de productos digitales ahora también lo son de la generación de ingresos. El CIO está buscando nuevas prácticas y enfoques en sus equipos que puedan adoptar para ganar valor comercial, además de mitigar riesgos y aumentar la satisfacción del cliente. Un sistema inmune digital proporciona esa hoja de ruta ya que combina información basada en datos sobre las operaciones, pruebas automatizadas y extremas, resolución de incidentes, ingeniería de software dentro de las operaciones de TI y seguridad en la cadena de suministro de aplicaciones para aumentar la resiliencia y la estabilidad de los sistemas.

 

Observabilidad aplicada

Los datos visibles u observables reflejan todos los recursos digitalizados, como registros, seguimientos, API, tiempo de permanencia, descargas y transferencias de archivos… La observabilidad aplicada retroalimenta estos recursos en un enfoque altamente orquestado e integrado para acelerar la toma de decisiones.

 

Gestión de confianza, riesgo y seguridad para la IA

Muchas organizaciones no están bien preparadas para gestionar los riesgos de la IA. El 41% ha experimentado una violación de la privacidad de la IA o un incidente de seguridad. Sin embargo, los que lo hicieron bien lograron mejores resultados en sus proyectos de IA ya que muchos más pasaron de prueba de concepto a producción.

 

Plataformas industriales a escala en la nube

Estas ofrecen una combinación de SaaS, Paas e IaaS que proporcionan conjuntos específicos para respaldar casos de uso comerciales. Las empresas pueden usar las capacidades empaquetadas de las plataformas de la nube como componentes básicos para componer iniciativas comerciales digitales únicas y diferenciadoras.

 

Ingeniería de plataforma

Es la disciplina de construir y operar plataformas internas de desarrollo de autoservicio para la entrega de software y la gestión de su ciclo de vida. Su objetivo es optimizar la experiencia del desarrollador y acelerar la entrega de valor al cliente por parte de los equipos de productos.

 

El valor de lo inalámbrico

Si bien ninguna tecnología individual dominará, las empresas utilizarán un espectro de soluciones inalámbricas para atender todos los entornos, desde el WiFi en la oficina, pasando por servicios para dispositivos móviles, hasta servicios de bajo consumo e incluso conectividad de radio. Para 2025, el 60% de las empresas utilizará cinco o más tecnologías inalámbricas simultáneamente.

Fuente: ComputerWord