+ Répondre à la discussion Actualité déjà publiée
Page 1 sur 3 123 DernièreDernière
  1. #1
    Expert éminent sénior

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    janvier 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2013
    Messages : 189
    Points : 15 570
    Points
    15 570
    Billets dans le blog
    1

    Par défaut Un code n'est pas écrit pour être optimal mais d'abord pour répondre à ses besoins

    Un code n'est pas écrit pour être optimal mais d'abord pour répondre à ses besoins,
    illustration par six profils de développeurs sur une suite de Fibonacci

    Pour les professionnels du domaine du développement logiciel, écrire du bon code nécessite de respecter certaines règles, certaines conventions, certaines bonnes pratiques. Un code qui est mal documenté voire pas du tout, un code qui n'est pas modulaire est souvent considéré par le commun des programmeurs comme étant du mauvais code. Cependant, dans bien des situations, ces critères se voient être relégués au second plan. Aussi, voici six profils de développeurs qui ont écrit des codes pour gérer une suite de Fibonacci.

    Développeur 1 : L'étudiant débutant

    Le premier de la liste est le débutant en programmation, pour le meilleur code qui puisse être est un code récursif. Il applique ce que le prof lui a appris en classe. Son code n'est pas destiné à d'autres programmeurs et peut être lui même ne va jamais le réutiliser. Il ne se fatigue donc pas à commenter son code ou à produire de la doc.

    Nom : Capture d’écran 2015-10-03 à 21.10.18.png
Affichages : 9146
Taille : 30,0 Ko

    Développeur 2: Le programmeur au Hackaton

    Pour lui l'objectif c'est de réussir à faire une bonne démo. Il se contente d'une simple structure conditionnelle pour s'assurer que son code prend en compte tout ce qui était prévu dans le cadre de sa démo; de toute façon ce n'est pas le code qui intéresse le public ou le jury mais plutôt le résultat qui s'affiche à l'écran.

    Nom : Capture d’écran 2015-10-03 à 21.12.05.png
Affichages : 9084
Taille : 44,4 Ko

    Développeur 3: le programmeur dans une startup

    Le troisième type de développeur quant à lui est indécis dans son code, il hésite encore quant au fichier devant contenir code. La plus grande partie de son code est à écrire, un jour peut être, si l'entreprise fait long feu. Il a autant de TODO dans son code que de nouvelles idées qui lui passent par la tête. Il ne va pas se fatiguer à les implémenter avant d'obtenir le premier financement de qui voudrait bien croire et financer son projet.

    Nom : Capture d’écran 2015-10-03 à 21.14.58.png
Affichages : 9187
Taille : 116,4 Ko

    Développeur 4: le programmeur dans une grande compagnie

    Le quatrième est un parano du code bien documenté et tout aussi customisé. Il prend le soin de décrire la moindre variable utilisée dans le code et surtout veille à utiliser ses propres types redéfinis pour plus de sécurité. Il s'assure ainsi que personne ne pourra réutiliser son code ailleurs que dans sa boite mais aussi et surtout il montre à son chef qu'il est un bon petit disciple qui respecte toutes les règles.

    Nom : Capture d’écran 2015-10-03 à 21.16.37.png
Affichages : 9068
Taille : 140,5 Ko

    Développeur 5: le programmeur Docteur en Maths

    L'avant dernier de la liste lui, est un pro des fonctions, son code doit être le plus modulaire possible. Il veut que son code reflète toutes les étapes de son raisonnement quant il résolvait le problème dans son brouillon. Il écrit donc des fonctions pour chaque partie ou sous partie, pour la lisibilité, c'est déjà ça.

    Nom : Capture d’écran 2015-10-03 à 21.18.13.png
Affichages : 9030
Taille : 88,4 Ko

    Développeur 6: Tom le chat

    Il se moque de la suite de Fibonacci et de tous les problèmes qui peuvent préoccuper les autres programmeurs. Il se contente lui de faire en sorte de garder ses chatons ensemble. Il ne connait qu'un seul commentaire quel que soit la portion de code qu'il veut commenter, et pourtant il n'est pas le pire programmeur de la liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
                        public static final int UNIT = 1 ;
                            public static final int UNITED = 2 ;
                            //meowwwwwwww meow
                            public int meow(int KITTENS_OF_THE_WORLD) {
                                //MEOW
                                if (KITTENS_OF_THE_WORLD < UNITED) {
                                    return KITTENS_OF_THE_WORLD ;
                                } else {
                                     //meowwwwwwww
                                     //meowwwwwwwwwwwwwwwww
                                     return meow(KITTENS_OF_THE_WORLD - UNIT)
                                        + meow(KITTENS_OF_THE_WORLD - UNITED)  ;
                                }
                            }    
    

    Source : Imgur

    Et vous ?

    Selon vous, quel est le meilleur code présenté par ces 6 profils de développeurs ?

    Pensez-vous qu'un code se doit avant tout de répondre à un besoin ?

    Voir aussi

    Forum Humour Informatique

    la Rubrique Humour

  2. #2
    Expert éminent
    Avatar de Auteur
    Profil pro
    Inscrit en
    avril 2004
    Messages
    6 705
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 6 705
    Points : 9 040
    Points
    9 040

    Par défaut

    Tu as oublié de posté le code du chat (le plus important de tous quand même) ?

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    janvier 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2013
    Messages : 189
    Points : 15 570
    Points
    15 570
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par Auteur Voir le message
    Tu as oublié de posté le code du chat (le plus important de tous quand même) ?
    En fait je ne peux ajouter que 5 images apparemment, le code du chat est la 6ème image.
    Mais je confirme, c'est le plus important en effet

  4. #4
    Expert éminent
    Avatar de Auteur
    Profil pro
    Inscrit en
    avril 2004
    Messages
    6 705
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 6 705
    Points : 9 040
    Points
    9 040

    Par défaut

    Par contre, je crois qu'il y a une petite erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int KITTENS_OF_THE_WORLD
    ce n'est pas plutôt un unsigned long?

  5. #5
    Membre éclairé
    Ingénieur de recherche
    Inscrit en
    novembre 2008
    Messages
    224
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur de recherche

    Informations forums :
    Inscription : novembre 2008
    Messages : 224
    Points : 800
    Points
    800

    Par défaut

    Mouais... l'idée est amusante, mais les commentaires sont assez condescendants, c'est dommage.

  6. #6
    Expert éminent
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    5 631
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 5 631
    Points : 7 744
    Points
    7 744

    Par défaut

    Citation Envoyé par Victor Vincent Voir le message
    Un code n'est pas écrit pour être optimal mais d'abord pour répondre à ses besoins
    Un code a des besoins qui lui sont propres ? Je serais curieux de savoir lesquels...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #7
    Membre expert

    Homme Profil pro
    Ingénieur Etudes et Développements Junior
    Inscrit en
    juillet 2009
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes et Développements Junior
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juillet 2009
    Messages : 885
    Points : 3 565
    Points
    3 565

    Par défaut 1 et 5 pour moi

    C'est marrant comme article ^^

    Alors, même si je suis un développeur expérimenté, ayant travaillé dans plusieurs grosses boîtes, je suis plutôt comme l' "étudiant débutant" du premier exemple.
    J'essaie toujours d'avoir le moins de code possible, pour favoriser la lisibilité, et par feignantise aussi. Par contre, je commente pas mal et surtout, je réfléchis (parfois trop je l'admets) ^^.

    Il m'arrive rarement de mettre des propositions dans le code, car les décideurs ne codent pas.

    J'essaie aussi de décomposer le code le plus possible, pour structurer et éventuellement réutiliser, mais je ne suis pas maniaque non plus à ce niveau là.

    Donc en gros :

    1) et 5), mais en modéré. Efficace pour l'évolutivité et la maintenabilité. Par contre, ce n'est pas forcément le plus productif. Mais bon, en informatique, les 35h on ne connaît pas.

  8. #8
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    septembre 2010
    Messages
    2 743
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 2 743
    Points : 5 437
    Points
    5 437

    Par défaut

    Je ne suis pas fan de Haskell mais il a des atouts indéniables...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fib 0 = 0
    fib 1 = 1
    fib n = fib(n-1) + fib(n-2)

  9. #9
    Membre à l'essai
    Homme Profil pro
    Architecte technique
    Inscrit en
    février 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2013
    Messages : 1
    Points : 12
    Points
    12

    Par défaut Il manque le prof d'algorithmique !

    En effet toutes les méthodes proposées sont en O(en).
    Ce qui est cher payé.

    Les codes précédents demandent 2.269.806.339 appels à fibonacci pour calculer fibonacci(45)=1134903170.
    Cet algorithme en demande 87 (pour le même résultat, il va de soi).
    C'est la Mémoïsation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    long fibonacci(int x) {
        if(x<0) {
            throw new IllegalArgumentException("x="+x+" < 0");
        }
        // Création du tableau de mémoïsation
        long[] farray = new long[x];
        // Initialisation du dit tableau, avec un décalage de 1 car en informatique les tableau commence à l'index 0.
        farray[0]=1;
        farray[1]=1;
        // Appel au calcul avec un décalage de 1 (voir ci-dessus)
        return fibonacciRecursivity(x-1,farray);
    }
        
    long fibonacciRecursivity(int x, long[] farray) {
        if(farray[x]==0) {
            farray[x] = fibonacciRecursivity(x-1,farray)+fibonacciRecursivity(x-2,farray);
        }
        return farray[x];
    }
    Quand à l'occupation mémoire :
    • fibonacci(164)=7278316983633677837,
    • fibonacci(165) dépasse un entier signé sur 64 bits,

    donc au plus nous pouvons calculer 164 valeurs.
    Un tableau de 164 long n'est pas cher payé .
    Nous pouvons aussi remplir tout au début le tableau des 164 valeurs (325 appels) puis avoir un temps de calcul en O(1) pour le reste du temps.

  10. #10
    Membre averti

    Profil pro
    Inscrit en
    juin 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2013
    Messages : 114
    Points : 369
    Points
    369
    Billets dans le blog
    3

    Par défaut

    Citation Envoyé par DonQuiche Voir le message
    Je ne suis pas fan de Haskell mais il a des atouts indéniables...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fib 0 = 0
    fib 1 = 1
    fib n = fib(n-1) + fib(n-2)
    A la syntaxe près, c'est quasiment le même code que l'étudiant débutant (si on le nettoie un tout petit peu), non?

    Pour le docteur en maths, on peut faire nettement mieux que la formule de Binet. Les termes de la suite de fibonacci sont les coefficients du développement en série entière de x / (1-x-x^2). En J, c'est 5 opérateurs...

    Ca se lit "inverse de (%) 1-x (-.) - (-) x^2 ( x: ) en Taylor (t.)"

    @emazoyer : la formule de Binet (la solution du docteur en maths de l'exemple, si on oublie le calcul de la multiplication et de la puissance comme des additions déguisées...), n'est pas exponentielle, mais O(1): on écrit Fib(n)= floor(Phi^n/sqrt(5)), (en pratique il n'y a pas besoin de la seconde partie de la formule) et ça coute tout au plus une exponentielle. C'est plus rapide qu'un calcul direct avec mémoisation (qui est O(n))

    Francois

  11. #11
    Membre à l'essai
    Homme Profil pro
    Architecte technique
    Inscrit en
    février 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2013
    Messages : 1
    Points : 12
    Points
    12

    Par défaut Mea culpa

    @fcharton2
    Tout à fait, mea culpa, j'ai oublié l'option prof de math dans ma remarque.

    Math : O(1).
    Mémoïsation simple : O(n)
    Mémoïsation à l'initialisation : 325 appels à l'intialisation puis 1 opération pour chaque appel (difficile de faire mieux ).

    Je voulais simple indiquer que tout appel consécutifs à des méthodes utilisant les mêmes calculs devrait interpeler tout informaticien.
    Dans ma vie d'informaticien j'ai amélioré un export d'une heure en export de 2 mn en transformant une méthode en O(n3) en O(n).
    Et sans modifier l'algorithme en soi (cas du mathématicien), simplement en évitant l'oubli des valeurs déjà calculées.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    février 2013
    Messages
    0
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : février 2013
    Messages : 0
    Points : 0
    Points
    0

    Par défaut

    Une version avec mémoïsation en Haskell pourrait être:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    fibs :: [Integer]
    fibs = 0: scanl (+) 1 fibs
    
    fib :: Int -> Integer
    fib = (fibs !!)

  13. #13
    Membre averti

    Profil pro
    Inscrit en
    juin 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2013
    Messages : 114
    Points : 369
    Points
    369
    Billets dans le blog
    3

    Par défaut

    Citation Envoyé par emazoyer Voir le message
    Je voulais simple indiquer que tout appel consécutifs à des méthodes utilisant les mêmes calculs devrait interpeler tout informaticien.
    Tout à fait d'accord... En général, quand une fonction est définie par une récurrence, le seul cas où il est intéressant de la calculer de manière bêtement récursive (ie sans conserver les calculs intermédiaires), c'est quand la récurrence ne fait intervenir qu'un terme f(n)= H(f(n-k)). Dès qu'on a plus d'un facteur (comme ici f(n)=f(n-1)+f(n-2), deux termes...), le calcul récursif devient déraisonnable. Et ce n'est pas de l'optimisation prématurée : pour peu qu'on calcule une valeur un peu élevée, l'algorithme naïf a toutes les chances de ne pas fonctionner du tout (soit qu'il fera exploser la pile, soit parce que le temps deviendra déraisonnable).

    Note au passage qu'ici, il n'est pas nécessaire de garder en mémoire toutes les valeurs passées. Les deux dernières suffisent. Plus généralement, si la récurrence fait intervenir des termes n-1, ... n-k, k termes suffisent. Là encore, si on avait à calculer de grandes valeurs de la suite, cela ferait une différence.

    Francois

  14. #14
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    septembre 2010
    Messages
    2 743
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 2 743
    Points : 5 437
    Points
    5 437

    Par défaut

    Citation Envoyé par fcharton2 Voir le message
    A la syntaxe près, c'est quasiment le même code que l'étudiant débutant (si on le nettoie un tout petit peu), non?
    Oui, c'est équivalent. Haskell a simplement une très élégante syntaxe pour ça. Pour ce cas-ci je ne pense pas qu'on puisse faire plus simple.

  15. #15
    Provisoirement toléré Avatar de MikeRowSoft
    Homme Profil pro
    sans profession
    Inscrit en
    avril 2013
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : sans profession

    Informations forums :
    Inscription : avril 2013
    Messages : 1 125
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par Victor Vincent Voir le message
    Et vous ?

    Selon vous, quel est le meilleur code présenté par ces 6 profils de développeurs ?

    Pensez-vous qu'un code se doit avant tout de répondre à un besoin ?
    Aucuns codes ici présent n'est le meilleur.

    Oui, il faut répondre à un besoin, même humoristique.

  16. #16
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    juillet 2013
    Messages
    2 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : juillet 2013
    Messages : 2 042
    Points : 4 497
    Points
    4 497

    Par défaut

    Citation Envoyé par DonQuiche Voir le message
    Oui, c'est équivalent. Haskell a simplement une très élégante syntaxe pour ça. Pour ce cas-ci je ne pense pas qu'on puisse faire plus simple.
    En langage listing (Prolog) ou interprété (Lisp, SML) le code est quasi similaire

  17. #17
    Membre chevronné

    Profil pro
    Inscrit en
    décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2003
    Messages : 3 995
    Points : 1 951
    Points
    1 951

    Par défaut

    Je ne vois pas de contradiction entre répondre à un besoin donné et être optimisé. Il va de soi que l'optimisation se détermine en fonction du contexte.

    En l'occurrence, difficile de faire plus optimisé que le code de hackathon, qui retourne en dur les valeurs d'une suite de Fibonacci. Par contre, c'est difficile à appliquer dans un contexte d'utilisation réel. En réalité, cette approche équivaut à la mémoïsation, mais un cran plus loin encore : c'est l'être humain qui fait le calcul initial. Ou pour le dire autrement : la mémoïsation reprend le principe du code "hackathon", mais le rend exploitable dans un cas général, tout en conservant (quasiment) l'optimisation des perfs.

  18. #18
    Membre expert

    Homme Profil pro
    Ingénieur Etudes et Développements Junior
    Inscrit en
    juillet 2009
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes et Développements Junior
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juillet 2009
    Messages : 885
    Points : 3 565
    Points
    3 565

    Par défaut

    Citation Envoyé par fcharton2 Voir le message
    Tout à fait d'accord... En général, quand une fonction est définie par une récurrence, le seul cas où il est intéressant de la calculer de manière bêtement récursive (ie sans conserver les calculs intermédiaires), c'est quand la récurrence ne fait intervenir qu'un terme f(n)= H(f(n-k)). Dès qu'on a plus d'un facteur (comme ici f(n)=f(n-1)+f(n-2), deux termes...), le calcul récursif devient déraisonnable. Et ce n'est pas de l'optimisation prématurée : pour peu qu'on calcule une valeur un peu élevée, l'algorithme naïf a toutes les chances de ne pas fonctionner du tout (soit qu'il fera exploser la pile, soit parce que le temps deviendra déraisonnable).

    Note au passage qu'ici, il n'est pas nécessaire de garder en mémoire toutes les valeurs passées. Les deux dernières suffisent. Plus généralement, si la récurrence fait intervenir des termes n-1, ... n-k, k termes suffisent. Là encore, si on avait à calculer de grandes valeurs de la suite, cela ferait une différence.

    Francois
    Merci pour la petite piqure de rappel. Pour moi, la mémoïsation tombe sous le sens (je ne connaissais pas le nom par contre), et je l'ai toujours pratiquée. Il faut juste veiller à ne pas saturer la mémoire.
    Pour la complexité, il faudra peut-être que je réapprenne à la calculer. Je fais tout à l'instinct pour le moment.

  19. #19
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    février 2013
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : février 2013
    Messages : 179
    Points : 261
    Points
    261

    Par défaut

    Il ne faut pas oublié que le développeur ne fait pas tout le temps ce qu'il a envie.
    Ayant passé par les case Étudiant -> Grosse Boite -> SS2I

    Étudiant : Faux, personnellement mes profs m'ont appris à code sur papier et à commenter
    mais étant novice et "con", je n'en voyais pas l'utilité, et je suis encore novice

    Dans les Grosses Boites : on as souvent le temps de factorisés, de redéfinir ses classes, d'implémenter de la généricité ...

    Quant-au SS2I : les clients demandes un produit fonctionnel pour pas cher, donc faut s'adapter


    C'est ce que j'ai pu apprendre de mes différentes boites.

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    février 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 111
    Points : 120
    Points
    120

    Par défaut

    Je commente jamais mon code dans le sens où j'effectue un nommage très précis des variables/classes/fonctions.

    A partir de là le commenter chaque ligne est assez ridicule.

Discussions similaires

  1. Pb de type de champs dans une requête
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 5
    Dernier message: 23/05/2005, 15h19
  2. [type de retour dans une proc]
    Par viny dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 19/03/2005, 14h35
  3. Vérification du type de données dans une procédure stockée
    Par biroule dans le forum MS SQL-Server
    Réponses: 3
    Dernier message: 16/09/2004, 11h20
  4. BC6 inserer un enreg de type date/heure dans Access2003
    Par o_live dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/06/2004, 11h13
  5. Quel type de BDD dans mon cas
    Par zoubidaman dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 10/06/2004, 18h00

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