| 1 | == Depreciação (deprecation) == |
| 2 | |
| 3 | A depreciação de classes e métodos pode ocorrer quando eles são considerados em desuso (ou desatualizados) em um sistema, ou API.[[BR]] |
| 4 | A utilização desses ítens deve ser evitada pois se tornarão obsoletos em versões futuras e devem ser rotulados com a notação '''@deprecated'''.[[BR]] |
| 5 | Portanto, sistemas novos não devem os utilizar e sistemas antigos, que fazem uso dessas classes e métodos, devem ser modificados para que usem seus substitutos e, assim, continuem funcionando normalmente. |
| 6 | |
| 7 | Existem várias razões para que uma funcionalidade caia em desuso, como por exemplo: |
| 8 | * é insegura |
| 9 | * possui um bug |
| 10 | * é ineficiente |
| 11 | * será removida em versões futuras |
| 12 | * proporciona más práticas de programação |
| 13 | |
| 14 | Detectada a necessidade de depreciar uma classe ou método, deve-se avisar os desenvolvedores e prover-lhes uma alternativa para que possam substituir o uso da funcionalidade depreciada em seus códigos.[[BR]] |
| 15 | Porém, cabe aos próprios desenvolvedores certificarem-se que o uso da opção sugerida é realmente adequada ao seu sistema e efetivarem a alteração necessária em tempo para que seus usuários não sejam prejudicados. |
| 16 | [[BR]][[BR]] |
| 17 | |
| 18 | == No Workflow == |
| 19 | |
| 20 | No módulo Workflow do Expresso, foi implementada uma função ([http://trac.expressolivre.org/ticket/446 ver ticket #446]) para alertar os desenvolvedores a respeito dos métodos depreciados. |
| 21 | Ela deve ser chamada pelo método depreciado e, além de apresentar uma mensagem de ''warning'' na tela, também registra em arquivo de log quando esse método é utilizado. |
| 22 | Essa mensagem pode sugerir a classe e método que devem ser usados como substitutos aos ítens depreciados. |
| 23 | |
| 24 | Notando-se a necessidade de depreciação de uma classe ou método no Workflow, o procedimento a seguir deverá ser adotado: |
| 25 | * desenvolver o novo ítem que substitua o depreciado |
| 26 | * rotular o ítem depreciado com ''"@deprecated X.Y"'', onde X.Y é a versão dessa depreciação |
| 27 | * adicionar a chamada da função ''"wf_warn_deprecated_method('__classe__', '__método__')"'' na primeira linha do método depreciado, informando a classe e método substitutos, quando necessário |
| 28 | * essa função mostra um alerta na tela (caso esteja habilitado) e registra em arquivo de log |
| 29 | * monitorar log para verificar se há processos desatualizados |
| 30 | * caso haja, entrar em contato com os desenvolvedores responsáveis comunicando a futura remoção das depreciações e solicitando a atualização do seu código |
| 31 | * efetuar a remoção dos códigos depreciados depois de duas versões intermediárias |
| 32 | * no caso de ''"@deprecated 1.1"'', a remoção ocorrerá na versão 1.3, por exemplo |