Limit search to available items
Book Cover
E-book
Author Anagnostopoulos, Achilleas, author

Title Hands-on software engineering with Golang : move beyond basic programming to design and build reliable software with clean code / Achilleas Anagnostopoulos
Published Birmingham, UK : Packt Publishing, 2020

Copies

Description 1 online resource (1 volume) : illustrations
Contents Intro -- Title Page -- Copyright and Credits -- Dedication -- About Packt -- Contributors -- Table of Contents -- Preface -- Section 1: Software Engineering and the Software Development Life Cycle -- Chapter 1: A Bird's-Eye View of Software Engineering -- What is software engineering? -- Types of software engineering roles -- The role of the software engineer (SWE) -- The role of the software development engineer in test (SDET) -- The role of the site reliability engineer (SRE) -- The role of the release engineer (RE) -- The role of the system architect
A list of software development models that all engineers should know -- Waterfall -- Iterative enhancement -- Spiral -- Agile -- Lean -- Eliminate waste -- Create knowledge -- Defer commitment -- Build in quality -- Deliver fast -- Respect and empower people -- See and optimize the whole -- Scrum -- Scrum roles -- Essential Scrum events -- Kanban -- DevOps -- The CAMS model -- The three ways model -- Summary -- Questions -- Further reading -- Section 2: Best Practices for Maintainable and Testable Go Code -- Chapter 2: Best Practices for Writing Clean and Maintainable Go Code
The SOLID principles of object-oriented design -- Single responsibility -- Open/closed principle -- Liskov substitution -- Interface segregation -- Dependency inversion -- Applying the SOLID principles -- Organizing code into packages -- Naming conventions for Go packages -- Circular dependencies -- Breaking circular dependencies via implicit interfaces -- Sometimes, code repetition is not a bad idea! -- Tips and tools for writing lean and easy-to-maintain Go code -- Optimizing function implementations for readability -- Variable naming conventions -- Using Go interfaces effectively
Zero values are your friends -- Using tools to analyze and manipulate Go programs -- Taking care of formatting and imports (gofmt, goimports) -- Refactoring code across packages (gorename, gomvpkg, fix) -- Improving code quality metrics with the help of linters -- Summary -- Questions -- Further reading -- Chapter 3: Dependency Management -- What's all the fuss about software versioning? -- Semantic versioning -- Comparing semantic versions -- Applying semantic versioning to Go packages -- Managing the source code for multiple package versions -- Single repository with versioned folders
Single repository -- multiple branches -- Vendoring -- the good, the bad, and the ugly -- Benefits of vendoring dependencies -- Is vendoring always a good idea? -- Strategies and tools for vendoring dependencies -- The dep tool -- The Gopkg.toml file -- The Gopkg.lock file -- Go modules -- the way forward -- Fork packages -- Summary -- Questions -- Further reading -- Chapter 4: The Art of Testing -- Technical requirements -- Unit testing -- Mocks, stubs, fakes, and spies -- commonalities and differences -- Stubs and spies! -- Mocks -- Introducing gomock
Summary This book distills the industry's best practices for writing lean Go code that is easy to test and maintain and explores their practical application on Links 'R' US: an example project that crawls web-pages and applies the PageRank algorithm to assign an importance score to each one
Bibliography Includes bibliographical references
Notes Online resource; title from title page (Safari, viewed June 30, 2020)
Subject Go (Computer program language)
Software engineering.
Go (Computer program language)
Software engineering
Form Electronic book
ISBN 9781838550240
1838550240