Skip to content
You are not logged in |Login  
     
Limit search to available items
Record:   Prev Next
Resources
More Information
Bestseller
BestsellerE-book
Author Raiturkar, Jyotiswarup.

Title Hands-On Software Architecture with Golang : Design and Architect Highly Scalable and Robust Applications Using Go.

Imprint Birmingham : Packt Publishing Ltd, 2018.

Item Status

Description 1 online resource (491 pages)
Contents Cover; Title Page; Copyright and Credits; About Packt; Contributors; Table of Contents; Preface; Chapter 1: Building Big with Go; Problem solving for the big picture; The role of the architect; Requirements clarification; True North; Technology selection; Leadership in the kitchen; Coaching and mentoring; Target state versus current state; Software architecture; Architecture versus design; What does architecture look like?; Microservices; The challenges for microservices -- efficiency; The challenges for microservices -- programming complexity; Go; Hello World!; Data types and structures
Functions and methodsFlow control; Packaging; Concurrency; Garbage collection; Object-orientation; Summary; Chapter 2: Packaging Code; Contracts; Object orientation; Object orientation in Go -- the struct; Object orientation in Go -- visibility; Object oriented in Go -- the interface; Object oriented in Go -- embedding; Modules; Code layout; Third-party dependencies; Framework; Testing; Structuring tests; Summary; Chapter 3: Design Patterns; Design principles; Single Responsibility Principle (S); Open/Closed Principle (O); Liskov Substitution Principle (L); Interface Segregation Principle (I)
Dependency Inversion Principle (D)Creational design patterns; Factory method; Builder; Abstract factory; Singleton; Structural design patterns; Adaptor; Bridge; Composite; Decorator; Facade; Proxy; Behavioral design patterns; Command; Chain of Responsibility; Mediator; Memento; Observer; Visitor; Strategy; State; Summary; Chapter 4: Scaling Applications; Scaling algorithms; Algorithm complexity; Distributed algorithms; Scaling data structures; Profiling data structures; Probabilistic data structures; Scaling data; Scalability bottlenecks; The C10K problem; The Thundering Herd problem
Bibliography SourcesProgramming; Operating systems; Memory usage; Losing state; Scaling systems; X-axis scaling; Y-axis scaling; Z-axis scaling; Scaling deployments; Summary; Chapter 5: Going Distributed; Topology; Distributed system quirks; The network is reliable; The latency is zero; The bandwidth is infinite; The network is secure; The topology doesn't change; There is one administrator; The transport cost is zero; The network is homogeneous; Consistency; ACID; Client-centric consistency models; Strong consistency; Weak consistency; Eventual consistency; Sequential consistency; Causal consistency
Contents Session consistencyMonotonic read consistency; Monotonic write consistency; Storage system-centric consistency model; CAP theorem; Consensus; The two generals problem; Consensus based on time -- causality; Multi-phase commit; Two-phase commit; Three-phase commit; Paxos; Raft; Leader-election; Distributed architectures; Object-based systems; Layered architectures; Peer-2-peer (P2P) architecture; Distributed computations; Event-driven architecture (EDA); The Actor model; Stream processing; Summary; Chapter 6: Messaging; Performance characterization; Broker-based messaging; The queuing model
Note The Pub/Sub model
Summary Building software requires careful planning and architectural considerations; Golang was developed with a fresh perspective on building next-generation applications on the cloud with distributed and concurrent computing concerns. This book is your guide to software architecture with Golang.
Local Note eBooks on EBSCOhost EBSCO eBook Subscription Academic Collection - North America
Subject Software architecture.
Software architecture
Other Form: Print version: Raiturkar, Jyotiswarup. Hands-On Software Architecture with Golang : Design and Architect Highly Scalable and Robust Applications Using Go. Birmingham : Packt Publishing Ltd, ©2018 9781788622592
ISBN 1788625102
9781788625104 (electronic bk.)