Maison > interface Web > js tutoriel > Pourquoi JavaScript n'est-il pas un gâchis ?

Pourquoi JavaScript n'est-il pas un gâchis ?

Patricia Arquette
Libérer: 2025-01-21 04:28:13
original
505 Les gens l'ont consulté

Por qué JavaScript no es un desorden?

Ça me décourage toujours...

Cela m'exaspère d'entendre que le développement frontend est un gâchis, en particulier l'affirmation selon laquelle JavaScript "accepte tout" et peut être écrit de n'importe quelle manière sans affecter le résultat final.

En fait, ce n'est pas entièrement faux. Il est vrai que JavaScript permet plusieurs approches pour atteindre le même objectif.

Le problème réside dans le manque de modèles de conception aussi bien définis que dans le backend. En front-end, les meilleures pratiques sont dispersées, générant une diversité d’opinions et un manque d’uniformité. Cette dispersion rend le développement et la compréhension difficiles, surtout pour les débutants. Même celui qui écrit ceci a ses propres opinions.


Le point clé…

Au-delà de la frustration, je tiens à souligner que le manque de preuves de bonnes pratiques ne veut pas dire qu'elles n'existent pas. Il est essentiel de rechercher des connaissances et d’appliquer au moins les bases des modèles de conception. En JavaScript, il existe de nombreuses ressources avec des implémentations et des modèles établis. Il faut juste du temps pour lire et comprendre son objectif et son utilisation appropriée. Exemple : Documentation Mozilla pour JavaScript.


Un exemple pratique…

Le code suivant est issu d'un projet réel en production. Bien qu'il fonctionne correctement, sa mise en œuvre pourrait être améliorée en termes de lisibilité et de performances.

Nous ajusterons certaines parties pour les aligner sur les recommandations de la documentation JavaScript, en utilisant des méthodes et des fonctions plus efficaces. Nous nous concentrerons sur un concept de base : la manipulation de tableaux et d'objets. Le code est simplifié à des fins pédagogiques.

Commençons par un objet, représentant les données reçues d'une API backend :

<code class="language-javascript">const storesList = [{
  activeStories: [
    {
      name: 'Starbucks',
      code: 1
    },
    {
      name: 'Duck Duck Coffe',
      code: 2
    }
  ],
  inactiveStories: [
    {
      name: 'Mac Coffe',
      code: 3
    }
  ]
}]</code>
Copier après la connexion

Nous devons ajouter un champ "libellé" avec le préfixe "Ouvert" suivi du nom du magasin.

Regardons d'abord une implémentation « moins idéale », qui n'utilise pas les meilleurs outils JavaScript :

<code class="language-javascript">storesList.reduce((previous, current) => {
  current.activeStories.forEach(store => {
    previous.push({
      ...store,
      label: `Opened ${store.name}`
    })
  })

  return previous
}, [])

// resultado:
[
    {
        "name": "Starbucks",
        "code": 1,
        "label": "Opened Starbucks"
    },
    {
        "name": "Duck Duck Coffe",
        "code": 2,
        "label": "Opened Duck Duck Coffe"
    }
]</code>
Copier après la connexion

On regarde .reduce, .forEach et .push, histoire de reconstituer une liste. Le manque d'utilisation de .flatMap et .map est évident. La syntaxe est déroutante et verbeuse.

Regardons une implémentation améliorée :

<code class="language-javascript">storesList.flatMap((item) => {
  return item.activeStories
}).map((item) => {
  return {
    ...item,
    label: `Opened ${item.name}`
  }
})</code>
Copier après la connexion

Plus simple, non ?

.flatMap "aplatit" le tableau d'objets à un seul niveau :

<code class="language-javascript">[
    {
        "name": "Starbucks",
        "code": 1
    },
    {
        "name": "Duck Duck Coffe",
        "code": 2
    }
]</code>
Copier après la connexion

Ensuite, .map "remappe" le tableau, en ajoutant la propriété "label":

<code class="language-javascript">[
    {
        "name": "Starbucks",
        "code": 1,
        "label": "Opened Starbucks"
    },
    {
        "name": "Duck Duck Coffe",
        "code": 2,
        "label": "Opened Duck Duck Coffe"
    }
]</code>
Copier après la connexion

Conclusion…

JavaScript offre les outils nécessaires pour écrire du code de qualité. L'important est de l'étudier et d'appliquer correctement les concepts, pas seulement de programmer pour le plaisir de programmer.


Recommandations de lecture :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal