Best Practices
Docker Tips You Didn't Know
· β˜• 3 min read
1. Multi-Stage Builds Compiling a project requires a set of specific tools, but those tools are not needed at runtime. To reduce the image size, you can build in stages. Build in the first stage, then carry the compiled output into the next stage to produce a smaller image. 1 2 3 4 5 6 7 8 9 10 11 FROM golang:1.

From Account Security to Two-Factor Authentication
· β˜• 4 min read
1. Security Problems Are Getting Worse As the internet permeates every layer of life, we depend more and more on various online IDs. These IDs make up our digital selves and are extremely important account assets. On the other hand, account information leaks and security incidents happen from time to time: CSDN, 12306, Huazhu Hotels, Facebook, Twitter, Uber… the list goes on.

The R&D Process of Agile Development
· β˜• 4 min read
1. What Agile Development Is In the traditional software development model, the cycle from raising a requirement to final delivery is long. The waterfall model proceeds through six steps: requirements analysis, design, coding, integration, testing, and maintenance. Once a requirement changes, the work invested earlier is not only wasted but also hard to adjust.

Getting Started with Pytest
· β˜• 2 min read
The Pytest framework is simple to use, rich in plugins, and powerful, and it is widely used for Python automated testing. This article introduces some basic concepts and usage of Pytest. 1. How It Runs Step one, Pytest reads its configuration from the command line or a file. Step two,

Nginx Configuration Problem Record
· β˜• 1 min read
1. server_name Has No Effect Symptom: Nginx reverse-proxies two applications, and the configuration details are as follows. It turned out that requests to b.chenshaowen.com and a.chenshaowen.com both returned responses from service A. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 server