• [^] # Re: Mélange de langage

    Posté par . En réponse au journal Témoignage d'expérience de nosql avec PHP et Mongodb. Évalué à 1.

    Quand tu change de bdd, les clients ont bien plus souvent des exigences de bdd que de langage

    Ah…, affirmer l'inverse serait tout aussi facile.

    N'importe quelle développement bien fait permet ça.

    J'apprécie ton argumentation pertinent…
    Et dans ton développement tu écris un bibliothèque que tu pourras liée à tes deux projets ?

    Normalement, ça ne doit se trouver que dans les DAO.

    Le DAO est un pattern, je ne vois pas trop de sens dans ta phrase.
    Disons que tu ais une class qui implémente le pattern DAO, elle est écrite dans un langage X, tu crées un autre client dans un autre langage : tu ré-écris.
    Sur les 10 dernières années beaucoup d'application on évoluer vers des clients léger qui utilisaient des technologies différentes de l'appli initiale.
    Avec ta proposition on doit gérer deux lignes de code.
    De plus dans ta class si tu as plusieurs requêtes à exécuter tu feras autant d'aller/retour vers la base, perte de scalabilité au minimum …

    Ceux qui n'ont pas la logique SQL n'écrivent pas les DAO et tout le monde s'en sort bien.

    Merveilleux…

    Si tes procédures sont un poil complexe, c'est aussi simple que de changer de langage.

    Les procédures stockées sont très similaires d'une base à l'autre et des outils de portages existent.
    PostgreSQL permet, par exemple, de convertir du code Oracle en code PostgreSQL.
    Porter du code écrit en Java vers un des langages du .net n'est pas trivial, par exemple.

    Pas si on a bien écrit ses DAO.

    Que fait tu de la logique des transactions, de la façon de gérer les contraintes différentes d'une base à l'autre.
    Si tu changes de SGBDR tu auras aussi des problématiques avec les DDL, à moins que ta base soit simpliste.
    Avec une petite base et un code simpliste tu peux utiliser le SGBD que tu veux et les langages qui te plaisent, se n'est pas un problème.

    Tu vois une base de données juste un ensemble de requêtes sql ce qui te permet d'ignorer confortablement toutes les différences existantes et donc les grosses problématiques de migrations d'un SGBD à l'autre que se soit la partie SGBD/R ou le code lui même (gestion des transactions, comportement des contraintes, ordres SQL, ordres DDL, etc)