Como ser um pogramador Delphi pofissional?

Delphi

06/07/2009

Salve Delphianos!!!

Gostaria de saber de vcs qual o caminho para chegar a ser um programador Delphi profissional e quais as ferramentas necessárias que devo adquirir. Atualmente trabalho como suporte em desktop windows.

Como free desenvolvo alguns aplicativos para processamento de dados para algumas empresas de mala direta como relatórios, cartas personalizadas com boleto-bancário. Desenvolvi também um aplicativo e emissão de Nota Fiscal com DBExpress e Firebrd.

Estou cansado de desenvolver só de vez em quando e muitas vezes ainda levo calote. :oops:

Por onde começar? Qual o percurso a seguir?

Desde já agradeço a todos e um grande abraço.


Nilsinho

Nilsinho

Curtidas 0

Respostas

Facc

Facc

06/07/2009

não entendi direito. como assim ser profissional em Delphi?

se vc quer ser o TOP em programação, tem que ´comer´ livros e estar sempre atualizado nas novidades.


GOSTEI 0
Osocram

Osocram

06/07/2009

Amigo,
1) Acho que o primeiro passo vc ja deu, que é aprender a programar.
2) Interessante ter uma facul ou uma pos direcionada a isso.
3) Começar a aprender OOP, saber programar é uma coisa, saber programar bem e estruturado é outra. Mais ou menos 80¬ pensar e 20¬ codificar.
4) A tendencia esta mostrando o futuro é OOP, na verdade isso ja é o presente. Então comece desde agora a aprender isso.
5) Aprenda padrões de projeto.
6) Quando começar a estudar isso vai ver algumas ferramentas importante para DER, diagrama de classe, caso de uso.... Nem sempre vai ser necessário fazer todos e com certeza num terá tempo p fazer todos que quer e precisa. Mas depois que aprender a usar essas coisas vai ver que isso polpa muito tempo no decorrer do projeto e principalmente na manutenção.


GOSTEI 0
Willian

Willian

06/07/2009

Aproveitando sua sugestão: nao consigo ver como OOP pode me ajudar em Delphi... eu trabalho basicamente com banco de dados. Faz diferença mesmo?


GOSTEI 0
Osocram

Osocram

06/07/2009

Um exemplo pratico....
como vc faz p chamar seus forms na tela principal?

Aproveitando sua sugestão: nao consigo ver como OOP pode me ajudar em Delphi... eu trabalho basicamente com banco de dados. Faz diferença mesmo?



GOSTEI 0
Javapaulomg

Javapaulomg

06/07/2009

Aproveitando sua sugestão: nao consigo ver como OOP pode me ajudar em Delphi... eu trabalho basicamente com banco de dados. Faz diferença mesmo?


Sim, e um erro muito comum principalmente em programadores mais antigos, que tiveram seu auge em linguagens estruturadas seja COBOL, PASCAL ou outras.

Porém programar orientado a objetos e essencial a todo programador que deseja criar projetos profissionais seja em Delphi, Java ou C# ate mesmo C++, e uma evolução natural das linguagens, e suas vantagens não estão diretamente ligadas a uma linguagem em especifico, tornando assim otimo começar a praticar e por em praticas os fundamentos de OOP, já que a grande maiora de seus fundamentos são aplicados as melhores linguagens atualmente, seja a Hieraquia, o Polimorfismo, a Herança ou o Encapsulamento.

Uma pena tais pratica não estarem tão difundidas entre os programadores Delphi, como em outras linguagens como Java e C, sendo esse um dos motivos principais para a decadencia da utilização da linguagem, ou da quantidade incrivel dos ditos programadores (Arrastam componentes e implementam eventos), que tornou produtivo a criação de interfaces graficas, so que ao mesmo tempo fez esquecer que para um bom programa não basta ser bonito, ele em sua essencia tem que atender as necessidades que se propõe, ser de facil manutenção e ser escalonavel, com o uso de boas praticas que vão do uso da OOP, a padrões de projeto, e uma boa e solida documentação.

Digo isso porque diariamente vejo muitos programadores torcendo o nariz para OOP so de ouvir falar, sem ao menos tentar usar, ou ver seus beneficios, isso que temos que mudar na comunidade Delphi, já que a OOP e mais velha que boa parte deles, que vem da antiga Small Talk, e está ai a decadas, e sendo uma das bases do proprio Delphi, mesmo o mais RAD das ferramentas so e possível graças a ela... por isso se lembre a programação OOP e maior que uma simples linguagem, e um modo natural e mais agradavel de se programar, espero ter ajudado.


GOSTEI 0
Osocram

Osocram

06/07/2009

<javapaulomg> isso é verdade a comunidade delphi geralmente não da mta atenção para OOP. Essa é a parte boa e ruim do delphi, ele é tão flexivel que podemos programar Procedural, orientado a eventos, orientado a componente, orientado a objeto, estrutural e sem nada.... aqueles codigos todos embaralhados.

E da p programar procedural usando conceitos de OOP, que é o gosto de fazer.


GOSTEI 0
Javapaulomg

Javapaulomg

06/07/2009

<javapaulomg> isso é verdade a comunidade delphi geralmente não da mta atenção para OOP. Essa é a parte boa e ruim do delphi, ele é tão flexivel que podemos programar Procedural, orientado a eventos, orientado a componente, orientado a objeto, estrutural e sem nada.... aqueles codigos todos embaralhados. E da p programar procedural usando conceitos de OOP, que é o gosto de fazer.


Hummm realmente meu amigo, o Delphi e extremamente flexivel, mais de tão flexivel, fez ao meu ver que a linguagem se atrofiasse no quesito OOP, pois a maioria esmagadora não liga para a OOP, e seus paradigmas, a tal ponto que recursos basicos da de linguagens OOP, nunca fossem ou quando fosse implementados era tarde demais.

Como por exemplo em Java sempre utilizei um recurso otimo que são os ´Generics´, implementados desde o Java 5, estando o mesmo tambem disponivel em C#, so que vimos que somente com o Delphi 2009 o mesmo foi implementado e com grande pesar que vi que a maioria da comunidade ou não ligou ou não sabe a importancia disso para o ganho de produtividade, de forma consistente e coesa, mais vejo ela mais feliz com a criação de um componente visual que so faz aumentar a gama de programadores amadores, que so fazem diminuir a faixa salarial dos que se importam com a programação de verdade, e fazer dela algo profissional pois temos uma oferta muito grande de programadores que somente arrastam componentes, e dizem programar, quando de fato, não se especializam na linguagem e nos recursos que ela te da...

Delphi e sua OOP, não ficam devendo nada mesmo para outras linguagens como o citado Java e C#, sendo tão flexivel quanto, porem não possuem uma comunidade tão ativa nesse quesito, sendo o foco em ferramentas RAD, que ao mesmo tempo aumentam a flexibilidade aumentam a gama de programadores amadores, que ao meu ver prejudicam nossa profissão, já tão mal vista em diversos segmentos, inclusve o nosso. Fica ai o desabafo.


GOSTEI 0
Willian

Willian

06/07/2009

Opa, a conversa ficou boa agora!! :lol:

Seguinte: supondo-se que eu queria de agora em diante fazer meus programas (mesmo os de banco de dados) usando OOP em sua essência... por onde começo? Tem algum livro prático sobre o assunto? Não queria ficar nas teorias de encapusalmento, polimorfismo, heriditariedade, etc... não que eu não queira, não quero só isso, quero ver isso funcionando na prática. Alguém tem algum exemplo? Livros? Revistas?

Aproveitando: sim, quando eu crio um formulário eu instancio da classe TForm e chamo o evento Create da classe, isso é herança! :D


GOSTEI 0
Osocram

Osocram

06/07/2009

para pode te mostrar um exemplo pratico.
posta aqui o codigo que vc usa p criar um form MDI e SHOWMODAL.

e depois vou mostrar como podemos aplicar OOP nisso... ou mostrar que vc ja esta usando.


Opa, a conversa ficou boa agora!! :lol: Seguinte: supondo-se que eu queria de agora em diante fazer meus programas (mesmo os de banco de dados) usando OOP em sua essência... por onde começo? Tem algum livro prático sobre o assunto? Não queria ficar nas teorias de encapusalmento, polimorfismo, heriditariedade, etc... não que eu não queira, não quero só isso, quero ver isso funcionando na prática. Alguém tem algum exemplo? Livros? Revistas? Aproveitando: sim, quando eu crio um formulário eu instancio da classe TForm e chamo o evento Create da classe, isso é herança! :D



GOSTEI 0
Osocram

Osocram

06/07/2009

Esqueci de responder a primeira pergunta.
Seguinte... o prob que a maioria não vai p OOP é pq vc tem que ficar pensando mto, mto, mtooo antes de começar a codificar.

Então o sistema q vc ja tem vai ser complicado deixar OOP. Mas de certa forma é bom. Pq para aplicar OOP vc tem que conhecer oq ta fazendo, e vc ja tendo o sistema pronto ja vai saber a regra de negocio.

mas a noite eu posto mais detalhado alguns conceitos sobre isso.
Opa, a conversa ficou boa agora!! :lol: Seguinte: supondo-se que eu queria de agora em diante fazer meus programas (mesmo os de banco de dados) usando OOP em sua essência... por onde começo? Tem algum livro prático sobre o assunto? Não queria ficar nas teorias de encapusalmento, polimorfismo, heriditariedade, etc... não que eu não queira, não quero só isso, quero ver isso funcionando na prática. Alguém tem algum exemplo? Livros? Revistas? Aproveitando: sim, quando eu crio um formulário eu instancio da classe TForm e chamo o evento Create da classe, isso é herança! :D



GOSTEI 0
Willian

Willian

06/07/2009

Para criar um form eu vou no ´New > Form´ e o crio/monto. Lá ajusto as propriedades dele para MDIChild (formStyle)

No código, para chamá-lo, uso:

meuForm := TmeuForm.Create(Self);
meuForm.ShowModal;

Eu sei que nesse código tem OOP: crie um formulário (o form em si), que virou uma classe. Aí criei uma variável do tipo dessa class e executei o método de criação dela. Após a variável estar criada eu executei um procedimento herdado da classe e que agora está disponível na variável. Estou certo :D ou falei muita besteira? :oops:


GOSTEI 0
Osocram

Osocram

06/07/2009

aqui ja começamos... tudo que criamos temos que destruir
o jeito mais correto seria

meuForm := TmeuForm.Create(Self);
try
  meuForm.ShowModal;
finally
  meuForm.release;
  meuForm :=nil;
end;


mas agora pensando um pouco mais OOP.
Veja que este bloco esta no menu principal. Isso é o que a maioria faz.
Mas aplicando alguns conceitos de OOP. Eu pergunto este meuForm sendo uma objeto, quem deveria saber como criar ele?
A resposta não é ´Eu´, nem ´o Sistema´ e sim o Proprio objeto.
Dae entra conhecimento mais aprofundado da linguagem como metodos estaticos ou Metodos de classe.
O que mudaria?
em vez de eu fazer todo aquele bloco a cima p chamar o form eu faria apenas
TMeuForm.Execute;


Isso quer dizer Separação de Conceito (outro conceito de OOP) que diz que cada objeto tem a sua responsabilidade. Se eu quero usar um objeto ele tem q saber como se criar, e se destruir.

Este é apenas um exemplo de como usar o conceito.
Espero ter conseguido explicar em vem de complicar.
Para criar um form eu vou no ´New > Form´ e o crio/monto. Lá ajusto as propriedades dele para MDIChild (formStyle) No código, para chamá-lo, uso: meuForm := TmeuForm.Create(Self); meuForm.ShowModal; Eu sei que nesse código tem OOP: crie um formulário (o form em si), que virou uma classe. Aí criei uma variável do tipo dessa class e executei o método de criação dela. Após a variável estar criada eu executei um procedimento herdado da classe e que agora está disponível na variável. Estou certo :D ou falei muita besteira? :oops:
[/code]


GOSTEI 0
Javapaulomg

Javapaulomg

06/07/2009

Para criar um form eu vou no ´New > Form´ e o crio/monto. Lá ajusto as propriedades dele para MDIChild (formStyle) No código, para chamá-lo, uso: meuForm := TmeuForm.Create(Self); meuForm.ShowModal; Eu sei que nesse código tem OOP: crie um formulário (o form em si), que virou uma classe. Aí criei uma variável do tipo dessa class e executei o método de criação dela. Após a variável estar criada eu executei um procedimento herdado da classe e que agora está disponível na variável. Estou certo :D ou falei muita besteira? :oops:


Sim seu pensamento está correto, o método ShowModal, não está disponivel na sua implementação real, e sim na Super Classe dela ou seu Pai se preferir, para ver tal conceito basta clicar e pressionar com o seu botão Ctrl e clicar com o botão direito do mouse sobre o método e veras de onde e a primeira implementação imediata deste método, isso tudo e OOP.

Quanto as questões anteriores tenho uma opinião divergente, no quesito quanto ao não querer aprender certos conceitos basicos da OOP, ao meu ver não se tem como conhecer apenas unica e exclusivamente um fundamento da OOP, deves estudar todos os preceitos da OOP, mesmo que não domine todos deve saber que existem e que ao se deparar com um trecho de código que faz uma chamada polimorfica, deve saber que implementam a mesma interface ou herdam de um mesmo pai, que um metodo ao não estar acessivel na subclasse, e porque o mesmo foi encapsulado, a OOP não e so uma parte e a soma de suas partes que a faz oque é... por isso não acho possível o desconhecimento completo d uma de suas partes, mais sim você pode ter maior difilcudade com um deles ou não ter inda utilizado, mais conheça a todos. E como aprender a acelerar um veiculo, sem saber freiar ou direcionar ele.

Quanto ao pensar muito antes de se codificar ao meu ver não e assim pois desta forma deixa a entender que a OOP e uma coisa monotona, cansativa e pouco produtiva, so que de fato não é... ela te te leva a pensar mais rapido e a encontrar a solução de problemas de forma natural, evitando erros basicos, e reutlizando o trabalho já feito por você ou outro, com o tempo e a pratica veras que e mais rapido e natural programar OOP, o tempo deve ser gasto de forma mais adequada na coleta de informações das reais necessidades e elaboração de soluçoes mais robustas tendo em vista o paradigma da OOP, mais quanto a codificação a OOP ao meu ver e experiencia se torna mais agil e consistente que a procedural.


GOSTEI 0
Willian

Willian

06/07/2009

Estou convencido!!

Agora que vocês acenderam essa necessidade em mim, fica a pergunta: como aprendo isso para usá-la na prática? :?: Não vale contar o milagre e não falar quem é o santo... :D


GOSTEI 0
Osocram

Osocram

06/07/2009

Unico jeito de aprender é usando.
Lendo historias de guerra (depoimentos de pessoas que ja passaram por isso).
Tentar aprender na teoria tbm.

Estou convencido!! Agora que vocês acenderam essa necessidade em mim, fica a pergunta: como aprendo isso para usá-la na prática? :?: Não vale contar o milagre e não falar quem é o santo... :D



GOSTEI 0
Vitor Rubio

Vitor Rubio

06/07/2009

É muito bom ver mais pessoas interessadas em OOP, ainda mais se for em delphi.

Existem vários livros de OOP que você pode ler. Muitos deles vão tratar de Java, mas além do Java, Delphi, C#, C++, Ruby e uma quantidade absurda de outras linguagens també são orientadas a objetos.

Na revista Clube Delphi existem vários artigos para quem está começando com OOP, mesmo que vindo de hábitos totalmente RAD. Eu mesmo estou em processo de aprendizado.

Depois que ler alguma coisa, nem que for um livro pequeno, sobre OOP, eu recomendo o livro Padrões de Projeto, da ´Gang of Four´. Indiscitivelmente autoridade no assunto.

Com relação a o Delphi favorecer ou incentivar más práticas de programação, RAD cheios de gambiarras, repetições de código e afins, por ser muito flexível, eu não acredito ser uma consequência da flexibilidade, uma vez que C++ por exemplo é mais antigo e mais flexível (no que diz respeito a programação de baixo nível, drivers de dispositivo etc) e mesmo assim não encontramos muitos ´POG-amadores´ em C++. Nem mesmo no C++ builder, que tem todas as facilidades do Delphi.

No Brasil, o Delphi fez e ainda faz o sucesso que fez o Clipper na época dele, pro bem ou pro mal.

Temos que convir que muita coisa no Delphi, inclusive a sintaxe da linguagem, é simplesmente fácil... e isso é uma faca de dois gumes.


Eu vejo aí a linguagem como uma barreira em si, por exemplo, o Inglês. Se tivéssemos uma IDE de portugol tão boa, produtiva, flexível e poderosa como o Delphi, o portugol seria a linguagem mais querida do Brasil, mas por ser de fácil assimilação e entendimento, iriam também surgir bastante programadores não profissionais, quebra-galhos e outros tipos de POG-amadores.


GOSTEI 0
Osocram

Osocram

06/07/2009

[quote:8c70c06c07=´vitor^_^´]Depois que ler alguma coisa, nem que for um livro pequeno, sobre OOP, eu recomendo o livro Padrões de Projeto, da ´Gang of Four´. Indiscitivelmente autoridade no assunto.
[/quote:8c70c06c07]

Assim como o Vitor disse esse é um dos melhores livros que tem... mas seria legal ja ter uma pequena base do que se trata OOP antes de ler. Eu mesmo estou lendo isso ae. Mto interessante a didatica que usam no livro. So para resumir quem não sabe o que é padrão de projeto, seria as Historias de guerra que eu comentei em algum post acima, eles (GOF - gang of Four) reunirão situações que passaram e uma ´formula´ de como resolver. Realmente muito interessante este livro.

Da para ver que o vitor tbm ja conhece bem o assunto. É bom saber que temos alguns programadores aqui que estejam nesse caminho.... que eu considero o caminho correto.

Pois usando OOP agente aprende a reutilizar melhor os codigos... para evitarmos os famosos Ctrl+C e Ctrl+V.
Eu penso assim.... se tiver q fazer uma copia do bloco e mudar pouca coisa p fazer outro metodo.... 99¬ de chance que de da p fazer um refactory ae. Agora se tiver que copiar de novo p fazer um terceiro metodo 102¬ de chance de estar errado e precisando aplicar um refactory.

Por isso que falo que temos que pensar mais antes de codificar.
XD
Mas com o tempo agente acostuma e fica rapido e natural... Um dia espero estar nesse nivel.


GOSTEI 0
Javapaulomg

Javapaulomg

06/07/2009

O link que segue embora seja humorisco descreve bem um pouco da nossa realidade de todos os dias, e como não se deve ser e como não se deve desenvolver.

http://desciclo.pedia.ws/wiki/POG

http://desciclo.pedia.ws/wiki/Delphi

http://desciclo.pedia.ws/wiki/Podr¬C3¬B5es_de_Projeto

E de chorar mais pelo menos nos faz rir e tentar melhorar... :lol:


GOSTEI 0
Javapaulomg

Javapaulomg

06/07/2009

O link que segue embora seja humorisco descreve bem um pouco da nossa realidade de todos os dias, e como não se deve ser e como não se deve desenvolver.

[url]http://desciclo.pedia.ws/wiki/POG[/url]

[url]http://desciclo.pedia.ws/wiki/Delphi[/url]

[url]http://desciclo.pedia.ws/wiki/Podr¬C3¬B5es_de_Projeto[/url]

E de chorar mais pelo menos nos faz rir e tentar melhorar... :lol:


GOSTEI 0
Nilsinho

Nilsinho

06/07/2009

:D
É isso aí pessoal, justamente isto que estava precisando, cansei de ser progr-amador, deixa ver se entendi a OOP, não basta apenas deixar como por exemplo configurar uma tela principal e descender as demais desta mesma, tem que configurar Classes como TMinhaClasse e usálas como se fossem as telas...

Estou agora mesmo baixando algumas video-aulas aqui na clubedelphi e em outros sites para me aprofundar sobre os assuntos.

Atualmente meus softs não tem help, documentação, apenas comentários qe organizo para saber o que fazem os códigos.

Tenho algumas edições da clubedelphi sobre UML.

Queria saber também se existem alguma ferramenta gratuita para DER e diagrama de fluxo de dados.


GOSTEI 0
Knight_of_wine

Knight_of_wine

06/07/2009

Cara uma coisa que ajudou um pouco em relação a Padrões de Projetos foi o próprio Delphi.

No Model View dele você clica com o botão direito e seleciona Create By Partern.

Lá tem todos os Design Patterns com descrição e benefícios de usá-los.

Cláro não é um livro, mas pode dar uma pequena ajuda.

Me ajudou bastante. :wink:

Outra coisa importante, procure cursos e invista em você, você pode ser um auto ditata, mas pense que uma ajuda de um cara experiente sempre é bom e numa aula você pode conseguir tirar suas dúvidas cara a cara com ele.

E se puder compre as 3 últimas .Net Magazines, tá rolando uma série ótima explicando fazer um pequeno sistema OO, são três artigos e os cara nem chegaram na programação ainda.

E tem as últimas ClubeDelphis com um ótimo artigo sobre Design Patterns.

Vale a pena dar uma lida.


GOSTEI 0
POSTAR