Shipping Go: Develop, deliver, discuss, design, and go again

Shipping Go: Develop, deliver, discuss, design, and go again

Shipping Go: Develop, deliver, discuss, design, and go again
Автор: Holmes Joel
Дата выхода: 2023
Издательство: Manning Publications Co.
Количество страниц: 379
Размер файла: 1.4 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

inside front cover....2

Shipping Go....3

Copyright....4

dedication....6

contents....7

front matter....12

preface....12

acknowledgments....14

about this book....16

Who should read this book?....16

How this book is organized: A roadmap....17

About the code....18

liveBook discussion forum....19

about the author....19

about the cover illustration....20

Part 1. Startup....22

1 Delivering value....23

1.1 Simple concepts....24

1.2 Small pieces....29

1.2.1 Continuous....32

1.2.2 Process....33

1.2.3 Quality....34

1.2.4 Delivery....35

1.3 Building your product....37

1.3.1 Initial setup....38

1.3.2 Basic validation....38

1.3.3 Zero-cost deployment....39

1.3.4 Code confidence....39

1.3.5 Integrations....40

1.3.6 Portability....40

1.3.7 Adaptability....41

1.3.8 User acceptance....41

1.3.9 Scaled product....42

1.3.10 End to end....42

1.4 Feedback loop....43

Summary....43

2 Introducing continuous integration....44

2.1 Where to start?....46

2.2 A greenfield project....48

2.3 The assembly line....51

2.4 Warehouses....57

2.5 Material....63

Summary....67

3 Introducing continuous testing....68

3.1 What to test....69

3.2 Writing unit tests....73

3.3 Refactor, refactor, refactor....77

3.4 Testing pyramid....87

3.5 System testing....90

3.6 Adding it to the pipeline....98

3.7 Code coverage....101

Summary....107

4 Introducing continuous deployment....109

4.1 Delivery....110

4.2 Developers as operators....114

4.3 Setting up a deployment account....117

4.4 As you like it....122

4.5 Function as a Service (FaaS)....126

4.6 Platform as a Service....131

Summary....135

Part 2. Scaling....137

5 Code quality enforcement....138

5.1 Reviewing code....139

5.1.1 Keep it small....142

5.1.2 Keep an open mind....143

5.1.3 Keep it moving....144

5.1.4 Keep it interesting....145

5.1.5 Keep it the same....146

5.2 Constraints on development....147

5.3 Standardizing our code through format and lint checks....149

5.4 Static code analysis....154

5.5 Code documentation....160

5.6 Git hooks....163

5.7 Flow....165

Summary....167

6 Testing frameworks, mocking, and dependencies....169

6.1 Dependency inversion principle....170

6.2 Defining an interface....171

6.3 Dependency injection....176

6.4 Testing stubs....181

6.5 Mocking....186

6.5.1 Setting up our test suite....188

6.5.2 Using our mocks in test....190

6.6 Fake....196

6.7 Just the base of the pyramid....203

Summary....205

7 Containerized deployment....206

7.1 What is a container?....208

7.2 What is a Buildpack?....211

7.3 Let’s build a container....213

7.4 Adding a container build to your pipeline....214

7.5 Deploying to a container runtime....217

7.6 Writing your own image....220

7.7 Local environment organization....224

7.8 Containers, containers everywhere....227

Summary....228

Part 3. Going public....229

8 Configuration management and stable releases....230

8.1 Configuration....232

8.2 Advanced configuration....234

8.2.1 Environmental variables....236

8.2.2 File....237

8.2.3 Flag....239

8.3 Hiding features....241

8.3.1 Updating the port....243

8.3.2 External client....244

8.4 Semantic versioning....246

8.5 Change log....251

8.6 Accountability and handling failure....254

Summary....258

9 Integration testing....259

9.1 Phasing out the old....260

9.2 Behavior-driven design....262

9.3 Writing BDD tests in Go....264

9.4 Adding a database....271

9.5 Releasing....278

Summary....283

10 Advanced deployment....284

10.1 Not quite IaaS....286

10.2 Your first cluster....288

10.3 Building blocks....289

10.4 Scaling and health status....292

10.5 Automatically deploying....295

10.6 Deploying Redis using Helm....297

10.7 Updating deployment configuration....298

Summary....301

11 The loop....303

11.1 Startup....304

11.2 Acceleration....306

11.3 Cruising....307

11.4 Elements of development....310

11.4.1 Process....311

11.4.2 Testing....314

11.4.3 Delivering....317

11.5 The OODA loop....320

11.6 Conclusion....322

Summary....323

Appendix A. Using Kotlin....324

A.1 Frameworks....324

A.2 Coding....325

A.3 Maven....329

A.4 Testing....329

A.5 Linting and the initial pipeline....332

A.6 Containerizing....334

Appendix B. Using Python....337

B.1 Poetry....337

B.2 Coding....338

B.3 Testing....341

B.4 Nox....342

B.5 Defining the container....344

B.6 Creating the pipeline....345

Appendix C. Using JavaScript....348

C.1 Node Package Manager....348

C.2 Coding....349

C.3 Testing....353

C.4 Linting....354

C.5 Defining the container....356

C.6 Building the pipeline....357

Appendix D. Using Terraform....360

D.1 Building the image....360

D.2 Deploying the image....362

D.3 Creating the pipeline....364

index....366

inside back cover....379

Shipping Go is a hands-on guide to shipping Go-based software. Author Joel Holmes shows you the easy way to set up development pipelines, fully illustrated with practical examples in the powerful Go language. You’ll put continuous delivery and continuous integration into action, and discover instantly useful guidance on automating your team’s build and reacting with agility to customer demands. Your new pipelines will ferry your projects through production and deployment, and also improve your testing, code quality, and production applications.

About the Technology

An effective software delivery pipeline automates all stages, from initial design, through development, deployment, and ultimately the usage experience that feeds back into new features and releases. Go embraces the best practices of Continuous Delivery, and adds a few language-specific tools and twists of its own.

About the Book

Shipping Go shows you how to build Go-specific software development pipelines. You’ll have a basic CI/CD process up and running by the time you finish Chapter 3, along with an iterative process for designing, releasing, and revising your applications. Then, you’ll systematically upgrade your pipeline to support containerization, integration testing, semantic versioning, and automated deployment. A set of handy appendices help you translate these valuable practices to Kotlin, Python, and JavaScript applications.

What’s Inside

  • Create a development pipeline that turns feedback into features
  • Automatically validate code before it is deployed
  • Serverless, container-based, and server-based deployments
  • Scale your deployment in a cost-effective way

About the Reader

For Go developers.


Похожее:

Список отзывов:

Нет отзывов к книге.