2020-07-21 09:37:15 +02:00
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE - RUN doctoc TO UPDATE -->
## Table of Contents
- [Front-end development practices ](#front-end-development-practices )
2020-11-10 15:00:08 +01:00
- [Goal of this session ](#goal-of-this-session )
- [TypeScript ](#typescript )
2020-11-20 17:24:00 +01:00
- [Building a professional web app: topics ](#building-a-professional-web-app-topics )
- [Dependency management: npm or yarn ](#dependency-management-npm-or-yarn )
- [Testing ](#testing )
- [Code style ](#code-style )
- [Security ](#security )
2020-11-10 15:00:08 +01:00
- [State management ](#state-management )
2020-11-20 17:24:00 +01:00
- [Interaction with the backend ](#interaction-with-the-backend )
2020-11-10 15:00:08 +01:00
- [Error handling ](#error-handling )
- [CSS ](#css )
- [Developer experience ](#developer-experience )
2020-11-20 17:24:00 +01:00
- [Building and deploying ](#building-and-deploying )
- [Bundling ](#bundling )
- [Compiling ](#compiling )
- [Deploying ](#deploying )
- [Monitoring ](#monitoring )
- [Performance ](#performance )
- [PWA (progressive web apps) ](#pwa-progressive-web-apps )
- [See also ](#see-also )
2020-07-21 09:37:15 +02:00
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
2020-07-20 18:12:51 +02:00
# Front-end development practices
2020-11-10 15:00:08 +01:00
## Goal of this session
We are reaching the end of our journey... Training can't teach you everything - you'll have to get your hands dirty to learn about front-end development. That being said, in this session we will try to look at all the moving pieces that are necessary to be dangerous in modern front-end development.
## TypeScript
See [TypeScript ](./03-typescript.md )
2020-11-20 17:24:00 +01:00
## Building a professional web app: topics
### Dependency management: npm or yarn
2020-11-10 15:00:08 +01:00
- npm
- yarn
2020-11-20 17:24:00 +01:00
### Testing
2020-07-20 18:12:51 +02:00
2020-11-10 15:00:08 +01:00
- jest
2020-11-20 17:24:00 +01:00
### Code style
2020-07-21 12:08:28 +02:00
2020-11-10 15:00:08 +01:00
- prettier
- eslint
2020-11-20 17:24:00 +01:00
### Security
2020-07-23 11:01:29 +02:00
2020-07-27 12:43:02 +02:00
- HTTPS
2020-07-23 11:01:29 +02:00
- CORS
- XSS prevention
- CSP
2020-07-27 12:43:02 +02:00
- OWASP
2020-07-23 11:01:29 +02:00
2020-11-20 17:24:00 +01:00
### State management
2020-11-09 16:05:13 +01:00
2020-11-20 17:24:00 +01:00
- Redux (and redux-thunk, redux-saga, redux-observables). Also: [General | Redux ](https://redux.js.org/faq/general )
- Mobx
- `useReducer` , `useContext` , `useState`
2020-11-09 16:05:13 +01:00
2020-11-20 17:24:00 +01:00
### Interaction with the backend
2020-11-10 15:00:08 +01:00
2020-11-20 17:24:00 +01:00
- GraphQL and Apollo
2020-11-22 15:42:40 +01:00
- redux-saga et al.
- Hooks for API handling
2020-11-10 15:00:08 +01:00
### Error handling
- Error boundaries
### CSS
- CSS-in-JS
- styled-components
2020-11-20 17:24:00 +01:00
- Emotion
Frameworks:
- Material UI
- Tailwind CSS
- CSS-first (no JS components) vs other frameworks
2020-11-10 15:00:08 +01:00
### Developer experience
- Storybook
- Debugging with the React extension
- Performance and profiling
2020-11-20 17:24:00 +01:00
### Building and deploying
2020-11-10 15:00:08 +01:00
2020-11-20 17:24:00 +01:00
#### Bundling
2020-11-10 15:00:08 +01:00
- webpack
- parcel
- rollup
2020-11-20 17:24:00 +01:00
#### Compiling
2020-11-10 15:00:08 +01:00
- babel
2020-11-20 17:24:00 +01:00
#### Deploying
- SSR vs. CSR vs. SSG
#### Monitoring
- Sentry
### Performance
- Lighthouse
- Devtools
### PWA (progressive web apps)
- Web Sockets
- Service Workers
- Payments
## See also
See references in [README.md ](./README.md ), in particular:
- [Front-end Developer Handbook 2019 - Learn the entire JavaScript, CSS and HTML development practice! ](https://frontendmasters.com/books/front-end-handbook/2019/ )
-