# Journée de travail, ou journée au travail ? [Opinion]

par Xavier Calland

Et si la productivité n’était pas qu’une simple histoire de temps de travail ?

Un retour d’expérience assez intéressant d’un chef de projet sur le lien entre cadre de travail, temps de travail et productivité.

À réfléchir ?

# Journée de travail, ou journée au travail ? [Opinion]

par Xavier Calland

Et si la productivité n’était pas qu’une simple histoire de temps de travail ?

Un retour d’expérience assez intéressant d’un chef de projet sur le lien entre cadre de travail, temps de travail et productivité.

À réfléchir ?

# progressive react

par Mathieu Sanchez

Houssein Djirdeh, développeur chez Google, nous présente quelques stratégies pour améliorer la réactivité d’une application utilisant la bibliothèque React :

  • auditer son code avec des outils tels que Lighthouse
  • utiliser l’API de React à bon escient pour éviter les rafraichissements inutiles de composants  (shouldComponentUpdate, PureComponent, memo, …)
  • charger les composants de manière asynchrone
  • styliser son application avec du code css atomique (par exemple, en utilisant les règles CSS du projet Tachyons)
  • ne pas hésiter à utiliser les Hooks qui peuvent réduire le code produit après minification

# Proj 6 au coeur de Postgis 3 [PostgreSQL, Postgis]

par Aurélien Morlé

Les systèmes de projections sont au cœur de tout SIG. Des coordonnées géographiques sans système de projection n’ont que très peu d’intérêt et ne sont pas représentables sur une carte en l’état.

La librairie Proj4 est certainement la plus utilisée pour faire de la reprojection de données, mais celle-ci n’avait pas évolué depuis plusieurs années. Le chiffre 4 est à l’origine son numéro de version, mais il est tellement associé à son nom, notamment via “Pro4js”, que l’on en a oublié qu’il s’agissait de sa version.

Le développement de Proj a repris avec de nouveaux développeurs ce qui a permis une sortie de Proj5 en 2018 et Proj6 en 2019. Des changements profonds et une nouvelle API sont au programme de Proj6 et permettent d’aboutir à des résultats plus précis pour les reprojections. Cette nouvelle API est en cours d’intégration dans Postgis et sera disponible dans la version 3.0.0 de Postgis.

# Storybook est disponible en version 5 [Javascript, React, Vue, Angular, Polymer]

par Xavier Calland

Storybook est un environnement de développement pour composants graphiques développé en Javascript qui se présente sous la forme d’une bibliothèque de composants d’interface utilisateur.

Cela permet de développer des composants de manière isolée, ce qui peut améliorer leur réutilisation, leur testabilité et la vitesse de leur développement.

Un outil très pratique pour documenter et tester ses composants Javascript à adopter dans ses projets. Avec son support des principaux framework Javascript (React, Vue, Angular, Polymer, …) difficile de refuser.

La version 5 est sortie au début du mois et apporte son lot d’amélioration.

# JDK 12 est arrivé [Java]

par Thomas Broyer

Cette version 12 est la première du JDK après celle qui avait fait couler tant d’encre lorsqu’Oracle annonçait ses changements de licence et durée de support. JDK 11 était donc la première LTS (Long Term Support) après JDK 8, qui bénéficie donc d’un support commercial d’Oracle au moins jusqu’en septembre 2022. Du côté d’OpenJDK, la communauté open source s’est organisée et a adopté les mêmes règles : OpenJDK 11 bénéficie donc d’un support communautaire également au moins jusqu’en septembre 2022.

Revenons à JDK 12 : cette version n’est donc pas LTS, elle cessera d’être maintenue quand JDK 13 sortira à l’automne. Inutile donc de sauter de sauter dessus, à moins d’avoir une deadline après l’automne 2022 (et vouloir anticiper JDK 17) et/ou d’être prêt à mettre à jour ses projets et serveurs tous les 6 mois.

Au chapitre des nouveautés, on retiendra… bein en fait pas grand chose de notable.

  • les expressions switch, qui rappellent furieusement les expressions when de Kotlin (sans en apporter toutes les possibilités), sont disponibles en preview feature, c’est à dire qu’il reste une possibilité que la fonctionnalité change dans la prochaine version du JDK (à rapprocher du stage 3 d’ECMAScript).
  • les cipher suites ChaCha20 et Poly1305 sont supportées pour les connexions TLS. Toujours concernant la sécurité, le certificat racine GTE CyberTrust Global Root a été supprimé du keystore cacerts (pour ceux qui n’utilisent pas à la place celui de la machine), puisqu’il avait de toutes façons expiré.
  • le support Unicode est mis à jour en version 11.0.0 ; en pratique, il s’agit uniquement de savoir reconnaître de nouveaux scripts et blocs, et correctement catégoriser les nouveaux code points.
  • java.text.NumberFormat supporte désormais les formats compacts, à savoir “2 milliards” ou “2 Md”
  • java.time.chrono.JapaneseEra est prêt pour la nouvelle ère suivant l’abdication de l’Empereur Akihito le 1er mai prochain.

Bien évidemment, on compte des améliorations au niveau des garbage collectors ; et enfin quelques suppressions d’APIs obsolètes, et la suppression de Java 6 comme cible de compilation (-target 1.6 ou –release 6).

# Écrire des composants résilients [React]

par Thomas Broyer

Dan Abramov nous gratifie sur son blog encore une fois d’une exploration en profondeur de React. Dans cet article, il nous explique comment écrire des composants résilients, avec quelques règles de base, qu’on a malheureusement tous enfreintes un jour ou l’autre. Pour moi, l’info à retenir de cet article, c’est que les composants fonction sont bien plus simples à appréhender que les composants classe et présentent par la même bien moins de risque d’erreur ; probablement le meilleur argumentaire pour les hooks.

Pour l’anecdote, le lundi suivant la publication de l’article, je détectais grâce à sa lecture un bug dans un de nos composants lors d’une relecture de code. Nos quatre autres composants classe souffraient également d’erreurs communes signalées ici (en l’occurrence le traitement des props dans le constructeur sans gestion des mises à jour par componentDidUpdate). Même si dans notre application, et la façon dont ces composants sont utilisés, nous n’aurions probablement jamais rencontré de problème, il est toujours intéressant de savoir détecter les bugs, ou tout au moins les limitations, de nos composants.