Préface : Actuellement, j'écris un livre destiné aux programmeurs Delphi qualifiés sur le thème de la création de programmes bien conçus à l'aide de techniques de programmation orientée objet dans Delphi.
Ce livre est encore en cours d'écriture. J'espère que tout le monde pourra avoir une première compréhension du thème et du style linguistique de ce livre. En même temps, vous pouvez exprimer vos propres opinions. En tant qu'auteur, j'espère que ce livre pourra devenir un classique parmi les livres originaux de Delphi en Chine. Il ne réussira peut-être pas, mais je ferai de mon mieux.
Pour les raisons ci-dessus, il m'est impossible de publier le livre en entier (haha, alors personne ne l'achètera), donc il ne devrait pas y avoir de chapitres ultérieurs publiés ici (il y aura peut-être quelques extraits).
Ici, je voudrais remercier les amis qui m'ont encouragé et donné leur avis (je l'ai posté sur le forum Delphi du csdn et j'ai reçu un large éventail de réponses, merci à tous). Je tiens également à remercier ma petite amie, Esan, qui m'a toujours soutenu et inspiré. Tout ce que je peux faire, c'est bien écrire et récompenser tout le monde. Je sais que tout le monde (moi y compris) attend trop fort un bon livre !
Chapitre 1 Re-comprendre Delphi
La simplicité est la chose au monde la plus difficile à obtenir : elle est la limite ultime de l’expérience et le but ultime du génie. ——George Sand Vous êtes déjà un programmeur Delphi expérimenté et pouvez utiliser Delphi pour écrire rapidement un programme beau et pratique ; vous aimez Delphi, elle est devenue un élément indispensable de votre travail et de vos études ; Je suppose que cela est vrai, alors vous devez avoir vos propres raisons ou raisons pour choisir Delphi comme outil de développement de premier choix. Au moins, je réponds à toutes les hypothèses ci-dessus. Maintenant, ce que je souhaite partager avec vous, ce sont les raisons et les raisons pour lesquelles j'ai choisi Delphi, ainsi que ma compréhension de Delphi. Vous pouvez me considérer comme un fanatique qui soutient Delphi, même si cela me donnera l'impression que vous me voyez trop superficiellement. Je ne l'admets pas, mais cela ne me dérange pas. Parce que je l'aime vraiment. La version de Delphi avec laquelle j'ai été en contact pour la première fois était la 3.0. À cette époque, je l'utilisais simplement comme un outil RAD comme Visual Basic. Cependant, au fil du temps, Delphi 3, Delphi 4, Delphi 5, Delphi 6 et Kylix ont une compréhension de plus en plus approfondie de Delphi. C'est un outil aux connotations riches. Plus les gens la comprennent, plus ils deviennent obsédés par elle et plus ils se sentent inséparables d'elle, même si ce n'est encore qu'un outil. Pascal est un langage qui prête attention à l'esthétique du programme - il ne fait aucun doute que le code Pascal est le plus beau code - Delphi basé sur Object Pascal (un langage Pascal qui prend en charge l'orientation objet) pousse cette beauté à l'extrême. Maintenant, vous pouvez ouvrir Delphi, sélectionner le menu "Aide" - "À propos de", lorsque la fenêtre À propos de apparaît, maintenez la touche Alt enfoncée et tapez "équipe" séquentiellement en même temps. Que voyez-vous ? Oui, la liste des développeurs Delphi, remercions-les d'avoir créé de tels outils de développement qui s'apparentent davantage à des œuvres d'art !
1.1 La théorie des outils de développement « orientée vers les personnes »
Vous pouvez souvent voir des questions comme celle-ci sur divers forums de programmation : « VB a-t-il encore un avenir ? » ; « Est-ce que Delphi va être éliminé ? » ; « Est-ce que MFC va être remplacé par .NET ? » ; Ceux-ci Lorsque la question a été posée, personne n'a pu donner de réponse. Parce que l’avenir d’une technologie ou d’un produit n’est pas entièrement déterminé par la technologie elle-même, mais est également lié à des facteurs tels que la demande du marché et l’orientation du développement de l’entreprise productrice. Et ce qui devrait nous préoccuper, ce sont les réponses à ces questions ? Je ne pense pas. Nous savons que tout dans le monde est composé d'atomes ; les programmes en constante évolution sont finalement composés de trois structures : séquence, boucle et branche ; le MFC de VC et la VCL de Delphi sont construits avec une technologie orientée objet (quel que soit le degré d'objet). -orienté ). Lorsque vous regardez au-delà de l’apparence superficielle des choses, ce que vous voyez est la même essence ou une essence similaire ! Après avoir maîtrisé l’essence, vous constaterez que la manifestation de l’apparence est si naturelle. Imaginez, lorsque vous pourrez retirer complètement MFC comme Hou Jie (l'auteur de "Introduction to MFC"), vous inquiéterez-vous toujours du remplacement de MFC par un certain framework ? De ce point de vue, pour un programmeur professionnel, la notion de programmation reste inchangée. Il existe un certain modèle dans le processus de découverte, d'analyse et de résolution de problèmes. Une fois que vous maîtriserez ce modèle, différents langages de programmation et différents environnements de développement auront quelque chose en commun pour vous. Je pense que le C++ est quelque chose que tout programmeur professionnel doit maîtriser. Bien entendu, cela ne signifie pas simplement apprendre sa syntaxe (vous pouvez même ignorer l’apprentissage de certaines syntaxes), mais apprendre les méthodes de conception et de programmation orientées objet via C++. Parce que le C++ est vaste et profond, parce que le C++ est omnipotent. En C++, vous pourrez tout apprendre sur la théorie orientée objet. Après l'apprentissage, vous serez transformé par le C++. Parce que les fonctionnalités controversées qui existent dans la théorie orientée objet (telles que l'héritage multiple) sont prises en charge en C++. Ce n'est qu'après l'avoir maîtrisé que vous pourrez faire votre propre choix (pour ou contre). Après avoir maîtrisé la théorie orientée objet, qu'il s'agisse de C++, Object Pascal, Java ou encore C#, vous ressentirez leurs similitudes. Cela signifie-t-il qu'il n'y a pas d'autres différences entre les outils de développement (peut-être devraient-ils être appelés environnements de développement intégrés, mais je les appellerai outils de développement selon mon habitude ci-dessous) à l'exception des langages qu'ils prennent en charge ? Bien sûr que non. Les outils de développement sont des outils qui vous aident à réaliser vos idées, qui sont des superstructures construites sur des idées de base. La mesure dans laquelle un outil de développement prend en charge le concept que vous souhaitez mettre en œuvre et la mesure dans laquelle il simplifie le processus de mise en œuvre dépend de l'outil de développement. Les outils de développement pour les programmeurs sont comme des armes pour les soldats. Si les armes ne sont pas à portée de main, la moitié d'entre eux seront vaincus avant la bataille. J'ai toujours aimé le slogan publicitaire des téléphones mobiles Nokia : La technologie est orientée vers l'humain ! Oui, les « personnes » constituent la base, et la mission des outils est d'aider les gens à atteindre leurs objectifs plus rapidement et plus facilement. Par conséquent, les outils de développement doivent également être centrés sur les personnes ! En tant que programmeur et utilisateur le plus direct des outils de développement, j'espère que les outils de développement que j'utilise pourront véritablement être mes partenaires et mes assistants. Ils pourront m'apporter un sentiment de liberté et me permettre de naviguer librement dans le monde du code. moi et adapte-toi à moi au lieu de m'enchaîner ! Aujourd'hui sur la plateforme Windows, il existe de nombreux outils de développement parmi lesquels choisir : Visual C++, Visual Basic, Delphi, C++ Builder, JBuilder... Ils s'appuient sur différents langages de programmation et sont fidèles aux concepts produits de différentes entreprises. De ce point de vue, la différence entre eux est très grande. Alors, quels types d’outils de développement sont excellents, attentionnés et axés sur les personnes ? Mes standards doivent répondre aux quatre points suivants : 1. Être capable de simplifier le problème à résoudre et de le mettre en œuvre rapidement avec un certain concept 2. Ne cacher aucun détail que vous souhaitez connaître 3. Pouvoir ignorer les détails que vous ne souhaitez pas à savoir 4. Prendre l'initiative de Existe-t-il des outils de développement répondant aux quatre points ci-dessus et adaptés aux programmeurs de différents niveaux ? Ma réponse est : oui ! C'est Delphes ! Elle a tout simplifié mais ne m'a jamais empêché de chercher la vérité. Vous pouvez effectuer des tâches dans le monde virtuel VCL simplifié qu'elle a construit pour vous. Vous pouvez également plonger dans le monde de VCL pour explorer sa relation de mappage avec le monde réel (c'est-à-dire la véritable interface de la plateforme Windows) et apprendre la conception de son Framework. Vous pouvez également étendre ce monde VCL virtuel en fonction de vos besoins. J'ai de la chance qu'un tel outil de développement existe, et encore plus chanceuse de pouvoir la choisir et réaliser mon travail avec elle ! (En réalité, le langage de programmation et les outils de développement utilisés dans le projet échappent souvent à votre contrôle et seront limités par de nombreux facteurs. Par exemple : l'environnement matériel du client, l'environnement du système d'exploitation, l'environnement de développement, le coût et la licence des outils de développement. Certificat, etc. Par conséquent, j'ai beaucoup de chance de pouvoir choisir mes outils de développement préférés pour le travail de développement.) Apprendre des concepts orientés objet via C++ et utiliser Delphi pour résoudre des problèmes du monde réel est mon approche. En même temps, cela confirme également le dicton : apprenez des endroits difficiles et postulez dans les endroits faciles. Les vrais programmeurs utilisent C++, les programmeurs intelligents utilisent Delphi. Eh bien, les programmeurs vraiment intelligents utilisent C++ pour comprendre Delphi !
1.2 Plus d'avantages de Delphi
J'ai utilisé de nombreux outils de développement grand public, pourquoi ai-je choisi Delphi ? C'est peut-être parce que je ne connais pas en profondeur les autres outils de développement, mais l'excellence de Delphi lui-même est au moins une des raisons ! Qu'y a-t-il de si génial chez Delphi ? n Le développement efficace de Delphi est un RAD (Rapid Application Development Tool), qui dispose d'un environnement de développement visuel. Bien sûr, il existe de nombreux outils de développement avec des fonctions similaires (comme Visual Basic), mais Delphi possède les caractéristiques uniques suivantes : 1. ) Delphi est véritablement orienté objet. Tous les composants de sa bibliothèque VCL construite sur la technologie OO peuvent être hérités pour créer de nouveaux composants, y compris la classe de formulaire TForm. En revanche, les composants ActiveX n'ont pas cette flexibilité. 2) La technologie CodeInsight de Delphi (c'est-à-dire la fonction d'auto-complétion de code) est basée sur les informations du compilateur, tandis que VB utilise les informations de la bibliothèque de types. L'avantage d'utiliser les informations du compilateur est une plus grande flexibilité. Cependant, les programmeurs se plaignent souvent du fait que les invites de code de Delphi prennent trop de temps. En fait, j'ai personnellement l'impression qu'après m'être habitué à sa vitesse, je peux ressentir une sensation de plaisir rythmique. n Le langage Delphi efficace est basé sur le langage Object Pascal. Il s'agit d'un langage véritablement orienté objet mais élégant. Il n'est pas inférieur à divers autres langages orientés objeten termes d'intégrité fonctionnelle, mais en même temps, il n'est pas avide de plus et augmente aveuglément la complexité. Cela permet aux développeurs de bénéficier d'une assistance complète lors de la conception à l'aide de différents modèles sans avoir à prendre en compte trop de détails sur le langage/le compilateur lors de l'implémentation. n Efficacité de la compilation On peut dire que Delphi est le compilateur de code local de langage de haut niveau le plus rapide sur la plateforme Windows. Quels sont les avantages d’une compilation rapide ? Un compilateur rapide vous permet de basculer fréquemment entre la modification du code et la compilation et l'exécution. Au moins, je suis très habitué à cette façon de travailler : exécutez le programme pour voir l'effet, quittez le programme, modifiez une petite quantité de code, puis exécutez le programme. Et le compilateur de Delphi ne me donne jamais envie d'attendre. n Exécution efficace Delphi a non seulement une vitesse de compilation rapide, mais l'efficacité d'exécution du code cible généré est également très élevée. Delphi et C++Builder utilisent le même optimiseur back-end, de sorte que le code généré par celui-ci est aussi efficace que le code généré par un excellent compilateur C++. Delphi génère du code entièrement natif, de sorte que le fichier exécutable résultant de la compilation Delphi peut être exécuté et distribué indépendamment (ceci est très important pour le développement de « logiciels verts »). Aucune autre prise en charge d’exécution n’est requise. Bien entendu, vous pouvez également choisir une compilation de liens dynamiques, ce qui peut réduire considérablement la longueur du fichier exécutable. Cependant, dans ce cas, lors de la distribution du programme, les fichiers d'exécution nécessaires doivent être distribués en même temps. n Maintenance efficace Le C++ donne beaucoup de pouvoir de décision aux programmeurs, il est donc très puissant. Cependant, en même temps, utiliser C++ pour écrire un excellent code orienté objet nécessite que les programmeurs aient certaines qualités. Les programmeurs Delphi seront limités dans une certaine mesure au cadre fourni par VCL (bien sûr, il est tout à fait possible de se débarrasser de la programmation VCL dans Delphi). Relativement parlant, il est plus facile de créer du code bien conçu. Visual Basic ne fournit pas du tout de mécanisme de programmation orienté objet (VB6.0 et les versions précédentes sont basées sur des objets et non orientées objet). L'excellence du framework de code réduit considérablement les coûts de maintenance des logiciels. Sur la base de toutes les raisons ci-dessus, je choisis Delphi !
1.3 Thème de ce livre
Nous écrivons généralement beaucoup de code, pour l'entreprise, pour nous-mêmes ou pour des amis. Parfois, afin de vérifier une idée ou d'apprendre une certaine technologie, j'écris du code expérimental. Le cycle de vie d'un tel code est très court et ne nécessite pratiquement aucune maintenance. Vous pouvez simplement l'écrire comme vous le souhaitez. Cependant, lorsque vous souhaitez vraiment mener à bien un projet, la conception du code est très importante. Parce qu’un tel code nécessite une maintenance à long terme, une modification ou une amélioration constante. Une conception de code désordonnée rend la maintenance difficile, voire impossible, et la modification de ce code entraîne davantage de bugs ou de désastres. Par conséquent, avant de pouvoir écrire du code, il doit être conçu. La conception mentionnée ici ne fait pas référence à la conception fonctionnelle, mais fait référence à la conception du cadre de code par les programmeurs avant le codage, afin que le code soit plus facile à comprendre et à maintenir à l'avenir. J'entends souvent un dicton : la vie d'un programmeur n'a que 35 ans. Je ne crois jamais que la durée de vie d'un programmeur n'est que de 35 ans. Peut-être qu'après 35 ans, la capacité de mise en œuvre (en fait la capacité artisanale) peut diminuer, tandis que la capacité de conception ne diminue pas mais augmente avec l'augmentation de l'expérience. C'est la chose la plus précieuse. L'épine dorsale des équipes de développement de logiciels étrangères est généralement constituée de personnes âgées d'environ 40 ans. Ce sont des maîtres programmeurs qui ne peuvent pas être programmeurs après l'âge de 35 ans. Le génie logiciel doit transformer les programmeurs en codeurs et devenir un maillon de la chaîne d'assemblage, et le travail de conception est réalisé par des concepteurs spécialisés (tels que des concepteurs de framework). La tendance est peut-être à affiner la division du travail, mais que nous soyons satisfaits d'être codeurs ou que nous espérons devenir designers dépend de notre vision et de nos efforts. Ouvrez vos horizons, plutôt que de vous limiter et de vous livrer à « atteindre des maîtres ». La capacité de réalisation est le fondement. Ce n'est qu'avec une certaine capacité de réalisation que nous pouvons grandir. Cependant, ce n'est qu'une condition nécessaire, pas suffisante. Sinon, ce serait comme grimper à flanc de montagne et penser que vous avez atteint le sommet de la montagne et stagner. Ensuite, vous ne pouvez être qu’un codeur, et la durée de vie de votre programme n’a que 35 ans. Après avoir acquis cette perspective, j’espère que ce livre pourra vous aider à démarrer. Les livres liés à Delphi publiés en Chine expliquent essentiellement la mise en œuvre. Le titre de ce livre est « Breakthrough by Delphi Masters ». Supposons donc que vous soyez désormais un maître Delphi. Par conséquent, ce livre ne couvrira pas trop de techniques de mise en œuvre. Bien qu'il existe des exemples de codes, l'accent est mis sur la conception de son architecture et non sur sa mise en œuvre. À ce stade, vous avez peut-être deviné le thème de ce livre : comment utiliser la technologie orientée objet dans Delphi pour créer du code bien conçu. Pour moi, écrire du code est une création artistique. Un code élégant est explicite sans nécessiter de commentaires excessifs. Lorsqu’il y a trop de commentaires, il est temps de se demander si la conception est raisonnable. Écrire un livre doit aussi être une création artistique. Si vous pouvez raconter aux lecteurs votre propre compréhension et votre expérience artistique sans avoir besoin de trop d'« annotations » (absurdités qui gaspillent de l'espace), ce sera très réussi. J'espère pouvoir le faire, au moins faire de mon mieux.
1.4 Résumé
Je crois qu'il est inévitable pour moi de m'engager sur la voie de la programmation. Être programmeur professionnel est aussi ce dont j'ai rêvé et réalisé. Cependant, il faut dire que l'apparition de Delphi et le fait que j'ai appris à le connaître, à me familiariser, à en devenir obsédé et à faire partie de mon travail ont été une surprise inattendue. Ce que je veux dire ici, c’est que vous devriez insister davantage sur vous-même. Lorsque vous vous êtes clairement positionné et connaissez clairement le chemin que vous avez choisi, vous n’avez plus besoin d’avoir de doutes ni de scrupules et de continuer. Même si je ne réussirai peut-être pas au final (bien sûr, la définition du succès pour chacun est différente), j’aime ce que j’aime sans aucun regret !