Seguridad nula de Kotlin. Pensé en una característica asesina

Habiendo conocido el lenguaje Kotlin por primera vez después de mucho tiempo trabajando con Java, me hizo retroceder la idea de que la seguridad nula puede ser útil y, en general, una variable sin nulo es una primitiva, pero yo mismo no me di cuenta eso.





Cómo se manifestó:





  1. No conviene trabajar con variables y campos, que no pueden tener nulos. Bueno, ni siquiera entendí cómo algo no puede ser nulo.





  2. No es conveniente trabajar con tipos que aceptan valores NULL. Maldita sea ?: !!





En general, el tiempo pasó, poco a poco me fui acostumbrando a que null podría no existir, incluso intenté hacer algo idiomático en mi opinión: valores por defecto en forma de objeto ... En general, todo esto me llevó a la depresión y tenía muchas ganas de volver a escribir en Java, ya que estoy acostumbrado a vivir con null. Con el paso del tiempo, ya empecé a vivir normalmente con Kotlin's not nullable, como amigo un día volví a Java ... Y al rato me di cuenta de una cosa:





Cuando trabajo con código heredado (bueno, este es todo el código que generalmente se escribe), entonces no entiendo dónde puede ser nulo y dónde no, qué me hace cambiar de contexto de implementar la lógica empresarial a descubrir : ¿puede haber nulo?





Considere los sintéticos: Tenemos una entidad de número de teléfono con campos: un número, un código de ciudad internacional y un prefijo (bueno, +7, +3, etc.), fue escrito antes que nosotros, hay un mapeo a la base de datos, en general, todo está según los cánones del sangriento. Para negocios, los 3 campos del número de teléfono deben ser.





Si estoy en Java, cuando trabajo con esta entidad tengo muchas opciones sobre cómo usarla:





  1. Úselo como está, sin pensar en lo que está mal con null (la producción lo resolverá si arreglamos el error)





  2. Vaya a la base de datos y observe la restricción, asegurándose así de que null no pueda estar allí y pueda usar esta entidad de manera segura sin verificaciones.





  3. Con las anotaciones @NotNull en su lugar , presione Ctrl + Q para ver la descripción.





  4. Procese todos los campos, asumiendo que nulo puede estar en todas partes.





  5. Escriba su propio código, luego trate con el potencial nulo.





  6. Todavía puedes pensar en opciones ...





, , , 5 - , . , NPE.





:





  1. null .





  2. null.





, .





, Java , : , , , !! ?:





Bueno, y una vez más sobre la propiedad de seguridad nula en sí: esto no es una cuestión técnica, más bien se trata de negocios, si en mi negocio algún valor no puede ser nulo, déjelo caer en las primeras etapas, en lugar de vivir con algunos algo nulo ...








All Articles