My Account Log in

1 option

React Anti-Patterns : Build Efficient and Maintainable React Applications with Test-Driven Development and Refactoring / Juntao Qiu.

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Qiu, Juntao, author.
Language:
English
Subjects (All):
Web applications--Development.
Web applications.
Application software--Development.
Application software.
Physical Description:
1 online resource (324 pages)
Edition:
First edition.
Place of Publication:
Birmingham, England : Packt Publishing Ltd., 2024.
Biography/History:
Qiu Juntao: Juntao is an accomplished software developer with over 15 years of industry experience dedicated to helping others write better code. With a strong passion for crafting maintainable and high-quality code, he has become a trusted resource in the industry. As an author, Juntao has shared his expertise through influential books like "Test-Driven Development with React"(2021) and "Maintainable React"(2022). With a genuine desire to empower developers and enable them to reach their full potential, he strives to impact the industry positively. By leveraging his extensive experience and passion for writing better code, he supports individuals in honing their skills and achieving success in their software development endeavours.
Summary:
Master efficient coding practices, address common anti-patterns, and construct scalable React apps with practical insights and techniques Key Features Identify and address React anti-patterns while learning testing strategies and refactoring techniques for efficient codebases Explore data modelling, design patterns, and state management in React Enhance code quality, maintainability, and scalability in React applications Purchase of the print or Kindle book includes a free PDF eBook Book Description Take your React development skills to the next level by examining common anti-patterns with expert insights and practical solutions, to refine your codebases into sophisticated and scalable creations. Through this easy-to-follow guide, React Anti-Patterns serves as a roadmap to elevating the efficiency and maintainability of your React projects. You'll begin by familiarizing yourself with the essential aspects of React before exploring strategies for structuring React applications and creating well-organized, modular, and easy-to-maintain codebases. From identifying and addressing common anti-patterns using refactoring techniques to harnessing the power of test-driven development (TDD), you'll learn about the tools and techniques necessary to create reliable and robust tests. As you advance, you'll get to grips with business logic and design patterns that offer solutions to prevalent challenges faced in React development. The book also offers insights into using composition patterns, such as code splitting and multiple entry points, to enhance the flexibility and modularity of your React applications, guiding you through end-to-end project implementation. By the end of this React book, you'll be able to overcome common challenges and pitfalls to transform your React projects into elegant, efficient, and maintainable codebases. What you will learn Formulate comprehensive testing strategies and leverage testing framework capabilities Implement TDD practices to drive the development process and elevate code quality, especially in extensive React projects Use design patterns effectively to create scalable and reusable React components Apply established software design principles to craft resilient applications within React Achieve modularity and loose coupling in React codebases by mastering the separation of concerns Ensure clean code by adhering to software design best practices in React development Who this book is for This book is for React developers of all skill levels who share a passion for crafting efficient and maintainable codebases. Whether you're a beginner who wants to establish a solid foundation or an experienced developer looking to refine your skills, this guide offers invaluable insights, practical solutions, and real-world examples to enable you to excel at building scalable, elegant, and high-performing React applications.
Contents:
Cover
Title Page
Copyright and Credit
Dedicated
Contributors
Table of Contents
Preface
Part 1: Introducing the Fundamentals
Chapter 1: Introducing React Anti-Patterns
Technical requirements
Understanding the difficulty of building UIs
Understanding the state management
Exploring "unhappy paths"
Errors thrown from other components
Learning the unexpected user behavior
Exploring common anti-patterns in React
Props drilling
In-component data transformation
Complicated logic in views
Lack of tests
Duplicated code
Long component with too much responsibility
Unveiling our approach to demolishing anti-patterns
Summary
Chapter 2: Understanding React Essentials
Understanding static components in React
Creating components with props
Breaking down UIs into components
Managing internal state in React
Understanding the rendering process
Exploring common React Hooks
useState
useEffect
useCallback
The React Context API
Chapter 3: Organizing Your React Application
Understanding the problem of a less-structured project
Understanding the complications of frontend applications
Exploring common structures in React applications
Feature-based structure
Component-based structure
Atomic design structure
The MVVM structure
Keeping your project structure organized
Implementing the initial structure
Adding an extra layer to remove duplicates
Naming files
Exploring a more customized structure
Chapter 4: Designing Your React Components
Exploring the single responsibility principle
Don't repeat yourself
Using composition
Combining component design principles
Part 2: Embracing Testing Techniques.
Chapter 5: Testing in React
Understanding why we need tests
Learning about different types of tests
Testing individual units with Jest
Writing your first test
Grouping tests
Testing React components
Learning about integration tests
Learning about E2E tests using Cypress
Installing Cypress
Running our first E2E test
Intercepting the network request
Chapter 6: Exploring Common Refactoring Techniques
Understanding refactoring
The common mistakes of refactoring
Adding tests before refactoring
Using Rename Variable
Using Extract Variable
Using Replace Loop with Pipeline
Using Extract Function
Using Introduce Parameter Object
Using Decompose Conditional
Using Move Function
Chapter 7: Introducing Test-Driven Development with React
Understanding TDD
Different styles of TDD
Focusing on user value
Introducing tasking
Introducing the online pizza store application
Breaking down the application requirements
Implementing the application headline
Implementing the menu list
Creating the shopping cart
Adding items to the shopping cart
Refactoring the code
Part 3: Unveiling Business Logic and Design Patterns
Chapter 8: Exploring Data Management in React
Understanding business logic leaks
Introducing the ACL
Introducing a typical usage
Using the fallback or default value
Exploring the prop drilling issue
Using the Context API to resolve prop drilling
Chapter 9: Applying Design Principles in React
Revisiting the Single Responsibility Principle
Exploring the render props pattern
Using composition to apply the SRP.
Embracing the Dependency Inversion Principle
Understanding how the DIP works
Applying the DIP in an analytics button
Understanding Command and Query Responsibility Segregation in React
Introducing useReducer
Using a reducer function in a context
Chapter 10: Diving Deep into Composition Patterns
Understanding composition through higher-order components
Reviewing higher-order functions
Introducing HOCs
Implementing an ExpandablePanel component
Exploring React Hooks
Unveiling remote data fetching
Refactoring for elegance and reusability
Developing a drop-down list component
Implementing keyboard navigation
Maintaining simplicity in the Dropdown component
Introducing the Headless Component pattern
The advantages and drawbacks of Headless Component pattern
Libraries and further learnings
Part 4: Engaging in Practical Implementation
Chapter 11: Introducing Layered Architecture in React
Understanding the evolution of a React application
Single-component applications
Multiple-component applications
State management with Hooks
Extracting business models
Layered frontend application
Enhancing the Code Oven application
Refactoring the MenuList through a custom hook
Transitioning to a class-based model
Implementing the ShoppingCart component
Applying discounts to Items
Exploring the Strategy pattern
Delving into layered architecture
The layered structure of the application
Advantages of layered architecture
Chapter 12: Implementing an End-To-End Project
Getting the OpenWeatherMap API key
Preparing the project's code base
Reviewing the requirements for the weather application
Crafting our initial acceptance test.
Implementing a City Search feature
Introducing the OpenWeatherMap API
Stubbing the search results
Enhancing the search result list
Implementing an ACL
Implementing an Add to Favorite feature
Modeling the weather
Refactoring the current implementation
Enabling multiple cities in the favorite list
Refactoring the weather list
Fetching previous weather data when the application relaunches
Chapter 13: Recapping Anti-Pattern Principles
Revisiting common anti-patterns
Long props list/big component
Business leakage
Lack of tests (at each level)
Code duplications
Skimming through design patterns
Higher-order components
Render props
Headless components
Data modeling
Layered architecture
Context as an interface
Revisiting foundational design principles
SRP
Dependency Inversion Principle
DRY
ACL
Recapping techniques and practices
Writing user acceptance tests
TDD
Refactoring and common code smells
Additional resources
Index
Other Book You May Enjoy
what-will-be-coverd
technical-requirements
understanding-why-build-ui-is-difficult
understanding-the-state-management
exploring-the-unhappy-paths
errors-in-another-component
downstream-systems-are-down
unexpected-user-behavior
introducing-our-approach
X5e903e8c2c5f4e10df439b61bb9d4f414c942ec
OLE_LINK3
X40f74e6f0d0f69d9b64a71918d2ea63f898c2bc
Xdeb99c6863078c95d4d2e459d016fcf3e6f63aa
summary-1
react-essentials
understanding-components-in-react
creating-reusable-components
thinking-in-components
manage-states-in-react
OLE_LINK1
the-rendering-process
common-hooks-in-react
usestate
useeffect
usecallback
the-react-context-api
summary.
front-end-applications-are-complex
open-up-a-feature-folder
common-structures-in-react-applications
feature-based-strucutre
benefits
drawbacks
component-based-structure
benefits-1
drawbacks-1
atomic-design-structure
benefits-2
drawbacks-2
mvvm-structure
benefits-3
drawbacks-3
keep-orgnaising-your-project-structure
first-attempt
one-more-layer
inside-a-component
X8f4764dbed6e7346a7182f0988737a84cf4db49
naming-files-with-kebab-case
the-sturcture-we-have-now
OLE_LINK2
summary
single-responsibility-principle
dont-repeat-yourself
using-composition
exploring-a-more-complicated-case
understanding-why-we-need-tests
learning-different-types-of-tests
testing-individual-units-with-jest
writing-your-first-test
note
-behavior-driven-development
grouping-tests
testing-react-component
learning-the-integrationg-tests
-jsdom
learning-the-end-to-end-tests
introducing-cypress
intercept-the-network-request
understanding-refactoring
the-common-mistakes
adding-tests-before-you-make-any-changes
renaming-variable
extracting-variable
replacing-loop-with-pipeline
extracting-function
introducing-parameter-object
decomposing-conditional
moving-function
a-brief-history
the-red-green-refactor-loop
X4c5128f4195e94221b4f32ca5d6853d3b95e060
unit-test-driven-development
acceptance-test-driven-development-atdd
behavior-driven-development-bdd
tdd-in-react-a-user-centric-approach
introducing-the-core-step-of-tdd-tasking
the-importance-of-tasking
how-to-do-tasking
X48ff3dd176aac4090ecb9adef68b1ecd67693a9
features-overview
breaking-down-the-requirements
the-bottom-up-style.
the-top-down-style.
Notes:
Includes index.
Description based on print version record.
ISBN:
9781805123620
1805123629
OCLC:
1414110048

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account