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 :

Quelles sont les idées et pratiques véritablement utiles en matière de programmation ?


Sujet :

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

  1. #1
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 121
    Points : 83 913
    Points
    83 913
    Billets dans le blog
    15
    Par défaut Quelles sont les idées et pratiques véritablement utiles en matière de programmation ?
    Quelles sont les idées et pratiques véritablement utiles en matière de programmation ?
    Un professeur en fait une liste

    Daniel Lemire, un professeur et chercheur dont les travaux portent sur l'indexation, les bases de données et la recherche d'information, s'est prononcé sur les meilleures pratiques à adopter en matière de programmation. Dans un billet, l'expert avance que l'industrie du logiciel est probablement la plus dynamique et innovante qui soit au sein de toutes les entreprises. Au vu de la myriade d’idées autour de la programmation, il s’est interrogé sur les meilleures pratiques à adopter.

    Voici sa liste sur des idées qui seraient, selon lui, vraiment utiles et importantes dans ce domaine :
    • une programmation structurée ;
    • Unix et sa philosophie correspondante ;
    • les transactions de base de données ;
    • les bases de données relationnelles ;
    • l'interface utilisateur ;
    • les tests de logiciel ;
    • les structures les plus élémentaires des données (la table de hachage, les arbres) et une poignée d'algorithmes de base à l'instar de Quicksort;
    • le chiffrement à clé publique et le hachage cryptographique ;
    • un langage de programmation de haut niveau ;
    • un contrôle des versions.

    « Bien entendu, vous pouvez avancer que j'ai omis beaucoup de choses importantes. Peut-être que vous pensez que la programmation fonctionnelle et orientée objet est essentielle. Peut-être que vous pensez que je devrais inclure l'analyse de la complexité, JavaScript, XML. On peut avoir un débat sans fin ... mais j'essaie de le réduire à une liste sans controverse. En fait, je voudrais proposer des idées clés qui seront universellement reconnues comme étant utiles ».

    En d’autres termes, essayez de vous mettre dans la situation où vous êtes en présence d’un « maître de la programmation logiciel » : qu’est-ce qu’il va sûrement recommander à un enfant qui voudrait devenir un développeur ? La liste est totalement ouverte à vos suggestions.

    Source : blog de Daniel Lemire

    Et vous :

    Que pensez-vous des éléments de la liste de Daniel Lemire ? Voudriez vous en modifiez un ou plusieurs ? Lesquels et pourquoi ?
    Si vous deviez compléter la liste, quelles pratiques considérez-vous comme indispensables en matière de programmation ?
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  2. #2
    Membre éclairé
    Ingénieur de recherche
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur de recherche

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Points : 825
    Points
    825
    Par défaut
    Je pense que c'est un exercice de théorique intéressant, une sorte de liste des notions indispensable pour développer correctement.
    Et je déprime de voir le nombre de notions dans cette liste que mon entourage professionnel ne maitrise pas ^^

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 197
    Points : 225
    Points
    225
    Par défaut
    Unix et sa philosophie correspondante ; -> si c'est manipuler un peu de ligne de commande sous Ubuntu alors oui je connais

    les transactions de base de données ; -> je connais pas (grave ?)

    le chiffrement à clé publique et le hachage cryptographique ; -> non plus (grave ?)

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 705
    Points : 4 783
    Points
    4 783
    Par défaut
    @gstratege
    les transactions de base de données ; -> je connais pas (grave ?)
    C'est bien utile quand on fait la mise à jour de plusieurs tables à la fois.
    Un jour où l'autre, cela te sera obligatoire dans une application de gestion du genre "j'encaisse des sous et je marque la facture comme payée ..."
    Maintenant les transactions c'est facile à apprendre.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 47
    Points : 116
    Points
    116
    Par défaut
    Citation Envoyé par gstratege Voir le message
    les transactions de base de données ; -> je connais pas (grave ?)
    Oui plutôt, le principe de transaction est primordial en informatique. Actuellement je travaille avec un progiciel où les transactions n'ont pas systématiquement été mises en oeuvre et c'est un vrai cauchemar puisque quand on modifie les données et que cela échoue, on n'est pas certain de l'état des données en base alors que si les transactions étaient bien en oeuvre, l'échec ramènerait à l'état précédent.
    Citation Envoyé par gstratege Voir le message
    le chiffrement à clé publique et le hachage cryptographique ; -> non plus (grave ?)
    A connaître dans un monde où on sécurise de plus en plus les communications entre systèmes informatiques, il faut au moins maîtriser le principe clé publique, clé privée.

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Points : 167
    Points
    167
    Par défaut
    Citation Envoyé par gstratege Voir le message
    Unix et sa philosophie correspondante ; -> si c'est manipuler un peu de ligne de commande sous Ubuntu alors oui je connais

    Je crois qu'il veut dire, si je me base sur l'idée de génie qui fit le sucés de UNIX, d’après mes profs, c est qu'avec Unix, tout est vu/manipulable comme un fichier.
    Le disque dur, une partition, la mémoire, un socket... tout est un fichier.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2015
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    @gstratege

    les transactions de base de données ; -> je connais pas (grave ?)
    Le principe est simplissime : garantir l'intégrité de tes données, que ce qu'il y a dans ta BDD représente bien "le monde réel".
    Techniquement, exemple avec SQL, c'est que si une requête échoue, les autres (de modifications) sont annulées.

    Exemple concret:
    Je fais un virement de 100 euros d'un compte A vers un compte B
    Opérations à réaliser (au plus simple):
    - Retirer la somme au compte A
    - Ajouter la somme au compte B

    Imagine si ta requête pour augmenter le montant présent sur le compte B ne puisse être exécutée. Si tu ne fais pas de transaction, tu as 100 euros qui ont disparus!

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par tp1024 Voir le message
    Je crois qu'il veut dire, si je me base sur l'idée de génie qui fit le sucés de UNIX, d’après mes profs, c est qu'avec Unix, tout est vu/manipulable comme un fichier.
    Le disque dur, une partition, la mémoire, un socket... tout est un fichier.
    Moi je pense qu'il veut dire, si je me base sur mon ami Wikipedia:
    « Voici la philosophie d'Unix :
    Écrivez des programmes qui effectuent une seule chose et qui le font bien.
    Écrivez des programmes qui collaborent.
    Écrivez des programmes pour gérer des flux de texte [en pratique des flux d'octets], car c'est une interface universelle.
    »

  9. #9
    Membre émérite
    Inscrit en
    Janvier 2011
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Janvier 2011
    Messages : 805
    Points : 2 917
    Points
    2 917
    Par défaut
    L'auteur ne décrit pas les pratiques indispensables en programmation mais les idées qui ont fait la preuve indiscutable de leur utilité. En d'autres termes, chaque développeur n'a pas forcément besoin de savoir les implémenter, mais elles jouent un rôle important dans la discipline qu'est le génie logiciel.

    Ceci dit, sa liste est un fourre-tout complètement subjectif et sans cohérence particulière, et d'ailleurs si on demande à 10 programmeurs ils répondront 10 choses différentes. Le nombre illimité d'items dans la liste fait qu'on ne pense pas forcément avec logique à ce qu'on répond.

  10. #10
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 056
    Points
    32 056
    Par défaut
    une programmation structurée ;
    ==> En bref l'invention de la routine. Qui reste, pour moi, la plus grande avançée, et de moin, en termes de codage. Qu'on l'utilise sous forme de procédure, fonction, méthode, propriété, peu me chaut. L'important, c'est de centraliser les redondances dans des routines.

    Unix et sa philosophie correspondante ;
    ==> "Tout est fichier". C'est assez puissant, comme concept. Fondamental, je ne sais pas, mais puissant et utile.

    les transactions de base de données ;
    ==> Il y a d'autres manières de faire. Mais c'est fort utile.

    les bases de données relationnelles ;
    ==> Pareil, utile, mais c'est une manière parmi d'autres.

    l'interface utilisateur ;
    ==> il y a des gens qui n'en font jamais en 40 ans de carrière- mais c'est comme les poissons volants. En général, c'est une culture qui manque.

    les tests de logiciel ;
    ==> C'est un métier complet(c'est devenu le mien). Il est important d'avoir un vernis.

    les structures les plus élémentaires des données (la table de hachage, les arbres) et une poignée d'algorithmes de base à l'instar de Quicksort;
    ==> Je suis partagé. Franchement, un quicksort, on utilise celui qui marche mieux que ce qu'on pourrait faire, optimisé par de experts que nous ne serons jamais. D'un autre coté, c'est un bon exercice de style. De là à en faire un truc majeur à enseigner? Faut pas pousser mémé dans les orties.

    le chiffrement à clé publique et le hachage cryptographique ;
    ==> C'est plus de la culture G qu'autre chose. Tout le monde n'en a pas l'usage. Mais en culture G, àa me parait important.

    un langage de programmation de haut niveau ;
    ==> Urk? On utilise les outils qui correspondent à notre besoin. Le gars qui écrit des drivers pendant 40 ans, kennenaafout' du haut niveau(et c'est quelqu'un qui a toujours fait du haut niveau qui di ça).

    un contrôle des versions.
    ==> C'est un métier complet(celui de mon chef). Il est important d'avoir un vernis.



    En bref : c'est bien gentil, mais le gars a bien ciblé sur un certain profil de besoins. Le sien, en fait. Il y a des gens, en dehors de la routine, du test et du contrôle des versions, qui n'ont pas besoin de tout ça.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  11. #11
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par Népomucène Voir le message
    Maintenant les transactions c'est facile à apprendre.
    Le concept lui-même est simple mais dès que tu abordes les niveaux d'isolation, les transactions imbriquées, la granularité du verrouillage ou la gestion d'un rollback côté code, tu te retrouves vite face à une armada de problèmes dont certains sont parmi les plus ardus à maîtriser en programmation.


    Citation Envoyé par Luckyluke34 Voir le message
    Ceci dit, sa liste est un fourre-tout complètement subjectif et sans cohérence particulière, et d'ailleurs si on demande à 10 programmeurs ils répondront 10 choses différentes.
    D'abord ce sera forcément fourre-tout vu la nature de l'exercice. Ensuite une liste entièrement consensuelle sera par définition acceptée par la plupart, même si tous voudront y ajouter des éléments non-consensuels.

    Pour ma part je ne retirerais qu'Unix. Le reste me semble effectivement être essentiel.


    Citation Envoyé par gstratege Voir le message
    les transactions de base de données ; -> je connais pas (grave ?)

    le chiffrement à clé publique et le hachage cryptographique ; -> non plus (grave ?)
    Si tu travailles avec un SGBD il est indispensable que tu connaisses au plus vite les transactions, sans quoi il y a de bonnes chances que ton code corrompe la base.

    Pour le chiffrement à clé publique, fais simplement en sorte de t'y intéresser le jour où tu rencontreras l'un des deux cas suivants :
    * Contrôle d'identité sans que le contrôlé ne doive dévoiler son mot de passe (comme les certificats de sites web ou la signature du fabricant d'une application).
    * Établissement d'une discussion chiffrée sans mot de passe commun (comme la poignée de main en https).

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Autriche

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1
    Points : 5
    Points
    5
    Par défaut
    Et bien je fait partie des gens qui peuvent dire qu'ils ont apprit tout ça et savent le pratiquer. J'ai fait deux CV dans ma vie, le premier qui mettait ces points en avant et un second qui était dans lequel j'insistait plus sur mes expériences en terme de mot clé: langages, librairies, outils. Vous savez, C#, Entity Framework, ASP.NET MVC, WebAPI, MVVM et tout ces mots magiques qui font passer votre CV au dessus de pile. Les mêmes mots magiques existent pour Java, C++ et d'autres langages... La liste n'est pas exhaustive.

    Je vous le donne en mille, c'est bien ce second CV et principalement les mot clés qui intéressent les entreprises à mon grand regret. En plus de 10 ans de carrière on m'a posé des questions lors d'interviews sur tout ces mot clés et jamais personne ne s'est intéressé ou ne m'a posé des questions sur la gestion des sources, les tests, le chiffrement, Unix et sa philosophie, les transactions, l'un ou l'autre algorithme... oui on m'a vaguement demandé si je connaissait sans plus de question ou d'intéret.

    Je suis d'accord avec ce professeur mais j'ai plus vraiment d'espoir.

  13. #13
    Membre éclairé

    Inscrit en
    Novembre 2008
    Messages
    417
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 417
    Points : 826
    Points
    826
    Par défaut
    Citation Envoyé par B150922 Voir le message
    En plus de 10 ans de carrière [...] jamais personne ne s'est intéressé ou ne m'a posé des questions sur la gestion des sources, les tests, le chiffrement, Unix et sa philosophie, les transactions, l'un ou l'autre algorithme... .
    D'après mon expérience et celle de quelques potes qui commencent à avoir pondu pas mal de code et architecturé quelques applications... dans le domaine du logiciel, la qualité est trop souvent un détail insignifiant. La plupart des décideurs que j'ai pu rencontrer n'y connaissent finalement pas grand chose en dehors de quelques termes qui font bien en business loto.
    On préfère embaucher un type avec un ou deux ans d'expérience qu'on pourra payer avec des queues de cerises qu'un développeur chevronné.

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Tout à fait d'accord avec el_slapper (ça t'etonnes ?)

    Il semble qu'il y ait une légère baisse, mais il y a quelques années, tous les premiers trimestres on avait droit à des interventions (en particulier sur C et algos) sur les grands nombres et les bibliothèques associées,, Et il m'a fallu X posts (et Z blastages) pour faire comprendre que dans le vrai monde, à part la crypto (et sans doute l'adressage sur plus de 64 bits), ça servait pas à grand chose..

    Mais, comme je l'avais soupçonné à l'époque et ce cher monsieur confirme, chez certains universitaires/profs, ça semble un incontournable.. Qui rend déraisonnable une foultitude de choses de calculs.. (et de place dans des BD), sans parler de l'absence de signification...

    Bref, me semble que l'histoire de la Grande Convergence des années 60-70-80 (Fortran/C, ftp, Unix, X11, Motif, HTML, WWW) et le point de rupture milieu des années 90 et aujourdhui avec les modes et les déifications successives (TDD, Agile, objet, cloud, Big Data..) et les buzzwords seraient de base plus instructives..


    De même qu'une base d'assembleur (savoir comment ça marche au coeur), que donc quel que soit l'outil, finalement ça se résume à des instructions élémentaires en série et des JMP..

    Une sensibilisation forcenée aux utilisateurs (interface ou pas), une autre à KISS, et une autre enfin à penser long terme, me semblerait de base..

    Enfin un enseignement profond d'humilité et de doute me semble indispensable, vu que la philo et le reste ne sont quasi plus enseignés,,,



    D'ailleurs ce monsieur omet l'architecture, et les méthodologies, au minimum Waterfall.. L'info c'est pas que de la technique.... Et si les gens se souvenaient un peu plus des exemples par exemple de ponts ou aqueducs romains, ou même des maisons du XIX, qui , sans outils informatiques, tiennent encore 200 ou 2000 ans après, peut-être réfléchiraient-ils à 2 fois avant de foncer tête baissée sur la première mode venue, et le "jetable"..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 74
    Points : 106
    Points
    106
    Par défaut Valable pour de l'informatique de gestion.
    Valable pour de l'informatique de gestion.
    Le développeur bas-niveau/industrielle n'a pas les mêmes besoins.

    Et dans ce cas je pense que la maitrise des algos de tris comme QuickSort n'est pas réellement nécessaire.
    La maitrise des SGBD/SQL est amplement suffisante (et la notion d'algo de tri se recoupe avec l'utilisation d'index...).

  16. #16
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut transation
    les transactions sont indispensables dans une base de données en écriture
    afin d'assurer l'intégrité et la fiabilité des données.
    imaginez une base de données boursière sans transaction..

    cantador

  17. #17
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 346
    Points : 18 959
    Points
    18 959
    Par défaut
    Salut à tous.

    ==> une programmation structurée ;
    Soit l'équation de N. Wirth = Algorithmes + structures de données = programmes.
    Donc oui, c'est indispensable pour la partie 'algorithmes', mais ce n'est pas suffisant.
    il faut aussi externaliser les données, c'est-à-dire les rendre indépendants des traitements.
    D'où d'une part l'introduction des bases de données, mais d'autre part la programmation objet.

    La programmation objet est la suite logique de la programmation modulaire afin de rendre ces programmes réutilisables.
    Mais aussi le typage des données en les externalisant. Donc je pense que l'énoncé de cette règle est un peu vieillotte.

    ==> Unix et sa philosophie correspondante ;
    Je suppose qu'il veut parler de toutes les déclinaisons comme Linux, Ubuntu, Debian ...
    Si c'est uniquement UNIX, c'est un peu vieillot aussi.

    Je reste mitigé sur ce choix. Si c'est pour des questions de sécurités, je suis d'accord.
    La conception sous UNIX reste avec la philosophie de la ligne de commande.
    Je préfère le concept graphique comme sous Windows.

    ==> les transactions de base de données ;
    En lisant vos réponses, je suis surpris de vos réponses.
    Je suis d'accord que le transactionnel gère les grappes de données.
    Et si une erreur intervient à un moment donné dans la mise à jour de la base de données, on annule la totalité de la grappe.

    Mais ce n'est pas que cela. Vous n'êtes pas seul à travailler sur votre base de données.
    Le transactionnel gère aussi les accès multi-utilisateurs qui travaillent en parallèle.

    Donc c'est plus qu'indispensable, c'est cruciale !

    ==> les bases de données relationnelles ;
    C'est ce qui est le plus courant mais il n'est pas indispensable de choisir du relationnel.
    Il existe encore du hiérarchique et du réseau en matière de base de données.
    Il est quand même nécessaire de les connaitre car la philosophie est différente.

    ==> l'interface utilisateur ;
    Je ne comprends pas ce que cela signifie exactement. Et vis-à-vis de quoi ?
    C'est l'OS ???

    ==> les tests de logiciel ;
    C'est crucial ! La vie d'une application subit en général quatre niveaux de tests à faire :
    --> test développement.
    --> test fonctionnelle.
    --> test de performance.
    --> test de production.

    ==> les structures les plus élémentaires des données (la table de hachage, les arbres) et une poignée d'algorithmes de base à l'instar de Quicksort;
    Il s'agit des techniques de programmations.
    Cela comprends des techniques d'algorithmes, comme la récursivité, la recherche dichotomique, les tris,
    La programmation parallèle, conditionnelle, événementielle ...
    La gestion en mémoire du typage des données, des structures de données, des pointeurs, de l'héritage (POO), ...
    C'est plus que crucial !

    ==> le chiffrement à clé publique et le hachage cryptographique ;
    Est-ce le propre d'un développeur de connaitre ces techniques ?

    ==> un langage de programmation de haut niveau ;
    Qu'est-ce qu'il entend par 'haut niveau' ? Un langage de quatrième, voire cinquième génération ? Actuellement, on est encore en troisième génération.

    ==> un contrôle des versions.
    Ce n'est pas indispensable.

    les autres points qui n'ont pas été soulevés :

    --> cercle de qualité.
    C'est le contrôle des développements qui doivent être conforme avec la méthodologie choisie par l'entreprise.
    Cela permet de se conforme à une seule façon de développer et d'être compréhensible par n'importe quel développeur de l'entreprise.

    --> les normes de sécurités.
    Il y a aussi des techniques de développements pour mettre en oeuvre la résolution des problèmes que l'on rencontre fréquemment dans le domaine de la sécurité.

    --> l'optimisation.
    Ceci concerne le temps d'exécution aussi bien des accès à vos bases de données, que de vos traitements.
    Le temps c'est de l'argent. C'est fréquemment une dimension qui est totalement oubliée.

    --> gestion des projets.
    Savoir gérer en terme de plannings, de budgets, du personnel, de la faisabilité, des tâches, un projet informatique.

    --> savoir rédiger un cahier des charges, voir la fonctionnelle.
    C'est le grand oublié du monde informatique. la rédaction est plus qu'indispensable pour bien formuler les demandes que l'on désire entreprendre dans un projet.
    Je ne parle pas uniquement des fautes d'orthographe, mais savoir rédiger afin de bien se faire comprendre.

    --> connaitre le métier du client.
    Vous n'êtes pas que des informaticiens, mais aussi des conseillés dans le métier du client.
    Comprendre les besoins du client et savoir fournir une solution qui répond à sa demande.

    --> avoir plusieurs casquettes.
    Savoir développer, c'est bien, mais ce n'est pas suffisant. Il faut connaitre différents métiers afin de mener sa mission à bien.
    On ne travaille plus comme avant, où le cloisonnement des spécialisations étaient la règle.
    Il est plus que nécessaire de connaitre le métier des différents intervenants dans un projet.
    On ne vous demande pas de répondre à un besoin formulé par le client dans un cahier des charges.
    On vous demande de répondre aussi à tout ce que le client a oublié de vous dire.
    Mais aussi de répondre à des questions sécuritaires et de coûts qui sont de plus en plus critiques.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Consultant Formateur Mainframe
    Inscrit en
    Septembre 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant Formateur Mainframe
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2012
    Messages : 15
    Points : 39
    Points
    39
    Par défaut
    il me semble que la "programmation par patterns", c'est à dire avec des morceaux de codes déjà programmés et réutilisables, devrait être aussi cité car elle permet d'améliorer le temps de programmation mais aussi la qualité du code puisque le code est déjà pré-écrit.

  19. #19
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Vous citées Mr Lemire, bien des techniques de programmation, mais ce que me semble le plus important est la phase d'analyse et de modélisation du programme.
    On vois bien trop souvent des projets qui partent dans tous les sens, ou qui ont des oublis de fonctionnalité qui deviennent des programmes non maintenable ou instable après production.

Discussions similaires

  1. Réponses: 15
    Dernier message: 13/09/2010, 13h46
  2. Réponses: 0
    Dernier message: 26/06/2009, 12h18
  3. [ Eclipse 3 vs 2.1.2] Quelles sont les améliorations ?
    Par geegee dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 26/05/2004, 17h55
  4. Quelles sont les distibutions avec le kernel 2.4.x.x?
    Par barucca dans le forum Administration système
    Réponses: 7
    Dernier message: 01/04/2004, 16h44
  5. [CR][Jetform] Quelles sont les différences ?
    Par littlecow dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 23/07/2002, 12h40

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