IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débats sur le développement - Le Best Of Discussion :

[architecture] pour de la généricité, vous feriez quoi ?


Sujet :

Débats sur le développement - Le Best Of

  1. #21
    Membre actif
    Profil pro
    Inscrit en
    mars 2003
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2003
    Messages : 292
    Points : 216
    Points
    216
    Par défaut
    Si c'est pour essayer de faire un truc (je sais pas comment appeler ca) qui puisse convenir a tout le monde, alors je suis le premier a ne pas l'utiliser, car utiliser quelque chose de tres generique, c'est non seulement introduire des bugs, mai egalement se trimbaler avec de nombreuses fonctionnalites absolument inutiles !
    Alors n'utilise pas de langage style Java ou C++ parce que tu serais étonné du nombre de personne qui les utilisent.

  2. #22
    Nouveau membre du Club
    Profil pro
    Inscrit en
    juin 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2004
    Messages : 25
    Points : 34
    Points
    34
    Par défaut Ta question est étrange ....
    Ta question est étrange ....
    Pour ma part, la méthodologie UML m'a montrée qu'il n'existe pas d'architecture sans "l'expressions des besoins".
    Vouloir concevoir un méta-méta-modèle sans en connaitre l'usage est impossible (et franchement casse gueule) pour une raison simple: comment faire pour vérifier si ton meta-meta-modèle est valide, tu n'a aucune preuve de sa validité, non pas parce que le machin ne marche pas, mais tout simplement par absence d'hyppothèse au départ.

    C'est un peu comme si, dans le batiment (l'architecture dans le premier sens du mot), un architecte donnais un modèle général pour construire
    un hopital, un chalet de montagne, une prison, un batiment HLM, un igloo, une bibliothèque, un tipi...

    Si tu veux vraiment une architecture générique, je rappelle que TOUTES LES APPLICATIONS peuvent rentrer dans le modèle des machines d'états de Turing, mais ça ne nous avance pas à grand chose...

    Raphael

  3. #23
    Membre actif
    Profil pro
    Inscrit en
    mars 2003
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2003
    Messages : 292
    Points : 216
    Points
    216
    Par défaut
    C'est un peu comme si, dans le batiment (l'architecture dans le premier sens du mot), un architecte donnais un modèle général pour construire
    un hopital, un chalet de montagne, une prison, un batiment HLM, un igloo, une bibliothèque, un tipi...
    Tu fais de la magie ou de l'info Raphael ? Dans ce cas là ca serait un langage de specs adapté à l'entreprise du batîment. Aucun logiciel ne va deviner les specs d'un logiciel mais par contre tu peux souhaiter programmer en haut niveau, c a d au niveau métier.

    Pour une base du SQL par exemple. Pour du batîment j'en sais rien...

    Si tu veux vraiment une architecture générique, je rappelle que TOUTES LES APPLICATIONS peuvent rentrer dans le modèle des machines d'états de Turing, mais ça ne nous avance pas à grand chose...
    Bien au contraire. Si déjà on en était là ca serait pas mal. Mais quand tu dis à ton programme écrit dans la case 35 la valeur 1 il se peut que
    - ca mette plus ou moins de temps (suivant la position de la case (réseau, disque, mémoire, ...) Et aucun langage commun ne propose de la syntaxe temps réel ou transactionnelle.
    - ca n'arrive pas du tout
    - qu'au moment de relire la case il n'y ait plus rien parce qu'il y a eu un énorme crash.

    Sans compter tout le code de tuyauterie genre code de base ou code COM uniquement pour faire communiquer des applis juste parce que personne a réussi à se mettre d'accord. Ce qui n'a rien a voir avec du Turing.

    Déjà il y a un gros travail de virtualisation à faire sur les ressources et un développement de la syntaxe des langages.

  4. #24
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    décembre 2004
    Messages
    2 492
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2004
    Messages : 2 492
    Points : 4 061
    Points
    4 061
    Par défaut
    Ca n'existe pas. C'est un sujet de recherche ouvert.

    Vous cherchez des patterns de très haut niveau d'abstraction, tellement haut qu'il n'y a rien à en tirer. Les patterns de très faut niveau sont en fait inutiles. Par ailleurs, une grande partie des patterns "utiles" architecturaux ont été recencées. Il en reste peut-être à trouver, ce qui nécessite un travail de recherche à plein temps.

    Cette seule phrase subtile résume tout le problème :
    "le degré de réutilisation est inversement proportionel au degré d'utilisation"
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  5. #25
    Membre régulier
    Profil pro
    Inscrit en
    février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : février 2005
    Messages : 283
    Points : 107
    Points
    107
    Par défaut
    et pourquoi pas une solution mixte,...

    personnellement je suis plutôt contre l'architecture qui résoud "tout",... je pense juste que c'est impossible. Couplée à un générateur de code c'est déjà plus séduisant mais ça me reste difficile à mettre en oeuvre, lourd et pas proche de la pratique,... En fait cela ressemble à avoir des templates sur tout,...

    Ce qui pourrait déjà être plus intéressant, ce serait des solutions qui essayent d'être le plus générique possible pour des catégories de programmes, couplée à de la génération de code. Pour reprendre l'exemple du jeux vidéo on pourrait partir d'un moteur 3D performant. Dans le domaine du jeux des progrès spectaculaires ont été fait dans les moteurs 3D. Notamment en 2002 et 2003 des résultats ont apportés des bornes mathématiques qui prouvent que les nouveaux algorithmes étaient de loin plus performant que les anciens (O(n^9) => O (n^4 log n)). On peut imaginer qu'avec le temps on pourrait arriver à un moteur 3D universel qui gèrerait tout le rendu et la physique. Pour modifier les lois de cet univers de jeux il faudrait juste changer des paramètres. Dans ce cas ce n'est plus l'architecture du jeux qui est modifiée, mais ces données. C'est donc une architecture guidée par les données. En modifiant les données du jeux on en modifie la jouabilitée, les règles, le rendu,... On pourrait aussi rajouter dans le modélisateur un moyen pour rajouter des données invisibles dans la géométrie qui permettrait d'effectuer des actions, paramétrables. Là encore si l'on pousse ce mécanisme à l'extrême on aurrait un mécanisme pour générer des jeux très différent en modifiant les données à l'aide d'editeurs de jeux.

    Ce n'est d'ailleur pas très différent de la réalitée, quand un développeur veut avoir une maniabilitée parfaite pour le maniement d'un vaisseau par exemple, il peut laisser des joueurs s'amuser en leurs laissant modifier eux même certains paramètres pour arriver à la jouabilitée optimale.

    Concrètement cela pourrait se traduire par le choix du beta tester de constantes dans des équations prenant en compte l'inertie, l'accélération,... (il n'à qu'à le faire en pressant des touches modifiant ces constantes).

    En bref on pourrait je pense avoir un générateur de jeux vidéos plutôt complèt et modulable "pour les styles de jeux existants",....

    Je ne crois pas en l'existence d'un modèle pouvant générer un casse brique si le modèle de départ n'à prévu que de gèrer des mondes 3D dans lesquel on doit tuer tout le monde à la première personne (quacke like) ou l'on résoudre des énigmes scriptées (jeux de rôle, aventure),...

    Même l'architecture universelle n'existe à mon avis pas, ou alors est tellement générique qu'elle en est inutile, je pense qu'on peut utiliser des architectures "universelles" pour certaines catégorie de programmes, couplée à de la génération de code et une architecture guidée par les données en fonction des cas.

  6. #26
    Membre régulier
    Profil pro
    Inscrit en
    février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : février 2005
    Messages : 283
    Points : 107
    Points
    107
    Par défaut
    je ne sais plus qui à dit dans ce forum que trouver une architecture qui modélise tout reviend à dire que les mathématiques peuvent tout résoudre, mais cela me rapelle le théorème de complétude et d'incomplétude de goëdel. Ce célèbre locigien avait prouvé l'impossibilité des mathématiques à tout modéliser. Pour le détail il y a une preuve de 30 pages que j'ai vu pendant mes études,... j'avoue ne plus trop m'en souvenir mais ceux que cela intéresse trouverons sans difficultée la preuve sur internet je pense, car c'est un théorème plutôt connu.

  7. #27
    Membre averti
    Profil pro
    Inscrit en
    août 2005
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 417
    Points : 372
    Points
    372
    Par défaut
    Citation Envoyé par mlequim
    [...] mais cela me rapelle le théorème de complétude et d'incomplétude de goëdel. Ce célèbre locigien avait prouvé l'impossibilité des mathématiques à tout modéliser.
    Cette vision du théorème d'incomplétude de Gödel, me semble n'être que ce qui reste du théorème après qu'il soit passé par le robot-mixeur de la vulgarisation.

    Ce théorème dit précisément la chose suivante:
    Citation Envoyé par Kurt Gödel
    Un système formel consistant, et contenant des ensembles infinis, contient des énoncés indécidables.
    Note: j'ai souligné consistant, parce que c'est une hypothèse qu'on oublie généralement. Je rappelle aussi qu'un énoncé indécidable est un énoncé qui ne peut être ni prouvé ni réfuté (dans le système en question bien sûr).

    Je ne vois pas en quoi, cela empèche les mathématiques de modéliser quoi que ce soit.

  8. #28
    Membre régulier
    Profil pro
    Inscrit en
    février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : février 2005
    Messages : 283
    Points : 107
    Points
    107
    Par défaut
    en effet je n'ai pas été formel et en plus je me suis trompé, à l'avenir plutôt que de me baser sur mes souvenirs je relirai d'abord ma source d'information pour éviter d'embrouiller plus que d'aider

  9. #29
    Expert éminent

    Inscrit en
    novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : novembre 2005
    Messages : 5 145
    Points : 6 863
    Points
    6 863
    Par défaut
    Citation Envoyé par DrTopos
    Ce théorème dit précisément la chose suivante:
    Citation Envoyé par Kurt Gödel
    Un système formel consistant, et contenant des ensembles infinis, contient des énoncés indécidables.
    Il me semble que ce n'est pas contenant des ensembles infinis mais contenant l'arithmétique. Si j'ai bonne mémoire, il y a des systèmes formels relativement puissants dont la complétude et la consistance ont été toutes deux démontrées (j'ai en tête la logique des proposition mais je n'en suis pas certain).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  10. #30
    Membre averti
    Profil pro
    Inscrit en
    août 2005
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 417
    Points : 372
    Points
    372
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Il me semble que ce n'est pas contenant des ensembles infinis mais contenant l'arithmétique.
    Effectivement. L'énoncé classique dit même, contenant l'arithmétique de Gödel (le système T). Ce que j'ai mis est équivalent, pourvu que ces ensembles infinis soient accompagnés des moyens nécessaires en fonctions récursives. Si je l'ai formulé ainsi, c'était juste pour éviter d'avoir à dire en plus ce qu'est l'arithmétique de Gödel.

    Citation Envoyé par Jean-Marc.Bourguet
    Si j'ai bonne mémoire, il y a des systèmes formels relativement puissants dont la complétude et la consistance ont été toutes deux démontrées (j'ai en tête la logique des proposition mais je n'en suis pas certain).
    En effet, et les plus puissants d'entre eux sont sans doute le système F de Jean-Yves Girard. et la Théorie des Topos Elémentaires de Lawvere-Tierney.

  11. #31
    Membre averti
    Homme Profil pro
    Inscrit en
    juillet 2002
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : juillet 2002
    Messages : 701
    Points : 392
    Points
    392
    Par défaut
    Me revoilà sur les rangs après une année en plus d'expérience.

    Ce que je cherche le plus à définir ce n'est pas les détailles d'une architecture mais les grands fondements.

    J'ai bien aimé l'idéé de l'architecture entre un igloo et un immeuble ect...
    C'est bien concret.

    Au cours de mes expériences professionnelles je découvre que peu de gens ont une connaissance, si ce n'est une sensibilité architecturale. On sait faire un type de logiciel, avec une architecture particulière et on se répéte. Certains ne connaisse pas les modèles en couches: persistance, business, présentation, à leur tour, souvent divisée en:
    - logique de persistance, persitance effectrice (pour BD, XML, fichier plat...)
    - business et niveaux méta (pour des systèmes auto-adaptatifs)
    - présentation et logique de présentation.

    Souvent des problèmes de découpage de l'archi proviennent de problèmes de définition (mauvais glossaire). On ne s'entend pas sur les termes: composant, modules, couches, systèmes, application...

    Ensuite viennent des problèmes plus pointus: la communication et l'inter-opérabilité.

    Dans un premier temps ce que je souhaiterai réussir à produire est un découpage en couche, assez exhaustif, d'une application. A l'example du modèle OSI pour les réseaux, et trouver des définitions précises sur les termes couche, module, composant. Les couches comportent assurément des sous couches selon "l'intelligence du logiciel".

    Pour le modèle du batiment on retrouve: la cuisine, la salle d'eau, le garage (parfois) etc...

    Avoir une telle vision architecturale d'une application (en terme de service en faite) permet de mieux organiser son code, mieux le packagé.

    Pour ma part je vois déjà:
    - la couche présentation (GUI) avec une sous couche logique de présentation (fct° du device, des profils utilisateurs, de la version du logiciel)...
    - la couche business et effectue stupidement le job de l'application, avec la sous couche pilote qui peut reparamétrer la couche business; donc avec une part d'intelligence.
    - la couche persistance, avec une logique de persistance qui peut choisir le mode d'enregistrement ou s'adapter (que dire des LDAP).
    - la couche de communication qui prend en charge les problèmes réseaux
    - la couche d'interopérabilité.
    ....
    On a parfois des aspects qu'on peut pas localiser précisément comme la gestion des erreurs, et les logs, ou encore l'I18N. Cependant des couches peuvent y etre dévoué particulièrement.
    Et que dire encore des architectures à plug-in ? Est ce une nouvelle couche ?

    En parlant de plug-in les pro JAVA je vous invite à regarder JPF (java plug-in framework). Beau boulot.

    Donc c'est un super diagramme recensant tout cela que j'essai d'avoir en tete. Au moins quand on code, on sépart la couche session de la couche transport dès le départ, avant de se dire Ah !

    Merci de votre retour d'expérience

  12. #32
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    décembre 2004
    Messages
    2 492
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2004
    Messages : 2 492
    Points : 4 061
    Points
    4 061
    Par défaut
    Citation Envoyé par Alec6
    Au cours de mes expériences professionnelles je découvre que peu de gens ont une connaissance, si ce n'est une sensibilité architecturale. On sait faire un type de logiciel, avec une architecture particulière et on se répéte. Certains ne connaisse pas les modèles en couches: persistance, business, présentation
    Ce dont tu parles est le pattern "SoC"[1]. En effet, les gens n'en tiennent pas compte ou ne le connaissent pas. C'est dommage.

    Citation Envoyé par Alec6
    Ensuite viennent des problèmes plus pointus: la communication et l'inter-opérabilité.
    L'inter-opérabilité syntaxique : il existe des solutions
    L'inter-opérabilité sémantique : encore un enjeu (sujet de recherche)

    Citation Envoyé par Alec6
    Avoir une telle vision architecturale d'une application (en terme de service en faite) permet de mieux organiser son code, mieux le packagé.
    ...donc mieux le maintenir et surtout le RE-UTILISER !


    Citation Envoyé par Alec6
    On a parfois des aspects qu'on peut pas localiser précisément comme la gestion des erreurs, et les logs, ou encore l'I18N. Cependant des couches peuvent y etre dévoué particulièrement.
    Ce problème a été résolu avec la programmation par aspects. :-)


    Citation Envoyé par Alec6
    Et que dire encore des architectures à plug-in ? Est ce une nouvelle couche ?
    Non, c'est l'extension d'une couche. On parle d'architecture ouverte, capable d'intégrer de nouveaux composants (statiquement ou dynamiquement)


    Bonne continuation

    _________________
    [1] Separation Of Concern = Séparation des préoccupations
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  13. #33
    Membre expérimenté

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    février 2004
    Messages
    704
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : février 2004
    Messages : 704
    Points : 1 739
    Points
    1 739
    Par défaut
    Juste une petite remarque : à quoi sert le génération de code, alors que, en java en particulier, existe déjà l'instanciation dynamique de classe?

    J'ai l'impression, surtout dans les technos Java, qu'on a toujours une fuite en avant : comme si, en math, on essayait toujours de trouver la primitive de la formule sur laquelle on travail en pensant que ca ira mieux.

    Après ce sera quoi? La génération de génération de code?

  14. #34
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2004
    Messages : 897
    Points : 1 604
    Points
    1 604
    Par défaut
    Citation Envoyé par blbird
    Juste une petite remarque : à quoi sert le génération de code, alors que, en java en particulier, existe déjà l'instanciation dynamique de classe?

    J'ai l'impression, surtout dans les technos Java, qu'on a toujours une fuite en avant : comme si, en math, on essayait toujours de trouver la primitive de la formule sur laquelle on travail en pensant que ca ira mieux.

    Après ce sera quoi? La génération de génération de code?
    Euh... Le rapport entre génération de code et l'instanciation dynamique des classes, il est où ?

    Et qu'est ce que tu appelles instanciation dynamique ? Tu parles des techniques d'introspection ou de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Object o = new Object();
    Si tu aimes les technos Java et que la génération de code t'intéresse, je te conseille de regarder le framework EMF qui permet de générer du code à partir d'un modèle. Tu verras que le temps gagné est énorme (surtout quand on voit la qualité de l'architecture du code généré (utilisation de plusieurs DP qui n'auraient jamais été utilisés dans une implémentation à la main par souci d'économie des ressources)).

  15. #35
    Membre expert
    Homme Profil pro
    Ingénieur Exploitation Mainframe
    Inscrit en
    octobre 2005
    Messages
    1 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Exploitation Mainframe
    Secteur : Finance

    Informations forums :
    Inscription : octobre 2005
    Messages : 1 446
    Points : 3 174
    Points
    3 174
    Par défaut
    Citation Envoyé par Alec6
    Me revoilà sur les rangs après une année en plus d'expérience.

    Ce que je cherche le plus à définir ce n'est pas les détailles d'une architecture mais les grands fondements.

    bla bla bla bla bla ...
    Tout cela m'a l'air d'une grande confusion ...
    Comme souvent les discours des architectes d'ailleurs ...

  16. #36
    Membre expérimenté

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    février 2004
    Messages
    704
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : février 2004
    Messages : 704
    Points : 1 739
    Points
    1 739
    Par défaut
    Citation Envoyé par yann2
    Euh... Le rapport entre génération de code et l'instanciation dynamique des classes, il est où ?

    Et qu'est ce que tu appelles instanciation dynamique ? Tu parles des techniques d'introspection ou de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Object o = new Object();
    Si tu aimes les technos Java et que la génération de code t'intéresse, je te conseille de regarder le framework EMF qui permet de générer du code à partir d'un modèle. Tu verras que le temps gagné est énorme (surtout quand on voit la qualité de l'architecture du code généré (utilisation de plusieurs DP qui n'auraient jamais été utilisés dans une implémentation à la main par souci d'économie des ressources)).
    Je parlais simplement de java.lang.ClassLoader, qui permet le dévelloppement de tout les systèmes de plug-ins.

    Maintenant, générer des classes à partir de diagrammes UML pourquoi pas. Ca peut certainement en aider beaucoup dont moi. Castor m'avait déjà bien aidé en son temps.

    Amusant quand même de voir qu'il y a encore quelques années, la génération de code (par ex. graphique, style Visual Studio) via des IDE en Java semblait ridicule à beaucoup de monde.

    Et maintenant, on passerait à de la génération complète d'applications avec des diagrammes UML et des fichiers de description de données en XML.

    Je vais m'y mettre pour voir ce que ca donne.

  17. #37
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    décembre 2004
    Messages
    2 492
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2004
    Messages : 2 492
    Points : 4 061
    Points
    4 061
    Par défaut
    Citation Envoyé par Luc Orient
    Tout cela m'a l'air d'une grande confusion ...
    Comme souvent les discours des architectes d'ailleurs ...
    Pas compris ta remarque pour Alec6...
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  18. #38
    Membre expert
    Homme Profil pro
    Ingénieur Exploitation Mainframe
    Inscrit en
    octobre 2005
    Messages
    1 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Exploitation Mainframe
    Secteur : Finance

    Informations forums :
    Inscription : octobre 2005
    Messages : 1 446
    Points : 3 174
    Points
    3 174
    Par défaut
    Citation Envoyé par Hephaistos007
    Pas compris ta remarque pour Alec6...
    Quelques exemples ...

    J'ai bien aimé l'idéé de l'architecture entre un igloo et un immeuble ect...
    C'est bien concret.
    Je vois pas le rapport entre un igloo et un immeuble ni le rapport entre les deux et l'architecture informatique ...

    Au cours de mes expériences professionnelles je découvre que peu de gens ont une connaissance, si ce n'est une sensibilité architecturale. On sait faire un type de logiciel, avec une architecture particulière et on se répéte. Certains ne connaisse pas les modèles en couches: persistance, business, présentation, à leur tour, souvent divisée en:
    - logique de persistance, persitance effectrice (pour BD, XML, fichier plat...)
    C'est quoi une persistance effectrice ?

    - business et niveaux méta (pour des systèmes auto-adaptatifs)
    Là aussi le sens de cette expression m'échappe quelque peu ...

    Dans un premier temps ce que je souhaiterai réussir à produire est un découpage en couche, assez exhaustif, d'une application. A l'example du modèle OSI pour les réseaux, et trouver des définitions précises sur les termes couche, module, composant. Les couches comportent assurément des sous couches selon "l'intelligence du logiciel".
    C'est pas le logiciel qui est intelligent, c'est son concepteur et son écrivain ...

    Pour le modèle du batiment on retrouve: la cuisine, la salle d'eau, le garage (parfois) etc...
    Là aussi le rapport avec le logiciel découpé en couches ne me semble pas d'une évidence criante ...

    Et le reste est à l'avenant ...

    Enfin voilà, tout ce discours m'apparaît encore une fois très confus et à la limite du galimatias ...

  19. #39
    Nouveau Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    juin 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : juin 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Ma librairie php pour du développement générique d'application.
    Bonjour,

    Pas simple de développer une architecture qui soit vraiment générique.
    Ca fait une année que je cogite (et que je travaille) là-dessus.

    A ce sujet, voici une question (longue, désolé!) qui fait appel à votre connaissance du marché et des outils disponibles dans la communauté, plus qu'à vos cerveaux de php-istes purs et durs.
    J'aimerais savoir si il existe quelque part (en open source) des packages ou des librairies de fonctions génériques qui permettent d'automatiser la production des pages d'une application web ayant des "comportements de base".

    En fait, je me suis fais une telle librairie de scripts qui marche assez bien (beta), mais avant de la réécrire plus propement et de passer du temps à y ajouter des fonctions, j'aimerais bien savoir si ça existe déjà (!). J'ai beau chercher sur le web et dans les forums de pros, je ne trouve rien qui s'en approche. Je passe peut-être à côté de quelque chose d'évident !?

    Pour mieux illustrer ce que j'entends par automatiser les "comportements de base" d'une application, voici ce que fait ma librairie:
    J'ai essentiellement deux scripts génériques: un pour traiter automatiquement des listes, l'autre pour traiter automatiquement une page d'édition d'un record unique.
    La majorité des pages de mes "appli" appartiennent souvent à l'une ou l'autre de ces deux types de pages.
    Ex. Une page-liste des élèves... on clique sur un des élèves et ça ouvre une page-d'édition pour éditer cet élève-là.
    Une page-liste des types de stage... on clique sur un stage et ça ouvre une page-d'édition pour éditer ce stage-là.
    etc.
    (En gros, l'équivalent des formulaires automatiques d'Access en mode visualisés en mode "table" ou en mode "un enregistrement à la fois"...)


    Chaque page définissant une nouvelle liste contient seulement les éléments de définition essentiels, à peu près comme ceci:

    RequeteSource = "SELECT IdPersonne, Nom, Prénom,Stage,Ville,CodePostal,Département FROM table WHERE bla-bla-bla OrderBy Nom,Prénom ASC";
    AfficherChamps = array(0,1,1,1,1,1);
    ColonnesTriables = array(0,1,0,0,1,1);
    CléUnique = "IdPersonne";
    OrdreInitial = "Nom, Prenom";
    ActionsAutorisées= array("Ajout","Edition","Suppression");
    PageEdition = "Stagiaires_Ed.php";

    Etc.
    Puis ça se poursuit avec un include du script générique:
    require_once("Connection.php");
    require_once("ListeGenerique.php");

    A partir de là, c'est mon script "ListeGenerique.php" qui fait TOUT le reste. C'est quoi tout le reste ?
    Il exécute la requête SQL auprès de la base de données spécifiée, il récupère le record-set, il affiche un message si la liste est vide ou il génère un tableau html pour présenter les records, il affiche des labels en entête de chaque colonne, et dans la langue de l'utilisateur svp (c'est pas dans l'exemple ci-dessus, ça fait partie du "Etc."), il fait apparaitre ou non des petites flèches A-Z et Z-A au côté des titre des colonnes triables, selon le array ColonnesTriables, Il affiche des boutons (ou des petites icônes cliquables) par lesquelles l'utilisateur peut ajouter une personne (ouvrir une page d'édition vide) ou bien éditer et/ou supprimer l'une quelconque des personnes de la liste.

    De son côté, la page enfant "Stagiaires_Ed.php" contient aussi une définition des champs à éditer, et un include du script:
    require_once("EditionGenerique.php");

    Quand on l'appelle, cette page générique d'édition construit et renvoie soit une page html de champs vierges à remplir (si c'est l'action "Ajout" qui avait été cliqué sur la liste parente), soit une page html de champs pré-remplis avec les données du record. Les champs sont des champs texte, ou cases à cocher, ou boutons-radio, ou combo-box à choix, selon la liste des champs définis pour cette page en particulier et tout est géré de façon générique. Chaque champ est modifiable ou non selon les paramètres définis pour la page, ça strippe les tags qui seraient éventuellement tapés dans les champs, ça valide en standard les champs date, ça calcule combien de boutons-radio ça peut placer sur une même ligne, en fonction de la longueur de leurs labels, etc.
    Et tout ça avec des étiquettes de champs multilingues et des rubriques d'aide au remplissage adaptées selon l'utilisateur, et plein d'autres choses.
    Avec ces deux scripts, je peux définir rapidement pour une application quelques dizaines de pages de listes, ouvrant à leur tour plusieurs dizaines de pages d'édition, en me contentant de fournir les paramètres de chaque page. Tout le reste se fait ensuite tout seul... J'ai mis du temps à développer ça, mais aujourd'hui je crée et déploie une application avec moins d'efforts.

    Un exemple de ça en "live", allez voirhttp://www.simplus.ch et pour entrer, tapez Entreprise=demo , UserName=JDS et le Password=123
    (Vous serez dans une entreprise de démo alimentée à neuf à chaque fois, vous pouvez donc faire des modifs dans les données pour essayer).

    La section parfaite pour illustrer le comportement des deux scripts expliqués ci-dessus est la section "Stagiaires actuels", au milieu en haut.
    Si vous y allez, n'hésitez pas à me dire ce que vous en pensez.

    =======================================
    Avant de développer ça, j'ai beaucoup cherché dans mes bouquins et sur le web.
    Il existe évidemment la librairie gd, pour traiter les images.
    Il existe aussi une librairie php appelée "fpdf" pour générer des documents pdf. C'est super et je l'utilise.
    J'ai même trouvé des pages webs où on peut générer à la volée des petits formulaires html, pour envoyer les données par mail, ou pour faire des qcm, des quizz ou autres sondages.
    Mais je n'ai rien trouvé qui permette d'implanter rapidement une interface utilisateur basique mais cohérente d'un bout à l'autre.

    Est-ce que je n'ai pas su où chercher ?
    Est-ce que quelqu'un parmi vous connait un package qui permet de faire ça ou l'équivalent ?

    J'aimerais bien avoir une idée claire de ce qui existe, avant de me lancer dans la refonte de tout ça.
    J'envisageais d'en faire une version de meilleure qualité, c'est-à-dire plus propre, plus portable, plus indépendante des browsers, des tables sous-jacentes ou des langues de l'utilisateur, complètement épurée des balises <font color= size= > en ayant SYSTÉMATIQUEMENT recours aux styles css, etc.

    Avez-vous des pistes pour moi avant que je replonge ?
    Merci d'avance.

    Mario
    (développeur web un peu solitaire dans ses montagnes suisses)
    Réponses à : technique <at> libro-koncept.ch

    PS. J'enverrai une boîte de véritable chocolats suisses à celui ou celle qui me fournira la meilleure piste. Promis, juré.

  20. #40
    Membre expérimenté

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    février 2004
    Messages
    704
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : février 2004
    Messages : 704
    Points : 1 739
    Points
    1 739
    Par défaut
    Il existe, entre autres, Symphony : http://www.symfony-project.com/

    Il génère automatiquement des pages web du style CRUD (Create, Retrieve, Update and Delete) à partir du schéma de ta BDD.

Discussions similaires

  1. Réponses: 50
    Dernier message: 14/08/2014, 13h57
  2. Réponses: 5
    Dernier message: 30/07/2010, 14h09
  3. Réponses: 4
    Dernier message: 18/05/2009, 17h00
  4. Vous pensez quoi des offres de job SAP/ABAP ?
    Par titides dans le forum Emploi
    Réponses: 82
    Dernier message: 29/06/2007, 19h55
  5. Architecture pour les objets d'un jeu
    Par Freakazoid dans le forum DirectX
    Réponses: 7
    Dernier message: 31/07/2004, 13h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo