Prefácio: Atualmente, estou escrevendo um livro para programadores Delphi qualificados sobre o tema da construção de programas bem projetados usando técnicas de programação orientada a objetos em Delphi.
Este livro ainda está em processo de escrita. Espero que todos possam ter uma compreensão preliminar do tema e do estilo de linguagem deste livro. Ao mesmo tempo, você pode apresentar suas próprias opiniões. Como autor, espero que este livro se torne um clássico entre os livros Delphi originais nacionais. Pode não ter sucesso, mas tentarei o meu melhor.
Pelos motivos acima, é impossível eu postar o livro inteiro (haha, então ninguém vai comprar), então não deve haver capítulos subsequentes postados aqui (talvez haja alguns trechos).
Gostaria aqui de agradecer aos amigos que me incentivaram e deram opiniões (postei no fórum Delphi da csdn e recebi uma ampla gama de respostas, obrigado a todos). Gostaria também de agradecer à minha namorada, Esan, que sempre me apoiou e inspirou. Tudo o que posso fazer é escrever bem e retribuir a todos. Sei que todos (inclusive eu) estão esperando muito por um bom livro!
Capítulo 1 Re-compreendendo o Delphi
A simplicidade é a coisa mais difícil de obter no mundo: é o limite máximo da experiência e o objetivo final do gênio. ——George Sand Você já é um programador Delphi habilidoso e pode usar Delphi para escrever rapidamente um programa bonito e prático. Você adora Delphi, ela se tornou uma parte indispensável de seu trabalho e estudo; Presumo que isso seja verdade, então você deve ter seus próprios motivos ou razões para escolher o Delphi como sua ferramenta de desenvolvimento de primeira escolha. Pelo menos, atendo a todas as suposições acima. Agora, o que quero compartilhar com vocês são os motivos e motivos pelos quais escolhi Delphi, bem como meu entendimento sobre Delphi. Você pode me considerar um fanático que apoia Delphi, embora isso me faça sentir que você me vê muito superficialmente. Não admito, mas não me importo. Porque eu realmente a amo. A versão do Delphi com a qual tive contato pela primeira vez foi a 3.0. Naquela época, eu apenas o usava como uma ferramenta RAD como o Visual Basic. No entanto, com o passar do tempo, Delphi 3, Delphi 4, Delphi 5, Delphi 6 e Kylix têm uma compreensão cada vez mais profunda do Delphi. É uma ferramenta com conotações ricas. Quanto mais as pessoas a compreendem, mais ficam obcecadas por ela e mais se sentem inseparáveis dela, embora ainda seja apenas uma ferramenta. Pascal é uma linguagem que se preocupa com a estética do programa - não há dúvida de que o código Pascal é o código mais bonito - Delphi baseado em Object Pascal (uma linguagem Pascal que suporta orientação a objetos) leva essa beleza ao extremo. Agora, você pode abrir o Delphi, selecionar o menu "Ajuda"-"Sobre", quando a janela Sobre aparecer, mantenha pressionada a tecla Alt e digite "equipe" sequencialmente ao mesmo tempo. Sim, a lista de desenvolvedores Delphi, vamos agradecê-los por criarem ferramentas de desenvolvimento que mais parecem obras de arte!
1.1 A teoria das ferramentas de desenvolvimento "orientadas para as pessoas"
Muitas vezes você pode ver perguntas como esta em vários fóruns de programação: "O VB ainda tem futuro?"; "O Delphi será eliminado?"; estes Quando a questão foi levantada, ninguém soube dar uma resposta. Porque o futuro de uma tecnologia ou de um produto não é inteiramente determinado pela tecnologia em si, mas também está relacionado a fatores como a demanda do mercado e a direção de desenvolvimento da empresa produtora. E com o que devemos nos preocupar são as respostas a essas perguntas? Eu acho que não. Sabemos que tudo no mundo é composto de átomos; programas em constante mudança são, em última análise, compostos por três estruturas: sequência, loop e ramificação; tanto o MFC do VC quanto o VCL do Delphi são construídos com tecnologia orientada a objetos (independentemente do grau do objeto); -orientado). Quando você olha além da aparência superficial das coisas, o que você vê é a mesma essência ou uma essência semelhante! Depois de dominar a essência, você descobrirá que a manifestação da aparência é muito natural. Imagine, quando você puder remover o MFC completamente como Hou Jie (o autor de "Introdução ao MFC"), você ainda se preocupará com a substituição do MFC por uma determinada estrutura? Nesta perspectiva, para um programador profissional, o conceito de programação permanece inalterado. Existe um certo padrão no processo de descoberta, análise e resolução de problemas. Depois de dominar esse padrão, diferentes linguagens de programação e diferentes ambientes de desenvolvimento terão algo em comum para você. Acho que C++ é algo que todo programador profissional deve dominar. Claro, isso não significa simplesmente aprender sua sintaxe (você pode até ignorar o aprendizado de alguma sintaxe), mas aprender design orientado a objetos e métodos de programação através de C++. Porque C++ é amplo e profundo, porque C++ é onipotente. Em C++, você pode aprender tudo sobre a teoria orientada a objetos. Depois de aprender, você será transformado em C++. Porque recursos controversos que existem na teoria orientada a objetos (como herança múltipla) são suportados em C++. Somente depois de dominá-lo você poderá fazer sua própria escolha (a favor ou contra). Depois de dominar a teoria orientada a objetos, seja C++, Object Pascal, java ou mesmo C#, você sentirá suas semelhanças. Isso significa que não há outras diferenças entre as ferramentas de desenvolvimento (talvez devam ser chamadas de ambientes de desenvolvimento integrados, mas irei me referir a elas como ferramentas de desenvolvimento de acordo com meu hábito abaixo), exceto nas linguagens que elas suportam? Claro que não. Ferramentas de desenvolvimento são ferramentas que ajudam você a concretizar suas ideias, que são superestruturas construídas sobre ideias básicas. O grau em que uma ferramenta de desenvolvimento suporta o conceito que você deseja implementar e o grau em que ela simplifica o processo de implementação é a consideração da ferramenta de desenvolvimento. As ferramentas de desenvolvimento para programadores são como armas para soldados. Se as armas não forem úteis, metade delas será derrotada antes da batalha. Sempre gostei do slogan publicitário dos telemóveis Nokia: A tecnologia é orientada para as pessoas! Sim, “pessoas” são a base, e a missão das ferramentas é ajudar as pessoas a atingirem seus objetivos de maneira mais rápida e fácil. Portanto, as ferramentas de desenvolvimento também devem ser centradas nas pessoas! Como programador e usuário mais direto de ferramentas de desenvolvimento, espero que as ferramentas de desenvolvimento que utilizo possam realmente ser minhas parceiras e assistentes. Elas podem me trazer uma sensação de liberdade e me permitir navegar livremente no mundo do código. mim e se adapte a mim em vez de me algemar! Hoje na plataforma Windows existem muitas ferramentas de desenvolvimento para escolher: Visual C++, Visual Basic, Delphi, C++ Builder, JBuilder... Elas são baseadas em diferentes linguagens de programação e são fiéis aos conceitos de produtos de diferentes empresas. Nessa perspectiva, a diferença entre eles é muito grande. Então, que tipo de ferramentas de desenvolvimento são excelentes, atenciosas e voltadas para as pessoas? Meus padrões são atender aos seguintes quatro pontos: 1. Ser capaz de simplificar o problema a ser resolvido e implementá-lo rapidamente com um determinado conceito 2. Não esconder nenhum detalhe que você deseja saber 3. Ser capaz de ignorar os detalhes que você não deseja saber 4. Tomar a iniciativa de Existem ferramentas de desenvolvimento que atendam aos quatro pontos acima e que sejam adequadas para programadores de diferentes níveis? Minha resposta é: sim! Esse é o Delfos! Ela simplificou tudo, mas nunca me impediu de buscar a verdade. Você pode concluir tarefas no mundo virtual VCL simplificado que ela construiu para você. Você também pode mergulhar no mundo da VCL para explorar seu relacionamento de mapeamento com o mundo real (ou seja, a interface real da plataforma Windows) e aprender o design de seu Framework. Você também pode estender esse mundo VCL virtual para atender às suas necessidades. Sinto-me sortudo por existir tal ferramenta de desenvolvimento, e ainda mais sortudo por poder escolhê-la e concluir meu trabalho com ela! (Na realidade, a linguagem de programação e as ferramentas de desenvolvimento usadas no projeto geralmente estão além do seu controle pessoal e serão restringidas por muitos fatores. Por exemplo: o ambiente de hardware do cliente, o ambiente do sistema operacional, o ambiente de desenvolvimento, o custo e o licenciamento das ferramentas de desenvolvimento .Certificado, etc. Portanto, tenho muita sorte de poder escolher minhas ferramentas de desenvolvimento favoritas para o trabalho de desenvolvimento.) Aprender conceitos orientados a objetos por meio de C++ e usar Delphi para resolver problemas do mundo real é minha abordagem. Ao mesmo tempo, também confirma o ditado: aprenda em lugares difíceis e aplique em lugares fáceis. Programadores reais usam C++, programadores inteligentes usam Delphi. Bem, programadores realmente inteligentes usam C++ para entender Delphi!
1.2 Mais vantagens do Delphi
Usei muitas ferramentas de desenvolvimento convencionais, por que escolhi o Delphi? Talvez seja porque não conheço a fundo outras ferramentas de desenvolvimento, mas a excelência do Delphi em si é pelo menos um dos motivos! O que há de tão bom no Delphi? n O desenvolvimento eficiente do Delphi é um RAD (ferramenta de desenvolvimento rápido de aplicativos), que possui um ambiente de desenvolvimento visual. É claro que existem muitas ferramentas de desenvolvimento com funções semelhantes (como Visual Basic), mas o Delphi possui os seguintes recursos exclusivos: 1. ) Delphi é verdadeiramente orientado a objetos. Todos os componentes de sua biblioteca VCL construída em tecnologia OO podem ser herdados para criar novos componentes, incluindo a classe de formulário TForm. Por outro lado, os componentes ActiveX não possuem essa flexibilidade. 2) A tecnologia CodeInsight do Delphi (ou seja, função de preenchimento automático de código) é baseada nas informações do compilador, enquanto o VB usa informações da biblioteca de tipos. A vantagem de usar informações do compilador é mais flexibilidade. No entanto, os programadores costumam reclamar que os prompts de código do Delphi demoram muito. Na verdade, pessoalmente sinto que depois de me habituar à sua velocidade, posso experimentar uma sensação de prazer rítmico. n A eficiente linguagem Delphi é baseada na linguagem Object Pascal. Esta é uma linguagem verdadeiramente orientada a objetos, mas elegante. Não é inferior a várias outras linguagens orientadas a objetos em termos de integridade funcional, mas ao mesmo tempo não é ganancioso por mais e aumenta cegamente a complexidade. Isso permite que os desenvolvedores recebam suporte completo ao projetar usando vários padrões, sem ter que considerar muitos detalhes de linguagem/compilador durante a implementação. n Eficiência de compilação Pode-se dizer que Delphi é o compilador de código local de linguagem de alto nível mais rápido na plataforma Windows. Quais são os benefícios da compilação rápida? Um compilador rápido permite alternar frequentemente entre a modificação do código e a compilação e execução. Pelo menos estou muito acostumado com esta forma de trabalhar: executar o programa para ver o efeito, sair do programa, modificar uma pequena quantidade de código e depois executar o programa. E o compilador do Delphi nunca me deixa esperando. n Execução eficiente O Delphi não só possui velocidade de compilação rápida, mas também a eficiência de execução do código-alvo gerado é muito alta. Delphi e C++Builder usam o mesmo otimizador de back-end, portanto o código gerado por ele é tão eficiente quanto o código gerado por um excelente compilador C++. O Delphi gera código totalmente nativo, portanto o arquivo executável resultante da compilação do Delphi pode ser executado e distribuído de forma independente (isso é muito importante para o desenvolvimento de “software verde”). Nenhum outro suporte de tempo de execução é necessário. Claro, você também pode escolher a compilação de link dinâmico, o que pode reduzir bastante o comprimento do arquivo executável. Porém, neste caso, ao distribuir o programa, os arquivos de tempo de execução necessários devem ser distribuídos ao mesmo tempo. n Manutenção eficiente C++ dá muito poder de decisão aos programadores, por isso é muito poderoso. No entanto, ao mesmo tempo, usar C++ para escrever código orientado a objetos excelente exige que os programadores tenham certas qualidades. Os programadores Delphi estarão limitados à estrutura fornecida pela VCL até certo ponto (é claro, você pode se livrar da programação VCL no Delphi, relativamente falando, é mais fácil criar código bem projetado). O Visual Basic não fornece nenhum mecanismo de programação orientada a objetos (VB6.0 e versões anteriores são baseadas em objetos, não orientadas a objetos). A excelência da estrutura de código reduz bastante os custos de manutenção de software. Com base em todos os motivos acima, escolho Delphi!
1.3 Tema deste livro
Costumamos escrever muito código, para a empresa, para nós mesmos ou para amigos. Às vezes, para verificar uma ideia ou aprender uma determinada tecnologia, escrevo algum código experimental. O ciclo de vida desse código é muito curto e basicamente não requer manutenção. Você pode simplesmente escrevê-lo como quiser. No entanto, quando você realmente deseja concluir um projeto, o design do código é muito importante. Porque esse código requer manutenção de longo prazo, modificação ou aprimoramento constante. O design confuso do código torna a manutenção difícil ou impossível, e modificar esse código significa mais bugs ou desastres. Portanto, antes que o código possa ser escrito, ele precisa ser projetado. O design mencionado aqui não se refere ao design funcional, mas ao design da estrutura do código pelos programadores antes da codificação, para que o código seja mais fácil de entender e manter no futuro. Costumo ouvir um ditado: a vida de um programador dura apenas 35 anos. Nunca acredito que a vida útil de um programador seja de apenas 35 anos. Talvez depois dos 35 anos, a capacidade de implementação (na verdade, a habilidade artesanal) possa diminuir, enquanto a capacidade de design não diminui, mas aumenta com o aumento da experiência. Esta é a coisa mais preciosa. A espinha dorsal das equipes estrangeiras de desenvolvimento de software geralmente são pessoas com cerca de 40 anos. Esses são programadores mestres. Os chamados programadores que não podem ser programadores depois dos 35 anos não estão qualificados para serem chamados de programadores. A engenharia de software precisa transformar programadores em codificadores e se tornar um elo na linha de montagem, e o trabalho de design é realizado por designers especializados (como designers de estruturas). Talvez a tendência seja refinar a divisão do trabalho, mas se estamos satisfeitos em ser programadores ou se esperamos crescer e nos tornar designers depende da nossa visão e dos nossos esforços. Abra seus horizontes, em vez de se limitar e se entregar a “alcançar mestres”. A capacidade de realização é a base. Somente com certa capacidade de realização podemos crescer. No entanto, é apenas uma condição necessária, não suficiente. Caso contrário, seria como subir à encosta de uma montanha e pensar que chegou ao topo da montanha e estagnou. Então, você só pode ser um programador e a vida útil do seu programa é de apenas 35 anos. Depois de obter essa perspectiva, espero que este livro possa ajudá-lo a começar. Livros relacionados ao Delphi publicados na China explicam basicamente a implementação. O título deste livro é "Breakthrough by Delphi Masters". Então, suponha que você agora seja um mestre em Delphi. Portanto, este livro não cobrirá muitas técnicas de implementação. Embora existam códigos de exemplo, o foco está no design de sua arquitetura, não em sua implementação. Neste ponto, você deve ter adivinhado o tema deste livro: como usar a tecnologia orientada a objetos no Delphi para construir código bem projetado. Na minha opinião, escrever código é uma criação artística. O código elegante é autoexplicativo, sem necessidade de comentários excessivos. Quando há muitos comentários, é hora de considerar se o design é razoável. Escrever um livro também deve ser uma criação artística. Se você puder contar aos leitores sua própria compreensão e experiência artística sem precisar de muitas “anotações” (bobagens que desperdiçam espaço), ele terá muito sucesso. Espero poder fazer isso, pelo menos tentar o meu melhor.
1.4 Resumo
Acredito que seja inevitável para mim embarcar no caminho da programação. Poder me tornar um programador profissional também é o que sonhei e realizei. Porém, é preciso dizer que o surgimento do Delphi e o fato de conhecê-lo, conhecê-lo, ficar obcecado por ele e fazer parte do meu trabalho foi uma surpresa inesperada. O que quero dizer aqui é que você deveria ser mais insistente consigo mesmo. Quando você se posiciona claramente e conhece claramente o caminho que escolheu, não precisa mais ter dúvidas ou escrúpulos e apenas seguir em frente. Embora eu possa não ter sucesso no final (é claro, a definição de sucesso de cada pessoa é diferente), eu amo o que amo sem nenhum arrependimento!