Tipificación de objetos más estricta basada en clases

Con 4D 20 R10, la tipificación de objetos da un gran paso adelante, dándole más confianza y control en su código. En lugar de simplemente comprobar si un valor es un objeto, 4D ahora verifica que es una instancia de una clase específica. Esto desbloquea un autocompletado más inteligente, validación en línea y comprobaciones de compilación más estrictas, ayudándole a detectar errores a tiempo y a escribir un código más claro y fácil de mantener.

Las ventajas no se limitan a las variables y los resultados de las funciones. Esta mejora también se aplica a su modelo de datos: ahora puede asignar una clase definida por el usuario o nativa (como el nuevo 4D.Vector para su implementación AI) directamente a un campo de objeto en el editor de estructura. 4D entiende entonces la forma completa del objeto, desde el tiempo de diseño hasta el tiempo de ejecución, permitiendo una experiencia de desarrollo más segura y fiable.

Campo de objeto tipado HDI

CoNTROLes de LA sintaxis y DEL compilador para LOS atributos de LOS campoS de objetoS

4D verifica ahora el tipo de objeto en los siguientes lugares:

  • en el Editor de código, mientras se escribe

  • compilador, durante la comprobación completa de la sintaxis

El uso incorrecto de objetos o errores tipográficos aparecerán ahora como advertencias o errores tempranos, aumentando la fiabilidad durante la refactorización y depuración.

Nota: puede asignar un objeto de una clase a un objeto de otra clase, siempre que una clase herede de la otra. Esto permite tanto el upcasting (asignar una subclase a una variable de la clase padre) como el downcasting (convertir una clase padre en una subclase, cuando sea apropiado). Por ejemplo, como la clase Dog hereda de la clase Animal, puede escribir ambas con seguridad:
var $animal:cs.Animal:=cs.Dog.new()  // upcasting
// or
var $dog:cs.Dog:=cs.Animal.new()  // downcasting

Definir una clase para los campos de tipo objeto

Cuando declara un campo de tipo objeto en su estructura de datos, el inspector del editor de estructura incluye ahora un nuevo campo de entrada Classe. Esto le permite asociar el campo con una clase específica, como un objeto comercial o una clase nativa 4D.

Por ejemplo, puede asignar el tipo 4D.Vector a un campo llamado Vector:

blank

Nota: el campo Clase sólo está disponible cuando se trabaja en modo proyecto.

Editor de código más inteligente: Autocompletado de atributos

Gracias a la asociación de clases, el editor de código ahora sugiere atributos definidos en la clase especificada cuando se escribe código que involucra el campo objeto.

blank

Conclusión

Esta actualización representa una importante mejora en el tratamiento de los campos objeto en 4D. Al soportar una tipificación más estricta con las clases, 4D le ofrece una experiencia de desarrollo más robusta, mantenible e inteligente, desde el diseño de la estructura hasta la ejecución en tiempo de ejecución.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.