A utilização da programação orientada ao objeto (POO) simplifica muito a manutenção de sistemas pela facilidade que ela oferece na reutilização de códigos. Por uma questão de padronização, nossos sistemas possuem uma pasta específica, onde todo os executáveis, bibliotecas e rotinas ficam instaladas. Mas estudando um pouco mais os conceitos de herança e aplicando os conhecimentos que adquiri com a POO, comecei a pensar de uma maneira diferente.
Há algum tempo atrás eu não imaginaria que em uma mesma pasta, por exemplo, poderiam estar instalados um sistema de folha de pagamento, um sistema financeiro, um sistema contábil e um sistema de controle de estoque, por exemplo. Normalmente, cada sistema teria a sua pasta específica. Mas para usufruir de tudo o que a POO me oferece, hoje eu penso que esses sistemas deveriam estar todos em uma mesma pasta. Dessa forma, um objeto criado para um determinado sistema poderia ser utilizado nos outros sistemas, com um aproveitamento total de códigos. Pensando mais além, os objetos criados pelos sistemas seriam independentes. Não pertenceriam a um sistema específico.
Um exemplo desse meu pensamento seria um objeto Cheque. Um objeto Cheque poderia ser utilizado tantono sistema financeiro como no sistema de folha de pagamento. Pensando no cheque como um objeto, isso é perfeitamente possível desde que sejam fornecidos ao objeto Cheque, todas informações necessárias para a sua criação: Banco, Conta-Corrente, Numero, Valor, Data e Nominal.
invoke umCheque "setarBanco" using umBanco
invoke umCheque "setarContaCorrente" using umaContaCorrente
invoke umCheque "setarNumero" using wsNumero
invoke umCheque "setarValor" using wsValor
invoke umCheque "setarData" using wsData
invoke umCheque "setarNominal" using wsNominal
invoke umCheque "gravar" returning wsBool
Não importa, então, qual sistema vai fazer uso do objeto Cheque. Ele por si só, é um objeto independente, que pode ser utilizado por qualquer sistema que o necessite. Pensando dessa maneira, uma empresa que desenvolve software poderia ter diversos tipos de objetos independentes de qualquer sistema. Penso que em um determinado momento, a criação de um novo sistema seria nada mais, nada menos, do que juntar os objetos e criar os relacionamentos entre eles. Isso tudo é possível. E já está acontecendo por aqui.
Estou preparando um curso de POO que vai mostrar todo o lado conceitual da POO e também o lado prático, para quem desenvolve software utilizando o Microfocus NetExpress. Serão duas apostilas, com muitos exemplos de como utilizar os recursos da POO. Terei disponibilidade para viagens nos finais de semana, por isso, pretendo montar algumas turmas em regiões próximas ao Estado de São Paulo. Assim que o curso estiver montado e pronto, vou divulgar aqui no blog.
Há algum tempo atrás eu não imaginaria que em uma mesma pasta, por exemplo, poderiam estar instalados um sistema de folha de pagamento, um sistema financeiro, um sistema contábil e um sistema de controle de estoque, por exemplo. Normalmente, cada sistema teria a sua pasta específica. Mas para usufruir de tudo o que a POO me oferece, hoje eu penso que esses sistemas deveriam estar todos em uma mesma pasta. Dessa forma, um objeto criado para um determinado sistema poderia ser utilizado nos outros sistemas, com um aproveitamento total de códigos. Pensando mais além, os objetos criados pelos sistemas seriam independentes. Não pertenceriam a um sistema específico.
Um exemplo desse meu pensamento seria um objeto Cheque. Um objeto Cheque poderia ser utilizado tantono sistema financeiro como no sistema de folha de pagamento. Pensando no cheque como um objeto, isso é perfeitamente possível desde que sejam fornecidos ao objeto Cheque, todas informações necessárias para a sua criação: Banco, Conta-Corrente, Numero, Valor, Data e Nominal.
invoke umCheque "setarBanco" using umBanco
invoke umCheque "setarContaCorrente" using umaContaCorrente
invoke umCheque "setarNumero" using wsNumero
invoke umCheque "setarValor" using wsValor
invoke umCheque "setarData" using wsData
invoke umCheque "setarNominal" using wsNominal
invoke umCheque "gravar" returning wsBool
Não importa, então, qual sistema vai fazer uso do objeto Cheque. Ele por si só, é um objeto independente, que pode ser utilizado por qualquer sistema que o necessite. Pensando dessa maneira, uma empresa que desenvolve software poderia ter diversos tipos de objetos independentes de qualquer sistema. Penso que em um determinado momento, a criação de um novo sistema seria nada mais, nada menos, do que juntar os objetos e criar os relacionamentos entre eles. Isso tudo é possível. E já está acontecendo por aqui.
Estou preparando um curso de POO que vai mostrar todo o lado conceitual da POO e também o lado prático, para quem desenvolve software utilizando o Microfocus NetExpress. Serão duas apostilas, com muitos exemplos de como utilizar os recursos da POO. Terei disponibilidade para viagens nos finais de semana, por isso, pretendo montar algumas turmas em regiões próximas ao Estado de São Paulo. Assim que o curso estiver montado e pronto, vou divulgar aqui no blog.
Um comentário:
Cara, esse é o futuro pelo que eu vejo. Hoje isso já tem até nome, SOA, ou Arquitetura Orientada a Serviços.
A idéia é a mesma, desenvolver serviços com baixo acoplamento ( independentes ) e depois montar os sistemas juntando esses serviços, como num jogo de LEGO. =o)
Comentário atrasado hein... Mais li o post, achei bacana.
Abraço xará !
Postar um comentário