Fórum Como ser um pogramador Delphi pofissional? #372010
06/07/2009
0
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
Curtir tópico
+ 0Posts
06/07/2009
Facc
se vc quer ser o TOP em programação, tem que ´comer´ livros e estar sempre atualizado nas novidades.
Gostei + 0
06/07/2009
Osocram
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
07/07/2009
Willian
Gostei + 0
07/07/2009
Osocram
como vc faz p chamar seus forms na tela principal?
Gostei + 0
07/07/2009
Javapaulomg
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
07/07/2009
Osocram
E da p programar procedural usando conceitos de OOP, que é o gosto de fazer.
Gostei + 0
07/07/2009
Javapaulomg
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
07/07/2009
Willian
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
07/07/2009
Osocram
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.
Gostei + 0
07/07/2009
Osocram
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.
Gostei + 0
07/07/2009
Willian
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
07/07/2009
Osocram
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.
Gostei + 0
07/07/2009
Javapaulomg
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
07/07/2009
Willian
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
07/07/2009
Osocram
Lendo historias de guerra (depoimentos de pessoas que ja passaram por isso).
Tentar aprender na teoria tbm.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)