2 options
Angular for Enterprise Applications : Build Scalable Angular Apps Using the Minimalist Router-First Architecture / Doguhan Uluca.
- Format:
- Book
- Author/Creator:
- Uluca, Doguhan, author.
- Language:
- English
- Subjects (All):
- AngularJS (Software framework).
- Application software--Development.
- Application software.
- Web applications.
- JavaScript (Computer program language).
- Physical Description:
- 1 online resource (593 pages)
- Edition:
- Third edition.
- Place of Publication:
- Birmingham, England : Packt Publishing, [2024]
- Biography/History:
- Uluca Doguhan: Doguhan Uluca is a Principal Fellow at Excella in Washington, D. C. , where he leads strategic initiatives and delivers critical systems. He has technical expertise in usability, mobility, performance, scalability, cybersecurity, and architecture. He is the author of the Angular for Enterprise Application Development books, has spoken at over 30 conferences, and is an Angular GDE Alumni. Doguhan has delivered solutions for Silicon Valley startups, Fortune 50 companies, and the U. S. Federal Government, and he is passionate about contributing to open-source projects and teaching.
- Summary:
- Harness the full power of Angular 17 with up-to-date tools and enterprise-level best practices Purchase of the print or Kindle book includes a free PDF eBook Key Features Dive straight into the most relevant topics that will help you build large, complex, and high-performance web applications Find updated examples, projects, and an overview of the latest tools and updates - including Jest, Cypress, NgRx workspace, Apollo GraphQL, and Angular Dev Tools Get to grips with reactive code and learn how to resolve potential issues before they crop up Book Description If you're looking to upskill and build sophisticated, minimalist web applications suited for enterprise use, Angular for Enterprise Applications is your guide to the next level of engineering mastery. In its third edition, this Angular book distils hard-earned lessons into a lucid roadmap for success. Adopting a pragmatic approach founded on a robust technical base, you'll utilize both JavaScript and TypeScript fundamentals. You'll also embrace agile engineering coding principles and learn to architect optimally sized enterprise solutions employing the freshest concepts in Angular. You'll gradually build upon this foundation through insightful recipes, sample apps, and crystal-clear explanations. You'll master authentication and authorization and achieve optimal performance through reactive programming and lazy loading, build complex yet flexible UIs with Router-first principles, and then integrate with backend systems using REST and GraphQL APIs. You'll cover modern tools like RxAngular, Qwik, and Signals. You'll construct master/detail views using data tables and NgRx for state management. You'll explore DevOps using Docker and build CI/CD pipelines necessary for high-performance teams. By the end of this book, you'll be proficient in leveraging Angular in enterprise and design robust systems that scale effortlessly. What you will learn Best practices for architecting and leading enterprise projects Minimalist, value-first approach to delivering web apps How standalone components, services, providers, modules, lazy loading, and directives work in Angular Manage your app's data reactivity using Signals or RxJS State management for your Angular apps with NgRx Angular ecosystem to build and deliver enterprise applications Automated testing and CI/CD to deliver high quality apps Authentication and authorization Building role-based access control with REST and GraphQL Who this book is for This book is for mid-to-senior developers looking to gain mastery by learning how to write, test, and deploy Angular in an enterprise environment. Working experience with JavaScript is a prerequisite, and a familiarity with TypeScript and RESTful APIs will help you understand the topics covered in this book more effectively.
- Contents:
- Cover
- Copyright
- Contributors
- Table of Contents
- Preface
- Chapter 1: Angular's Architecture and Concepts
- Two Angulars
- A brief history of web frameworks
- The jQuery era
- The server-side MVC era
- Rich client era
- Angular and the philosophies behind it
- Deterministic releases
- First-class upgrades
- Maintainability
- Angular Evergreen
- TypeScript
- Component architecture
- Reactive programming
- RxJS
- Reactive data streams
- Modular architecture
- Standalone architecture
- Angular Router
- Lazy loading
- State management
- The Flux pattern
- NgRx
- NgRx component store
- React.js architecture
- Future of Angular
- Summary
- Further reading
- Questions
- Chapter 2: Forms, Observables, Signals, and Subjects
- Technical requirements
- Great UX should drive implementation
- Reactive versus template-driven forms
- Adding Angular reactive forms
- Adding and verifying components
- Adding a search option to the weather service
- Implementing a search
- Limiting user inputs with throttle/debounce
- Input validation and error messages
- Template-driven forms with two-way binding
- Component interaction with BehaviorSubject
- Global events
- Child-parent relationships with event emitters
- Parent-child relationships with input binding
- Sibling interactions with subjects
- Managing subscriptions
- Lifecycle of services
- Exposé of a memory leak
- Unsubscribing from a subscription
- Subscribe with first or takeUntilDestroyed
- Coding in the reactive paradigm
- Binding to an observable with an async pipe
- Tapping into an observable stream
- Chaining API calls
- Implementing a postal code service
- Observable sequencing with switchMap
- Using Angular Signals
- Implementing dark mode
- Replacing BehaviorSubject with signals
- Generating apps with ChatGPT
- Exercises.
- Questions
- Chapter 3: Architecting an Enterprise App
- Succeeding as a technical lead or architect
- Understand the business impact
- Set parameters of success
- Elastic leadership
- Ingredients of a successful project
- Agile software development
- Agile engineering best practices
- Engineering excellence and craftsmanship
- Angular in an enterprise
- Diverse coding paradigm support
- Community support
- Tools and techniques for high-performance apps
- Runtime performance
- Root cause of performance bottlenecks
- Minimalist JavaScript solutions
- ArrowJS
- Qwik.js
- Angular performance solutions
- Server-side rendering and hydration
- App shell
- Service workers
- RxAngular
- Angular Signals
- Build performance
- Nx
- esbuild
- Test automation
- Planning using Kanban and GitHub projects
- Setting up a GitHub project
- Customizing the Kanban board
- Creating a prioritized backlog for your app
- The 80-20 solution
- Understanding line-of-business apps
- Disciplined and balanced approach
- Router-first architecture
- Feature modules
- Developing a roadmap and scope
- Designing with lazy loading in mind
- Implementing a walking skeleton
- Achieve a stateless, data-driven design
- Enforce a decoupled component architecture
- Differentiate between user controls and components
- Maximize code reuse with TypeScript and ES
- Chapter 4: Creating a Router-First Line-of-Business App
- Creating LemonMart
- Creating a router-first app
- Configuring Angular and VS Code
- Configuring Angular Material and styles
- Designing LemonMart
- Identifying user roles
- Identifying high-level modules with a site map
- Generating router-enabled modules
- Designing the home route
- Setting up default routes
- RouterLink
- Router outlet.
- Branding, customization, and Material icons
- Branding
- Color palette
- Implementing a browser manifest and icons
- Custom themes
- Custom icons
- Material icons
- Feature modules with lazy loading
- Configuring feature modules with components and routes
- Creating the walking skeleton
- The manager module
- User module
- POS and inventory modules
- PosModule
- InventoryModule
- Common testing module
- Designing around major data entities
- Defining entities
- High-level UX design
- Creating an artifacts wiki
- Leveraging mock-ups in your app
- Exercise
- Leave a review!
- Chapter 5: Designing Authentication and Authorization
- Designing an auth workflow
- JWT life cycle
- TypeScript operators for safe data handling
- Null and undefined checking
- The conditional or ternary operator
- The null coalescing operator
- The nullish coalescing operator
- Optional chaining
- Implementing data entities and interfaces
- Classes, Interfaces, and Enums
- Reusable services leveraging OOP concepts
- Creating an auth service
- Implement an abstract auth service
- Abstract functions
- A cache service using localStorage
- Caching the JWT
- An in-memory auth service
- Simple login
- Logout
- Resuming a JWT session
- An HTTP interceptor
- Chapter 6: Implementing Role-Based Navigation
- Dynamic UI components and navigation
- Implementing the login component
- Conditional navigation
- Common validations for forms
- UI service using environment provider
- Side navigation
- Role-based routing using guards
- Route guards
- Auth guards
- Auth service fake and common testing providers
- A Firebase authentication recipe
- Create a Firebase application.
- Configuring Firebase authentication
- Adding a Firebase auth provider to Angular
- Providing a service using a factory
- Chapter 7: Working with REST and GraphQL APIs
- Full-stack architecture
- Minimal MEAN
- NestJS
- Working with monorepos
- Nx monorepo
- Git submodules
- CircleCI config
- Designing APIs
- REST APIs
- OpenAPI Spec
- OpenAPI spec with Express
- GraphQL APIs
- GraphQL schema
- Apollo with Express
- Implementing APIs with Express.js
- Bootstrapping the server
- REST routes and versioning
- GraphQL resolvers
- Services
- MongoDB ODM with DocumentTS
- Implementing JWT auth
- Authenticating middleware
- Custom server auth provider
- Chapter 8: Recipes - Reusability, Forms, and Caching
- Implementing CRUD services with caching
- Updating the cache
- Multi-step responsive forms
- Form controls and form groups
- Stepper and responsive layout
- Reusing repeating template behavior with directives
- Attribute directives
- Field error attribute directive
- Calculated properties and DatePicker
- Typeahead support
- Dynamic form arrays
- Creating shared components
- Reviewing and saving form data
- Scalable form architecture with reusable parts
- Abstract form component
- Implementing a reusable form part
- Input masking
- Custom controls with ControlValueAccessor
- Implementing a custom rating control
- Using custom controls in forms
- Layouts using a grid list
- Restoring cached data
- Chapter 9: Recipes - Master/Detail, Data Tables, and NgRx
- Loading data with resolve guard
- Reusing components with binding and route data.
- Master/detail view using auxiliary routes
- Data tables with pagination
- NgRx store and effects
- Implementing NgRx for LocalCast Weather
- Comparing BehaviorSubject and NgRx
- Setting up NgRx
- Defining NgRx actions
- Implementing NgRx effects
- Impact of RxJS operators on actions
- Implementing reducers
- Registering with Store using selector
- Dispatching store actions
- Unit testing reducers and selectors
- Unit testing components with MockStore
- NgRx ecosystem
- NgRx/Data
- NgRx/ComponentStore
- NgRx/Signals
- Akita
- Elf
- Configuring server proxies with the Angular CLI
- Implementing a global spinner with NgRx/SignalState
- NgRx/SignalState
- Pre-loading screens with HTML and CSS
- Rewriting Angular apps with NgRx/SignalStore
- RxJS and signal helpers
- NgRx/SignalStore
- Refactoring RxJS and NgRx code
- NgRx Store to SignalStore
- Services from Observables to Signals
- Components from Observables to Signals
- Exercises
- Chapter 10: Releasing to Production with CI/CD
- Automated testing
- Unit testing
- Cypress e2e tests
- Continuous integration
- CircleCI
- GitHub flow
- Deploying to the cloud
- Vercel
- Deploying static files
- Firebase
- ng deploy
- DevOps
- Containerizing web apps using Docker
- Anatomy of a Dockerfile
- Installing Docker
- Setting up npm scripts for Docker
- Building and publishing an image to Docker Hub
- npm scripts in VS Code
- Docker extensions in VS Code
- Working with containers in the cloud
- Continuous deployment
- Deploying to Vercel using CircleCI
- Gated CI workflows
- Code coverage reports
- Code coverage in CI
- Appendix A
- Setting Up Your Development Environment
- Recommended web development tools.
- CLI package managers.
- Notes:
- Includes index.
- Description based on print version record.
- ISBN:
- 9781805125037
- 1805125036
- OCLC:
- 1420910479
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.