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.) |
|