- 10/14/22 - 1 / 63 The Road to Node All images used in this presentation is a property of their entities. v. 0.1.0 The Road to Node… and other things.
President, ABRAPHP - Brazilian Association of PHP Professionals Director, ConFLOSS and PHP Conference Brasil Evangelist and Contributor for PHP, Laminas Project Fedora Ambassador, LATAM Guest Post-Grad Professor (PR and SC) 25+ years developing web-interfaced systems 20+ with PHP and JavaScript ≃ 15 with Zend Framework / Laminas Project Speaker at national and international events Who?! www.galvao.eti.br www.galvao.eti.br CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 2 / 63
between what you know and what you don’t (Even if these associations are wrong) CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 6 / 63
between what you know and what you don’t (Even if these associations are wrong) Study AND practice CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 7 / 63
is a runtime environment that allows JavaScript to operate in a backend/fullstack context. CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 10 / 63
is a runtime environment that allows JavaScript to operate in a backend/fullstack context. This means Node enables us to use JS to: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 11 / 63
is a runtime environment that allows JavaScript to operate in a backend/fullstack context. This means Node enables us to use JS to: Read/Write files CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 12 / 63
is a runtime environment that allows JavaScript to operate in a backend/fullstack context. This means Node enables us to use JS to: Read/Write files Connect to Databases CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 13 / 63
is a runtime environment that allows JavaScript to operate in a backend/fullstack context. This means Node enables us to use JS to: Read/Write files Connect to Databases Send e-mails CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 14 / 63
is a runtime environment that allows JavaScript to operate in a backend/fullstack context. This means Node enables us to use JS to: Read/Write files Connect to Databases Send e-mails etc... CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 15 / 63
JS Quirks OOP Docs are at https://developer.mozilla.org/en-US/docs/Web/JavaScript Things to keep in mind: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 22 / 63
JS Quirks OOP Docs are at https://developer.mozilla.org/en-US/docs/Web/JavaScript A nice starting point: https://www.youtube.com/watch?v=RLtyhwFtXQA Things to keep in mind: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 23 / 63
JS Quirks OOP Docs are at https://developer.mozilla.org/en-US/docs/Web/JavaScript A nice starting point: https://www.youtube.com/watch?v=RLtyhwFtXQA You’ll eventually use: https://www.npmjs.com/package/ Things to keep in mind: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 24 / 63
like in Frontend We can EMIT! Custom Events Things to keep in mind: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 30 / 63
like in Frontend We can EMIT! Custom Events Events are SYNCHRONOUS, and therefore... Things to keep in mind: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 31 / 63
like in Frontend We can EMIT! Custom Events Events are SYNCHRONOUS, and therefore... They keep the app “in check” Things to keep in mind: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 32 / 63
At the same time! Promises, Promises... Things to keep in mind: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 38 / 63
At the same time! Promises, Promises... Watch out for those pesky race conditions Things to keep in mind: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 39 / 63
At the same time! Promises, Promises... Watch out for those pesky race conditions Asynchronicity is NOT a silver bullet (nothing is) Things to keep in mind: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 40 / 63
At the same time! Promises, Promises... Watch out for those pesky race conditions Asynchronicity is NOT a silver bullet (nothing is) Use it wisely Things to keep in mind: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 41 / 63
context With great power... Quality is king Things to keep in mind: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 47 / 63
context With great power... Quality is king Docs are at https://nodejs.org/en/docs/ Things to keep in mind: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 48 / 63
context With great power... Quality is king Docs are at https://nodejs.org/en/docs/ Test, test and when in doubt… test AGAIN Things to keep in mind: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 49 / 63
context With great power... Quality is king Docs are at https://nodejs.org/en/docs/ Test, test and when in doubt… test AGAIN Log ALL THE THINGS Things to keep in mind: CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 50 / 63
for querying data NestJS is like a MVC Framework TypeScript is JavaScript + Types CC Attribution-ShareAlike 4.0 International License by Er Galvão Abbott - 10/14/22 - 60 / 63
by Er Galvão Abbott - 10/14/22 - 61 / 63 * Remember: Associations, even wrong ones. GraphQL is a JSON-esque language for querying data NestJS is like a MVC Framework TypeScript is JavaScript + Types