Tuto sur la POO en PureBasic

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Tuto sur la POO en PureBasic

Message par Dräc »

Tutorial: PureBasic et la POO

Bonjour a tous !

J’ai cherché récemment à approfondir mes connaissances en programmations pour améliorer ma conception du code.
Cela m’a conduit rapidement vers la POO.
D’autre part, j’ai bien remarqué que je n’etais pas le seul à m’y intéresser mais dans l’absolu, nombre de personnes du forum son assez curieuses,
donc voilà :
Je vous livre ma compréhension d’une Programmation Orienté Objet en PureBasic sous la forme d’un tutorial.
Elle est le résultat d’une recherche personnelle et communautaire. Elle n’a donc comme seule prétention que d’aider à appréhender les mécanismes OO et je souhaite d’ailleurs que le tutorial puisse évoluer.

Mais vous êtes avertis : il faut disposer d’une bonne compréhension du langage PureBasic pour vivre entièrement ce tutorial, au risque sinon de s’endormir ferme :lol:
Et pour les plus téméraires d’entre vous, ceux qui en arriveront à bout, n’hésitez pas à faire vos remarques ici même:

Je le dis et le redis, je suis preneur de toutes améliorations autant sur les explications que sur l’implémentation des concepts.

D’ailleurs j’ai un soucis avec le destructeur d’objet lorsque l’allocation mémoire passe par une LinkedList()... avis aux amateurs… :D

[Modifications: lien vers le site]
Dernière modification par Dräc le ven. 21/sept./2007 10:03, modifié 1 fois.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Tout d'abord, bravo pour ton travail, c'est très impressionnant. :o

Je commence juste à aborder le concept objet et je retrouve dans ton tuto les quelques principes que j'essaye d'assimiler. Mais il me parait difficile d'entamer ce sujet pour le novice que je suis dans un langage qui n'est pas orienté objet. Aussi, si je comprends les explications de ton tuto c'est que je me suis lancé dans l'apprentissage d'un langage orienté objet. Je recommande donc pour ceux que le sujet intéresse d'en faire autant aux risque de passer complètement à coté des nouvelles fonctionnalités offertes par la programmation orientée objet, ce que Pure Basic ne peut mettre en évidence car non conçu pour cela.

Tu dois avoir toi même d'autres expériences dans d'autres langages pour t'être lancé sur le sujet avec Pure Basic.
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

Bizarrement quasimment aucune faute dans tout le cours, mais dans la conclusion, un festival :)
La fatigue sans doute après un tel effort de concision, de parler clair, de mise en page, d'utilisation d'un logiciel pour "émuler" d'autres concepts, on serait presque tenté, si l'on avait hélas plus qu'une vie!
Pilou
Ps
Il serait bon de numéroter les pages, c'est plus facile pour se rendre compte où l'on se trouve :)
Je donnerai les autres fautes quand cette numérotation sera effectuée :)

Pss j'étais récemment dans le coin de Toulouse, il y a un fameux vin dans ce coin, le Tariquet 8)

Sinon voici le final expurgé :)

Conclusion

Vous l'aurez compris, s'il est possible d'adopter une Programmation Orientée Objet en PureBasic, celle-ci demande une certaine rigueur d'écriture.
Mais une fois acquitté de cette tâche, la manipulation de l'objet est excessivement simple.

Or si les langages Objets apportent une plus grande souplesse pour écrire son code (dans l'application des concepts objets), nous avons vu qu'elle s'articule sur des appels de méthodes, et perd donc en performance.

Néanmoins, j'espère que ce tutorial vous aura permis, d'abord, de saisir les mécanismes sous-jacents à la POO et d'en comprendre les concepts.
Même en gardant une approche procédurale, on peut fort bien intégrer ces concepts d'une manière ou d'une autre dans son code. Vous pouvez alors bénéficier de l'expérience du domaine de "l'orienté objet" pour améliorer votre propre façon de programmer : je fais notamment allusion aux Design Patterns capablent d'apporter des réponses adaptées à des problèmes donnés de conception.

Libre à vous d'en faire bon usage en mixant procédural et objet dans les proportions que vous désirez.
Est beau ce qui plaît sans concept :)
Speedy Galerie
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Quand j'avais lu POO , je m'étais dit "c'est pas pour moi ça " , alors j'ai zappé . Et puis les commentaires de nico et de Frenchy Pilou m'ont donnés envie d'aller y jeter un oeil .

Il est très beau ton site , trè bien présenté , ça donne envie de lire les articles .

J'ai lu vite fait en diagonal , ton travail mérite une plus grande attention , je vais prendre la peine de m'y attarder .
Je vais apprendre plein de choses ,même si je pense que je ne ferai jamais de POO , c'est toujours bon de savoir au moins en quoi ça consiste. Et qui sait ? peut-être que je changerai d'avis après cette lecture :)
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Message par Dräc »

Merci!
nico a écrit :...si je comprends les explications de ton tuto c'est que je me suis lancé dans l'apprentissage d'un langage orienté objet. Je recommande donc pour ceux que le sujet intéresse d'en faire autant...
Effectivement, le tuto n’explique pas la raison d’etre de la programmation objet mais simplement comment on peut l’implémenter dans un langage comme PureBasic.
Si le tuto reprend les définitions des concepts OO c’est dans le but de se mettre d’accord avec le lecteur sur les définitions des concepts qui seront traités.

Je vais néanmoins essayer de suggérer en quelques lignes l’intérêt OO pour ceux qui le désirent:
Pour moi, le concept objet apporte une réponse concrète dans la manière dont le développeur peut s’y prendre pour conceptualiser son code.

Par conceptualiser, il faut comprendre que l’on regroupe au maximum les éléments qui se ressemblent pour travailler d’abord les ressemblances communes (les classes d’objet) et repousser au plus tard les différences (les objets eux-mêmes).

Cette approche propose donc de ne coder que le strict minimum car on limite les redondances.

Un exemple classique pour illustrer:
On peut décrire un rectangle et un cercle de manière indépendante et donc créer autant de codes différents.
Pourtant tous deux sont d’abord des formes : ils ont donc des points communs.
Le but de l’orienté objet est d’amener le développeur à n’implémenter qu’une seule fois les points communs. Vous saisissez alors les avantages que cela implique : moins de codes, plus de clarté, un code plus sécurisé face aux modifications…
Cet exemple est simple et bien sur le procédural permet aussi de le faire.
Simplement la programmation orientée objet propose de structurer sa programmation procédural pour mieux répondre à cette exigence.
Tout programmeur cherche à simplifier ses codes et l’orienté objet doit etre vu comme une technique pour y arriver.
Mais pour sentir pleinement l’avantage de la représentation objet, je ne peux que vous conseiller d’aborder juste après la philo des design patterns.
Ces derniers ne traitent pas d’un langage en particulier (mais il doit cependant être orienté objet). Ils traitent des problèmes courant de programmation et donne la solution la plus adapté en terme de regroupement de points commun.
Ce sont eux, à mon goût, qui donnent un sens à la POO.
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Message par Dräc »

Frenchy Pilou a écrit :Bizarrement quasimment aucune faute dans tout le cours, mais dans la conclusion, un festival :)
La fatigue sans doute...
Ce sera donc la première évolution du tuto :lol:
Bon! Tu noteras que j’ai refais un passage. Je ne garantis pas pour autant l’absence de fautes.
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Message par Dräc »

Le tutorial vient d’être mise à jour.
Cette mise à jour touche l’intégralité de la partie appelée « Deuxième implémentation ».
Elle apporte une implémentation plus homogène en distinguant l’initialisation des méthodes de celle des attributs.
Ainsi, la définition des méthodes est entièrement contenue par la classe de l’objet, alors que l’initialisation des attributs reste au niveau du constructeur de l’objet.
Il en découle un héritage réalisé de manière plus systématique.

J’ai aussi explicité la présence des paramètres d’entré possibles du constructeur.

Je remercie, au passage, Leo pour sa contribution sur le sujet (voir forum en anglais)

Enfin, le tutorial s’enrichit d’une Annexe, visant à regroupées les diverses considérations gravitant autour de l'implémentation orientée objet et venant enrichir ainsi le tutorial.
Actuellement en peut y trouver :
- L’optimisation des performances quant à l’utilisation des accesseurs et des modifieurs (déjà présent auparavant, mais déplacé dans les annexes)
- L’utilisation des listes chaînées.

N’hésitez donc pas à me faire remonter vos astuces…

PS : j’envisage de mettre à disposition une version .chm sur le site à partir de cette nouvelle version
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Message par Crystal Noir »

moi depuis que j'ai découvert la POO avec un langage spécialisé dans la POO j'adore. En Pb ca reste quand même un peu différent :)
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Oué, moi aussi j'ai bien aimé la POO
mais j'aime aussi le bas niveau comme en pure ou en C ^^

Dri
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

@Crystal Noir

Lequels des langages utilises-tu pour la POO? le C++?
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

bah C++ est pas vraiment spécialisé dans la POO... Peut-être qu'il parle de java

Dri
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Message par Dräc »

Un .chm du tutorial est disponible au téléchargement sur le site...(Image Image en haut à droite)
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Très bonne idée le Chm
et très beau visuellement :)
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

Mince, il y a les numéros de pages :roll:
Il va donc falloir que je relise pour les fautes :D
En voici donc page 2
Un objet peut etre vue de deux facons
être vu de deux façons
Du point de vu du développeur, l'implémentation des méthodes diffères.

Pas de "s" et vue :)
Si la type
le type
Le fait que l'on appèle
appelle
Un tel processus s'appèle l'instanciation.
s'appelle
la Classe définie ce que contient
définit

La prochaine fois, promis, je commence par la page 1 :roll:

- page 1 : Nickel 8)

A suivre...page 3 ...suspense...
Est beau ce qui plaît sans concept :)
Speedy Galerie
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Frenchy Pilou tu as été prof de français dans une autre vie ? :P
Répondre