gitextract_sif4occr/ ├── .all-contributorsrc ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── share_request.md │ │ └── share_template.md │ ├── dependabot.yml │ ├── weekly-digest.yml │ └── workflows/ │ ├── links.yml │ └── monthly.yml ├── .gitignore ├── .markdownlint.json ├── .netlify/ │ └── state.json ├── CONTRIBUTING.md ├── CONTRIBUTORS ├── HISTORY.md ├── JOINUS.md ├── LICENSE ├── Makefile ├── README.md ├── SHARE_REQUEST_PROPOSAL.md ├── actions/ │ ├── go.mod │ ├── issuesinfo.json │ └── monthly.go ├── archetypes/ │ └── default.md ├── config.toml ├── content/ │ ├── _index.md │ ├── algorithms/ │ │ ├── 2020-12-27.md │ │ ├── 2020-12-28.md │ │ ├── 2020-12-29.md │ │ ├── 2020-12-30.md │ │ ├── 2021-01-01.md │ │ ├── 2021-01-03.md │ │ ├── 2021-01-06.md │ │ ├── 2021-01-08.md │ │ ├── 2021-01-09.md │ │ ├── 2021-01-11.md │ │ └── 2021-01-12.md │ ├── articles/ │ │ ├── 2018-05-31-batch-del-redis-key.md │ │ ├── 2018-11-11-golang-file-lock.md │ │ ├── 2019-11-07-Raft--易于理解的一致性算法.md │ │ ├── 2020-02-08-source_go_flag.md │ │ ├── _index.md │ │ ├── goroutine_and_channel/ │ │ │ └── README.md │ │ ├── how_to_profile/ │ │ │ └── how_to_profile.md │ │ ├── how_to_test/ │ │ │ └── README.md │ │ ├── sonarqube-for-golang/ │ │ │ ├── 2018-07-22-sonarqube-for-golang.md │ │ │ ├── Dockerfile │ │ │ ├── index.md │ │ │ └── run.sh │ │ ├── sony-gobreaker/ │ │ │ └── README.md │ │ └── sync/ │ │ ├── README.md │ │ ├── sync_Map_source_code_analysis.md │ │ ├── sync_cond_source_code_analysis.md │ │ ├── sync_mutex_source_code_analysis.md │ │ ├── sync_once_source_code_analysis.md │ │ ├── sync_rwmutex_source_code_analysis.md │ │ └── sync_waitgroup_source_code_analysis.md │ ├── discuss/ │ │ ├── 2018-05-08-anlayze-underscore-in-go.md │ │ ├── 2018-05-09-wechat-discuss.md │ │ ├── 2018-05-10-which-vendor-tool.md │ │ ├── 2018-05-13-declaring-variables-on-if-else.md │ │ ├── 2018-05-16-the-way-to-go.md │ │ ├── 2018-05-18-bitset-and-import-cycle-not-allowed.md │ │ ├── 2018-05-21-using-goroutines-on-loop-iterator-variables.md │ │ ├── 2018-05-22-go-string-to-byte-slice.md │ │ ├── 2018-05-23-wechat-discuss.md │ │ ├── 2018-05-28-pprof-in-go.md │ │ ├── 2018-06-07-dial-timeout-in-go.md │ │ ├── 2018-07-02-c1000k-on-linux.md │ │ ├── 2018-07-04-package-names.md │ │ ├── 2018-07-09-make-new-in-go.md │ │ ├── 2018-07-11-using_64bit_atomic_in_32bit_system.md │ │ ├── 2018-07-14-version-gopath-go-command.md │ │ ├── 2018-07-31-println-Println-and_context.md │ │ ├── 2018-08-02-apns-push-notification.md │ │ ├── 2018-08-02-go-shell.md │ │ ├── 2018-08-09-log-color-in-go.md │ │ ├── 2018-08-14-wechat-discuss.md │ │ ├── 2018-08-15-wechat-discuss.md │ │ ├── 2018-08-23-wechat-discuss.md │ │ ├── 2018-08-24-wechat-discuss.md │ │ ├── 2018-08-30-understanding-go-interfaces.md │ │ ├── 2018-09-04-wechat-discuss.md │ │ ├── 2018-09-05-git-system.md │ │ ├── 2018-09-14-tips-in-vscode.md │ │ ├── 2018-09-18-benchmark-tools.md │ │ ├── 2018-09-19-wechat-discuss.md │ │ ├── 2018-09-28-return-value-in-waitgroup.md │ │ ├── 2018-10-18-encOp.md │ │ ├── 2018-11-08-address_operators.md │ │ ├── 2018-11-08-aws-ec2-ssh-login-problem.md │ │ ├── 2018-11-09-force-to-use-keyed-struct-literals.md │ │ ├── 2018-11-29-config-in-go.md │ │ ├── 2018-12-04-change-to-go.md │ │ ├── 2018-12-04-wechat-discuss.md │ │ ├── 2018-12-07-wechat-discuss.md │ │ ├── 2018-12-11-wechat-discuss.md │ │ ├── 2018-12-25-macOS-time-synchronization.md │ │ ├── 2019-01-10-anlayze-range.md │ │ ├── 2019-02-20-bigdecimal-show-string.md │ │ ├── 2019-03-07-wechat-discuss.md │ │ ├── 2019-03-08-wechat-discuss.md │ │ ├── 2019-03-26-gopsutil.md │ │ ├── 2019-04-10-remove-local-branch-in-merged-master.md │ │ ├── 2019-05-15-jaeger.md │ │ ├── 2019-05-21-chromedp.md │ │ ├── 2019-06-19-gorm-mysql-timestamp.md │ │ ├── 2019-07-16-assign-and-range.md │ │ ├── 2019-07-17-global-variable-init.md │ │ ├── 2019-10-13-go-module-looping-package.md │ │ ├── _index.md │ │ └── log_color_test.go │ ├── harvest/ │ │ ├── _index.md │ │ └── harvest.md │ ├── home.md │ ├── interview/ │ │ ├── _index.md │ │ ├── articles/ │ │ │ ├── interview_analysis_1.md │ │ │ ├── interview_analysis_2.md │ │ │ ├── interview_analysis_3.md │ │ │ └── interview_analysis_4.md │ │ ├── interview-algorithm.md │ │ ├── interview-architecture.md │ │ ├── interview-data-structure.md │ │ ├── interview-database.md │ │ ├── interview-design.md │ │ ├── interview-golang-language.md │ │ ├── interview-network.md │ │ ├── interview-os.md │ │ └── interview-pen.md │ ├── night/ │ │ ├── 1-2018-03-21-goutil.md │ │ ├── 1-2019-03-14-daily-reading.md │ │ ├── 10-2018-06-28-net-http-part4.md │ │ ├── 104-2020-09-13-hashicorp-raft.md │ │ ├── 105-2020-10-03-go-zero-discuss.md │ │ ├── 11-2018-07-26-golang-jenkins-sonarqube.md │ │ ├── 12-2018-08-02-goroutine-GPM.md │ │ ├── 13-2018-08-09-kubernetes-guide.md │ │ ├── 14-2018-08-17-sync-pool-reading.md │ │ ├── 15-2018-08-23-pool-workshop-in-go.md │ │ ├── 16-2018-09-06-gateway-reading.md │ │ ├── 17-2018-09-20-grpcp.md │ │ ├── 18-2018-09-27-CovenantSQL-DH-RPC.md │ │ ├── 19-2018-11-08-http-router-in-go.md │ │ ├── 2-2018-04-11-teleport.md │ │ ├── 20-2018-11-15-go-test.md │ │ ├── 21-2018-11-28-errors-in-go.md │ │ ├── 22-2018-12-06-go-ide-discuss.md │ │ ├── 23-2018-12-13-drone-guide.md │ │ ├── 24-2018-12-23-go-mod-part-1.md │ │ ├── 25-2018-12-27-tsdb.md │ │ ├── 26-2019-01-03-blog-with-github-netlify.md │ │ ├── 27-2019-01-10-go-mod-part-2.md │ │ ├── 28-2019-01-17-go-mod-part-3.md │ │ ├── 29-2019-01-23-opentracing-jaeger-in-go.md │ │ ├── 3-2018-04-18-strings-part1.md │ │ ├── 30-2019-02-16-go-mod-part-4.md │ │ ├── 31-2019-02-23-flag.md │ │ ├── 32-2019-03-02-etcd-raft.md │ │ ├── 33-2019-03-07-defer-in-go.md │ │ ├── 34-2019-03-16-plan9-guide.md │ │ ├── 35-2019-03-21-reading-context.md │ │ ├── 36-2019-03-28-reading-k8s-context.md │ │ ├── 37-2019-04-01-talk-from-serverless-in-apache-pulsar.md │ │ ├── 38-2019-04-13-k8s-scheduler-reading.md │ │ ├── 39-2019-04-18-init-function-in-go.md │ │ ├── 4-2018-04-25-strings-part2.md │ │ ├── 40-2019-04-27-atomic-value-in-go.md │ │ ├── 41-2019-05-12-golint-golangci-lint.md │ │ ├── 42-2019-05-16-go-failpoint-design.md │ │ ├── 43-2019-05-23-gomonkey-framework-design-and-practives.md │ │ ├── 44-2019-05-29-go-map-reading.md │ │ ├── 45-2019-05-30-goim-reading.md │ │ ├── 46-2019-06-05-tidb-overview-reading.md │ │ ├── 47-2019-06-12-tidb-exector-reading.md │ │ ├── 48-2019-06-19-tidb-compiler-reading.md │ │ ├── 49-2019-06-26-tidb-transaction-reading.md │ │ ├── 5-2018-05-10-strings-part3.md │ │ ├── 50-2019-06-27-goland-practice.md │ │ ├── 51-2019-07-18-sync-errgroup.md │ │ ├── 52-2019-07-25-httprouter-guide.md │ │ ├── 53-2019-08-01-build-in-delete-from-map-in-go.md │ │ ├── 54-2019-08-14-tidb-sql-tools.md │ │ ├── 55-2019-08-15-go-webassembly-guide.md │ │ ├── 56-2019-08-22-channel-select-in-go.md │ │ ├── 57-2019-08-29-sync-semaphore.md │ │ ├── 58-2019-09-05-whats-new-in-go1.13.md │ │ ├── 59-2019-09-12-real-world-go-concurrency-bugs-in-paper-reading.md │ │ ├── 6-2018-05-17-strings-part4.md │ │ ├── 60-2019-09-19-ipfs-guide.md │ │ ├── 61-2019-09-26-go-module-goproxy-cn.md │ │ ├── 62-2019-10-10-go-micro-part1.md │ │ ├── 63-2019-10-17-go-style-and-go-advices.md │ │ ├── 64-2019-10-24-go-runtime.md │ │ ├── 65-2019-10-31-go-net.md │ │ ├── 66-2019-11-07-paper-reading-csp.md │ │ ├── 67-2019-11-14-sql-pool-reading.md │ │ ├── 68-2019-11-21-dive-into-network.md │ │ ├── 69-2019-11-28-devops.md │ │ ├── 7-2018-05-24-net-http-part1.md │ │ ├── 70-2019-12-05-go-details.md │ │ ├── 71-2019-12-12-go-ini.md │ │ ├── 72-2019-12-19-go-micro-2.md │ │ ├── 73-2019-12-28-qrpc.md │ │ ├── 74-2020-01-02-time-in-go-1-14.md │ │ ├── 75-2020-02-06-the-state-of-go-in-2020.md │ │ ├── 76-2020-02-20-kubernetes-scheduler-design.md │ │ ├── 77-2020-03-05-reading-go-earnings.md │ │ ├── 78-2020-03-11-go-scheduler-reading.md │ │ ├── 79-2020-03-12-go-micro-tools.md │ │ ├── 8-2018-05-31-net-http-part2.md │ │ ├── 80-2020-03-18-go2-generics.md │ │ ├── 81-2020-03-19-gorm-guide.md │ │ ├── 82-2020-03-21-talkgo-night-story.md │ │ ├── 83-2020-03-26-gobench.md │ │ ├── 84-2020-04-02-go-aligned.md │ │ ├── 85-2020-04-16-douyu-confgo.md │ │ ├── 86-2020-04-23-go-unsafe-pointer.md │ │ ├── 87-2020-04-29-goland-tips.md │ │ ├── 9-2018-06-14-net-http-part3.md │ │ ├── _index.md │ │ └── other/ │ │ ├── 16-2018-09-06-faas-provider.md │ │ ├── 16-2018-09-06-openfaas-guide.md │ │ ├── 16-2018-09-06-queue-worker.md │ │ ├── 16-2018-09-06-quick-start.md │ │ ├── 16-2018-09-06-watchdog.md │ │ ├── 2-2018-04-11_voice.md │ │ ├── sync-pool-demo/ │ │ │ ├── cmd/ │ │ │ │ └── makeslice.go │ │ │ ├── demo/ │ │ │ │ └── main.go │ │ │ ├── demo2/ │ │ │ │ └── main.go │ │ │ └── main.go │ │ └── zap-learn/ │ │ ├── go.mod │ │ ├── go.sum │ │ ├── logger/ │ │ │ ├── logger.go │ │ │ ├── logger_test.go │ │ │ └── zap/ │ │ │ └── zap.go │ │ └── main.go │ ├── other/ │ │ ├── _index.md │ │ ├── awesome-tools-mac.md │ │ ├── dev-tools-vimrc.md │ │ └── goland-help.md │ └── proposal/ │ ├── _index.md │ └── changes-to-go.md ├── examples/ │ ├── README.md │ └── gin_examples/ │ ├── .gitignore │ ├── .gitkeep │ ├── ENDPOINTS.md │ ├── Makefile │ ├── README.md │ ├── cmd/ │ │ └── server/ │ │ └── main.go │ ├── docker-compose-dev.yml │ ├── go.mod │ ├── go.sum │ ├── pkg/ │ │ ├── auth/ │ │ │ ├── auth.go │ │ │ ├── auth_test.go │ │ │ ├── sessionId.go │ │ │ └── sessionId_test.go │ │ ├── config/ │ │ │ ├── config.go │ │ │ └── config_test.go │ │ ├── http/ │ │ │ ├── middleware.go │ │ │ ├── middleware_test.go │ │ │ ├── routes.go │ │ │ ├── server.go │ │ │ ├── userHandler.go │ │ │ └── userHandler_test.go │ │ ├── mock/ │ │ │ ├── repository.go │ │ │ └── service.go │ │ ├── postgres/ │ │ │ ├── postgres.go │ │ │ └── userrepository.go │ │ └── service/ │ │ └── userservice/ │ │ ├── userservice.go │ │ └── userservice_test.go │ └── user.go ├── gen_contributors.sh ├── go.mod ├── go.sum ├── layouts/ │ ├── _default/ │ │ ├── index.json │ │ └── list.html │ └── shortcodes/ │ └── badges.html ├── macos-terminal-proxy-set.md ├── package.json ├── practice/ │ └── reading-go-43/ │ ├── README.md │ └── main.go ├── static/ │ ├── icons/ │ │ ├── Read Me.txt │ │ ├── demo-files/ │ │ │ ├── demo.css │ │ │ └── demo.js │ │ ├── demo.html │ │ ├── selection.json │ │ └── style.css │ └── javascripts/ │ └── application.js ├── talkgo.go ├── talkgo_test.go └── themes/ └── hugo-material-docs/ ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── archetypes/ │ └── default.md ├── exampleSite/ │ ├── config.toml │ ├── content/ │ │ ├── adding-content/ │ │ │ └── index.md │ │ ├── getting-started/ │ │ │ └── index.md │ │ ├── index.md │ │ ├── license/ │ │ │ └── index.md │ │ └── roadmap/ │ │ └── index.md │ └── static/ │ └── .gitkeep ├── layouts/ │ ├── 404.html │ ├── _default/ │ │ ├── __list.html │ │ └── single.html │ ├── index.html │ ├── partials/ │ │ ├── comment.html │ │ ├── drawer.html │ │ ├── drawer_list.html │ │ ├── footer.html │ │ ├── footer_js.html │ │ ├── head.html │ │ ├── header.html │ │ ├── nav.html │ │ └── nav_link.html │ └── shortcodes/ │ ├── note.html │ └── warning.html ├── static/ │ ├── javascripts/ │ │ ├── application.js │ │ ├── growingio.js │ │ └── modernizr.js │ └── stylesheets/ │ ├── application.css │ ├── palettes.css │ └── temporary.css └── theme.toml