Skip to content

31 janvier 2017

Emmanuel Gaillot edited this page Jan 31, 2017 · 1 revision

Participants

Les nouvelles depuis la dernière fois

  • Pas de nouvelles, bonnes nouvelles !

Les envies du jour

  • Découvrir GeoJSON
  • Écrire une moulinette JSON -> GeoJSON

Ce qui s'est passé

  • 20 minutes pour explorer
    • … d'abord la spec GeoJSON
    • … ensuite pour un POC Github GeoJSON
  • Le projet :
    • mettre à jour le code interprétant les JSON pour interpréter du GeoJSON
      • On charge « tous » les fichiers GeoJSON (en fait, il n'y en a qu'un seul, celui qu'on a utilisé pour le POC au-dessus), plutôt que les fichiers JSON, et on adapte le code.
      • Un peu de patouilles pour arriver à afficher l'icône du marqueur. On s'en sort avec la clef pointToLayer
    • écrire un script pour transformer des données JSON au format GeoJSON
      • … mais d'abord écrire un test
        • … mais d'abord exécuter dans Node.js le test existant (plutôt que dans Phantom)
        • … puis enfin, rédaction du premier test de la moulinette
          • encore de la patouille pour trouver comment comparer deux objets avec Chai.js (réponse : should.eql)
          • … et encore de la patouille pour trouver comment étendre un objet à la volée (sans changer l'objet initial) (réponse : Object.assign({}, object, {…})
          • … et encore plus pour assigner à la volée des variables à partir d'un objet passé en paramètre de fonction (finalement on le fait à la main)
      • … Puis on écrit la fonction moulinette petit à petit
      • … Et on écrit le point d'entrée
        • De la patouille pour arriver à écrire au bon endroit (rappel : le chemin à donner à fs.writeFile est relatif au point d'exécution)
      • Puis ça marche. Moment d'émotion.

Ce qu'on retient de la session

  • On s'est fait la main sur GeoJSON
  • On a révisé la syntaxe ES6
    • quelques déceptions sur la destructuration d'objets
    • et du coup un peu de temps perdu
  • Un bon rappel aussi sur Object.assign
  • Ça demande de l'effort de rester concentré sur une tâche à livrer, plutôt que de tout régler au fur et à mesure (et se perdre dans la masse de choses à faire, et ne rien livrer du tout)
    • tension entre rester sur le chemin fixé, ou dévier pour remanier (dans l'espoir d'accélérer le développement de ce qu'on a prévu)
  • C'était une bonne idée d'écrire un code qui fait la migration automatique d'un format vers l'autre
  • Format intéressant pour s'entraîner à livrer du code
    • Entraînement à la lecture de code legacy, au regard critique (qu'est-il pertinent de bouger ?), à l'articulation stratégie-tactique (qu'ai-je le temps de faire ?)

D'ici la prochaine fois, on voudrait…

Clone this wiki locally