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

JavaScript Discussion :

Demande de revue de code


Sujet :

JavaScript

  1. #1
    Membre éprouvé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 934
    Par défaut Demande de revue de code
    Bonjour toutes et tous.

    Je sollicite votre regard de développeur web en php/javascript/css.
    J'ai déjà posté ce message dans le forum php, mais je n'ai eu qu'un seul retour alors je tente ma chance ici et je la tenterai vraisemblablement également dans le forum CSS

    Afin de préparer ma retraite, j'essaie de compléter ma bibliothèque de certains livres manquants dans des séries. Mais ma mémoire me fait défaut, et je n'ai plus tous les titres en tête, surtout ceux lus il y a plus de 45 ans...Donc je suis en train de l'informatiser afin d'avoir rapidement une vue de ce que j'ai et de ce que j'aimerais avoir.
    Mais cela fait 15 ans je n'ai rien codé dans ces langages, alors j'aimerais avoir vos avis, conseils sur ce qui se fait maintenant, par rapport à ce que j'ai écrit, avant de continuer à développer le petit site que je projette d'exploiter qui est visible ici https://bacasable.christophe-charron.xyz/

    Le contexte :
    Pour les données : une base de données Mariadb, en innodb, avec quelques colonnes Json.
    Programmation "à la mano", en procédural, avec Visual Studio Code, alors que jadis j'utilisais sublimetext.
    Pas persuadé que ce soit mieux, mais le lien avec git me semblait très simple à mettre en place. Autre parti pris, aucune bibliothèque, aucun objet venant de l'extérieur pour ne pas être dépendant. Il faudrait vraiment qu'il y ait un objet qui fasse "papa-maman", en plus du café et sache servir la gnole à la bonne température pour me décider à l'utiliser.
    Le domaine avec je suis le moins à l'aise est la CSS qui part en vrille dès que je fais évoluer les objets (le séparateur vertical qui fonctionnait dans le script d'associations jusqu'à ce que j'ajoute le réceptacle des tags au-dessus... etc).
    Le code est visible ici https://github.com/xofxon/bacasable_bibliotheque

    D'avance, merci d'y jeter un œil et de me faire part de vos commentaires.

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 496
    Par défaut
    Bonjour,

    Donc votre problème est lié seulement au CSS ? quels sont les problèmes que vous rencontrez avec CSS?

    Ou bien vous voulez reconstruire tout le site avec un code PHP/JS/CSS plus récent ?

    Déjà pour organiser les tableaux HTML, il existe un plugin jQuery DataTable avec pleins d'options (tri, recherche, pagination, déplacement et visibilité des colonnes etc ...)

    Pour pouvoir l'utiliser, il faudrait d'abord importer la bibliothèque jquery en mettant son lien dans l'attribut src de la balise <script></script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script
      src="https://code.jquery.com/jquery-3.7.1.js"
      integrity="sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4="
      crossorigin="anonymous"></script>
    Puis après importer encore deux fichiers, le premier est le script JS de DataTable et le deuxième est le CSS.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //le JS
    <script src="//cdn.datatables.net/2.1.8/js/dataTables.min.js"></script>
    //et le CSS
    <link href="//cdn.datatables.net/2.1.8/css/dataTables.dataTables.min.css" rel="stylesheet" />
    Dès que vous importez ces trois fichiers, vous êtes donc prêt à utiliser le plugin et l'initialiser comme suite :let table = new DataTable('#ID_De_La_Table');
    Si vous ne voulez pas utiliser les liens en ligne, vous pouvez les enregistrer localement, comme ça vous n'aurez plus besoin d'internet pour exécuter votre site.

  3. #3
    Membre éprouvé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 934
    Par défaut
    Bonjour et merci pour ces conseils.
    Je vais regarder cet objet, mais j'avoue qu'en voyant le nombre de post sur le forum, je crains qu'il soit complexe à customiser. Ou alors il est destiné à des personnes qui ne savent pas programmer ?
    En tout cas plus complexe qu'en gardant la main sur la globalité du code.
    Qu'entendez-vous par "code PHP/JS/CSS plus récent" ?

  4. #4
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    bonjour il faut éviter de coder en "dur" c.a.d. taper du code du genre bouton.affiche("voulez-vous quitter ?")
    Parce que si vous faites une appli multi-langue il faut tout reprendre code.
    Et puis je trouve qu'il n'y a pas assez d'abstraction dans le code.

  5. #5
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 496
    Par défaut
    Bonjour,

    C'est normal si vous croyez que le code est complexe vu que c'est la première fois que vous allez l'utiliser, mais c'est seulement du JS avec la syntaxe jQuery, et je pense qu'il existent d'autres plugins qui font la même chose sans jQuery (seulement avec la syntaxe de Vanilla JS) comme par exemple Bootstrap_DataTable.

    Citation Envoyé par Christophe Charron Voir le message
    Qu'entendez-vous par "code PHP/JS/CSS plus récent" ?

    Mais cela fait 15 ans je n'ai rien codé dans ces langages
    Les langages de programmation ont évolués depuis ce temps là (15 ans).., comme par exemple PHP été en version 5 et maintenant on est à V8, et donc certaines fonctions sont devenu obsolètes qu'il ne faut plus utiliser, JS aussi à intégré de nouvelles fonctionnalités comme les fonctions fléchées par exemple...

    Ce que je veux dire c'est que vous êtes obligé de convertir votre code en versions récentes afin de garantir la performance et l'expérience aux utilisateurs.

    Citation Envoyé par Mat.M Voir le message
    bonjour il faut éviter de coder en "dur" c.a.d. taper du code du genre bouton.affiche("voulez-vous quitter ?")
    Comme Mat.M l'avait mentionné dans sa réponse, cet outil à été spécialement préparé pour les personnes qui savent programmer et qu'ils ont soit
    • Marre de la répétition de code à chaque fois qu'ils veulent gérer l'affichage de données dans un tableau HTML (pour ce cas)
    • La possibilité d'utiliser le mode serverSide pour gérer un nombre de données important de la base de donnée (par exemple si vous avez plus que 1000 lignes enregistrées...)


    Le mode serverSide garantit la performance et la rapidité d'affichage, car si vous avez des milliers de lignes enregistreés dans la BD et que vous voulez les afficher toutes à la fois, il est bien possible que le chargement soit beaucoup plus lent et nuit donc à l'expérience des utilisateurs, ce qui fait que ce mode permet de sélectionner seulement les données qui doivent être affichés (de la page en cours)

    Bref, on vous a préparé une bonne interface interactive avec l'utilisateur mais c'est à vous de l'alimenter avec les données.

    De toute façon ne vous inquiétez pas, commencez d'abord l'initialisation et si vous rencontrez des problèmes revenez ici pour qu'on essaie de vous aider.

  6. #6
    Membre éprouvé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 934
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    bonjour il faut éviter de coder en "dur" c.a.d. taper du code du genre bouton.affiche("voulez-vous quitter ?")
    Parce que si vous faites une appli multi-langue il faut tout reprendre code.
    Bonjour.
    Oui, vous avez raison, dans l'absolu. Comme je l'écrivais en préambule, c'est pour une utilisation personnelle, donc je ne me suis en effet pas soucié de cet aspect. Mais je vais déporter les libellés et autres éléments textuels dans deux fichiers (un "fr.php" et un "en.php") contenant un tableau de textes que je chargerai en fonction de la langue d'utilisation.
    Citation Envoyé par Mat.M Voir le message
    Et puis je trouve qu'il n'y a pas assez d'abstraction dans le code.
    Qu'entendez-vous par là ?

  7. #7
    Membre éprouvé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 934
    Par défaut
    Bonjour
    Citation Envoyé par Toufik83 Voir le message
    Bonjour,

    C'est normal si vous croyez que le code est complexe vu que c'est la première fois que vous allez l'utiliser, mais c'est seulement du JS avec la syntaxe jQuery, et je pense qu'il existent d'autres plugins qui font la même chose sans jQuery (seulement avec la syntaxe de Vanilla JS) comme par exemple Bootstrap_DataTable.
    Oui, je comprend. Simplement, je ne vous pas la valeur ajoutée dans mon cas d'utilisation.

    Citation Envoyé par Toufik83 Voir le message
    Les langages de programmation ont évolués depuis ce temps là (15 ans).., comme par exemple PHP été en version 5 et maintenant on est à V8, et donc certaines fonctions sont devenu obsolètes qu'il ne faut plus utiliser, JS aussi à intégré de nouvelles fonctionnalités comme les fonctions fléchées par exemple...

    Ce que je veux dire c'est que vous êtes obligé de convertir votre code en versions récentes afin de garantir la performance et l'expérience aux utilisateurs.
    C'est bien pour cela que je viens solliciter l'avis de personne pratiquant actuellement.
    Mais, encore une fois, je ne vais pas basculer dans le "jeunisme" uniquement parce que c'est plus moderne, s'il n'y a pas de valeur ajoutée. Je suis un très gros flemmard et je considère que le Ctrl+C et le CRL+D devraient être bannis des IDE car tout ce qui est utilisé plus d'une fois devrait être factorisé (objet, procédural, on peut en débattre)

    Citation Envoyé par Toufik83 Voir le message
    Comme Mat.M l'avait mentionné dans sa réponse, cet outil à été spécialement préparé pour les personnes qui savent programmer et qu'ils ont soit
    • Marre de la répétition de code à chaque fois qu'ils veulent gérer l'affichage de données dans un tableau HTML (pour ce cas)
    • La possibilité d'utiliser le mode serverSide pour gérer un nombre de données important de la base de donnée (par exemple si vous avez plus que 1000 lignes enregistrées...)


    Le mode serverSide garantit la performance et la rapidité d'affichage, car si vous avez des milliers de lignes enregistreés dans la BD et que vous voulez les afficher toutes à la fois, il est bien possible que le chargement soit beaucoup plus lent et nuit donc à l'expérience des utilisateurs, ce qui fait que ce mode permet de sélectionner seulement les données qui doivent être affichés (de la page en cours)

    Bref, on vous a préparé une bonne interface interactive avec l'utilisateur mais c'est à vous de l'alimenter avec les données.

    De toute façon ne vous inquiétez pas, commencez d'abord l'initialisation et si vous rencontrez des problèmes revenez ici pour qu'on essaie de vous aider.
    Je pense que le code actuel fait le job. Et entre créer n tables différentes, ce que s'écrit en peu de lignes de code comme vous l'avez vu dans mon code, ou paramétrer une table, en certainement aussi peu de lignes, je ne vois pas trop les avantages de la seconde méthode.
    Mais je vais étudier ces pistes, ne serait-ce que par curiosité, à défaut d'utilité.

  8. #8
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 608
    Par défaut
    Citation Envoyé par Christophe Charron Voir le message
    Je suis un très gros flemmard
    c'est une très bonne qualité en tant que développeur puisque ça vous pousse à faire du code plus efficace.

    une autre question a se poser est aussi de vous demander sur quels prochains projets vous voudriez travailler (dans le sens technique et non le sens commercial). suivant vos projets, ça pourrait être intéressant de prendre du temps pour faire des tests avec des frameworks comme wordpress ou symfony. et ensuite l'expérience acquise vous permettra d'être plus rapide par la suite.

  9. #9
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 496
    Par défaut
    Bonjour,

    Citation Envoyé par mathieu Voir le message
    c'est une très bonne qualité en tant que développeur puisque ça vous pousse à faire du code plus efficace.


    Christophe Charron vous m'avez mal compris.

    Je n'essaie pas de minimiser de vos efforts, vous avez fait un bon travail bravo, mais ça n'empêche pas de l'optimiser et l'améliorer encore plus, sinon et avec votre logique, le design et la performance de la BMW seraient toujours restés identiques à ceux de la Renault 4

    Si vous êtes fainéant, le visiteur de votre site l'est aussi, et si par exemple
    • Je veux voir la première/dernière ligne du tableau de la page bibliotheque_menu, vous m'obligez de rouler la souris jusqu'à le lendemain, et quand j'y arrive... paff la dernière ligne est verticalement moitié cachée, la même chose pour remonter...
    • J'ouvre le site sur un appareil mobile (écran moins large), les colonnes ne sont pas responsive


    voilà deux inconvénients que j'ai remarqué seulement sur une seule page...

  10. #10
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    Citation Envoyé par Christophe Charron Voir le message
    Qu'entendez-vous par là ?
    désolé je n'avais pas vu la question.
    Si possible faire en Javascript des objets conceptuels et le plus génériques possibles.
    Livre devient entité par exemple
    Pour faire quelque chose de sophistiqué c'est bien de faire des classes qui utilisent le mécanisme d'héritage et donc héritent entre elles selon une certaine hiérarchie.
    Ainsi ça évite les redondances et copier-coller.
    L'idéal c'est un front-end en Javascript ou Php et en back-end des objets .Net ou bien Java

Discussions similaires

  1. Demande de revue de code
    Par Christophe Charron dans le forum Langage
    Réponses: 3
    Dernier message: 18/12/2024, 07h04
  2. [Python 3.X] Présentation et demande faisabilité de revue de code
    Par ptonnerre dans le forum Général Python
    Réponses: 10
    Dernier message: 18/02/2019, 09h38
  3. Outils de revue de code
    Par YAMKI dans le forum Qualimétrie
    Réponses: 2
    Dernier message: 15/02/2006, 12h29
  4. [Conseil] revue de code
    Par allstar dans le forum Langage
    Réponses: 2
    Dernier message: 09/11/2005, 11h02
  5. [Revue de code] Quels outils pour de grosses applis?
    Par franckR dans le forum Choisir un environnement de développement
    Réponses: 1
    Dernier message: 21/03/2004, 10h03

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