Full Stack JavaScript Strategies

by Milecia McGregor

Programming

Book Details

Book Title

Full Stack JavaScript Strategies

Author

Milecia McGregor

Publisher

O'Reilly Media

Publication Date

2024

ISBN

9781098122256

Number of Pages

664

Language

English

Format

PDF

File Size

6.2MB

Subject

Full Stack JavaScript

Table of Contents

  • Preface
  • Part I: Starting Your New Project
  • Chapter 1: Kicking Off the Project
  • The Project You’ll Build
  • Project Kickoff Meeting
  • Design Considerations
  • Data-Driven Design
  • Discussing Timelines with Product and Other Teams
  • Conclusion
  • Part II: Building the Backend
  • Chapter 2: Setting Up the Backend
  • Why NestJS?
  • Choosing a Project Approach
  • Setting Up NestJS
  • Monolith and Microservice Architectures
  • Alternative Architectures to Consider
  • Selecting an API Design Pattern: REST and GraphQL
  • Conclusion
  • Chapter 3: Building the Data Schema
  • Initial Considerations
  • Diagramming the Data Schema
  • Setting Up Postgres
  • Deciding What ORM to Use
  • Writing Migrations
  • Seeding the Database
  • Conclusion
  • Chapter 4: REST APIs
  • Making Sure the Frontend and Backend Agree
  • Creating a Document for Conventions
  • Making the API and First Endpoint
  • Conclusion
  • Chapter 5: Third-Party Services
  • Choosing a Third-Party Service
  • List of Potential Services
  • Integrating Stripe
  • Conclusion
  • Chapter 6: Background Jobs
  • Updating the Backend Architecture
  • Using Cron Jobs
  • Conclusion
  • Chapter 7: Backend Testing
  • Why Spend the Time on Tests
  • How to Approach Test Writing
  • Mock Data
  • Conclusion
  • Chapter 8: Backend Security Considerations
  • Authentication
  • Authorization
  • OWASP Top 10
  • Other Noteworthy Practices
  • Conclusion
  • Chapter 9: Backend Debugging
  • Detailed Log Messages
  • Environment Configurations
  • Strategies for Tracing Bugs
  • Helping Other Devs Debug
  • Debugging Checklist
  • Conclusion
  • Chapter 10: Backend Performance
  • Metrics
  • Alerts and Monitoring
  • Caching
  • Product Considerations
  • Conclusion
  • Chapter 11: Scalability Considerations
  • Types of Scaling
  • Scaling Best Practices
  • Conclusion
  • Chapter 12: Monitoring, Logging, and Incident Handling
  • Uses for Logs and Monitoring
  • Incident Playbooks
  • Conclusion
  • Part III: Building the Frontend
  • Chapter 13: Setting Up the Frontend
  • Frontend Architecture Decisions
  • Choosing a Frontend Framework
  • Working with Other Teams
  • Conclusion
  • Chapter 14: Building the React App
  • Set Up the Initial React App
  • Build the First Feature
  • Conclusion
  • Chapter 15: State Management
  • How Component State Works
  • Different Approaches to State Management
  • Setting Up the State Manager
  • Conclusion
  • Chapter 16: Data Management
  • Potential Tools for Fetching Data
  • Handling API Calls with Axios and TanStack Query
  • When to Check on Backend Functionality
  • Conclusion
  • Chapter 17: Custom Styles
  • Accessibility
  • Consistent Designs
  • Custom Themes
  • Responsive Design
  • Conclusion
  • Chapter 18: Frontend Error Handling
  • Error Boundary Approaches
  • User Validation Errors
  • API Errors
  • Conclusion
  • Chapter 19: Frontend Security Considerations
  • Common Vulnerabilities
  • Other Principles
  • How to Check Your Own App
  • Conclusion
  • Chapter 20: Frontend Performance
  • Benchmark Metrics
  • Areas for Improvement
  • Conclusion
  • Chapter 21: Frontend Testing
  • Determining Test Scenarios
  • Unit Tests
  • E2E Testing with Cypress
  • Conclusion
  • Chapter 22: Frontend Debugging
  • The Debugging Process
  • Looking Through Logs
  • Checking the Code
  • Using the Browser Devtools
  • Debugging in Other Environments
  • Debugging in Unexpected Places
  • Conclusion
  • Part IV: Deploying the Full Stack App
  • Chapter 23: Full Stack Deployment Setup
  • Teams Involved in Deploys
  • Backend and Frontend Connection Steps
  • Conclusion
  • Chapter 24: Integration Testing
  • The Test Cases
  • End-to-End Tests with Cypress
  • End-to-End Tests with Playwright
  • End-to-End Tests with Nightwatch
  • Comparison Between Packages
  • Conclusion
  • Chapter 25: Making Deployments
  • Deploying Frontend-Only or Backend-Only Updates
  • Deploy Strategies
  • Strategies for Doing Rollbacks
  • Conclusion
  • Chapter 26: Integration Concerns
  • Frontend and Backend Concerns
  • Third-Party Service Concerns
  • Data and Security in Production
  • Containerization of Your App
  • Conclusion
  • Chapter 27: Building a CI/CD Pipeline
  • Creating Your Own Pipeline
  • Environment Pipelines
  • Conclusion
  • Chapter 28: Git Management
  • Branching Strategies
  • Handling Merge Conflicts
  • Conclusion
  • Chapter 29: Project Management
  • Sprint Discussions
  • Defining and Managing Tasks
  • Conclusion
  • Chapter 30: Understanding the Business Domain
  • Domain-Specific Knowledge
  • Architectural and System Design Decisions
  • Learning from Other Teams
  • Documentation Considerations
  • Conclusion
  • Chapter 31: Working on Different Types of Projects over Your Career
  • Considerations for Brand-New Apps
  • Considerations for Existing Apps
  • Your Career
  • Conclusion
  • Index
  • About the Author