Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Hands-On Software Engineering with Golang

You're reading from  Hands-On Software Engineering with Golang

Product type Book
Published in Jan 2020
Publisher Packt
ISBN-13 9781838554491
Pages 640 pages
Edition 1st Edition
Languages
Author (1):
Achilleas Anagnostopoulos Achilleas Anagnostopoulos
Profile icon Achilleas Anagnostopoulos

Table of Contents (21) Chapters

Preface 1. Section 1: Software Engineering and the Software Development Life Cycle
2. A Bird's-Eye View of Software Engineering 3. Section 2: Best Practices for Maintainable and Testable Go Code
4. Best Practices for Writing Clean and Maintainable Go Code 5. Dependency Management 6. The Art of Testing 7. Section 3: Designing and Building a Multi-Tier System from Scratch
8. The Links 'R'; Us Project 9. Building a Persistence Layer 10. Data-Processing Pipelines 11. Graph-Based Data Processing 12. Communicating with the Outside World 13. Building, Packaging, and Deploying Software 14. Section 4: Scaling Out to Handle a Growing Number of Users
15. Splitting Monoliths into Microservices 16. Building Distributed Graph-Processing Systems 17. Metrics Collection and Visualization 18. Epilogue
19. Assessments 20. Other Books You May Enjoy

The SOLID principles of object-oriented design

The SOLID principles are essentially a set of rules for helping you write clean and maintainable object-oriented code. Let's go over what the initials stand for:

  • Single responsibility
  • Open/closed
  • Liskov substitution
  • Interface segregation
  • Dependency inversion

But hold on a minute! Is Go an object-oriented language or is it a functional programming language with some syntactic sugar tacked on top?

Contrary to other, traditional object-oriented programming languages, such as C++ or Java, Go has no built-in support for classes. However, it does support the concepts of interfaces and structs. Structs allow you to define objects as a collection of fields and associated methods. Even though objects and interfaces can be composed together, there is, by design, no support for classic object-oriented inheritance.

With these observations...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}