Skip to content

Commit

Permalink
Link fix (#1)
Browse files Browse the repository at this point in the history
* Fix link "Health Check Response Format for HTTP APIs"

* Fix link about "Duck Typing in JavaScript and TypeScript"

* Remove dead link: https://nodejs.org/en/docs/meta/topics/dependencies/

* small rephrase (en)

* Replacing link: "Get Ready For ESM - Sindresorhus"

* Replace dead link: "Why Most Unit Testing is Waste"

* Replace dead link "it's not necessarily the best choice" ( F*** express)

* Replace dead link: "Why Adonis.js ?"

* Replace dead link : "the success of Fastify" (snyk)

* Fix link "Supercharge Your Node.js With Rust"

* Replace link "The package.json guide"

* Fix dead link "pnpm workspace"

* Fix link "Node.js debugging best practices"

* Fix youtube redis link

* Remove dead. link "badJS"

* Fix misspell on  link

* Fix misspell on link

* rephase

* Create .404-links.yml to conflg the link linter

* CI: fix dead link on the french version

* CI: Fix last dead link 😮‍💨
  • Loading branch information
olivierodo authored Jun 26, 2024
1 parent 1dc8441 commit 6aa2481
Show file tree
Hide file tree
Showing 26 changed files with 45 additions and 38 deletions.
7 changes: 7 additions & 0 deletions .404-links.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
pullRequestReview: true
ignore:
urls: # Array of url to ignore
- https://www.linkedin.com/in/nadiamedkouri/ #myterious reason the link return a 999
- https://leetcode.com #website hates the crawler
- https://www.udemy.com #website hates the crawler
- https://www2.ccs.neu.edu/research/demeter/papers/law-of-demeter/oopsla88-law-of-demeter.pdf
4 changes: 2 additions & 2 deletions en/chapters/11-monitoring/1-introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Other resources related to Node.js monitoring:

Links and resources for HTTP API monitoring:

- [Health Check Response Format for HTTP APIs](https://tools.ietf.org/id/draft-inadarei-api-health-check-01.html)
- [Health Check Response Format for HTTP APIs](https://datatracker.ietf.org/doc/html/draft-inadarei-api-health-check.html)

## Logs

Expand All @@ -39,4 +39,4 @@ Links and resources for log monitoring :
---

⬅️ [🌇 Architecture & Paradigms: Others](../10-architecture/10-others.md) |
➡️ [💻 System: Introduction](../12-system/1-introduction.md)
➡️ [💻 System: Introduction](../12-system/1-introduction.md)
2 changes: 1 addition & 1 deletion en/chapters/4-typescript/3-resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Anyway, here are some links
- **[Intermediate]** [Learn Advanced TypeScript Types](https://medium.com/free-code-camp/typescript-curry-ramda-types-f747e99744ab)
- **[Intermediate]** [Advanced TypeScript Types cheat sheet (with examples)](https://dev.to/ibrahima92/advanced-typescript-types-cheat-sheet-with-examples-5414)
- **[To know]** [JSDoc typings: all the benefits of TypeScript, with none of the drawbacks](https://gils-blog.tayar.org/posts/jsdoc-typings-all-the-benefits-none-of-the-drawbacks/)
- **[To know]** [Duck Typing in JavaScript and TypeScript](https://blog.bitsrc.io/duck-typing-in-javascript-and-typescript-7cc834fadd64)
- **[To know]** [Duck Typing in JavaScript and TypeScript](https://www.geeksforgeeks.org/typescript-duck-typing/)

Some articles by Dr. Axel Rauschmayer:

Expand Down
3 changes: 2 additions & 1 deletion en/chapters/5-nodejs/1-introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

As a first step, it is really important to understand what Node.js is. Node.js is a JavaScript runtime using the V8 engine of Google Chrome. Node is not a programming language or even a framework.

Node.js is a composition of code and libraries including Libuv, OpenSSL, Zlib ([full list here](https://nodejs.org/en/docs/meta/topics/dependencies/)). All this will allow us, as developers, to interact through different protocols (http, tcp/ip, udp). with the file system of your computer, the network etc…
Node.js is a composition of code and libraries including Libuv, OpenSSL, Zlib... All this will allow us, as developers, to interact through different protocols such as http, tcp/ip,
or udp with your computer file system, network etc…

Node.js is like a toolbox that can allow you to realize a vast amount of projects of various nature (and not only http APIs as many think... for example [NodeSecure](https://github.com/NodeSecure)). That's why we'll talk about runtime environments.

Expand Down
4 changes: 2 additions & 2 deletions en/chapters/5-nodejs/10-modules.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@ I recommend you to listen to the following talks to better understand the subjec

Articles related to ESM

- [Get Ready For ESM - Sindresorhus](https://blog.sindresorhus.com/get-ready-for-esm-aa53530b3f77)
- [Get Ready For ESM - Sindresorhus](https://gist.github.com/suntong/495573d515a086198154597968b75ee2)
- [Pure ESM package - Sindresorhus](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c)
- [Using ES Modules (ESM) in Node.js: A Practical Guide (Part 1](https://gils-blog.tayar.org/posts/using-jsm-esm-in-nodejs-a-practical-guide-part-1/)

---

⬅️ [🐢 Node.js: 🔍 Debugging & Profiling](./9-debugging-and-profiling.md) |
➡️ [🐢 Node.js: WebSocket](./11-websocket.md)
➡️ [🐢 Node.js: WebSocket](./11-websocket.md)
4 changes: 2 additions & 2 deletions en/chapters/5-nodejs/12-unit-testing-and-coverage.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ For example, learning TDD and other methodologies will be beneficial to add stri

Here are some links to help you make a first "opinion":

- [Why Most Unit Testing is Waste](https://rbcs-us.com/documents/Why-Most-Unit-Testing-is-Waste.pdf)
- [Why Most Unit Testing is Waste](https://gist.github.com/ktzar/596ee5aae7c41f2e585331e4b71d1e2c)
- [Test-induced design damage.](https://dhh.dk/2014/test-induced-design-damage.html)
- [TDD is dead. Long live testing.](https://dhh.dk/2014/tdd-is-dead-long-live-testing.html)
- [TW Hangouts | Is TDD dead?.](https://www.youtube.com/watch?v=z9quxZsLcfo)
Expand All @@ -44,4 +44,4 @@ In our field we talk very little about this so much that it is subject to extrem
---

⬅️ [🐢 Node.js: WebSocket](./11-websocket.md) |
➡️ [🌟 The different core modules: Console](./13-core-modules/1-console.md)
➡️ [🌟 The different core modules: Console](./13-core-modules/1-console.md)
8 changes: 4 additions & 4 deletions en/chapters/5-nodejs/3-node-http-ecosystem.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ It is quite common for new developers to start with [express](https://expressjs.

<img src="./../../../assets/nodejs/download-framework.png" alt="download framework" width="600"/>

However [it's not necessarily the best choice](https://dev.to/romainlanz/why-you-should-drop-expressjs-in-2021-711) because the team behind **express** hardly maintains the framework! (**a V5 expected for six years** 🙊) Moreover, many of the patterns they recommend are completely outdated (still no async/await support ...). You'll be writing code that doesn't include any of the modern practices.
However [it's not necessarily the best choice](https://dev.to/ronanru/stop-using-expressjs-in-202-3kc) because the team behind **express** hardly maintains the framework! (**a V5 expected for six years** 🙊) Moreover, many of the patterns they recommend are completely outdated (still no async/await support ...). You'll be writing code that doesn't include any of the modern practices.

**So how do we choose the right framework?** Well, we should already try to segment these frameworks by family to better understand and discuss the different trade-offs that each solution implies.

Expand Down Expand Up @@ -76,7 +76,7 @@ You will certainly gain in productivity in the long run (especially if you often

As for the Small-scope, these are purely back-end frameworks. The list of "serious" frameworks is nevertheless quite short because it is really very difficult to build and maintain such projects in the long term:

- [Adonis.js](https://adonisjs.com/) (I also recommend you to read the page [Why Adonis.js ?](https://preview.adonisjs.com/why-adonisjs))
- [Adonis.js](https://adonisjs.com/) (I also recommend you to read the page [Why Adonis.js ?](https://adonisjs.com/about))
- [Nest.js](https://nestjs.com/)

⚠️ **Be careful** because nowadays many old frameworks that are not really maintained anymore are still actively recommended:
Expand Down Expand Up @@ -116,7 +116,7 @@ If you rather want to specialize in the back-end then I recommend you to look at
- [Intro to Fastify - Matteo Collina](https://www.youtube.com/watch?v=FQu8FnTzOR0&feature=emb_logo) (podcast [bonus here](https://webrush.io/episodes/episode-96-expressway-to-fastify-with-matteo-collina)).
- [Adonis 5 Tour - Romain Lanz](https://www.youtube.com/watch?v=TysfaNcFX_Y&feature=emb_logo)

👀 A recent article by Snyk talks about [the success of Fastify](https://snyk.io/advisor/hub/what-makes-fastify-a-successful-project/).
👀 A recent article by Snyk talks about [the success of Fastify](https://snyk.io/blog/what-makes-fastify-a-successful-project/).

If you are rather a purist or a low level developer and you like to master everything from A to Z, then it is likely that the small-scope family is for you. It may be interesting for you to explore the different solutions (even if they are not necessarily mainstream).

Expand All @@ -129,4 +129,4 @@ There is a framework called [Kuzzle](https://kuzzle.io/) that I didn't really kn
---

⬅️ [🐢 Node.js: 🐥 Resources for beginners](./2-beginners-resources.md) |
➡️ [🐢 Node.js: 📰 Conférences and Articles](./4-conf-and-articles.md)
➡️ [🐢 Node.js: 📰 Conférences and Articles](./4-conf-and-articles.md)
4 changes: 2 additions & 2 deletions en/chapters/5-nodejs/6-native-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@ Bonus:
Various links to make native addons with Rust rather than C and C++ :
- [Node.js N-API for Rust.](https://www.youtube.com/watch?v=UzTPBy2acio)
- [NAPI-RS](https://github.com/napi-rs)
- [Supercharge Your Node.js With Rust](https://yieldcode.blog/supercharge-nodejs-with-rust/)
- [Supercharge Your Node.js With Rust](https://www.yieldcode.blog/post/supercharge-nodejs-with-rust/)
- [Heavy computation in Node.js with Rust - Jean Burellier](https://www.youtube.com/watch?v=yme8ZZqa8NQ)

---

⬅️ [🐢 Node.js: 🎡 Event-loop](./5-event-loop.md) |
➡️ [🐢 Node.js: 📟 CLI](./7-cli.md)
➡️ [🐢 Node.js: 📟 CLI](./7-cli.md)
6 changes: 3 additions & 3 deletions en/chapters/5-nodejs/8-packages.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ If you have the opportunity or an idea of packages then I strongly recommend you

- [Getting started NPM](https://docs.npmjs.com/getting-started)
- [NodeSchool - How to NPM](https://github.com/workshopper/how-to-npm)
- [The package.json guide](https://nodejs.dev/learn/the-package-json-guide)
- [An introduction to the npm package manager](https://nodejs.org/en/learn/getting-started/an-introduction-to-the-npm-package-manager#packages)
- [CJ Silverio, CTO of npm](https://www.youtube.com/watch?v=HH3aNjjhMg8)
- [npm and the Future of JavaScript - Laurie Voss, npm, Inc.](https://www.youtube.com/watch?v=0PU-4GGLzGg)
- [Radical Modularity - Aria Stewart, npm, Inc.](https://www.youtube.com/watch?v=SsIdWFtp2QA)
Expand All @@ -46,12 +46,12 @@ It's a very interesting solution, especially to have only one git repo but still
- [Simplify your monorepo with npm 7 workspaces](https://dev.to/limal/simplify-your-monorepo-with-npm-7-workspaces-5gmj)
- [npm Workspaces (RFC)](https://github.com/npm/rfcs/blob/latest/implemented/0026-workspaces.md)
- [Workspaces in Yarn](https://classic.yarnpkg.com/blog/2017/08/02/introducing-workspaces/)
- [pnpm Workspace](https://pnpm.js.org/en/workspaces)
- [pnpm Workspace](https://pnpm.io/workspaces)
- [🐉 A tool for managing JavaScript projects with multiple packages.](https://github.com/lerna/lerna)

I am just starting to use them for different projects, so I will complete the section in the next few months.

---

⬅️ [🐢 Node.js: 📟 CLI](./7-cli.md) |
➡️ [🐢 Node.js: 🔍 Debugging & Profiling](./9-debugging-and-profiling.md)
➡️ [🐢 Node.js: 🔍 Debugging & Profiling](./9-debugging-and-profiling.md)
4 changes: 2 additions & 2 deletions en/chapters/5-nodejs/9-debugging-and-profiling.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Improving on topics like debugging is very important as a developer in order not
Here is a list of resources that you may need to read:

- [Node.js debugging best practices - Joyent](https://www.joyent.com/node-js/production/debug)
- [Node.js debugging best practices](https://www.tritondatacenter.com/node-js/production/debug)
- [Node.js official debugging guide](https://nodejs.org/en/docs/guides/debugging-getting-started/)
- [Node.js debugger API](https://nodejs.org/api/debugger.html)
- [VS Code integrated tools for Node.js](https://code.visualstudio.com/docs/nodejs/nodejs-tutorial#_debugging-your-node-application)
Expand All @@ -35,4 +35,4 @@ If you need to benchmark your tests then I recommend [autocannon.](https://githu
---

⬅️ [🐢 Node.js: 📦 Packages](./8-packages.md) |
➡️ [🐢 Node.js: Modules (CJS & ESM)](./10-modules.md)
➡️ [🐢 Node.js: Modules (CJS & ESM)](./10-modules.md)
2 changes: 1 addition & 1 deletion en/chapters/6-database/7-redis.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Articles or talks:
- [Solving Head-Of-Line blocking with auto pipelining, NearForm](https://www.youtube.com/watch?v=0L0ER4pZbX4)
- [What is Distributed Caching? Explained with Redis!](https://www.youtube.com/watch?v=U3RkDLtS7uY)

For more talks around Redis, do not hesitate to consult the [Redis Labs](https://www.youtube.com/c/Redislabs/featured) youtube channel.
For more talks around Redis, do not hesitate to consult the [Redis Inc](https://www.youtube.com/@Redisinc) youtube channel.

---

Expand Down
4 changes: 2 additions & 2 deletions en/chapters/8-security/6-ast.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Static Analysis & AST

As part of my [NodeSecure](https://github.com/NodeSecure/cli) project, one of my objectives was to succeed in detecting various and varied “malicious” codes that have been listed through various attacks (several can be found on [badjs](https://badjs.org/)).
As part of my [NodeSecure](https://github.com/NodeSecure/cli) project, one of my objectives was to succeed in detecting various and varied “malicious” codes that have been listed through various attacks.

When we talk about static analysis, it is therefore a question of analyzing a source code without ever executing it (otherwise it is rather a dynamic analysis). For this we will transform the code into AST format which will make the analysis of the code much simpler.

Expand All @@ -22,4 +22,4 @@ Articles written by NodeSecure core members:
---

⬅️ [🔐 Security: Common Security Breach](./5-common-breach.md) |
➡️ [🔐 Security: Additional links and resources to read](./7-link-resources.md)
➡️ [🔐 Security: Additional links and resources to read](./7-link-resources.md)
2 changes: 1 addition & 1 deletion fr/chapters/10-architecture/5-oop.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Si vous souhaitez continuer à réellement creuser la programmation orientée ob
* [Inheritance Is Not Subtyping](https://www.cs.utexas.edu/~wcook/papers/InheritanceSubtyping90/CookPOPL90.pdf)
* [A Behavioral Notion of Subtyping](https://www.cs.cmu.edu/~wing/publications/LiskovWing94.pdf)
* [A Denotational Semantics of Inheritance](https://www.cs.utexas.edu/~wcook/papers/thesis/cook89.pdf)
* [Representing Type Information in Dynamically Typed Languages](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.39.4394&rep=rep1&type=pdf)
- [Representing Type Information in Dynamically Typed Languages](https://www.cs.arizona.edu/sites/default/files/TR93-27.pdf)
* [Concurrent Object-Oriented Programming in Act 1](https://web.media.mit.edu/~lieber/Lieberary/OOP/Act-1/Concurrent-OOP-in-Act-1.html)
* [The Power of Interoperability: Why Objects Are Inevitable](http://www.cs.cmu.edu/~aldrich/papers/objects-essay.pdf)
* [Law of demeter](https://www2.ccs.neu.edu/research/demeter/papers/law-of-demeter/oopsla88-law-of-demeter.pdf)
Expand Down
2 changes: 1 addition & 1 deletion fr/chapters/11-monitoring/1-monitoring.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Autres ressources en lien avec le monitoring Node.js :
## API
Liens et ressources pour du monitoring d’API HTTP :

- [Health Check Response Format for HTTP APIs](https://tools.ietf.org/id/draft-inadarei-api-health-check-01.html)
- [Health Check Response Format for HTTP APIs](https://datatracker.ietf.org/doc/html/draft-inadarei-api-health-check.html)

## Logs
Liens et ressources pour du monitoring de logs :
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ J’ai tout récemment ré-exploré le blog de Jake et franchement je ne me souv
#### Surma

Aussi un excellent développeur et vulgarisateur de concepts et fonctionnalités autour du Web (JavaScript et plus). Je vous recommande donc fortement d’aller lire son blog [surma.dev](https://surma.dev/things/index.htm>)!
Aussi un excellent développeur et vulgarisateur de concepts et fonctionnalités autour du Web (JavaScript et plus). Je vous recommande donc fortement d’aller lire son blog [surma.dev](https://surma.dev/things/index.htm)!

- EN **[A savoir]** [My most useful RegExp trick](https://surma.dev/things/regexp-quote/index.html)
- EN **[Intermédiaire]** [Deep-copying in JavaScript](https://surma.dev/things/deep-copy/index.html)
Expand Down
2 changes: 1 addition & 1 deletion fr/chapters/3-ecmascript/4-tc39.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ En 2018 nous avions organisé FR [un Weektalk](https://www.youtube.com/watch?v=_

Autres liens:

- EN [Archives d’ECMAScript](https://www.ecma-international.org/ecmascript-development-archive/https://www.ecma-international.org/ecmascript-development-archive/)
- EN [Archives d’ECMAScript](https://www.ecma-international.org/ecmascript-development-archive)
- EN [ECMAScript forum](https://es.discourse.group/)
- EN [ES Discuss (Forum d'échange sur ECMAScript)](https://esdiscuss.org/)

Expand Down
2 changes: 1 addition & 1 deletion fr/chapters/4-typescript/3-ressources.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Voici néanmoins quelques liens :
- EN **[Intermédiaire]** [Learn Advanced TypeScript Types](https://medium.com/free-code-camp/typescript-curry-ramda-types-f747e99744ab)
- EN **[Intermédiaire]** [Advanced TypeScript Types cheat sheet (with examples)](https://dev.to/ibrahima92/advanced-typescript-types-cheat-sheet-with-examples-5414)
- EN **[A savoir]** [JSDoc typings: all the benefits of TypeScript, with none of the drawbacks](https://gils-blog.tayar.org/posts/jsdoc-typings-all-the-benefits-none-of-the-drawbacks/)
- EN **[A savoir]** [Duck Typing in JavaScript and TypeScript](https://blog.bitsrc.io/duck-typing-in-javascript-and-typescript-7cc834fadd64)
- EN **[A savoir]** [Duck Typing in JavaScript and TypeScript](https://www.geeksforgeeks.org/typescript-duck-typing/)

Quelques articles du Dr. Axel Rauschmayer:

Expand Down
2 changes: 1 addition & 1 deletion fr/chapters/5-nodejs/1-introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

Node.js est un [runtime](https://fr.wikipedia.org/wiki/Environnement_d%27ex%C3%A9cution#:~:text=Un%20environnement%20d'ex%C3%A9cution%20ou,un%20langage%20de%20programmation%20donn%C3%A9.) JavaScript utilisant le moteur [V8](https://v8.dev/) de Google Chrome. **<u>Node n’est pas un langage de programmation ni même un framework</u>**.

Node.js est une composition de code et librairies dont Libuv, OpenSSL, Zlib ([liste complète ici](https://nodejs.org/en/docs/meta/topics/dependencies/)). Tout cela va nous permettre, en tant que développeurs, de pouvoir interagir par le biais de différents protocoles (http, tcp/ip, udp). avec le système de fichiers de votre ordinateur, le réseau etc...
Node.js est une composition de code et librairies dont Libuv, OpenSSL, Zlib... Tout cela va nous permettre, en tant que développeurs, de pouvoir interagir par le biais de différents protocoles tels que http, tcp/ip ou udp avec le système de fichiers de votre ordinateur, le réseau etc...

Node.js est comme une boîte d’outils qui peut vous permettre de réaliser une vaste quantité de projets de nature diverses et variées (et pas seulement des API http comme beaucoup le pensent… par exemple [NodeSecure](https://github.com/ES-Community/nsecure) ou [SlimIO](https://github.com/SlimIO)). C’est pour cela que l'on parlera d’environnement d’exécution.

Expand Down
2 changes: 1 addition & 1 deletion fr/chapters/5-nodejs/10-modules.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Je vous recommande d’écouter les talks suivant pour mieux comprendre le sujet
Articles en lien avec ESM

- FR **[Débutant]** [ESM et CJS - le match](https://www.audreydoyen.com/blog/ESM-et-CJS)
- [Get Ready For ESM - Sindresorhus](https://blog.sindresorhus.com/get-ready-for-esm-aa53530b3f77)
- [Get Ready For ESM - Sindresorhus](https://gist.github.com/suntong/495573d515a086198154597968b75ee2)
- [Pure ESM package - Sindresorhus](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c)
- 🆕 [Using ES Modules (ESM) in Node.js: A Practical Guide (Part 1](https://gils-blog.tayar.org/posts/using-jsm-esm-in-nodejs-a-practical-guide-part-1/)

Expand Down
2 changes: 1 addition & 1 deletion fr/chapters/5-nodejs/12-test-unitaire-et-coverage.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Par exemple, apprendre TDD et autres méthodologies sera bénéfique pour ajoute
Quelques liens pour vous faire une “opinion”:

- FR [BDD, DDD, ATDD et TDD expliqués !](https://www.youtube.com/watch?v=jxBmKvS7lAo)
- EN [Why Most Unit Testing is Waste](https://rbcs-us.com/documents/Why-Most-Unit-Testing-is-Waste.pdf)
- EN [Why Most Unit Testing is Waste](https://gist.github.com/ktzar/596ee5aae7c41f2e585331e4b71d1e2c)
- EN [Test-induced design damage.](https://dhh.dk/2014/test-induced-design-damage.html)
- EN [TDD is dead. Long live testing.](https://dhh.dk/2014/tdd-is-dead-long-live-testing.html)
- EN [TW Hangouts | Is TDD dead?.](https://www.youtube.com/watch?v=z9quxZsLcfo)
Expand Down
Loading

0 comments on commit 6aa2481

Please sign in to comment.