Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Tag de "deprecated" en un método
Autor Mensaje
Fly Sin conexión
Secretario de la SAE
estado sólido
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 573
Agradecimientos dados: 119
Agradecimientos: 196 en 64 posts
Registro en: May 2011
Mensaje: #1
Tag de "deprecated" en un método
Hola como va?

Actualmente estoy laburando en un sistema Python.
Me acabo de enterar, después de muchos años de programar en diferentes lenguajes, que existe un tag de "deprecated" que se utiliza en muchos lenguajes en general.

En Python simplemente es un decorador llamado "@deprecated".
Aparentemente cuando se actualiza un sistema y un método se deja de usar y, en su lugar, se desarrolla uno nuevo, se opta por dejar el método viejo para mantener "la compatibilidad hacia atrás" (o sea, que no sea necesario refactorizar todo el sistema por ese cambio, o que ciertas dependencias puedan seguir usando la firma vieja) con un tag de "deprecated", el cual le advertiría al usuario con un Warning que ese método está quedando obsoleto y que hay otro mejor incorporado.

¿Saben cuán común es esto y si existe una linea de fundamentos a seguir para plantear si un método se lo debe "deprecar" o no?

Creí que era una práctica rara o poco común, pero después de hablarlo con algunos compañeros parece que estaba algo equivocado.

Saludos!

Post patrocinado por:
-- http://flyreviews.blogspot.com --
14-06-2018 15:05
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rulo Sin conexión
Ultra Nerd Mod
By demons driven!
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4.364
Agradecimientos dados: 51
Agradecimientos: 62 en 37 posts
Registro en: Apr 2009
BlogSpot
Mensaje: #2
RE: Tag de "deprecated" en un método
Es práctica común para no romper compatibilidad y avisarle al usuario "che, no uses esto porque en la proxima version de la API lo vuelo".
Asumiendo que en la siguiente versión realmente elimines la función deprecada, claro.

Cita:Absolve me, save my reign
Have you forgotten me?
14-06-2018 18:00
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Desert69 Sin conexión
Presidente del CEIT
Sin estado :( / "Anarquia...
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 2.452
Agradecimientos dados: 222
Agradecimientos: 327 en 200 posts
Registro en: Jun 2008
Mensaje: #3
RE: Tag de "deprecated" en un método
Las APIs cambian, porque los sistemas cambian.

Para manejar los cambios de versiones de manera más feliz, inventaron Semantic Versioning.

Es un estándar que pretende ponernos de acuerdo para comunicar qué esperar al cambiar de versión de un software.

La idea es que los cambios de API que rompen compatibilidad hacia atrás (como los que describís) ocurren únicamente al cambiar de versión major (es decir, al pasar de 2.x a 3.0, ponele). En los minors (de 2.3.x a 2.4.0) metés APIs _nuevas_, sin romper las que estaban. Y el los patchs (de 2.3.2 a 2.3.3) únicamente arreglas bugs.

Si estás en, digamos, 2.1.4 y querés cambiar la firma de un método público pero "de a poco", lo que hacés es crear un nuevo método con la nueva firma, deprecar el viejo, y sacar 2.2.0: el código que funcionaba contra 2.1.4 sigue funcionando, pero el código que use las novedades de 2.2.0 (el método que acabás de crear) no funciona con versiones previas.

Después de un tiempo de tener el coso ese deprecado, en que fuiste avisando a tus usuari@s que dejen de usar el método viejo y pasen al nuevo, podés sentirte libre de hacer mierda el método viejo. Como ese cambio hace que el código viejo deje de andar, ahí tenés un nuevo major: 3.0.0.


Cuánto tiempo/versiones dejar con el código deprecado es una decisión tuya. Va a depender, principalmente, de cuán difícil sea migrar de un método a otro para tus usuari@s, y de cuánto te cueste a vos mantener ambas versiones andando.

[Imagen: a2.php]
[Imagen: 971aa6599664453c05cb3e42d58bbc0eo.jpg]
14-06-2018 18:17
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.