Movatterモバイル変換


[0]ホーム

URL:


Packt
Search iconClose icon
Search icon CANCEL
Subscription
0
Cart icon
Your Cart(0 item)
Close icon
You have no products in your basket yet
Save more on your purchases!discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Profile icon
Account
Close icon

Change country

Modal Close icon
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timerSALE ENDS IN
0Days
:
00Hours
:
00Minutes
:
00Seconds
Home> Programming> Application Development> Domain-Driven Design with Golang
Domain-Driven Design with Golang
Domain-Driven Design with Golang

Domain-Driven Design with Golang: Use Golang to create simple, maintainable systems to solve complex business problems

Arrow left icon
Profile Icon Matthew Boyle
Arrow right icon
$31.99$35.99
Full star iconFull star iconFull star iconFull star iconHalf star icon4.4(19 Ratings)
eBookDec 2022204 pages1st Edition
eBook
$31.99 $35.99
Paperback
$44.99
Subscription
Free Trial
Renews at $19.99p/m
eBook
$31.99 $35.99
Paperback
$44.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with eBook?

Product feature iconInstant access to your Digital eBook purchase
Product feature icon Download this book inEPUB andPDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature iconDRM FREE - Read whenever, wherever and however you want
Product feature iconAI Assistant (beta) to help accelerate your learning
OR

Contact Details

Modal Close icon
Payment Processing...
tickCompleted

Billing Address

Table of content iconView table of contentsPreview book icon Preview Book

Domain-Driven Design with Golang

A Brief History of Domain-Driven Design

Welcome to this book ondomain-driven design (DDD) usingGolang. If you have never heard of DDD before, I hope that by the end of this book, you will have a good understanding of what it is, where it came from, how it can be applied, and how to implement some of the patterns popular among DDD proponentsusing Golang.

You might be surprised to discover that a large part of the first half of this book will be defining terms and discussing patterns on how to work with others to build systems that represent the real world. At its core, this is what DDD is about. Don’t worry though; there will be plenty of Golang examples, and inPart 2, we will dive deeper into building out DDD-based systems.

In this chapter, we will explore how DDD emerged and gained popularity. I find this context particularly valuable as we delve deeper into the topic as it helps you understandwhy to use it, not justhow.

In this chapter, we will cover thefollowing topics:

  • The worldbefore DDD
  • Eric Evansand DDD
  • Three pillarsof DDD
  • Adoptionof DDD
  • When should youuse DDD?

The world before DDD

Before 2003 and the inceptionof DDD, engineers and architects were thinking about how to organize their software and systems in a way that represented the problem space (domain) they were trying to model. As software became more and more complicated, it became apparent that the closer your system was to the domain, the easier it was to make changes. More importantly, it was easier for other stakeholders to converse with engineers as there was less of a disconnect between the real-world model of the problem space and thesystem model.

This was the issue that Eric Evans, a software engineer, was facing—the increased complexity of systems and failures in creating and maintaining them. This led him to write the bookDomain-Driven Design: Tackling Complexity in the Heart of Software,Addison-Wesley Professional, in 2003—the first book on the subject of DDD.

“...(The) book Domain-Driven Design was an attempt to capture for people the successful practices that I had seen or used, some of which have been around for a long time and some of which are relatively new, and put together into a coherent set of practices with clear names so that maybe we can have broader success than we have in the past… a great deal of domain-driven design comes straight out of good old-fashioned object-oriented design patterns.” (Evans, in an interview withSoftware Engineering Radio,2019,Episode8:https://youtu.be/7yUONWp-CxM)

What does Evans mean when he refers toobject-oriented design (OOD) principles? It used to be a given that everyone would write someobject-oriented (OO) code as they began their journey into software development, but that is not necessarilythe case anymore. If you are reading this book and Golang is your first programming language, it might be that you have never written traditional OO code. 

OO programming (OOP) is a way to write programs that allows us to organize our code around objects rather than functions. We give these objects attributes and methods that define behavior.   

OOP is particularly popular for large complex code bases as OOP is much easier to reason about. One of themost popular OOP languages isJava.

If we werebuilding ahuman resources (HR) system, we might want to model an employee. If we were using Java, we might write thisas follows:

public class Employee {    private String firstName;    private String lastName;    public Employee (String firstName, String lastName) {        this.firstName = firstName;        this.lastName = lastName;    }    public String getFirstName() {        return this.firstName;    }    public String getLastName() {        return this.lastName;    }          public String toString() {        return "Employee(" + this.firstName + "," + this.lastName + ")";    }}

As you can see from this basicexample, the code is readable, and we can easily model an employee in the system. When the business requires us toprint a list of all employees oradd the ability to store an employee’s location in their profile, you can hopefully see how our currentEmployee class forms the basis to add such functionality.  

Now that we have learned what OO code looks like, we can review some of the design patterns that are commonly used and thatinspired DDD.

So, what are OOD patterns?

Design patterns were first described in 1977 in a book titledA Pattern Language: Towns, Buildings, Construction, byChristopher Alexander,Oxford University Press. This book has nothing to do with software engineering, yet it inspired one of the most influential books on OOP design, calledDesign Patterns, Elements of Reusable Object-Oriented Software, byErich Gamma,Richard Helm,Ralph Johnson, andJohn Vlissides,Addison-Wesley Professional. This book was released in 1995 but still features at the top of computerscience students’ reading lists in 2022. You may have heard of this book by its colloquial name, theGang of Four (orGoF), in reference to its four authors. 

In the GoF book, 23 design patterns are outlined for what the authors believe lead to scalable, maintainable OO software. Going through each pattern is beyond the scope of this book (the GoF book comprises ~400 pages).

However, if you have read the GoF book, as you proceed to learn more about DDD, it is worth taking a pause and seeing whether you can see where Evans’s inspiration came from. The GoF patterns are split into the following sections, which are equally important when considering DDD: 

  • Creational patterns are patternsconcerned with creating objects instead of creating objects directly. This gives more flexibility to the program in deciding which object type to create, given thecurrent context.
  • Structural patterns are concernedwith how you compose objects within your program to achievecertain functionality.
  • Behavioral patterns are concerned with howobjects communicate.

Now that we have learned a little about what inspired DDD, let’s talk about the book that startedit all.

Eric Evans and DDD

Evans’s book (sometimes called theBig Blue Book) has become a must-read title for all software engineers and architects. Whenever we talk about DDD, this is the book that started it all. In the book, he gave a common language and a set of principles to design systems that have been refined and clarified over the years by members of an ever-growing community.

TheBig Blue Book has sold over 100,000 copies and consistently remains in the top 10 computing books on Amazon. Martin Fowler, a famous thought leader in the software engineering space, describes the book as “an essential read for serious software engineers” (in hismartinFowler.com blog,2020:https://martinfowler.com/bliki/DomainDrivenDesign.html).

However, the book is not without flaws. It has received criticism for being hard to read. In his review, Matt Carroll states: “The book is written in a dialect approaching that of academia. Big words, long sentences, and introduction to concepts that are so abstract that they would be unintelligible without the accompanying examples. In fact, some parts continue to be unintelligible even with the examples” (in hisMedium blog,2016:https://mattcarroll.medium.com/book-review-domain-driven-design-42c96a75a72).

Regardless of the criticism, the book is still as relevant and celebrated as it was years ago when it was published. One reason is that the book outlined three pillars that can be used independently or together to improve complex software projects. In the next section, we will reviewthese pillars.

Three pillars of DDD

In this book, Evans introduced three main concepts (sometimes called pillars) of DDD. These areubiquitous language,strategic design, andtactical design. We have summarized them in this section, but we go into each in more depth later in this book.

Ubiquitous language

Ubiquitous language is the term weuse to describe the process of building a common language we can use when talking about our domain. This language should be spoken by everyone in the team—developers and business folk alike. It unites the team by ensuring there is no ambiguityin communication.

As withreal languages, the ubiquitous language should evolve as your team’s understanding of the domain increases. It should never be imposed by domain experts, for it is not a business language. We will discuss how to develop a ubiquitous language inChapter 2.

Strategic design

Strategic design is a phase of the DDD process in which we map out the business domain and define bounded contexts.

The goal of strategic design is to ensure that you architect your system in a way focused on business outcomes. We do this by first mapping out adomain model, which is an abstract representation of the problem space. If you were working on a shipping system, your domain model might looklike this:

 

Figure 1.1 – A domain model diagram representing a shipping domain

Figure 1.1 – A domain model diagram representing a shipping domain

Notice how shipping is at the center of the diagram? This is part of the core domain, and all the surrounding points are there to support shipping. 

There is more work to be done here to create bounded contexts, but even at this very early stage of the DDD process, you can start to think about how your system might look.

We will talk about bounded contexts in much more detail inChapter 2

Tactical design

Tactical design is where we begin to get into the specifics of how our system will look. In the tactical design phase, we begin talking aboutentities,aggregates, andvalue objects, which also happens to be the title ofChapter 3 of this book. We will use these patterns to help us definesoftware boundaries.

Adoption of DDD

DDD has remainedpopular since its inception, as depicted in the following screenshot, which shows a trend line in aGoogleTrends graph.

Figure 1.2 – Google Trends graph of searches for DDD

Figure 1.2 – Google Trends graph of searches for DDD

Indeed, it is just as valuable to learn DDD (maybe more so) now as in 2004 (as far back asGoogleTrends goes).

Although Evans laid the foundation for DDD, it has remained relevant for nearly 2 decades because, in Evans’s own words, “smart and innovative people have shaken things up repeatedly.” These people have taken the fundamentals outlined in a DDD and created new concepts, which have enabled DDD to remain relevant, even though the way we write software has changedquite dramatically.

Some of the books highlighted by Evans arelisted here:

  • Greg Young and his work onCommand Query Responsibility Segregation (CQRS): CQRS is a pattern that emerged to capture all application changes as a sequence of events. It allows the segregation of read and write events from the database and can help maximize application performance, scalability, and security. This is particularly popular in large enterprise software.
  • Domain-Driven Design Quickly: This book was released in 2006 and was (and still is) free; you can read it here:https://www.infoq.com/minibooks/domain-driven-design-quickly/. Evans likes this book as its simple and succinct nature made DDD accessibleto everyone.
  • Vaughn Vernon and his bookImplementing Domain-Driven Design: Evans described Vernon’s book as “the most ambitious book since my own.” The community has affectionately called this book theBig Red Book. This book refreshed a lot of the ideas that Evans outlined originally and focused more onhow you can implement DDD.

Big companies such as Microsoft, Amazon, and IBM use DDD internallyand guide how you can use it too. It is, therefore, still a great time investment to learn about DDD today.

Is DDD always applicable though? Just because big companies use it, it does not necessarily mean it is a good fit for your side project. In the next section, we explore this inmore detail.

When should you use DDD?

DDD works best when applied to large, complex systems. A surprising number of the systems Software engineers write today are basicCRUD (short forcreate, read, update, anddelete) applications. Applying DD development to such applicationswould be overkill and likely make delivery slower andmore complicated.

TheBig Red Bookprovides a helpfulDDD scorecard. Here is a simplified version ofthe scorecard:

Is your project . . .

Points

Additional thoughts

Mostly doing simple create, reads, updates, and deletes fromthe database?

0

Sometimes, evaluatingsimple can be tricky. If you have lots of business logic between the input and the output, your application might not fit into this category. If all you are doing is validating the input and then passing it through to the database layer, you are inthis category.

Does your application have fewer than 30 userstories/business flows?

1

User stories often take this format—as a user, I want an X so that I can Y. Does your system have 30 of these flows? Is it likely to have much more in the future, or are changes mostly minor updates at this point? If it’s fewer than 30, don’t give your system thepoint here.

Does your application have 40+user/stories/business flows?

2

We’re starting to enter the territory where we might want to consider DDD. Vaughn correctly highlights that we often do not identify complexity early enough and must pay for that decision later. Consider this yourearly warning that you are likely building acomplex system.

Is the application likely to growin complexity?

3

Some applications start simple, but there is a clear path to complexity. For example, if you were bootstrapping a startup, you might have something simple for the first few months. But as you attract funding, you know you will have to step up the complexity of the problemyou’re solving.

The application will be around for a long time, and the changes you predict you need to make will notbe simple.

4

There are very few systems that don’t undergoregular change.

Understanding the complexity of the changes necessary is important to deciding whether DDD is rightfor you.

Updating a holiday booking system to understand next year’s public holidays versus making a crypto exchange to support a new protocol are different classes of problems—the latter being worthy of the points forthis category.

You don’t understand the domain because it is new, and as far as you are aware, no one has ever built a system likethis before.

5

Modeling and defining a domain is DDD’s breadand butter.

Table 1.1 – DDD scorecard

If you score more than7 points on the table, your application is a great candidate for DDD.

If you have scored less than7, you may still benefit from some of the principles we will discuss in this book, but it might be that the time investment necessary to implement DDDproperly is notworth it.

Committing to following the DDD principles is precisely that—a commitment. It cannot come from engineering; it needs to be a decision involving all project stakeholders. It requires time and effort to get the domain, language, and contexts correct and needs strong involvement from the domain experts. It also requires engineers to think one level higher than software and to think about behavior first. 

Summary

In this chapter, we have explored the context in which DDD came to exist, its adoption over time, and an overview of some core concepts. We ended the chapter by highlighting a simple score system that you can use as a reference when discussing DDD adoption withyour team.

You should now understand the context of how DDD emerged and have an idea of when it might be appropriate to use it.

In the next chapter. we will dig deeper into some of the core concepts of DDD as we discuss ubiquitous language, bounded context, domains,and subdomains.

Further reading

For more information, please refer to thefollowing resources:

Left arrow icon

Page1 of 8

Right arrow icon
Download code iconDownload Code

Key benefits

  • Explore Domain-driven design as a timeless concept and learn how to apply it with Go
  • Build a domain-driven monolithic application and a microservice from scratch
  • Leverage patterns to make systems scalable, resilient, and maintainable

Description

Domain-driven design (DDD) is one of the most sought-after skills in the industry. This book provides you with step-by-step explanations of essential concepts and practical examples that will see you introducing DDD in your Go projects in no time. Domain-Driven Design with Golang starts by helping you gain a basic understanding of DDD, and then covers all the important patterns, such as bounded context, ubiquitous language, and aggregates. The latter half of the book deals with the real-world implementation of DDD patterns and teaches you how to build two systems while applying DDD principles, which will be a valuable addition to your portfolio. Finally, you’ll find out how to build a microservice, along with learning how DDD-based microservices can be part of a greater distributed system. Although the focus of this book is Golang, by the end of this book you’ll be able to confidently use DDD patterns outside of Go and apply them to other languages and even distributed systems.

Who is this book for?

This book is for intermediate-level Go developers who are looking to ensure that they not only write maintainable code, but also deliver great business value. If you have a basic understanding of Go and are interested in learning about Domain-driven design, or you’ve explored Domain-driven design before but never in the context of Go, then this book will be helpful.

What you will learn

  • Get to grips with domains and the evolution of Domain-driven design
  • Work with stakeholders to manage complex business needs
  • Gain a clear understanding of bounded context, services, and value objects
  • Get up and running with aggregates, factories, repositories, and services
  • Find out how to apply DDD to monolithic applications and microservices
  • Discover how to implement DDD patterns on distributed systems
  • Understand how Test-driven development and Behavior-driven development can work with DDD

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date :Dec 16, 2022
Length:204 pages
Edition :1st
Language :English
ISBN-13 :9781804619261
Category :

What do you get with eBook?

Product feature iconInstant access to your Digital eBook purchase
Product feature icon Download this book inEPUB andPDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature iconDRM FREE - Read whenever, wherever and however you want
Product feature iconAI Assistant (beta) to help accelerate your learning
OR

Contact Details

Modal Close icon
Payment Processing...
tickCompleted

Billing Address

Product Details

Publication date :Dec 16, 2022
Length:204 pages
Edition :1st
Language :English
ISBN-13 :9781804619261
Category :
Concepts :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99billed monthly
Feature tick iconUnlimited access to Packt's library of 7,000+ practical books and videos
Feature tick iconConstantly refreshed with 50+ new titles a month
Feature tick iconExclusive Early access to books as they're written
Feature tick iconSolve problems while you work with advanced search and reference features
Feature tick iconOffline reading on the mobile app
Feature tick iconSimple pricing, no contract
$199.99billed annually
Feature tick iconUnlimited access to Packt's library of 7,000+ practical books and videos
Feature tick iconConstantly refreshed with 50+ new titles a month
Feature tick iconExclusive Early access to books as they're written
Feature tick iconSolve problems while you work with advanced search and reference features
Feature tick iconOffline reading on the mobile app
Feature tick iconChoose a DRM-free eBook or Video every month to keep
Feature tick iconPLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick iconExclusive print discounts
$279.99billed in 18 months
Feature tick iconUnlimited access to Packt's library of 7,000+ practical books and videos
Feature tick iconConstantly refreshed with 50+ new titles a month
Feature tick iconExclusive Early access to books as they're written
Feature tick iconSolve problems while you work with advanced search and reference features
Feature tick iconOffline reading on the mobile app
Feature tick iconChoose a DRM-free eBook or Video every month to keep
Feature tick iconPLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick iconExclusive print discounts

Frequently bought together


Event-Driven Architecture in Golang
Event-Driven Architecture in Golang
Read more
Nov 2022384 pages
Full star icon4.9 (11)
eBook
eBook
$35.98$39.99
$49.99
Microservices with Go
Microservices with Go
Read more
Nov 2022328 pages
Full star icon5 (6)
eBook
eBook
$29.99$33.99
$41.99
Domain-Driven Design with Golang
Domain-Driven Design with Golang
Read more
Dec 2022204 pages
Full star icon4.4 (19)
eBook
eBook
$31.99$35.99
$44.99
Stars icon
Total$136.97
Event-Driven Architecture in Golang
$49.99
Microservices with Go
$41.99
Domain-Driven Design with Golang
$44.99
Total$136.97Stars icon

Table of Contents

12 Chapters
Part 1: Introduction to Domain-Driven DesignChevron down iconChevron up icon
Part 1: Introduction to Domain-Driven Design
Chapter 1: A Brief History of Domain-Driven DesignChevron down iconChevron up icon
Chapter 1: A Brief History of Domain-Driven Design
The world before DDD
Eric Evans and DDD
Three pillars of DDD
Adoption of DDD
When should you use DDD?
Summary
Further reading
Chapter 2: Understanding Domains, Ubiquitous Language, and Bounded ContextsChevron down iconChevron up icon
Chapter 2: Understanding Domains, Ubiquitous Language, and Bounded Contexts
Technical requirements
Setting the scene
Domains and sub-domains
Ubiquitous language
Bounded contexts
Summary
Further reading
Chapter 3: Entities, Value Objects, and AggregatesChevron down iconChevron up icon
Chapter 3: Entities, Value Objects, and Aggregates
Technical requirements
Working with entities
Working with value objects
The aggregate pattern
Summary
Further reading
Chapter 4: Exploring Factories, Repositories, and ServicesChevron down iconChevron up icon
Chapter 4: Exploring Factories, Repositories, and Services
Technical requirements
Introducing the factory pattern
Implementing the repository pattern in Golang
Understanding services
Summary
Part 2: Real -World Domain-Driven Design with GolangChevron down iconChevron up icon
Part 2: Real -World Domain-Driven Design with Golang
Chapter 5: Applying Domain-Driven Design to a Monolithic ApplicationChevron down iconChevron up icon
Chapter 5: Applying Domain-Driven Design to a Monolithic Application
Technical requirements
What do we mean when we say monolithic application?
Setting the scene
Getting started with our CoffeeCo system
Summary
Further reading
Chapter 6: Building a Microservice Using DDDChevron down iconChevron up icon
Chapter 6: Building a Microservice Using DDD
Technical requirements
What do we mean by microservices?
Should my company adopt microservices?
Setting the scene (again)
Building a recommendation system
Revisiting the anti-corruption layer
Exposing our service via an open host service
Summary
Chapter 7: DDD for Distributed SystemsChevron down iconChevron up icon
Chapter 7: DDD for Distributed Systems
Technical requirements
What is a distributed system?
Distributed system patterns
Dealing with failure
What is a message bus?
Summary
Further reading
Chapter 8: TDD, BDD, and DDDChevron down iconChevron up icon
Chapter 8: TDD, BDD, and DDD
Technical requirements
TDD
BDD
Summary
IndexChevron down iconChevron up icon
Index
Why subscribe?
Other Books You May EnjoyChevron down iconChevron up icon
Other Books You May Enjoy
Packt is searching for authors like you
Share Your Thoughts
Download a free PDF copy of this book

Recommendations for you

Left arrow icon
Debunking C++ Myths
Debunking C++ Myths
Read more
Dec 2024226 pages
Full star icon5 (1)
eBook
eBook
$27.99$31.99
$39.99
Go Recipes for Developers
Go Recipes for Developers
Read more
Dec 2024350 pages
eBook
eBook
$27.99$31.99
$39.99
50 Algorithms Every Programmer Should Know
50 Algorithms Every Programmer Should Know
Read more
Sep 2023538 pages
Full star icon4.5 (68)
eBook
eBook
$35.98$39.99
$49.99
$49.99
Asynchronous Programming with C++
Asynchronous Programming with C++
Read more
Nov 2024424 pages
Full star icon5 (1)
eBook
eBook
$29.99$33.99
$41.99
Modern CMake for C++
Modern CMake for C++
Read more
May 2024504 pages
Full star icon4.7 (12)
eBook
eBook
$35.98$39.99
$49.99
Learn Python Programming
Learn Python Programming
Read more
Nov 2024616 pages
Full star icon5 (1)
eBook
eBook
$31.99$35.99
$39.99
Learn to Code with Rust
Learn to Code with Rust
Read more
Nov 202457hrs 40mins
Video
Video
$74.99
Modern Python Cookbook
Modern Python Cookbook
Read more
Jul 2024818 pages
Full star icon4.9 (21)
eBook
eBook
$38.99$43.99
$54.99
Right arrow icon

Customer reviews

Top Reviews
Rating distribution
Full star iconFull star iconFull star iconFull star iconHalf star icon4.4
(19 Ratings)
5 star52.6%
4 star36.8%
3 star10.5%
2 star0%
1 star0%
Filter icon Filter
Top Reviews

Filter reviews by




Hana MohanDec 01, 2023
Full star iconFull star iconFull star iconFull star iconFull star icon5
Feefo Verified reviewFeefo
MatthewMar 08, 2024
Full star iconFull star iconFull star iconFull star iconFull star icon5
Anyone looking for a super advanced/senior level book, this is probably not the one for you. However, that being said, it has a great set of examples that show practical real world concrete implementations. I feel like that aspect is always missing in books like this and they end up being far too academic. I'd consider myself more of an intermediate looking to graduate to advanced in the Go ecosystem and I can say this did definitely teach me a few things I never knew before. In general it was a peaceful read and I would recommend it if you're looking to go a bit further in your learning journey.
Amazon Verified reviewAmazon
Jon CalhounApr 06, 2023
Full star iconFull star iconFull star iconFull star iconFull star icon5
Domain-driven design is one of those topics that I feel is best learned with various resources. This isn't because one particular author does a poor job explaining it, but because it is a complex subject where developers need to apply their own judgement. Exploring various perspectives can greatly help when develop the skills needed to apply DDD in code.Where Matthew's book really shines are the code samples. Having clear examples of how to apply various DDD patterns is incredibly valuable for getting up and running quickly. It also helps readers avoid a common problem with tech books - understanding a concept in theory, but not knowing how to actually apply what they learned to their code. By seeing concrete examples of various DDD patterns and concepts, they become more than just an idea. They become a technique that can be applied in future code.Developers who become avid DDD fans will benefit from reading additional resources on the topic, but if you write Go code and are interested in learning and applying domain-driven design (DDD) to your code, this is the book I would recommend starting with.
Amazon Verified reviewAmazon
Mike BellAug 25, 2024
Full star iconFull star iconFull star iconFull star iconFull star icon5
This book provides a practical explanation for Domain Driven Development that can actually be learned and used.There is also a good portion towards the end that helps one yo understand how TDD and BDD can augment it and work together rather than be considered its own separate concern.
Amazon Verified reviewAmazon
PratikMar 21, 2023
Full star iconFull star iconFull star iconFull star iconFull star icon5
I am a person who has been writting code in Golang for the past 2 years now. But this book taught me so much! Not only about Golang but the different industry standards and practices. I learned Domain driven development. I have been working on already built projects in my past companies, and thus never really faced many of the issues mentioned in the book. Although these are the points a developer should know!I loved that the author kept the language of the book simple and easy to follow. Code implementations and snippets are given for almost all the theories explained. The first half of the book sets a firm base for the second half.I would recommend this book to anyone who is in a position where they have built a few projects. Not necessarily on Go as many theories apply in Software development in general. People with the basics of Go will really enjoy the book. I am not a person who likes to follow a lot of theory, thankfully author provided all the code snippets for people like me.
Amazon Verified reviewAmazon
  • Arrow left icon Previous
  • 1
  • 2
  • 3
  • 4
  • Arrow right icon Next

People who bought this also bought

Left arrow icon
50 Algorithms Every Programmer Should Know
50 Algorithms Every Programmer Should Know
Read more
Sep 2023538 pages
Full star icon4.5 (68)
eBook
eBook
$35.98$39.99
$49.99
$49.99
Event-Driven Architecture in Golang
Event-Driven Architecture in Golang
Read more
Nov 2022384 pages
Full star icon4.9 (11)
eBook
eBook
$35.98$39.99
$49.99
The Python Workshop Second Edition
The Python Workshop Second Edition
Read more
Nov 2022600 pages
Full star icon4.6 (22)
eBook
eBook
$36.99$41.99
$51.99
Template Metaprogramming with C++
Template Metaprogramming with C++
Read more
Aug 2022480 pages
Full star icon4.6 (14)
eBook
eBook
$33.99$37.99
$46.99
Right arrow icon

About the author

Profile icon Matthew Boyle
Matthew Boyle
Matt Boyle is an experienced technical leader in the field of distributed systems, specializing in using Go. He has worked at huge companies such as Cloudflare & General Electric, as well as exciting high-growth startups such as Curve & Crowdcube. Matt has been writing Go for production since 2018 and often shares blog posts and fun trivia about Go over on Twitter (MattJamesBoyle).
Read more
See other products by Matthew Boyle
Getfree access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook?Chevron down iconChevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website?Chevron down iconChevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook?Chevron down iconChevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support?Chevron down iconChevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks?Chevron down iconChevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook?Chevron down iconChevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.


[8]ページ先頭

©2009-2025 Movatter.jp