Softwarearchitektur
Modern Web Development on the JAMstack
Mathias Biilmann, Phil Hawksworth, 2019
Inhaltsverzeichnis des Buches
- Introduction
- The JAM in JAMstack
- A Workflow for Productivity and Performance
- Version Control and Atomic Deploys
- Contributing on the JAMstack
- APIs to Process and Personalize
- Bringing It All Together: A Smashing Magazine Case Study
- Ready? Time to Get Our JAM Session Started
- 1. The Challenges of Modern Web Development
- The Drawbacks of Monolithic Architectures
- Limited Flexibility
- Performance Concerns
- Scaling Challenges
- Security Woes
- The Risk of Staying the Same
- 2. Introducing the JAMstack
- What’s in a Name?
- JavaScript
- APIs
- Markup
- Prebuilding Markup
- Types of JAMstack Projects
- HTML Content
- Content from a CMS
- Web Applications
- Large Web Properties
- Hybrid Experiences
- Summary
- 3. Advantages of the JAMstack
- Simplifying Systems and Simplifying Thinking
- Better Comprehension and Mental Agility
- You Don’t Need to Be an Expert at Everything
- Reduce Moving Parts at Runtime
- Costs
- Financial Costs
- Team Efficiency
- The Price of Innovation
- Scale
- Aping Static in Order to Scale
- Geography
- Redundancy
- Performance
- Where to Focus Optimization Efforts
- Only Turning the Gears When Necessary
- Security
- Reducing Surface Area
- Reducing Risk with Read-Only
- Outsourced or Abstracted Services
- For the Developer; for the Project; for the Win
- 4. Planning for the JAMstack
- Setting Up the Project
- Strategies for Managing Content
- Text Files
- Git-Based CMS
- Headless CMS
- Self-Hosted CMS
- Choosing a Site Generator
- One: The Type of Website
- Two: The Programming Language Used
- Three: The Templating Syntax
- Four: Speed
- Five: Developer Tooling
- Adding Automation
- Using GitHub Pages and GitLab Pages
- Using Your Own Infrastructure
- Using a Hosted Deployment Service
- Selecting a CDN
- Edge Locations
- Instant Updates
- Multiple Providers
- Providing Functionality: APIs
- 5. Shifting the Mental Model
- A Mindset and an Approach
- One: Get to the CDN
- Designing for the Best Use of a CDN
- Two: Design for Immutability and Atomic Deployments
- Confidence from Immutability
- The Advantages of Immutable Deployments
- Positioning for Immutable Deployments
- Atomic Deployments
- Three: Employ End-to-End Version Control
- Reducing the Cost of Onboarding
- Making Version Control the Backbone of Your Project
- Four: Automation and Tooling
- A Powerful Site-Generation Pattern
- Minimizing the Risk of Human Intervention
- Five: Embrace the Ecosystem
- Forms
- Search
- Notifications
- Identity
- Six: Bridging the Last Gaps with Functions as a Service
- Being Comfortable with Breaking the Monolith
- 6. Applying the JAMstack at Scale
- A Case Study: Smashing Magazine
- The Challenge
- Key Considerations
- Duplicated Templates
- Performance, Reliability, and Security
- Membership
- Picking the Right Tools
- Static Site Generator
- Asset Pipeline
- Frontend Framework
- Content Migration
- Utilizing Structured Content
- Working with Large Sites
- Building Out the Core
- Search
- Content Management
- Integrating Netlify CMS
- Listings, Search, and Assets: Customizing the CMS for Large Projects
- Identity, Users, and Roles
- JWTs and Stateless Authentication
- Ecommerce
- Identity and Orders
- Membership and Subscriptions
- Tying It Together: Member Discounts in GoCommerce
- Job Board and Event Tickets: AWS Lambda and Event-Based Webhooks
- Workflows and API Gateways
- Deploying and Managing Microservices
- Summary
- 7. Conclusion
- And One More Thing...