Last week's finds #12

Dans cette série, nous allons faire un peu de veille ensemble. Le principe est simple, je vous parle de ce qui m'a intéressé dans les 7 jours de veille précédents et je vous mets un lien pour que vous puissiez en profiter aussi.

Grosse absence dernièrement et j'en suis désolé. Beaucoup trop de projets simultanément et quelques changements dans ma vie professionnelle.

J'ai continué ma veille bien-sûr, mais je n'avais pas le temps d'écrire sur celle-ci. Mais, voilà j'ai pris du temps cette semaine et voici le douzième Last week's finds.

La lecture, c'est ici

Mastering Swift: essential details about strings

J'ai partagé un article similaire il y a quelques semaines. Il traitait des chaînes de caractères en JavaScript, celui-ci traite des chaînes de caractères en Swift.

Chaque langage a sa façon de traiter le type string. Type primaire ou complexe ? Encodage standard en UTF8, UTF16 ? Les comparaisons de chaînes en tenant compte de l'encodage...

Pour cet article, on s'attarde donc sur le cas de Swift. Même si vous vous dîtes que vous n'apprendrez rien de nouveau sur les chaînes de caractères, lisez-le. Je suis sûr que vous trouverez quelques pépites.

rainsoft.io (en) (article supprimé)

The art of README

Le fichier README a un côté traditionnel dans nos projets. Si vous demandez à un développeur de quoi il s'agit il saura immanquablement vous répondre.

Par contre, peu y accorde beaucoup de valeur. Pourquoi s'embêter à écrire ce fichier texte ? Surtout si notre projet n'est pas open-source.

Your documentation is complete when someone can use your module without ever having to look at its code. This is very important. This makes it possible for you to separate your module's documented interface from its internal implementation (guts). This is good because it means that you are free to change the module's internals as long as the interface remains the same.

Remember: the documentation, not the code, defines what a module does. — Ken Williams

Cette citation — que fait aussi l'auteur de l'article — explique bien l'intérêt de la documentation dont fait partie le README.

Le README ajoute de l'abstraction à votre projet.

Quel est l'intérêt pour quelqu'un d'utiliser votre projet s'il doit lire votre code pour essayer de comprendre ce que fait votre projet ? Il pourrait tout autant le développer lui-même plutôt que de perdre du temps à lire du code qu'il ne comprendra pas forcément.

github.com (en)

Will we be flattening our HTML for CSS Grids?

Les grilles CSS : le futur heureux qui nous attend. Et surtout que l'on attend impatiemment !

Pour ceux qui ne connaissent pas, il s'agit d'une nouvelle spécification pour l'écriture de la prochaine version de CSS.

En gros, il sera possible de faire en CSS natif ce que l'on faisait à coups de JS et de Bootstrap jusqu'à maintenant.

L'auteur prévient néanmoins du mauvais côté : est-ce que l'on sera tenté d'écrire du code HTML sale pour faire fonctionner les grilles comme l'on souhaite ?

css-tricks.com (en)

Grid layout is a much needed step-change for CSS

Dans le même sujet que l'article précédent mais beaucoup plus complet pour ce qui est de l'explication par l'exemple (code).

Si vous souhaitez approfondir le concept de CSS Grid, lisez cet article.

maketea.co.uk (en)

Asynchronous iteration for JavaScript

Ceci n'est pas un article, mais une proposition de fonctionnalité pour une prochaine version de ECMAScript.

Elle n'est pas encore disponible et vous vous demandez pourquoi je vous en parle ? Parce que j'étudiais il n'y a pas longtemps les nouveaux statements async et await arrivés avec es6 et cette proposition est dans la même lignée.

Elle vous permettra de coder une boucle comme s'il s'agissait de code synchrone alors que lors de l'exécution tout sera bien asynchrone.

Ne vous inquiétez pas, vous ne perdez pas votre temps à lire cette proposition. Elle est stage-3 — en cours d'implémentation — c'est donc sûr qu'on l'aura dans une prochaine version. Apprendre maintenant ou après, ça ne change pas grand-chose.

github.com (en)

Rest/Spread Properties for ECMAScript

Une de mes fonctionnalités préférées d'es6, déjà utilisable avec un transpileur.

Il s'agit de l'élément .... Il permet la décomposition/déstructuration ainsi que la concaténation d'objet et de tableau de façon très simple en JS.

github.com (en)

Writing good code: how to reduce the cognitive load of your code

Cet article soulève plusieurs points qui méritent d'être soulignés.

Entre autres pour bien coder il faut écrire un code que tout le monde va comprendre simplement. Utiliser un style d'écriture qui va obliger les prochains développeurs à s'arrêter pour comprendre ce que l'on a fait n'est pas productif.

La règle de base est juste de suivre le code style de notre projet.

De nombreux autres points sont proposés à la réflexion dans cet article. Il lance le débat. J'aurais aimé avoir votre avis sur la question.

chrismm.com

Making your JavaScript Pure

Un nouvel article sur les pure functions. Il répond à "pourquoi" et "comment" écrire des pure functions en Javascript.

Le concept est beau et l'on a vraiment l'impression d'écrire un truc bien. C'est une des choses les plus satisfaisantes et valorisantes dans notre travail selon moi.

En vous partageant cet article, j'aimerais vous faire adhérer au "pourquoi" et je pense que le "comment" viendra tout seul par la suite.

alistapart.com (en)