Pas au moment de l'exécution, mais au moment de la conception

image

Il était une fois un vieux développeur avisé qui m'a donné des conseils que je n'appréciais pas encore très récemment.

Lors de la révision du code, nous avons considéré une fonction qui nécessitait que le programme affiche une liste de lettres AZ (par exemple, une liste de contacts avec un ensemble de boutons qui vous permettent de passer à des noms commençant par une certaine lettre).

Ainsi, un jeune programmeur à succès est apparu. (Eh bien, c'était moi.) J'ai décidé qu'au lieu du code dur du tableau de toutes les lettres, il serait plus facile d'écrire une boucle for qui va de 65 à 90, puis j'ai généré les lettres par le code de caractère reçu.

Dans une variante JavaScript, cela ressemblera à ceci:

for (let i = 65; i <= 90; i++) { letters.push(String.fromCharCode(i)) } 

Un vieux développeur avisé m'a regardé et m'a demandé pourquoi je n'avais pas codé en dur ce tableau. Il ne semble pas que l'alphabet soit différent d'une session à l'autre. Alors pourquoi le calculer à chaque fois?
Logiciel EDISON - développement web
Cet article a été traduit avec le soutien d'EDISON Software, qui développe un système de diagnostic pour le référentiel de documents Vivaldi , ainsi que des investissements dans des startups .

J'étais terrifiée. «Comment pouvez-vous vous attendre à ce que je tape chaque lettre, comme une sorte d'enfant? Je suis développeur de logiciels professionnel! "J'ai des algorithmes et des structures de données, et un coprocesseur mathématique, pour l'amour du ciel!"

"Bien," dit-il. "Il vous suffit d'utiliser cette fonctionnalité au moment du design pour générer un tableau, puis de le copier et de le coller dans votre code de travail."

Et puis il a dit ceci:
"Évitez à l'exécution ce que vous pouvez faire pendant le développement."
Maintenant, soyons honnêtes. Ma petite boucle n'allait pas ralentir l'application. Et les machines modernes seront si rapides à comprendre ce code que personne ne le remarquera. Mais, en règle générale, c'est un sage conseil.

Trop souvent, nous écrivons du code qui convertit rarement les données changeantes d'un format à un autre à chaque demande. Pensez à toutes les situations où nous obtenons du contenu d'une base de données qui peut changer une ou deux fois par an, formatez-le et envoyez-le au navigateur, sans avoir à ralentir l'application. Cela est particulièrement vrai pour les sites associés à un système de gestion de contenu.

C'est pourquoi je pense que dans les années à venir, des joueurs bien connus tels que Wordpress, Drupal, etc., seront confrontés à un grave problème de générateurs de sites statiques tels que Gatsby , Hugo ou Jekyll , combinés à un processus de construction fluide, CMS sans tête , CDN bon marché et processus d'intégration continue rapide.

Ce modèle a été appelé JAMstack , ce qui signifie «JavaScript, API et la pile de balisage». Et les résultats sont très impressionnants .

Le conseil d'un vieux développeur sage résonne dans mes oreilles: "Évitez pendant l'exécution du programme ce que vous pouvez faire pendant le développement." Et au fil du temps, j'ai réalisé que ces conseils avaient des conséquences de grande portée. Non seulement pour le développement de logiciels, mais aussi pour la vie.

Récemment, j'ai lu le merveilleux livre de Ray Dalio, Principes: travail et vie . Le thème central du livre est qu'il y a beaucoup moins de types de problèmes que de vrais problèmes. Par conséquent, si vous y travaillez à l'avance et découvrez comment vous allez aborder le type spécifique de problème que vous êtes susceptible de rencontrer, alors quand il surviendra, vous serez beaucoup mieux préparé à y faire face.

En fait, vous pouvez prendre de meilleures décisions plus rapidement en triant votre approche des différents types de problèmes pendant le «développement», lorsque vous pensez tranquillement à la vie, et non pendant «l'exécution», lorsque vous êtes confronté à un problème réel du moment et que vous paniquez.

Dalio a mis en œuvre cette technique en cataloguant ses approches comme un ensemble de principes. Il est même allé si loin qu'il a codifié son processus décisionnel en un ensemble d'algorithmes informatiques qu'il a pu tester sur une énorme quantité de données historiques.

Étant donné qu'il est multimilliardaire et qu'il dirige une société d'investissement très prospère, je dirais que cela a fonctionné. En fait, Wall Street commence à embaucher plus de programmeurs que de commerçants. Donc, si vous doutez que vous avez choisi la mauvaise profession, il y a beaucoup de preuves que le logiciel mange le monde.

  • J'ai partagé mes propres conseils et leçons apprises lors d'une récente interview sur le podcast Developer On Fire, que vous pouvez écouter ici .
  • Vous pouvez rencontrer JAMstack sur Jamstack.org
  • Le blog Netlify propose également un bon aperçu des générateurs de sites statiques.
  • Et voici un article sur une pile spécifique que j'ai récemment examinée et recommandée qui utilise une combinaison de Gatsby, Contentful, Netlify et Algolia comme alternative au CMS traditionnel pour le site de documentation.


Publications plus intéressantes





Lisez aussi le blog
Société EDISON:


20 bibliothèques pour
application iOS spectaculaire

Source: https://habr.com/ru/post/fr475920/


All Articles