You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[Vim](https://www.vim.org/) and [Emacs](https://www.gnu.org/software/emacs/) are also cool if you know how to use them.
47
+
>>>>>>> 5dff42ba283bce883428c383c080fa9392b71df8
40
48
41
49
## Ne discutons pas
42
50
43
51
Les éditeurs des listes ci-dessus sont ceux que moi-même ou mes amis, que je considère comme de bons développeurs, utilisent depuis longtemps et en sont satisfaits.
44
52
45
53
Il y a d'autres grands éditeurs dans notre vaste monde. Veuillez choisir celui que vous aimez le plus.
46
54
55
+
<<<<<<< HEAD
47
56
Le choix d'un éditeur, comme tout autre outil, est individuel et dépend de vos projets, de vos habitudes, de vos préférences personnelles.
57
+
=======
58
+
The choice of an editor, like any other tool, is individual and depends on your projects, habits, and personal preferences.
59
+
60
+
The author's personal opinion:
61
+
62
+
- I'd use [Visual Studio Code](https://code.visualstudio.com/) if I develop mostly frontend.
63
+
- Otherwise, if it's mostly another language/platform and partially frontend, then consider other editors, such as XCode (Mac), Visual Studio (Windows) or Jetbrains family (Webstorm, PHPStorm, RubyMine etc, depending on the language).
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/04-variables/article.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -150,8 +150,13 @@ let message = "That"; // SyntaxError: 'message' has already been declared
150
150
Donc, nous devrions déclarer une variable une fois et y faire référence sans `let`.
151
151
````
152
152
153
+
<<<<<<< HEAD
153
154
```smart header="Langages fonctionnels"
154
155
Il peut être intéressant de savoir qu'il existe aussi des langages de [programmation fonctionelle](https://fr.wikipedia.org/wiki/Programmation_fonctionnelle), comme [Scala](http://www.scala-lang.org/) ou [Erlang](http://www.erlang.org/) qui interdisent de modifier une valeur de variable.
156
+
=======
157
+
```smart header="Functional languages"
158
+
It's interesting to note that there exist [functional](https://en.wikipedia.org/wiki/Functional_programming) programming languages, like [Scala](https://www.scala-lang.org/) or [Erlang](https://www.erlang.org/) that forbid changing variable values.
159
+
>>>>>>> 5dff42ba283bce883428c383c080fa9392b71df8
155
160
156
161
Dans ce genre de langage, une fois la valeur stockée dans la boîte, elle est là pour toujours. Si nous devons stocker autre chose, le langage nous oblige à créer une nouvelle boîte (déclarer une nouvelle variable). Nous ne pouvons pas réutiliser l’ancienne.
157
162
@@ -197,8 +202,13 @@ let mon-nom; // un trait d'union '-' n'est pas autorisé dans le nom
197
202
Des variables nommées `apple` et `APPLE` sont deux variables différentes.
198
203
```
199
204
205
+
<<<<<<< HEAD
200
206
````smart header="Les lettres non latines sont autorisées mais non recommandées"
201
207
Il est possible d'utiliser n'importe quel langage, y compris les lettres cyrilliques ou même les hiéroglyphes, comme ceci :
208
+
=======
209
+
````smart header="Non-Latin letters are allowed, but not recommended"
210
+
It is possible to use any language, including cyrillic letters, Chinese logograms and so on, like this:
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/15-function-basics/article.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -461,7 +461,11 @@ Ces exemples supposent des significations communes de préfixes. Vous et votre
461
461
```smart header="Noms de fonction ultra-courts"
462
462
Les fonctions utilisées *très souvent* portent parfois des noms ultra-courts.
463
463
464
+
<<<<<<< HEAD
464
465
Par exemple le framework [jQuery](http://jquery.com) définit une fonction avec `$`. La librairie [LoDash](http://lodash.com/) a nommé sa fonction principale `_`.
466
+
=======
467
+
For example, the [jQuery](https://jquery.com/) framework defines a function with `$`. The [Lodash](https://lodash.com/) library has its core function named `_`.
468
+
>>>>>>> 5dff42ba283bce883428c383c080fa9392b71df8
465
469
466
470
Ce sont des exceptions. En règle générale, les noms de fonctions doivent être concis et descriptifs.
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/05-testing-mocha/article.md
+27Lines changed: 27 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -68,13 +68,23 @@ La spécification peut être exécutée et le test spécifié dans le bloc `it`
68
68
69
69
Le flux de développement ressemble généralement à ceci :
70
70
71
+
<<<<<<< HEAD
71
72
1. Une spécification initiale est écrite, avec des tests pour les fonctionnalités les plus élémentaires.
72
73
2. Une implémentation initiale est créée.
73
74
3. Pour vérifier si cela fonctionne, nous exécutons le framework de test [Mocha](http://mochajs.org/) (plus de détails bientôt) qui exécute la spécification. Tant que la fonctionnalité n'est pas complète, des erreurs sont affichées. Nous apportons des corrections jusqu'à ce que tout fonctionne.
74
75
4. Nous avons maintenant une implémentation initiale de travail avec des tests.
75
76
5. Nous ajoutons d'autres cas d'utilisation à la spécification, probablement pas encore pris en charge par les implémentations. Les tests commencent à échouer.
76
77
6. Passez à l'étape 3, mettez à jour l'implémentation jusqu'à ce que les tests ne génèrent aucune erreur.
77
78
7. Répétez les étapes 3 à 6 jusqu'à ce que la fonctionnalité soit prête.
79
+
=======
80
+
1. An initial spec is written, with tests for the most basic functionality.
81
+
2. An initial implementation is created.
82
+
3. To check whether it works, we run the testing framework [Mocha](https://mochajs.org/) (more details soon) that runs the spec. While the functionality is not complete, errors are displayed. We make corrections until everything works.
83
+
4. Now we have a working initial implementation with tests.
84
+
5. We add more use cases to the spec, probably not yet supported by the implementations. Tests start to fail.
85
+
6. Go to 3, update the implementation till tests give no errors.
86
+
7. Repeat steps 3-6 till the functionality is ready.
87
+
>>>>>>> 5dff42ba283bce883428c383c080fa9392b71df8
78
88
79
89
Donc, le développement est *itératif*. Nous écrivons la spécification, la mettons en œuvre, nous nous assurons que les tests réussissent, puis rédigeons d'autres tests, nous nous assurons qu'ils fonctionnent, etc. À la fin, nous avons une implémentation qui fonctionne et des tests.
80
90
@@ -86,9 +96,15 @@ La première étape est déjà terminée : nous avons une spécification initial
86
96
87
97
Dans ce tutoriel, nous utiliserons les bibliothèques JavaScript suivantes pour les tests :
88
98
99
+
<<<<<<< HEAD
89
100
-[Mocha](http://mochajs.org/) -- le framework central : il fournit des fonctions de test communes, y compris `describe`, et `it` ainsi que la fonction principale qui exécute les tests.
90
101
-[Chai](http://chaijs.com) -- la bibliothèque avec de nombreuses affirmations. Elle permet d’utiliser beaucoup d’affirmations différentes, pour le moment nous n’avons besoin que de `assert.equal`.
91
102
-[Sinon](http://sinonjs.org/) -- une bibliothèque pour espionner des fonctions, émuler des fonctions intégrées et plus encore, nous en aurons besoin beaucoup plus tard.
103
+
=======
104
+
-[Mocha](https://mochajs.org/) -- the core framework: it provides common testing functions including `describe` and `it` and the main function that runs tests.
105
+
-[Chai](https://www.chaijs.com/) -- the library with many assertions. It allows to use a lot of different assertions, for now we need only `assert.equal`.
106
+
-[Sinon](https://sinonjs.org/) -- a library to spy over functions, emulate built-in functions and more, we'll need it much later.
107
+
>>>>>>> 5dff42ba283bce883428c383c080fa9392b71df8
92
108
93
109
Ces bibliothèques conviennent aux tests sur le navigateur et sur le serveur. Ici, nous allons considérer la variante du navigateur.
94
110
@@ -340,6 +356,7 @@ Les tests récemment ajoutés échouent car notre implémentation ne les prend p
340
356
341
357
Veuillez noter l'affirmation `assert.isNaN` : elle vérifie `NaN`.
342
358
359
+
<<<<<<< HEAD
343
360
Il y a aussi d'autres affirmations dans [Chai](http://chaijs.com), par exemple :
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/06-polyfills/article.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,11 @@
1
1
2
2
# Polyfills et transpilers
3
3
4
+
<<<<<<< HEAD
4
5
Le langage JavaScript évolue régulièrement. De nouvelles propositions pour le langage apparaissent régulièrement, elles sont analysées et, si elles sont jugées utiles, elles sont ajoutées à la liste dans <https://tc39.github.io/ecma262/> et ensuite progressent vers la [specification officielle](http://www.ecma-international.org/publications/standards/Ecma-262.htm).
6
+
=======
7
+
The JavaScript language steadily evolves. New proposals to the language appear regularly, they are analyzed and, if considered worthy, are appended to the list at <https://tc39.github.io/ecma262/> and then progress to the [specification](https://www.ecma-international.org/publications-and-standards/standards/ecma-262/).
8
+
>>>>>>> 5dff42ba283bce883428c383c080fa9392b71df8
5
9
6
10
Les équipes derrière les moteurs JavaScript ont leurs propres idées sur ce qu'il faut d'abord mettre en œuvre. Elles peuvent décider de mettre en œuvre des propositions qui sont en projet et reporter des éléments qui figurent déjà dans les spécifications, car ils sont moins intéressants ou tout simplement plus difficiles à faire.
7
11
@@ -71,9 +75,15 @@ if (!Math.trunc) { // si une telle fonction n'existe pas
71
75
72
76
JavaScript est un langage très dynamique, les scripts peuvent ajouter/modifier toutes les fonctions, y compris celles intégrées.
73
77
78
+
<<<<<<< HEAD
74
79
Deux librairies intéressantes de polyfills sont :
75
80
- [core js](https://github.com/zloirock/core-js) qui prend en charge beaucoup, permet d'inclure uniquement les fonctionnalités nécessaires.
76
81
- [polyfill.io](http://polyfill.io) est un service qui fournit un script avec des polyfills, en fonction des fonctionnalités et du navigateur de l'utilisateur.
82
+
=======
83
+
Two interesting polyfill libraries are:
84
+
- [core js](https://github.com/zloirock/core-js) that supports a lot, allows to include only needed features.
85
+
- [polyfill.io](https://polyfill.io/) service that provides a script with polyfills, depending on the features and user's browser.
Copy file name to clipboardExpand all lines: 1-js/04-object-basics/03-garbage-collection/article.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -205,8 +205,14 @@ Les moteurs modernes implémentent des algorithmes avancés de récupération de
205
205
206
206
Un livre général intitulé "The Garbage Collection Handbook: The Art of Automatic Memory Management" (R. Jones et al.) En parle.
207
207
208
+
<<<<<<< HEAD
208
209
Si vous êtes familiarisé avec la programmation de bas niveau, les informations plus détaillées sur le garbage collecor V8 se trouvent dans l'article [A tour of V8: Garbage Collection](http://jayconrod.com/posts/55/a-tour-of-v8-garbage-collection).
209
210
210
211
[V8 blog](https://v8.dev) publie également des articles sur les modifications de la gestion de la mémoire de temps à autre. Naturellement, pour apprendre la récupération de place, vous feriez mieux de vous préparer en vous renseignant sur les éléments internes de V8 en général et en lisant le blog de [Vyacheslav Egorov](http://mrale.ph) qui a travaillé comme l'un des ingénieurs V8. Je dis: «V8», car c'est le plus couvert d'articles sur Internet. Pour d'autres moteurs, de nombreuses approches sont similaires, mais la récupération de place diffère à de nombreux égards.
212
+
=======
213
+
If you are familiar with low-level programming, more detailed information about V8's garbage collector is in the article [A tour of V8: Garbage Collection](https://jayconrod.com/posts/55/a-tour-of-v8-garbage-collection).
214
+
215
+
The [V8 blog](https://v8.dev/) also publishes articles about changes in memory management from time to time. Naturally, to learn more about garbage collection, you'd better prepare by learning about V8 internals in general and read the blog of [Vyacheslav Egorov](https://mrale.ph) who worked as one of the V8 engineers. I'm saying: "V8", because it is best covered by articles on the internet. For other engines, many approaches are similar, but garbage collection differs in many aspects.
216
+
>>>>>>> 5dff42ba283bce883428c383c080fa9392b71df8
211
217
212
218
Une connaissance approfondie des moteurs est utile lorsque vous avez besoin d'optimisations de bas niveau. Il serait sage de planifier cela comme prochaine étape après la connaissance du langage.
Copy file name to clipboardExpand all lines: 1-js/05-data-types/11-date/article.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -382,7 +382,11 @@ for (let i = 0; i < 10; i++) {
382
382
```warn header="Faites attention au micro-benchmarking"
383
383
Les moteurs JavaScript modernes effectuent de nombreuses optimisations. Ils peuvent modifier les résultats des «tests artificiels» par rapport à «l'utilisation normale», en particulier lorsque nous comparons quelque chose de très petit. Donc, si vous voulez sérieusement comprendre les performances, alors étudiez le fonctionnement du moteur JavaScript. Et puis vous n’aurez probablement pas besoin de micro-points de repère.
384
384
385
+
<<<<<<< HEAD
385
386
Un bon paquet d'article a propos de V8 se trouve ici <http://mrale.ph>.
387
+
=======
388
+
The great pack of articles about V8 can be found at <https://mrale.ph>.
Copy file name to clipboardExpand all lines: 1-js/05-data-types/12-json/article.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -451,7 +451,11 @@ let json = `{
451
451
452
452
En outre, JSON ne prend pas en charge les commentaires. L'ajout d'un commentaire à JSON le rend invalide.
453
453
454
+
<<<<<<< HEAD
454
455
Il y a un autre format nommé [JSON5](http://json5.org/),qui autorise les clés non commentées, les commentaires, etc. Mais il s’agit d’une bibliothèque autonome, pas dans la spécification du langage.
456
+
=======
457
+
There's another format named [JSON5](https://json5.org/), which allows unquoted keys, comments etc. But this is a standalone library, not in the specification of the language.
458
+
>>>>>>> 5dff42ba283bce883428c383c080fa9392b71df8
455
459
456
460
Le JSON standard est très strict, non pas parce que ses développeurs sont paresseux, mais pour permettre une implémentation facile, fiable et très rapide de l'algorithme de conversion.
0 commit comments