• Post category:StudyBullet-4
  • Reading time:10 mins read


Hands-On course, build frontend application with ReactJS and Typescript following by TDD

What you will learn

Build web applications with ReactJS using Hooks, Typescript, Redux

Create components library with the Storybook and CSS-IN-JS

Dive deeply into configurations of application with Webpack + Babel

Learn about TDD, TLD and apply this knowledge using Jest, React-Testing-Library and Stryker-Mutator

Description

React is the most popular library for building frontend web applications. Step-by-step by diving into all the basics, I’ll introduce you to advanced concepts as well.

We’ll build the minesweeper application from scratch:

  • setup of the development environment

  • configuration of the ReactJS app

  • basic algorithms of Minesweeper

Step-by-step we’ll build the minesweeper game. During the course, we’ll cover the most important topics.

First will be a configuration of the ReactJSย application with Typescript and using build tools Webpack+Babel.

Second there’re presented TDD or TLD approaches that I’ll try to practice with you during the coding sessions. Probably you don’t have enough experience with the tests, but it’s ok, there’s still a good way to learn it from the course. When you work with code and cover it by test cases, it provides you with garantees that your code works as you expected. This is the purpose and benifit of the tests.

Also, I’ll try to cover basic Typescript concepts and show you a way to improve these skills. During the coding sessions, we’ll cover advanced Javascript techniques to make sense of commonly used JS features.


Get Instant Notification of New Courses on our Telegram channel.


Storybook is the most popular way to build the components library. From our side it’s the most basic part of the course. We’ll install and configure Storybook, which will provides us with a full components spec. This approach is called Components Driven Development.

We’ll introduce you to React-Hooks – it’s the basic way to make dynamic UI for the applications.

Last but not least it’s Redux. Redux its a beautiful way to manage an application state. We’ll use the Redux-Toolkit library – it simplifies the work with Redux.

Check out the full curriculum and free preview videos. Join the course risk-free with 30-day money-back guarantee!

See you on the course!

English
language

Content

Introduction

Minesweeper and Github repo
Project init
Code-style and Eslint
Prettier
Useful links

Typescript recap

Typescript basic
Parametric types with generics
Interfaces, Types and Union
Unknown, never and Tuple
UtilityTypes
Minesweeper basic types
Test

React intro

Create React App
JSX at Glance
JSX compilation
Props and conditional rendering
Ecma TC39 and Babel
Webpack intro
Webpack dev server

Jest, TDD and basic game logic

Jest testing framework (TDD vs TLD)
Field generator part1
Field generator part2
Field generator part3
Field generator part4
VSCode debug configuration
Debug basic game logic

Storybook and Components Library

Library Emotion for css-in-js
Styled components API
Storybook intro
Create components with Storybook
Components composition
Chromatic for visual testing
List and Keys

React Hooks intro

useState
Dynamic components with useState Hook
Testing-library for ReactJS components
Fragment
Cell component part1
Cell component part2
Cell component part3
Events
Cell component tests
Custom hooks
useDebugValue
Game Field (grid) component
Components library review

Code quality, app deploy and CI/CD

Test coverage report
Test quality tool Stryker-Mutator
Snapshot testing
Githooks and Husky
AWS Amplify deploy
CI/CD with Github Actions

React hooks and react testing library

Static game
Game logic
useState and player field generator
Testing library user-event
Generate game field and open cell handler
Test player field generator
Debug session and useMemo
Click to the cell test cases
Reset game by TDD

Game hook

Create game over behavior by TDD
Game custom hook
Test refactoring
Set flag action
Solved puzzle detector
Create win game state handler
Add test case for win state

useEffect, useCallback, React.memo

useEffect
Game timer and useEffect
Bombs counter
Test reports and refactoring session
Test reports and refactoring session 2
Refactoring useGame
Refactoring useGame 2
RDT profiler and React.memo + useCallback intro
React.memo + useCallback optimization
Stryker disable mutants

React-Router

What is URL?
ReactRouter and Webpack-Dev-Server
URL Params

Redux intro

Pure functions benifits
Referential transparency
Redux basic example
Game module by TDD (Ducks)
Game module by TDD with createSlice
Game module by TDD with createSlice 2
React + Redux and useReducer

Minesweeper with Redux

React-Redux
Global store benifits and redux-dev-tools
Redux middlewares and timer
Refactoring with Stryker