<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>阿俊博客</title><description>后端程序员的成长笔记与技术分享</description><link>https://blog.zhequtao.com/</link><language>zh_CN</language><item><title>算法与数据结构</title><link>https://blog.zhequtao.com/posts/algorithm/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/</guid><description>算法与数据结构，共 29 篇笔记。</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>八股文</title><link>https://blog.zhequtao.com/posts/baguwen/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/baguwen/</guid><description>八股文，共 5 篇笔记。</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>运维与服务器</title><link>https://blog.zhequtao.com/posts/content/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/</guid><description>运维与服务器，共 52 篇笔记。</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>每日随笔</title><link>https://blog.zhequtao.com/posts/day/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/day/</guid><description>每日随笔，共 3 篇笔记。</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>DevOps 实践</title><link>https://blog.zhequtao.com/posts/devops/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/devops/</guid><description>DevOps 实践，共 6 篇笔记。</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Golang 学习笔记</title><link>https://blog.zhequtao.com/posts/golang/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/</guid><description>Golang 学习笔记，共 496 篇笔记。</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>其他</title><link>https://blog.zhequtao.com/posts/other/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/other/</guid><description>其他，共 5 篇笔记。</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>process-docker-and-compose</title><link>https://blog.zhequtao.com/posts/post/process-docker-and-compose/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/process-docker-and-compose/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>deploy-fe-with-helm</title><link>https://blog.zhequtao.com/posts/k8s/deploy-fe-with-helm/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/deploy-fe-with-helm/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>gitlab 在 k8s 中的部署及注意事项</title><link>https://blog.zhequtao.com/posts/k8s/gitlab/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/gitlab/</guid><description>+ [gitlab charts](https://docs.gitlab.com/charts/)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>43343</title><link>https://blog.zhequtao.com/posts/k8s/workload/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/workload/</guid><description>43343</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Python 笔记</title><link>https://blog.zhequtao.com/posts/python/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/</guid><description>Python 笔记，共 35 篇笔记。</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>2018</title><link>https://blog.zhequtao.com/posts/record/2018/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/record/2018/</guid><description>&gt; 一眨眼、一呼吸的极短时间</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>成长记录</title><link>https://blog.zhequtao.com/posts/record/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/record/</guid><description>成长记录，共 7 篇笔记。</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>MySQL 数据库</title><link>https://blog.zhequtao.com/posts/sql/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/</guid><description>MySQL 数据库，共 41 篇笔记。</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>被动收入</title><link>https://blog.zhequtao.com/posts/zuanqian/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/zuanqian/</guid><description>被动收入，共 5 篇笔记。</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>前端开发</title><link>https://blog.zhequtao.com/posts/web/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/web/</guid><description>前端开发，共 5 篇笔记。</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>base</title><link>https://blog.zhequtao.com/posts/baguwen/base/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/baguwen/base/</guid><description>base</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>数据结构</title><link>https://blog.zhequtao.com/posts/baguwen/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/baguwen/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/</guid><description>数据结构</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>算法</title><link>https://blog.zhequtao.com/posts/baguwen/%E7%AE%97%E6%B3%95/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/baguwen/%E7%AE%97%E6%B3%95/</guid><description>算法</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>快排</title><link>https://blog.zhequtao.com/posts/baguwen/%E5%BF%AB%E6%8E%92/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/baguwen/%E5%BF%AB%E6%8E%92/</guid><description>快排</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>docker compose 编排容器架构简介</title><link>https://blog.zhequtao.com/posts/content/op/docker-compose-arch/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/docker-compose-arch/</guid><description>docker compose 编排容器架构简介</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>容器与网络</title><link>https://blog.zhequtao.com/posts/content/op/docker-network/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/docker-network/</guid><description>容器与网络</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>容器资源配额限制</title><link>https://blog.zhequtao.com/posts/content/op/docker-resource/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/docker-resource/</guid><description>容器资源配额限制</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>htop</title><link>https://blog.zhequtao.com/posts/content/op/htop/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/htop/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>image-and-container</title><link>https://blog.zhequtao.com/posts/content/op/image-and-container/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/image-and-container/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>iptables</title><link>https://blog.zhequtao.com/posts/content/op/iptables/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/iptables/</guid><description>title: iptables 详解以及示例</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>MAC推荐安装应用及插件</title><link>https://blog.zhequtao.com/posts/content/op/mac/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/mac/</guid><description>&gt; brew install tree</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>postgres 部署</title><link>https://blog.zhequtao.com/posts/content/op/pg-and-redis/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/pg-and-redis/</guid><description>postgres 部署 postgres</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>vpn-config</title><link>https://blog.zhequtao.com/posts/content/op/vpn-config/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/vpn-config/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>程序员必备的产品經理與項目經理知识</title><link>https://blog.zhequtao.com/posts/content/pm/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/pm/</guid><description>程序员必备的产品經理與項目經理知识</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>README</title><link>https://blog.zhequtao.com/posts/golang/go-block/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/</guid><description>chia-plotter-windows-amd64 -action plotting -plotting-fpk 0x12345  -plotting-ppk 0x12345 -plotting-n 1 -d d:\\ -t d:\\</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>test</title><link>https://blog.zhequtao.com/posts/other/%E6%97%A5%E5%B8%B8/test/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/other/%E6%97%A5%E5%B8%B8/test/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>test</title><link>https://blog.zhequtao.com/posts/other/%E7%A7%91%E6%99%AE/test/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/other/%E7%A7%91%E6%99%AE/test/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Readme</title><link>https://blog.zhequtao.com/posts/post/excel-row-column/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/excel-row-column/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>个人学习笔记整理跟踪</title><link>https://blog.zhequtao.com/posts/golang/go-learning/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/</guid><description>[Golang 中文学习资料本书 汇总了网上优质的开源 Golang 电子书，方便大家学习，涵盖以下三本书：Go入门指南Go语言圣经Go Web 编程](https://go.wuhaolin.cn/)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>集群管理：以 Redis 为例-部署及访问</title><link>https://blog.zhequtao.com/posts/k8s/juejin/juejin-k8s-%E9%9B%86%E7%BE%A4%E7%AE%A1%E7%90%86-%E9%83%A8%E7%BD%B2redis/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/juejin/juejin-k8s-%E9%9B%86%E7%BE%A4%E7%AE%A1%E7%90%86-%E9%83%A8%E7%BD%B2redis/</guid><description>集群管理：以 Redis 为例-部署及访问</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>第20章 属性描述符</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC20%E7%AB%A0%E5%B1%9E%E6%80%A7%E6%8F%8F%E8%BF%B0%E7%AC%A6/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC20%E7%AB%A0%E5%B1%9E%E6%80%A7%E6%8F%8F%E8%BF%B0%E7%AC%A6/</guid><description>第20章 属性描述符</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>基于 掘进小册《从根儿上理解 MySQL》总结</title><link>https://blog.zhequtao.com/posts/sql/mysql/mysql%E8%BF%90%E8%A1%8C%E5%8E%9F%E7%90%86-01/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/mysql%E8%BF%90%E8%A1%8C%E5%8E%9F%E7%90%86-01/</guid><description>基于 掘进小册《从根儿上理解 MySQL》总结</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>README</title><link>https://blog.zhequtao.com/posts/web/flutter/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/web/flutter/</guid><description>flutter</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>README</title><link>https://blog.zhequtao.com/posts/web/h5/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/web/h5/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>README</title><link>https://blog.zhequtao.com/posts/web/ios/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/web/ios/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>APP独立开发者</title><link>https://blog.zhequtao.com/posts/zuanqian/app/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/zuanqian/app/</guid><description>APP独立开发者</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>内销电商和外贸</title><link>https://blog.zhequtao.com/posts/zuanqian/%E5%86%85%E9%94%80%E7%94%B5%E5%95%86%E5%92%8C%E5%A4%96%E8%B4%B8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/zuanqian/%E5%86%85%E9%94%80%E7%94%B5%E5%95%86%E5%92%8C%E5%A4%96%E8%B4%B8/</guid><description>内销电商和外贸</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>自媒体</title><link>https://blog.zhequtao.com/posts/zuanqian/%E8%87%AA%E5%AA%92%E4%BD%93/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/zuanqian/%E8%87%AA%E5%AA%92%E4%BD%93/</guid><description>自媒体</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>苦力活</title><link>https://blog.zhequtao.com/posts/zuanqian/%E8%8B%A6%E5%8A%9B%E6%B4%BB/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/zuanqian/%E8%8B%A6%E5%8A%9B%E6%B4%BB/</guid><description>苦力活</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>ethereum</title><link>https://blog.zhequtao.com/posts/golang/go-block/blockchain/ethereum/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/blockchain/ethereum/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>hyperledgerfabric</title><link>https://blog.zhequtao.com/posts/golang/go-block/blockchain/hyperledgerfabric/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/blockchain/hyperledgerfabric/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>readme</title><link>https://blog.zhequtao.com/posts/content/pm/projectmanager/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/pm/projectmanager/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>base01</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/base01/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/base01/</guid><description>11</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>43343</title><link>https://blog.zhequtao.com/posts/golang/go-new/microserver/docker-compose/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/microserver/docker-compose/</guid><description>43343</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>43343</title><link>https://blog.zhequtao.com/posts/golang/go-new/web/beego/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/web/beego/</guid><description>43343</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>43343</title><link>https://blog.zhequtao.com/posts/golang/go-new/web/cron/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/web/cron/</guid><description>43343</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>43343</title><link>https://blog.zhequtao.com/posts/golang/go-new/web/grom/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/web/grom/</guid><description>43343</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>43343</title><link>https://blog.zhequtao.com/posts/golang/go-new/web/gin/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/web/gin/</guid><description>43343</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>43343</title><link>https://blog.zhequtao.com/posts/golang/go-new/web/log/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/web/log/</guid><description>43343</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>43343</title><link>https://blog.zhequtao.com/posts/golang/go-new/web/sql/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/web/sql/</guid><description>43343</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>43343</title><link>https://blog.zhequtao.com/posts/golang/go-new/web/swagger/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/web/swagger/</guid><description>43343</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>web02</title><link>https://blog.zhequtao.com/posts/golang/go-project/goweb%E5%BC%80%E5%8F%91/web02/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/goweb%E5%BC%80%E5%8F%91/web02/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>什么是zero</title><link>https://blog.zhequtao.com/posts/golang/go-project/gozero%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%BC%80%E5%8F%91/zero01/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/gozero%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%BC%80%E5%8F%91/zero01/</guid><description>&gt; 好未来技术总监主导的微服务框架，框架主要以简单、便捷、高效于一身，可自动生成api服务</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Go 语言中反射有哪些应用</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E5%8F%8D%E5%B0%84/go-%E8%AF%AD%E8%A8%80%E4%B8%AD%E5%8F%8D%E5%B0%84%E6%9C%89%E5%93%AA%E4%BA%9B%E5%BA%94%E7%94%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E5%8F%8D%E5%B0%84/go-%E8%AF%AD%E8%A8%80%E4%B8%AD%E5%8F%8D%E5%B0%84%E6%9C%89%E5%93%AA%E4%BA%9B%E5%BA%94%E7%94%A8/</guid><description>Go 语言中反射的应用非常广：IDE 中的代码自动补全功能、对象序列化（encoding/json）、fmt 相关函数的实现、ORM（全称是：Object Relational Mapping，对象关系映射）……</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>必知必会</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E9%9D%A2%E8%AF%95/%E5%BF%85%E7%9F%A5%E5%BF%85%E4%BC%9A/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E9%9D%A2%E8%AF%95/%E5%BF%85%E7%9F%A5%E5%BF%85%E4%BC%9A/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>readme</title><link>https://blog.zhequtao.com/posts/content/pm/productmanager/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/pm/productmanager/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>03-Fabric2.0启动网络脚本配置剖析</title><link>https://blog.zhequtao.com/posts/golang/go-block/hyperledgerfabric20/03-fabric20%E5%90%AF%E5%8A%A8%E7%BD%91%E7%BB%9C%E8%84%9A%E6%9C%AC%E9%85%8D%E7%BD%AE%E5%89%96%E6%9E%90/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/hyperledgerfabric20/03-fabric20%E5%90%AF%E5%8A%A8%E7%BD%91%E7%BB%9C%E8%84%9A%E6%9C%AC%E9%85%8D%E7%BD%AE%E5%89%96%E6%9E%90/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>04-Fabric2.0通道实践</title><link>https://blog.zhequtao.com/posts/golang/go-block/hyperledgerfabric20/04-fabric20%E9%80%9A%E9%81%93%E5%AE%9E%E8%B7%B5/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/hyperledgerfabric20/04-fabric20%E9%80%9A%E9%81%93%E5%AE%9E%E8%B7%B5/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>01</title><link>https://blog.zhequtao.com/posts/golang/go-learning/zinx-%E6%B8%B8%E6%88%8F%E6%A1%86%E6%9E%B6/01/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/zinx-%E6%B8%B8%E6%88%8F%E6%A1%86%E6%9E%B6/01/</guid><description>1</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>README</title><link>https://blog.zhequtao.com/posts/web/h5/javascript/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/web/h5/javascript/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Python基础语法：开始你的Python之旅</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/03/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/03/</guid><description>Python基础语法：开始你的Python之旅</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>用NumPy快速处理数据</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/04/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/04/</guid><description>[入门教程](https://www.numpy.org.cn/user/quickstart.html)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Python科学计算：Pandas</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/05/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/05/</guid><description>Python科学计算：Pandas</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>数据采集：如何用八爪鱼采集微博上的“D&amp;G”评论</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/09/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/09/</guid><description>数据采集：如何用八爪鱼采集微博上的“D&amp;G”评论</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Python爬虫：如何自动化下载王祖贤海报</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/10/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/10/</guid><description>Python爬虫：如何自动化下载王祖贤海报</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>数据可视化</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/14/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/14/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/bd49dbaffdc170ecc4d56d946afd5c5b.jpg)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>一次学会Python数据可视化的10种技能</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/15/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/15/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/8ed2addb00a4329dd63bba669f427fd2.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>决策树(上)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/16-17/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/16-17/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/决策树1.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>决策树(中)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/18/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/18/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/20200109174239.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>决策树(下)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/19/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/19/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/20200109174358.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>SVM(上)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/22/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/22/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/SVM1.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>KNN 工作原理(下)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/25/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/25/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/KNN2.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>K-Means(上)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/26/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/26/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/KMeans1.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>K-Means(下)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/27/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/27/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/KMeans2.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>EM聚类(上)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/28/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/28/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/EM1.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>EM聚类(下)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/29/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/29/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/EM下2.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>关联规则挖掘</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/30/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/30/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/关联规则挖掘.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>PageRank(上)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/32/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/32/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/PageRank(上).png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>关联规则挖掘(下)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/31/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/31/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/datadig.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>AdaBoost(上)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/34/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/34/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/AdaBoost1.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>数据分析算法篇答疑</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/36/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/36/</guid><description>数据分析算法篇答疑</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Python词云</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/38/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/38/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/pythoncountcloud.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>数据挖掘实战3</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/41/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/41/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/bitcard.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>数据挖掘实战2</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/40/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/40/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/card3.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>深度学习</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/42/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/42/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/e88beadebefd5789efb08284193f65b9.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Keras</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/43/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/43/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/431ccdf001d421b3810e03c9c598b539.png)</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Go 语言中反射有哪些应用</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E5%8F%8D%E5%B0%84/go-%E8%AF%AD%E8%A8%80%E4%B8%AD%E5%8F%8D%E5%B0%84%E6%9C%89%E5%93%AA%E4%BA%9B%E5%BA%94%E7%94%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E5%8F%8D%E5%B0%84/go-%E8%AF%AD%E8%A8%80%E4%B8%AD%E5%8F%8D%E5%B0%84%E6%9C%89%E5%93%AA%E4%BA%9B%E5%BA%94%E7%94%A8/</guid><description>Go 语言中反射的应用非常广：IDE 中的代码自动补全功能、对象序列化（encoding/json）、fmt 相关函数的实现、ORM（全称是：Object Relational Mapping，对象关系映射）……</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>文章划分</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/dayu/20180901/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/dayu/20180901/</guid><description>2. 支付的数据结构设计、接口设计</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>About</title><link>https://blog.zhequtao.com/posts/content/about/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/about/</guid><description>About</description><pubDate>Wed, 21 Jun 2023 00:00:00 GMT</pubDate></item><item><title>mac作为服务器操作指南</title><link>https://blog.zhequtao.com/posts/devops/mac%E4%BD%9C%E4%B8%BA%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/devops/mac%E4%BD%9C%E4%B8%BA%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/</guid><description>mac作为服务器操作指南 允许远程电脑访问你的 Mac 打开“远程登录”以使用 SSH（安全外壳协议）或 SFTP（SSH 文件传输协议）从另一台电脑访问 Mac。 在 Mac 上设置远程登录 在 Mac 上，选取苹果菜单 “系统设置”，点按边栏中的“通用” ，然后点按右侧的“共享”。（你可能需要向下滚动。） 打开“远程登录”，然后点按右侧的“信息”按钮 。 如需要，请选择“允许远程用户对磁盘进行…</description><pubDate>Mon, 19 Jun 2023 00:00:00 GMT</pubDate></item><item><title>2022</title><link>https://blog.zhequtao.com/posts/record/2022/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/record/2022/</guid><description>2022 在深圳天天做核酸，被封控了3次！ 12月初就说开放了，原来核酸是一场恶作剧</description><pubDate>Fri, 30 Dec 2022 00:00:00 GMT</pubDate></item><item><title>关于海豚喷粉的问题技术篇</title><link>https://blog.zhequtao.com/posts/other/%E6%97%A5%E5%B8%B8/byd-haitun/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/other/%E6%97%A5%E5%B8%B8/byd-haitun/</guid><description>1、2021年比亚迪刀片电池名声沸沸扬扬，而即将发布3.0平台海豚也是非常的火，当时觉得车肯定不错，第一批就下订了，于2021年9月份交车，交车后使用率很高！</description><pubDate>Mon, 28 Nov 2022 00:00:00 GMT</pubDate></item><item><title>基本步骤参考[https://www.bilibili.com/read/cv5178548/]</title><link>https://blog.zhequtao.com/posts/devops/%E7%A7%BB%E5%8A%A8%E5%AE%BD%E5%B8%A6%E5%BC%80%E5%90%AFipv6%E5%85%AC%E7%BD%91%E8%AE%BF%E9%97%AE/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/devops/%E7%A7%BB%E5%8A%A8%E5%AE%BD%E5%B8%A6%E5%BC%80%E5%90%AFipv6%E5%85%AC%E7%BD%91%E8%AE%BF%E9%97%AE/</guid><description>基本步骤参考[https://www.bilibili.com/read/cv5178548/] 移动宽带路由器防火墙关闭[http://www.pc936.com/index.php/article/22.html]</description><pubDate>Tue, 01 Mar 2022 00:00:00 GMT</pubDate></item><item><title>go面试题大全-2022</title><link>https://blog.zhequtao.com/posts/golang/go-new/interview/go%E9%9D%A2%E8%AF%95%E9%A2%98%E5%A4%A7%E5%85%A8-2022/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/interview/go%E9%9D%A2%E8%AF%95%E9%A2%98%E5%A4%A7%E5%85%A8-2022/</guid><description>1. make 和 new 的区别﹖</description><pubDate>Sat, 22 Jan 2022 00:00:00 GMT</pubDate></item><item><title>k8s-目录挂载规则</title><link>https://blog.zhequtao.com/posts/k8s/k8s-%E7%9B%AE%E5%BD%95%E6%8C%82%E8%BD%BD%E8%A7%84%E5%88%99/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/k8s-%E7%9B%AE%E5%BD%95%E6%8C%82%E8%BD%BD%E8%A7%84%E5%88%99/</guid><description>https://www.jianshu.com/p/401cfbd77325</description><pubDate>Fri, 07 Jan 2022 00:00:00 GMT</pubDate></item><item><title>install-k8s-kuboard</title><link>https://blog.zhequtao.com/posts/k8s/install/install-k8s-kuboard/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/install/install-k8s-kuboard/</guid><description>sudo docker run -d --restart=unless-stopped --name=kuboard -p 80:80/tcp -p 10081:10081/tcp -e KUBOARDENDPOINT=\&quot;http://192.168.1.241:80\&quot; -e KUBOARDAGEN</description><pubDate>Fri, 07 Jan 2022 00:00:00 GMT</pubDate></item><item><title>go经典面试题大全</title><link>https://blog.zhequtao.com/posts/golang/go-new/interview/golang%E9%9D%A2%E8%AF%95%E9%A2%98%E5%A4%A7%E5%85%A8-%E8%A7%A3%E9%A2%98%E7%AF%87/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/interview/golang%E9%9D%A2%E8%AF%95%E9%A2%98%E5%A4%A7%E5%85%A8-%E8%A7%A3%E9%A2%98%E7%AF%87/</guid><description>链接：https://www.nowcoder.com/discuss/578028?type=post&amp;order=recall&amp;pos=&amp;page=1&amp;ncTraceId=&amp;channel=-1&amp;sourceid=searchpostnctrack&amp;gioid=47E2A38DE919AF7BF</description><pubDate>Fri, 24 Dec 2021 00:00:00 GMT</pubDate></item><item><title>go经典面试题大全</title><link>https://blog.zhequtao.com/posts/golang/go-new/interview/golang%E9%9D%A2%E8%AF%95%E9%A2%98%E5%A4%A7%E5%85%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/interview/golang%E9%9D%A2%E8%AF%95%E9%A2%98%E5%A4%A7%E5%85%A8/</guid><description>链接：https://www.nowcoder.com/discuss/578028?type=post&amp;order=recall&amp;pos=&amp;page=1&amp;ncTraceId=&amp;channel=-1&amp;sourceid=searchpostnctrack&amp;gioid=47E2A38DE919AF7BF</description><pubDate>Fri, 24 Dec 2021 00:00:00 GMT</pubDate></item><item><title>docker安装</title><link>https://blog.zhequtao.com/posts/devops/docker%E5%AE%89%E8%A3%85/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/devops/docker%E5%AE%89%E8%A3%85/</guid><description>使用标准方式登录 Linux 实例（推荐）。</description><pubDate>Thu, 18 Nov 2021 00:00:00 GMT</pubDate></item><item><title>中装智链国密化修改方案介绍</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric-gm/gm/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric-gm/gm/</guid><description>&gt; 根据国家互联网应急中心发布的互联网安全威胁报告，仅17年12月，境内被篡改网站数量就达到了4,130个，国家信息安全漏洞共享平台（CNVD）收集整理的信息系统安全漏洞多达1,554个，互联网安全形势仍然很严峻。</description><pubDate>Fri, 15 Oct 2021 00:00:00 GMT</pubDate></item><item><title>test</title><link>https://blog.zhequtao.com/posts/golang/go-new/test/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/test/</guid><description>md脑图示例</description><pubDate>Fri, 08 Oct 2021 00:00:00 GMT</pubDate></item><item><title>国密版本-2.2-原版</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric-gm/fabric-gm-220/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric-gm/fabric-gm-220/</guid><description>[fabric-gm](https://github.com/VoneChain-CS/fabric-gm)</description><pubDate>Sat, 18 Sep 2021 00:00:00 GMT</pubDate></item><item><title>Golang日程开发中，经常会遇到各种困扰</title><link>https://blog.zhequtao.com/posts/golang/go-new/tools/devtools/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/tools/devtools/</guid><description>![20210325150957](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4ff710885c0945979850b5f048118d39tplv-k3u1fbpfcp-zoom-1.image)</description><pubDate>Thu, 25 Mar 2021 00:00:00 GMT</pubDate></item><item><title>修改pac.txt文件，添加Shadowsocks代理/排除网站网址的方法</title><link>https://blog.zhequtao.com/posts/devops/%E5%8A%A0%E9%80%9Fgithub%E4%BB%A3%E7%90%86/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/devops/%E5%8A%A0%E9%80%9Fgithub%E4%BB%A3%E7%90%86/</guid><description>在电脑中使用Shadowsocks代理科学上网后，一般情况下就不需要SwitchyOmega浏览器插件切换代理了。</description><pubDate>Wed, 24 Mar 2021 00:00:00 GMT</pubDate></item><item><title>配置挂载硬盘</title><link>https://blog.zhequtao.com/posts/devops/shell/%E7%8E%A9%E5%AE%A2%E4%BA%91/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/devops/shell/%E7%8E%A9%E5%AE%A2%E4%BA%91/</guid><description>让玩客云与N1一样出色不仅要omv还要docker</description><pubDate>Sun, 14 Mar 2021 00:00:00 GMT</pubDate></item><item><title>安装samba实现共享</title><link>https://blog.zhequtao.com/posts/devops/shell/%E7%8E%A9%E5%AE%A2%E4%BA%91_%E5%8F%82%E8%80%83/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/devops/shell/%E7%8E%A9%E5%AE%A2%E4%BA%91_%E5%8F%82%E8%80%83/</guid><description>之前讲过玩客云可以安装armbian与openwrt，但是并没有安装docker，因为玩客云的s905是32位的，可用的docker镜像比较少，所以没有折腾，最近发现了一个刷机即可使用docker的armbian镜像，就玩了一下，可以实现大部分的斐讯n1的功能。</description><pubDate>Sun, 14 Mar 2021 00:00:00 GMT</pubDate></item><item><title>抵制风险</title><link>https://blog.zhequtao.com/posts/golang/go-block/block_okex/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/block_okex/</guid><description>合约炒币和赌博没什么太大区别，除非你拿的合约杠杆很低</description><pubDate>Sun, 14 Mar 2021 00:00:00 GMT</pubDate></item><item><title>推荐书籍</title><link>https://blog.zhequtao.com/posts/golang/go-new/interview/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/interview/</guid><description>[码农桃花源技术博客及分析](https://qcrao91.gitbook.io/go/)</description><pubDate>Wed, 03 Mar 2021 00:00:00 GMT</pubDate></item><item><title>shadowsocks</title><link>https://blog.zhequtao.com/posts/other/service/shadowsocks/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/other/service/shadowsocks/</guid><description>搭梯子翻墙访问google</description><pubDate>Mon, 01 Mar 2021 00:00:00 GMT</pubDate></item><item><title>先讲述一个k8s重要概念，我觉得这个概念是整个k8s集群实现微服务的最核心的概念</title><link>https://blog.zhequtao.com/posts/k8s/k8s-network/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/k8s-network/</guid><description>Service定义了Pod的逻辑集合和访问该集合的策略，是真实服务的抽象。Service提供了一个统一的服务访问入口以及服务代理和发现机制，用户不需要了解后台Pod是如何运行。只需要将一组跑同一服务的pod池化成一个service，k8s集群会自动给这个service分配整个集群唯一ip和端口号（这</description><pubDate>Sun, 21 Feb 2021 00:00:00 GMT</pubDate></item><item><title>2021</title><link>https://blog.zhequtao.com/posts/record/2021/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/record/2021/</guid><description>&gt; 今天起个早去深圳市人民医院做了个全身体检，整体体验还算比较愉快，购买的是「30岁以下青年套餐」价值570元.</description><pubDate>Sun, 31 Jan 2021 00:00:00 GMT</pubDate></item><item><title>想长寿的方法</title><link>https://blog.zhequtao.com/posts/day/20210129/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/day/20210129/</guid><description>我们要想长寿，最好把心率控制在每分钟75次以下，正常人的理想心率为60-75次/分。两位专家表示，以下这些方式可以让心率放慢脚步：</description><pubDate>Fri, 29 Jan 2021 00:00:00 GMT</pubDate></item><item><title>链码基本操作</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric2x/02%E9%93%BE%E7%A0%81%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric2x/02%E9%93%BE%E7%A0%81%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/</guid><description>用户可以通过命令行方式来管理链码。自 2.0 开始正式使用新的 peer lifecycle chaincode 命令来维护链码的生命周期，所支持的链码子命令包括 package（打包）、install（安装）、queryinstalled（查询已安装）、approveformyorg（批准提交）、</description><pubDate>Fri, 29 Jan 2021 00:00:00 GMT</pubDate></item><item><title>面试题收录</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E9%9D%A2%E8%AF%95/%E9%9D%A2%E8%AF%95%E9%A2%98%E6%94%B6%E5%BD%95/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E9%9D%A2%E8%AF%95/%E9%9D%A2%E8%AF%95%E9%A2%98%E6%94%B6%E5%BD%95/</guid><description>golang怎么实现多态？答：不知道。</description><pubDate>Fri, 29 Jan 2021 00:00:00 GMT</pubDate></item><item><title>2.x目录</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric2x/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric2x/</guid><description>2.x目录</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Summary</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/summary/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/summary/</guid><description>[1.1. 快速开始](README.md)</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>高级用法</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/advanced/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/advanced/</guid><description>执行任何操作后，如果发生任何错误，GORM将其设置为DB的Error字段</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>关联</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/associations/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/associations/</guid><description>译者注：这里设置好像缺失一部分</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Callbacks</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/callbacks/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/callbacks/</guid><description>您可以将回调方法定义为模型结构的指针，在创建，更新，查询，删除时将被调用，如果任何回调返回错误，gorm将停止未来操作并回滚所有更改。</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>更新日志</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/changelog/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/changelog/</guid><description>gorm.Open返回类型为gorm.DB而不是gorm.DB</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>CRUD:读写数据</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/crud/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/crud/</guid><description>您可以在gorm tag中定义默认值，然后插入SQL将忽略具有默认值的这些字段，并且其值为空，并且在将记录插入数据库后，gorm将从数据库加载这些字段的值。</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>数据库</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/database/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/database/</guid><description>要连接到数据库首先要导入驱动程序。例如</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>开发</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/development/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/development/</guid><description>Gorm使用可链接的API，gorm.DB是链的桥梁，对于每个链API，它将创建一个新的关系。</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>GORM 中文文档</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/</guid><description>[1.1. 快速开始](README.md)</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>译者日志</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/log/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/log/</guid><description>翻译于: 20170111</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>模型</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/models/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/gormdoc/models/</guid><description>基本模型定义gorm.Model，包括字段ID，CreatedAt，UpdatedAt，DeletedAt，你可以将它嵌入你的模型，或者只写你想要的字段</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>什么是M:N模型</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E4%BB%80%E4%B9%88%E6%98%AFmn%E6%A8%A1%E5%9E%8B/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E4%BB%80%E4%B9%88%E6%98%AFmn%E6%A8%A1%E5%9E%8B/</guid><description>我们都知道，Go runtime 会负责 goroutine 的生老病死，从创建到销毁，都一手包办。Runtime 会在程序启动的时候，创建 M 个线程（CPU 执行调度的单位），之后创建的 N 个 goroutine 都会依附在这 M 个线程上执行。这就是 M:N 模型：</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>如何实现字符串和byte切片的零拷贝转换</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%92%8Cbyte%E5%88%87%E7%89%87%E7%9A%84%E9%9B%B6%E6%8B%B7%E8%B4%9D%E8%BD%AC%E6%8D%A2/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%92%8Cbyte%E5%88%87%E7%89%87%E7%9A%84%E9%9B%B6%E6%8B%B7%E8%B4%9D%E8%BD%AC%E6%8D%A2/</guid><description>这是一个非常精典的例子。实现字符串和 bytes 切片之间的转换，要求是 zero-copy。想一下，一般的做法，都需要遍历字符串或 bytes 切片，再挨个赋值。</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>遇到问题?</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric2x/01%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric2x/01%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/</guid><description>通过上一篇文章我们已经将fabric的基本环境搭建成功，接下来我们开始运行使用并初步认识fabric。</description><pubDate>Wed, 27 Jan 2021 00:00:00 GMT</pubDate></item><item><title>0快速安装</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric/0%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric/0%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85/</guid><description>fabric 源码位于 GitHub，但是不建议直接从 GitHub 上克隆源码。若欲从 GitHub 上克隆代码，使用以下命令</description><pubDate>Thu, 14 Jan 2021 00:00:00 GMT</pubDate></item><item><title>0快速安装</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric2x/0%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric2x/0%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85/</guid><description>fabric 源码位于 GitHub，但是不建议直接从 GitHub 上克隆源码。若欲从 GitHub 上克隆代码，使用以下命令</description><pubDate>Thu, 14 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Golang Vs Python速度比较</title><link>https://blog.zhequtao.com/posts/post/learning-golang/golang-base01/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/learning-golang/golang-base01/</guid><description>Python VS Golang多线程的并发速度比较 目录 一.golang的代码 二.python的代码 三.最后的运算速度比较 golang的代码 python的代码 最后的运算速度比较</description><pubDate>Wed, 06 Jan 2021 00:00:00 GMT</pubDate></item><item><title>K8s 基础命令篇</title><link>https://blog.zhequtao.com/posts/k8s/base/k8s-base01/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/base/k8s-base01/</guid><description>kube</description><pubDate>Wed, 06 Jan 2021 00:00:00 GMT</pubDate></item><item><title>关于副业赚钱，我有话要说</title><link>https://blog.zhequtao.com/posts/post/money/%E5%85%B3%E4%BA%8E%E5%89%AF%E4%B8%9A%E8%B5%9A%E9%92%B1/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/money/%E5%85%B3%E4%BA%8E%E5%89%AF%E4%B8%9A%E8%B5%9A%E9%92%B1/</guid><description>关于副业赚钱，我有话要说</description><pubDate>Wed, 30 Dec 2020 00:00:00 GMT</pubDate></item><item><title>kafka 从入门到入门</title><link>https://blog.zhequtao.com/posts/post/golang-news/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/golang-news/</guid><pubDate>Fri, 25 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Python 爬虫分析</title><link>https://blog.zhequtao.com/posts/post/learning-python/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/learning-python/</guid><description>前言 环境 参考 爬虫参考</description><pubDate>Wed, 09 Dec 2020 00:00:00 GMT</pubDate></item><item><title>go-zero分布式微服务框架学习</title><link>https://blog.zhequtao.com/posts/golang/go-learning/go-zero-%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%A1%86%E6%9E%B6/01/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/go-zero-%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%A1%86%E6%9E%B6/01/</guid><description>[项目地址访问](https://github.com/zeromicro/zero-doc/blob/main/doc/shorturl.md)</description><pubDate>Wed, 25 Nov 2020 00:00:00 GMT</pubDate></item><item><title>Go语言高级编程 (Advanced Go Programming)</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/golang_book1/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/golang_book1/</guid><description>QQ群：102319854（中国最早的Go语言QQ群）</description><pubDate>Fri, 20 Nov 2020 00:00:00 GMT</pubDate></item><item><title>序言</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/golang_book1/preface-pdf/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/golang_book1/preface-pdf/</guid><description>2009年11月，Google发布了Go语言，在世界范围内引发了轰动。2015年和2016年中国区的Go语言大会分别在上海和北京召开，来自Go语言团队的开发人员均作了相关的报告。纵观这几年来的发展趋势，Go语言已经成为云计算、云存储时代最重要的基础编程语言。</description><pubDate>Fri, 20 Nov 2020 00:00:00 GMT</pubDate></item><item><title>勘误·第一版第一次印刷</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/golang_book1/errata/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/golang_book1/errata/</guid><description>sum函数的ret+24(FP)改为ret+16(FP)</description><pubDate>Fri, 20 Nov 2020 00:00:00 GMT</pubDate></item><item><title>goproxy代理服务</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/golang_book1/examples/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/golang_book1/examples/</guid><description>- https://github.com/gomods/athens/releases</description><pubDate>Fri, 20 Nov 2020 00:00:00 GMT</pubDate></item><item><title>为什么俄罗斯新生儿女婴比较多</title><link>https://blog.zhequtao.com/posts/day/20200927/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/day/20200927/</guid><description>- 一直好奇为什么为什么寒冷的欧洲女性会偏多，而我们国家和一些其他地方这个比例就差别特别大</description><pubDate>Wed, 18 Nov 2020 00:00:00 GMT</pubDate></item><item><title>密码学</title><link>https://blog.zhequtao.com/posts/golang/go-new/rsa/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/rsa/</guid><description>将随机秘钥使用RSA非对称加密</description><pubDate>Mon, 16 Nov 2020 00:00:00 GMT</pubDate></item><item><title>golang Web开发</title><link>https://blog.zhequtao.com/posts/golang/go-project/goweb%E5%BC%80%E5%8F%91/web01/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/goweb%E5%BC%80%E5%8F%91/web01/</guid><description>golang Web开发 gin goadmin()</description><pubDate>Fri, 06 Nov 2020 00:00:00 GMT</pubDate></item><item><title>WebSocket</title><link>https://blog.zhequtao.com/posts/golang/go-new/websocket/websocket/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/websocket/websocket/</guid><description>WebSocket 什么是websocket golang-websocket开发</description><pubDate>Wed, 28 Oct 2020 00:00:00 GMT</pubDate></item><item><title>错误日志 Error: Field &apos;字段名&apos; doesn&apos;t have a default value</title><link>https://blog.zhequtao.com/posts/sql/mysql/mysql%E9%87%87%E5%9D%91%E8%AE%B0/docker-compose%E9%85%8D%E7%BD%AEmysql%E6%8A%A5%E9%94%99/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/mysql%E9%87%87%E5%9D%91%E8%AE%B0/docker-compose%E9%85%8D%E7%BD%AEmysql%E6%8A%A5%E9%94%99/</guid><description>&gt; 很明显这个错误是没有设置默认值，</description><pubDate>Wed, 28 Oct 2020 00:00:00 GMT</pubDate></item><item><title>awesome-kubernetes-notes</title><link>https://blog.zhequtao.com/posts/k8s/juejin/awesome-kubernetes-notes/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/juejin/awesome-kubernetes-notes/</guid><description>[![Documentation Status](https://readthedocs.org/projects/awesome-kubernetes-notes/badge/?version=latest)](https://awesome-kubernetes-notes.readthedoc</description><pubDate>Tue, 13 Oct 2020 00:00:00 GMT</pubDate></item><item><title>本文将围绕着以下几点进行比较</title><link>https://blog.zhequtao.com/posts/golang/go-new/arjun/01-golangvsjava/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/arjun/01-golangvsjava/</guid><description>本文将围绕着以下几点进行比较 传统的java 搞笑的golang 两者的优缺点及核心特性</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>购买前警告⚠️</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/0_%E4%B8%87%E9%87%8C%E9%95%BF%E5%BE%81%E7%AC%AC%E4%B8%80%E6%AD%A5%E9%9D%9E%E5%B8%B8%E9%87%8D%E8%A6%81%E5%A6%82%E4%BD%95%E6%84%89%E5%BF%AB%E7%9A%84%E9%98%85%E8%AF%BB%E6%9C%AC%E5%B0%8F%E5%86%8C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/0_%E4%B8%87%E9%87%8C%E9%95%BF%E5%BE%81%E7%AC%AC%E4%B8%80%E6%AD%A5%E9%9D%9E%E5%B8%B8%E9%87%8D%E8%A6%81%E5%A6%82%E4%BD%95%E6%84%89%E5%BF%AB%E7%9A%84%E9%98%85%E8%AF%BB%E6%9C%AC%E5%B0%8F%E5%86%8C/</guid><description>- 此小册并非数据库入门书籍，需要各位知道增删改查是啥意思，并且能用 SQL 语言写出来，当然并不要求各位知道的太多，你甚至可以不知道连接的语法都可以。不过如果你连SELECT、INSERT这些单词都没听说过那本小册并不适合你。</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>单表访问方法</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/10_%E6%9D%A1%E6%9D%A1%E5%A4%A7%E8%B7%AF%E9%80%9A%E7%BD%97%E9%A9%AC%E5%8D%95%E8%A1%A8%E8%AE%BF%E9%97%AE%E6%96%B9%E6%B3%95/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/10_%E6%9D%A1%E6%9D%A1%E5%A4%A7%E8%B7%AF%E9%80%9A%E7%BD%97%E9%A9%AC%E5%8D%95%E8%A1%A8%E8%AE%BF%E9%97%AE%E6%96%B9%E6%B3%95/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>连接的原理</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/11_%E4%B8%A4%E4%B8%AA%E8%A1%A8%E7%9A%84%E4%BA%B2%E5%AF%86%E6%8E%A5%E8%A7%A6%E8%BF%9E%E6%8E%A5%E7%9A%84%E5%8E%9F%E7%90%86/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/11_%E4%B8%A4%E4%B8%AA%E8%A1%A8%E7%9A%84%E4%BA%B2%E5%AF%86%E6%8E%A5%E8%A7%A6%E8%BF%9E%E6%8E%A5%E7%9A%84%E5%8E%9F%E7%90%86/</guid><description>标签： MySQL 是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>基于成本的优化</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/12_%E8%B0%81%E6%9C%80%E4%BE%BF%E5%AE%9C%E5%B0%B1%E9%80%89%E8%B0%81mysql%E5%9F%BA%E4%BA%8E%E6%88%90%E6%9C%AC%E7%9A%84%E4%BC%98%E5%8C%96/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/12_%E8%B0%81%E6%9C%80%E4%BE%BF%E5%AE%9C%E5%B0%B1%E9%80%89%E8%B0%81mysql%E5%9F%BA%E4%BA%8E%E6%88%90%E6%9C%AC%E7%9A%84%E4%BC%98%E5%8C%96/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>InnoDB 统计数据是如何收集的</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/13_%E5%85%B5%E9%A9%AC%E6%9C%AA%E5%8A%A8%E7%B2%AE%E8%8D%89%E5%85%88%E8%A1%8Cinnodb%E7%BB%9F%E8%AE%A1%E6%95%B0%E6%8D%AE%E6%98%AF%E5%A6%82%E4%BD%95%E6%94%B6%E9%9B%86%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/13_%E5%85%B5%E9%A9%AC%E6%9C%AA%E5%8A%A8%E7%B2%AE%E8%8D%89%E5%85%88%E8%A1%8Cinnodb%E7%BB%9F%E8%AE%A1%E6%95%B0%E6%8D%AE%E6%98%AF%E5%A6%82%E4%BD%95%E6%94%B6%E9%9B%86%E7%9A%84/</guid><description>标签： MySQL 是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>基于规则的优化</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/14_%E4%B8%8D%E5%A5%BD%E7%9C%8B%E5%B0%B1%E8%A6%81%E5%A4%9A%E6%95%B4%E5%AE%B9mysql%E5%9F%BA%E4%BA%8E%E8%A7%84%E5%88%99%E7%9A%84%E4%BC%98%E5%8C%96%E5%86%85%E5%90%AB%E5%85%B3%E4%BA%8E%E5%AD%90%E6%9F%A5%E8%AF%A2%E4%BC%98%E5%8C%96%E4%BA%8C%E4%B8%89%E4%BA%8B%E5%84%BF/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/14_%E4%B8%8D%E5%A5%BD%E7%9C%8B%E5%B0%B1%E8%A6%81%E5%A4%9A%E6%95%B4%E5%AE%B9mysql%E5%9F%BA%E4%BA%8E%E8%A7%84%E5%88%99%E7%9A%84%E4%BC%98%E5%8C%96%E5%86%85%E5%90%AB%E5%85%B3%E4%BA%8E%E5%AD%90%E6%9F%A5%E8%AF%A2%E4%BC%98%E5%8C%96%E4%BA%8C%E4%B8%89%E4%BA%8B%E5%84%BF/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>Explain 详解（上）</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/15_%E6%9F%A5%E8%AF%A2%E4%BC%98%E5%8C%96%E7%9A%84%E7%99%BE%E7%A7%91%E5%85%A8%E4%B9%A6explain%E8%AF%A6%E8%A7%A3%E4%B8%8A/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/15_%E6%9F%A5%E8%AF%A2%E4%BC%98%E5%8C%96%E7%9A%84%E7%99%BE%E7%A7%91%E5%85%A8%E4%B9%A6explain%E8%AF%A6%E8%A7%A3%E4%B8%8A/</guid><description>标签： MySQL 是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>Explain 详解（下）</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/16_%E6%9F%A5%E8%AF%A2%E4%BC%98%E5%8C%96%E7%9A%84%E7%99%BE%E7%A7%91%E5%85%A8%E4%B9%A6explain%E8%AF%A6%E8%A7%A3%E4%B8%8B/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/16_%E6%9F%A5%E8%AF%A2%E4%BC%98%E5%8C%96%E7%9A%84%E7%99%BE%E7%A7%91%E5%85%A8%E4%B9%A6explain%E8%AF%A6%E8%A7%A3%E4%B8%8B/</guid><description>标签： MySQL 是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>optimizer trace 表的神奇功效</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/17_%E7%A5%9E%E5%85%B5%E5%88%A9%E5%99%A8optimizertrace%E7%9A%84%E7%A5%9E%E5%99%A8%E5%8A%9F%E6%95%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/17_%E7%A5%9E%E5%85%B5%E5%88%A9%E5%99%A8optimizertrace%E7%9A%84%E7%A5%9E%E5%99%A8%E5%8A%9F%E6%95%88/</guid><description>标签： MySQL 是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>InnoDB 的 Buffer Pool</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/18_%E8%B0%83%E8%8A%82%E7%A3%81%E7%9B%98%E5%92%8Ccpu%E7%9A%84%E7%9F%9B%E7%9B%BEinnodb%E7%9A%84bufferpool/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/18_%E8%B0%83%E8%8A%82%E7%A3%81%E7%9B%98%E5%92%8Ccpu%E7%9A%84%E7%9F%9B%E7%9B%BEinnodb%E7%9A%84bufferpool/</guid><description>标签： MySQL 是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>事务简介</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/19_%E4%BB%8E%E7%8C%AB%E7%88%B7%E8%A2%AB%E6%9D%80%E8%AF%B4%E8%B5%B7%E4%BA%8B%E5%8A%A1%E7%AE%80%E4%BB%8B/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/19_%E4%BB%8E%E7%8C%AB%E7%88%B7%E8%A2%AB%E6%9D%80%E8%AF%B4%E8%B5%B7%E4%BA%8B%E5%8A%A1%E7%AE%80%E4%BB%8B/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>初识MySQL</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/1_%E8%A3%85%E4%BD%9C%E8%87%AA%E5%B7%B1%E6%98%AF%E4%B8%AA%E5%B0%8F%E7%99%BD%E9%87%8D%E6%96%B0%E8%AE%A4%E8%AF%86mysql/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/1_%E8%A3%85%E4%BD%9C%E8%87%AA%E5%B7%B1%E6%98%AF%E4%B8%AA%E5%B0%8F%E7%99%BD%E9%87%8D%E6%96%B0%E8%AE%A4%E8%AF%86mysql/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>redo日志（上）</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/20_%E8%AF%B4%E8%BF%87%E7%9A%84%E8%AF%9D%E5%B0%B1%E4%B8%80%E5%AE%9A%E8%A6%81%E5%8A%9E%E5%88%B0redo%E6%97%A5%E5%BF%97%E4%B8%8A/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/20_%E8%AF%B4%E8%BF%87%E7%9A%84%E8%AF%9D%E5%B0%B1%E4%B8%80%E5%AE%9A%E8%A6%81%E5%8A%9E%E5%88%B0redo%E6%97%A5%E5%BF%97%E4%B8%8A/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>undo日志（上）</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/22_%E5%90%8E%E6%82%94%E4%BA%86%E6%80%8E%E4%B9%88%E5%8A%9Eundo%E6%97%A5%E5%BF%97%E4%B8%8A/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/22_%E5%90%8E%E6%82%94%E4%BA%86%E6%80%8E%E4%B9%88%E5%8A%9Eundo%E6%97%A5%E5%BF%97%E4%B8%8A/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>redo日志（下）</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/21_%E8%AF%B4%E8%BF%87%E7%9A%84%E8%AF%9D%E5%B0%B1%E4%B8%80%E5%AE%9A%E8%A6%81%E5%8A%9E%E5%88%B0redo%E6%97%A5%E5%BF%97%E4%B8%8B/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/21_%E8%AF%B4%E8%BF%87%E7%9A%84%E8%AF%9D%E5%B0%B1%E4%B8%80%E5%AE%9A%E8%A6%81%E5%8A%9E%E5%88%B0redo%E6%97%A5%E5%BF%97%E4%B8%8B/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>undo日志（下）</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/23_%E5%90%8E%E6%82%94%E4%BA%86%E6%80%8E%E4%B9%88%E5%8A%9Eundo%E6%97%A5%E5%BF%97%E4%B8%8B/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/23_%E5%90%8E%E6%82%94%E4%BA%86%E6%80%8E%E4%B9%88%E5%8A%9Eundo%E6%97%A5%E5%BF%97%E4%B8%8B/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>事务隔离级别和MVCC</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/24_%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E7%9A%84%E5%A4%9A%E5%B9%85%E9%9D%A2%E5%AD%94%E4%BA%8B%E5%8A%A1%E7%9A%84%E9%9A%94%E7%A6%BB%E7%BA%A7%E5%88%AB%E4%B8%8Emvcc/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/24_%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E7%9A%84%E5%A4%9A%E5%B9%85%E9%9D%A2%E5%AD%94%E4%BA%8B%E5%8A%A1%E7%9A%84%E9%9A%94%E7%A6%BB%E7%BA%A7%E5%88%AB%E4%B8%8Emvcc/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>锁</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/25_%E5%B7%A5%E4%BD%9C%E9%9D%A2%E8%AF%95%E8%80%81%E5%A4%A7%E9%9A%BE%E9%94%81/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/25_%E5%B7%A5%E4%BD%9C%E9%9D%A2%E8%AF%95%E8%80%81%E5%A4%A7%E9%9A%BE%E9%94%81/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>感谢</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/26_%E5%86%99%E4%BD%9C%E6%9C%AC%E4%B9%A6%E6%97%B6%E7%94%A8%E5%88%B0%E7%9A%84%E4%B8%80%E4%BA%9B%E9%87%8D%E8%A6%81%E7%9A%84%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/26_%E5%86%99%E4%BD%9C%E6%9C%AC%E4%B9%A6%E6%97%B6%E7%94%A8%E5%88%B0%E7%9A%84%E4%B8%80%E4%BA%9B%E9%87%8D%E8%A6%81%E7%9A%84%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99/</guid><description>我不生产知识，只是知识的搬运工。写作本小册的时间主要用在了两个方面：</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>启动选项和配置文件</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/2_mysql%E7%9A%84%E8%B0%83%E6%8E%A7%E6%8C%89%E9%92%AE%E5%90%AF%E5%8A%A8%E9%80%89%E9%A1%B9%E5%92%8C%E7%B3%BB%E7%BB%9F%E5%8F%98%E9%87%8F/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/2_mysql%E7%9A%84%E8%B0%83%E6%8E%A7%E6%8C%89%E9%92%AE%E5%90%AF%E5%8A%A8%E9%80%89%E9%A1%B9%E5%92%8C%E7%B3%BB%E7%BB%9F%E5%8F%98%E9%87%8F/</guid><description>标签： MySQL 是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>字符集和比较规则</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/3_%E4%B9%B1%E7%A0%81%E7%9A%84%E5%89%8D%E4%B8%96%E4%BB%8A%E7%94%9F%E5%AD%97%E7%AC%A6%E9%9B%86%E5%92%8C%E6%AF%94%E8%BE%83%E8%A7%84%E5%88%99/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/3_%E4%B9%B1%E7%A0%81%E7%9A%84%E5%89%8D%E4%B8%96%E4%BB%8A%E7%94%9F%E5%AD%97%E7%AC%A6%E9%9B%86%E5%92%8C%E6%AF%94%E8%BE%83%E8%A7%84%E5%88%99/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>InnoDB记录存储结构</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/4_%E4%BB%8E%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E8%AF%B4%E8%B5%B7innodb%E8%AE%B0%E5%BD%95%E7%BB%93%E6%9E%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/4_%E4%BB%8E%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E8%AF%B4%E8%B5%B7innodb%E8%AE%B0%E5%BD%95%E7%BB%93%E6%9E%84/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>B+树索引</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/6_%E5%BF%AB%E9%80%9F%E6%9F%A5%E8%AF%A2%E7%9A%84%E7%A7%98%E7%B1%8Db%E6%A0%91%E7%B4%A2%E5%BC%95/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/6_%E5%BF%AB%E9%80%9F%E6%9F%A5%E8%AF%A2%E7%9A%84%E7%A7%98%E7%B1%8Db%E6%A0%91%E7%B4%A2%E5%BC%95/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>InnoDB数据页结构</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/5_%E7%9B%9B%E6%94%BE%E8%AE%B0%E5%BD%95%E7%9A%84%E5%A4%A7%E7%9B%92%E5%AD%90innodb%E6%95%B0%E6%8D%AE%E9%A1%B5%E7%BB%93%E6%9E%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/5_%E7%9B%9B%E6%94%BE%E8%AE%B0%E5%BD%95%E7%9A%84%E5%A4%A7%E7%9B%92%E5%AD%90innodb%E6%95%B0%E6%8D%AE%E9%A1%B5%E7%BB%93%E6%9E%84/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>B+树索引的使用</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/7_%E5%A5%BD%E4%B8%9C%E8%A5%BF%E4%B9%9F%E5%BE%97%E5%85%88%E5%AD%A6%E4%BC%9A%E6%80%8E%E4%B9%88%E7%94%A8b%E6%A0%91%E7%B4%A2%E5%BC%95%E7%9A%84%E4%BD%BF%E7%94%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/7_%E5%A5%BD%E4%B8%9C%E8%A5%BF%E4%B9%9F%E5%BE%97%E5%85%88%E5%AD%A6%E4%BC%9A%E6%80%8E%E4%B9%88%E7%94%A8b%E6%A0%91%E7%B4%A2%E5%BC%95%E7%9A%84%E4%BD%BF%E7%94%A8/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>MySQL 的数据目录</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/8_%E6%95%B0%E6%8D%AE%E7%9A%84%E5%AE%B6mysql%E7%9A%84%E6%95%B0%E6%8D%AE%E7%9B%AE%E5%BD%95/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/8_%E6%95%B0%E6%8D%AE%E7%9A%84%E5%AE%B6mysql%E7%9A%84%E6%95%B0%E6%8D%AE%E7%9B%AE%E5%BD%95/</guid><description>标签： MySQL 是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>第八章、InnoDB的表空间</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/9_%E5%AD%98%E6%94%BE%E9%A1%B5%E9%9D%A2%E7%9A%84%E5%A4%A7%E6%B1%A0%E5%AD%90innodb%E7%9A%84%E8%A1%A8%E7%A9%BA%E9%97%B4/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/9_%E5%AD%98%E6%94%BE%E9%A1%B5%E9%9D%A2%E7%9A%84%E5%A4%A7%E6%B1%A0%E5%AD%90innodb%E7%9A%84%E8%A1%A8%E7%A9%BA%E9%97%B4/</guid><description>标签： MySQL是怎样运行的</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>从根上理解MYSQL</title><link>https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E7%90%86%E8%A7%A3-mysql/</guid><description>1. [0万里长征第一步（非常重要）——如何愉快的阅读本小册](./0万里长征第一步（非常重要）——如何愉快的阅读本小册.md)</description><pubDate>Wed, 30 Sep 2020 00:00:00 GMT</pubDate></item><item><title>金融理财知识整理</title><link>https://blog.zhequtao.com/posts/other/%E7%A7%91%E6%99%AE/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/other/%E7%A7%91%E6%99%AE/</guid><description>+ 一个偶尔的机会进入到了一个买房聊天群，通过聊天了解到有一个群友通过金融行业毕业3年就实现了买房的梦想，无独有偶就是金融行业，主业在券商自营做交易员，副业做期货高频交易</description><pubDate>Sun, 27 Sep 2020 00:00:00 GMT</pubDate></item><item><title>elastic-stack</title><link>https://blog.zhequtao.com/posts/k8s/elastic-stack/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/elastic-stack/</guid><description>Prerequisites</description><pubDate>Tue, 22 Sep 2020 00:00:00 GMT</pubDate></item><item><title>在 k8s 集群中部署 ES</title><link>https://blog.zhequtao.com/posts/k8s/es/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/es/</guid><description>在 k8s 集群中部署 ES 通过 helm 部署 WARNING 查看状态 部署成功</description><pubDate>Tue, 22 Sep 2020 00:00:00 GMT</pubDate></item><item><title>k8s 存储：PV 与 PVC</title><link>https://blog.zhequtao.com/posts/k8s/pvc/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/pvc/</guid><description>在 Docker 的容器中，使用 volumes 作为存储，但是它仅仅只是本地存储系统中的一个目录，且没有生命周期的管理。</description><pubDate>Tue, 22 Sep 2020 00:00:00 GMT</pubDate></item><item><title>2小时躲坑k8s-大型分布式集群环境捷径部署</title><link>https://blog.zhequtao.com/posts/k8s/install/kubernetes-2%E5%B0%8F%E6%97%B6%E5%AE%89%E8%A3%85%E5%8F%8A%E9%83%A8%E7%BD%B2%E6%8D%B7%E5%BE%84/2%E5%B0%8F%E6%97%B6%E8%BA%B2%E5%9D%91k8s-%E5%A4%A7%E5%9E%8B%E5%88%86%E5%B8%83%E5%BC%8F%E9%9B%86%E7%BE%A4%E7%8E%AF%E5%A2%83%E6%8D%B7%E5%BE%84%E9%83%A8%E7%BD%B2/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/install/kubernetes-2%E5%B0%8F%E6%97%B6%E5%AE%89%E8%A3%85%E5%8F%8A%E9%83%A8%E7%BD%B2%E6%8D%B7%E5%BE%84/2%E5%B0%8F%E6%97%B6%E8%BA%B2%E5%9D%91k8s-%E5%A4%A7%E5%9E%8B%E5%88%86%E5%B8%83%E5%BC%8F%E9%9B%86%E7%BE%A4%E7%8E%AF%E5%A2%83%E6%8D%B7%E5%BE%84%E9%83%A8%E7%BD%B2/</guid><description>​	Kubernetes(k8s)一个用于容器集群的自动化部署、扩容以及运维的开源平台。通过Kubernetes,你可以快速有效地响应用户需求;快速而有预期地部署你的应用;极速地扩展你的应用;无缝对接新应用功能;节省资源，优化硬件资源的使用。为容器编排管理提供了完整的开源方案。</description><pubDate>Sat, 22 Aug 2020 00:00:00 GMT</pubDate></item><item><title>基础环境安装</title><link>https://blog.zhequtao.com/posts/k8s/install/install-k8s-base/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/install/install-k8s-base/</guid><description>基础环境安装</description><pubDate>Wed, 15 Jul 2020 00:00:00 GMT</pubDate></item><item><title>初始化第一个 master 节点</title><link>https://blog.zhequtao.com/posts/k8s/install/install-k8s-network/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/install/install-k8s-network/</guid><description>第 15、16、17 行，用于初始化第二、三个 master 节点</description><pubDate>Wed, 15 Jul 2020 00:00:00 GMT</pubDate></item><item><title>本文为一整套安装流程</title><link>https://blog.zhequtao.com/posts/k8s/juejin/juejin-k8s-1/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/juejin/juejin-k8s-1/</guid><description>在这里我们添加了 kubelet 的 systemd 配置，然后添加了它的 Drop-in 文件，我们增加的这个 kubeadm.conf 文件，会被 systemd 自动解析，用于复写 kubelet 的基础 systemd 配置，可以看到我们增加了一系列的配置参数。在第 17 章中，我们会对 k</description><pubDate>Wed, 15 Jul 2020 00:00:00 GMT</pubDate></item><item><title>Docker常用镜像基本操作</title><link>https://blog.zhequtao.com/posts/content/op/docker-base/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/docker-base/</guid><description>docker 简易入门 Docker镜像的首行从FROM alpine之类的镜像开始，但是最初的基础镜像是如何创建的，本文使用一个busybox创建一个基础镜像，相信在此过程中会对docker一些相关的概念有进一步的理解。 什么是基础镜像（base image） 简单来说，基础镜像就是没有From或者FROM scratch开头的Dockerfile所构建出来的镜像。比如alpine，这个很小的l…</description><pubDate>Thu, 02 Jul 2020 00:00:00 GMT</pubDate></item><item><title>算法模板</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/summary/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/summary/</guid><description>- [go 语言入门](introduction/golang.md)</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>算法模板</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/</guid><description>![来刷题了](https://img.fuiboom.com/img/title.png)</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>二进制</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/data_structure/binary_op/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/data_structure/binary_op/</guid><description>由上面两个推导出：a=a^b^b</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>二叉树</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/data_structure/binary_tree/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/data_structure/binary_tree/</guid><description>前序遍历：先访问根节点，再前序遍历左子树，再前序遍历右子树</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>链表</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/data_structure/linked_list/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/data_structure/linked_list/</guid><description>- null/nil 异常处理</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>栈和队列</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/data_structure/stack_queue/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/data_structure/stack_queue/</guid><description>![image.png](https://img.fuiboom.com/img/stack.png)</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>GO 快速入门</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/introduction/golang/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/introduction/golang/</guid><description>[Go 语言圣经](https://books.studygolang.com/gopl-zh/)</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>快速开始</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/introduction/quickstart/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/introduction/quickstart/</guid><description>数据结构是一种数据的表现形式，如链表、二叉树、栈、队列等都是内存中一段数据表现的形式。</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>二分搜索</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/basic_algorithm/binary_search/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/basic_algorithm/binary_search/</guid><description>给一个有序数组和目标值，找第一次/最后一次/任何一次出现的索引，如果没有出现返回-1</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>动态规划</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/basic_algorithm/dp/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/basic_algorithm/dp/</guid><description>如题  [triangle](https://leetcode-cn.com/problems/triangle/)</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>排序</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/basic_algorithm/sort/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/basic_algorithm/sort/</guid><description>用数组表示的完美二叉树 complete binary tree</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>回溯法</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/advanced_algorithm/backtrack/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/advanced_algorithm/backtrack/</guid><description>回溯法（backtrack）常用于遍历列表所有子集，是 DFS 深度搜索一种，一般用于全排列，穷尽所有可能，遍历的过程实际上是一个决策树的遍历过程。时间复杂度一般 O(N!)，它不像动态规划存在重叠子问题可以优化，回溯算法就是纯暴力穷举，复杂度一般都很高。</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>二叉搜索树</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/advanced_algorithm/binary_search_tree/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/advanced_algorithm/binary_search_tree/</guid><description>- 每个节点中的值必须大于（或等于）存储在其左侧子树中的任何值。</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>递归</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/advanced_algorithm/recursion/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/advanced_algorithm/recursion/</guid><description>将大问题转化为小问题，通过递归依次解决各个小问题</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>滑动窗口</title><link>https://blog.zhequtao.com/posts/algorithm/algorithm/advanced_algorithm/slide_window/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/algorithm/advanced_algorithm/slide_window/</guid><description>- 1、右指针右移之后窗口数据更新</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>01-release测试网络部署</title><link>https://blog.zhequtao.com/posts/golang/go-block/hyperledgerfabric20/01-release%E6%B5%8B%E8%AF%95%E7%BD%91%E7%BB%9C%E9%83%A8%E7%BD%B2/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/hyperledgerfabric20/01-release%E6%B5%8B%E8%AF%95%E7%BD%91%E7%BB%9C%E9%83%A8%E7%BD%B2/</guid><description>&lt;div class=\&quot;content\&quot; id=\&quot;articleContent\&quot;&gt;</description><pubDate>Mon, 22 Jun 2020 00:00:00 GMT</pubDate></item><item><title>2.1 生成证书文件</title><link>https://blog.zhequtao.com/posts/golang/go-block/hyperledgerfabric20/02-fabric20first-network/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/hyperledgerfabric20/02-fabric20first-network/</guid><description>&lt;!-- # network</description><pubDate>Mon, 22 Jun 2020 00:00:00 GMT</pubDate></item><item><title>README</title><link>https://blog.zhequtao.com/posts/golang/go-block/hyperledgerfabric20/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/hyperledgerfabric20/</guid><description>(0) 如何利用区块链保护知识产权</description><pubDate>Mon, 22 Jun 2020 00:00:00 GMT</pubDate></item><item><title>PM之路</title><link>https://blog.zhequtao.com/posts/content/pm/summary/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/pm/summary/</guid><description>&lt;!--  [前言](README.md)</description><pubDate>Fri, 12 Jun 2020 00:00:00 GMT</pubDate></item><item><title>书籍目录</title><link>https://blog.zhequtao.com/posts/golang/go-questions/summary/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/summary/</guid><description>[前言](README.md)</description><pubDate>Fri, 12 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Requests源码分析</title><link>https://blog.zhequtao.com/posts/python/requests%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/requests%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/</guid><description>最近python学习到了瓶颈了，这次准备从Kenneth Reitz大神的requests入手</description><pubDate>Tue, 09 Jun 2020 00:00:00 GMT</pubDate></item><item><title>python 学习笔记</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/</guid><description>|:-:|:-:|:-:|</description><pubDate>Tue, 09 Jun 2020 00:00:00 GMT</pubDate></item><item><title>关于我的博客整体架构</title><link>https://blog.zhequtao.com/posts/content/op/myblog/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/myblog/</guid><description>sed 是一个用来筛选与转换文本内容的工具。一般用来批量替换，删除某行文件。如果想在 mac 中使用 sed，请使用 gsed 代替，不然会被坑</description><pubDate>Sat, 06 Jun 2020 00:00:00 GMT</pubDate></item><item><title>环境部署与发布</title><link>https://blog.zhequtao.com/posts/install/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/install/</guid><description>\&quot;compact\&quot;: false,</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Consul</title><link>https://blog.zhequtao.com/posts/golang/go-block/huanjingpeizhi/consul/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/huanjingpeizhi/consul/</guid><description>​	Consul是HashiCorp公司推出的开源工具，用于实现分布式系统的服务发现与配置。 Consul是分布式的、高可用的、可横向扩展的。它具备以下特性 :</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>ubuntu 环境需求</title><link>https://blog.zhequtao.com/posts/golang/go-block/huanjingpeizhi/dockerinstall/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/huanjingpeizhi/dockerinstall/</guid><description>​	到这里docker已经安装成功了</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Micro</title><link>https://blog.zhequtao.com/posts/golang/go-block/huanjingpeizhi/micro/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/huanjingpeizhi/micro/</guid><description>​	Micro解决了构建云本地系统的关键需求。它采用了微服务体系结构模式，并将其转换为一组工具，作为可伸缩平台的构建块。Micro隐藏了分布式系统的复杂性，并为开发人员提供了很好的理解概念。</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>protocol buffer</title><link>https://blog.zhequtao.com/posts/golang/go-block/huanjingpeizhi/protobuf/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/huanjingpeizhi/protobuf/</guid><description>&gt; ![1538304025110]assets/1538304025110-1548584857308.png</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>nginx和fastDFS-nginx-module</title><link>https://blog.zhequtao.com/posts/golang/go-block/huanjingpeizhi/nginxandfastdfs-nginx-moduledownload/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/huanjingpeizhi/nginxandfastdfs-nginx-moduledownload/</guid><description>- [modfastdfs.conf文件](./conf/modfastdfs.conf)</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>redis</title><link>https://blog.zhequtao.com/posts/golang/go-block/huanjingpeizhi/redisdownload/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/huanjingpeizhi/redisdownload/</guid><description>1. 当前下载的版本为稳定版3.2版本</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Go 包依赖管理工具 - govendor</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/govendor-go/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/govendor-go/</guid><description>&gt; [govendor](https://github.com/kardianos/govendor) 是一个基于 vendor 机制实现的 Go 包依赖管理命令行工具。与原生 vendor 无侵入性融合，也支持从其他依赖管理工具迁移，可以很方便的实现同一个包在不同项目中不同版本、以及无相互侵入的开</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>面试题</title><link>https://blog.zhequtao.com/posts/golang/go-new/interview/2020326gomianshi/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/interview/2020326gomianshi/</guid><description>下列输出什么内容  打印数组的字节的长度</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>19校招阿里菜鸟Java开发 腾讯offerAI技术方向产品经理</title><link>https://blog.zhequtao.com/posts/golang/go-new/interview/2020golangmianshi/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/interview/2020golangmianshi/</guid><description>我主要用的还是go，虽然语言不是很重要，但投的基本上是跟go有关的公司，也有一些c++的公司，想往go发展的可以参考我的面经</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Go5期day01课上笔记</title><link>https://blog.zhequtao.com/posts/golang/go-new/laonanhai/go5day01/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/laonanhai/go5day01/</guid><description>[讲师博客](https://www.liwenzhou.com/posts/Go/gomenu/)</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>day02 课上笔记</title><link>https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day02/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day02/</guid><description>$GOPATH: 你写Go代码的工作区，保存你的Go代码的。</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>day03课上笔记</title><link>https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day03/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day03/</guid><description>如果什么都很容易，那还叫什么选择。</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>day05课上笔记</title><link>https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day05/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day05/</guid><description>类型别名只在代码编写 过程中有效,编译完之后就不存在,内置的byte和rune都属于类型别名.</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>day06课上笔记</title><link>https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day06/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day06/</guid><description>包的定义 --&gt;package关键字,包名通常是和目录名一致,不能包含-</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>day07课上笔记</title><link>https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day07/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day07/</guid><description>2006-01-02 15:04:05.000</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>day08课上笔记</title><link>https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day08/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day08/</guid><description>将要并发执行的任务包装成一个函数，调用函数的时候前面加上go关键字，就能够开启一个goroutine去执行该函数的任务。</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>day09课上笔记</title><link>https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day09/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day09/</guid><description>日志收集项目:9.7\\9.21\\9.28</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>day10课上笔记</title><link>https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day10/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day10/</guid><description>[leetcode刷题，每天一道题强壮程序员](https://leetcode-cn.com/problems/two-sum/)</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>day11课上笔记</title><link>https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day11/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day11/</guid><description>如果是使用的Go1.11和Go1.12的版本，需要手动开启go module支持：</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>day12课上笔记</title><link>https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day12/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day12/</guid><description>context.Context</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>day12课上笔记</title><link>https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day122/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day122/</guid><description>context.Context</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>day13课上笔记</title><link>https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day13/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/laonanhai/day13/</guid><description>1. 配置文件版LogAnent实现</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>1. 生成Fabric证书</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric/1%E6%90%AD%E5%BB%BA%E7%BD%91%E7%BB%9C-%E7%BA%AF%E6%89%8B%E5%8A%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric/1%E6%90%AD%E5%BB%BA%E7%BD%91%E7%BB%9C-%E7%BA%AF%E6%89%8B%E5%8A%A8/</guid><description>&gt; 我们可以自己组建一个Fabric网路, 网络结构如下:</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>1. Fabric环境搭建</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric/1%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric/1%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/</guid><description>&gt; 1. 官方帮助文档：https://hyperledger-fabric.readthedocs.io/en/release-1.4/</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>2. Hyperledger Fabric介绍</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric/2fabric%E4%BB%8B%E7%BB%8D/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric/2fabric%E4%BB%8B%E7%BB%8D/</guid><description>&gt; 如果说以比特币为代表的货币区块链技术为 1.0，以以太坊为代表的合同区块链技术为 2.0，那么实现了完备的权限控制和安全保障的 Hyperledger 项目毫无疑问代表着区块链技术 3.0 时代的到来。</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>3. Fabric核心模块</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric/3fabric%E6%A0%B8%E5%BF%83%E6%A8%A1%E5%9D%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric/3fabric%E6%A0%B8%E5%BF%83%E6%A8%A1%E5%9D%97/</guid><description>Fabric是一个由五个核心模块组成的程序组. 在fabric在成功编译完成之后, 一共会有五个核心模块, 如下:</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>4 搭建第一个自己的网络</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric/4%E7%BD%91%E7%BB%9C%E6%90%AD%E5%BB%BA-%E8%84%9A%E6%9C%AC/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric/4%E7%BD%91%E7%BB%9C%E6%90%AD%E5%BB%BA-%E8%84%9A%E6%9C%AC/</guid><description>&gt; 下面让我们手动搭建一个自己的fabric 网络:</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>5. 智能合约</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric/5%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric/5%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6/</guid><description>&gt; 智能合约是区块链中的一个非常重要的概念和组成部分。在Fabric中将智能合约称之为ChainCode - 链码。</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>6. Fabric 账号</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric/6fabric%E8%B4%A6%E5%8F%B7/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric/6fabric%E8%B4%A6%E5%8F%B7/</guid><description>&gt; Fabric的账号体系是Fabric的重要的组成部分，由于Fabric是基于证书而不是传统的用户名密码形式的身份和角色认证的，因此很多从事传统基于数据库系统开发的技术人员在转向Fabric开发时会遇到很多困惑。因此下边内容将详细介绍Fabric的账号体系，为大家解决关于Fabric账号证书体系相</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>7. Solo多机多节点部署</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric/7solo%E5%A4%9A%E6%9C%BA%E5%A4%9A%E8%8A%82%E7%82%B9%E9%83%A8%E7%BD%B2/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric/7solo%E5%A4%9A%E6%9C%BA%E5%A4%9A%E8%8A%82%E7%82%B9%E9%83%A8%E7%BD%B2/</guid><description>所有的节点分离部署, 每台主机上有一个节点, 节点的分布如下表:</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>8. kafka集群部署</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric/8kafka%E5%A4%9A%E6%9C%BA%E5%A4%9A%E8%8A%82%E7%82%B9%E9%83%A8%E7%BD%B2/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric/8kafka%E5%A4%9A%E6%9C%BA%E5%A4%9A%E8%8A%82%E7%82%B9%E9%83%A8%E7%BD%B2/</guid><description>|   名称   |     IP地址      |       Hostname        | 组织结构 |</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>第 1 章 Docker基础</title><link>https://blog.zhequtao.com/posts/golang/go-block/le-docker/docker/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/le-docker/docker/</guid><description>![dockerlogo](assets/dockerlogo.jpg)</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>什么是微服务？</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/02%E5%BE%AE%E6%9C%8D%E5%8A%A1%E7%9A%84%E6%A6%82%E5%BF%B5/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/02%E5%BE%AE%E6%9C%8D%E5%8A%A1%E7%9A%84%E6%A6%82%E5%BF%B5/</guid><description>​       在介绍微服务时，首先得先理解什么是微服务，顾名思义，微服务得从两个方面去理解，什么是\&quot;微\&quot;、什么是\&quot;服务\&quot;？</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>微服务（microservices）</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/01%E9%A1%B9%E7%9B%AE%E5%B1%95%E7%A4%BA/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/01%E9%A1%B9%E7%9B%AE%E5%B1%95%E7%A4%BA/</guid><description>![1542507931357](assets/1542507931357.png)</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>微服务架构和整体式架构的区别？</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/03%E5%BE%AE%E6%9C%8D%E5%8A%A1%E4%B8%8E%E5%8D%95%E4%BD%93%E5%BC%8F%E7%9A%84%E5%AF%B9%E6%AF%94/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/03%E5%BE%AE%E6%9C%8D%E5%8A%A1%E4%B8%8E%E5%8D%95%E4%BD%93%E5%BC%8F%E7%9A%84%E5%AF%B9%E6%AF%94/</guid><description>​                                                  ![1538300913589](assets/1538300913589.png)</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>protocol buffer</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/04protobuf%E8%AE%B2%E4%B9%89/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/04protobuf%E8%AE%B2%E4%B9%89/</guid><description>&gt; ![1538304025110]assets/1538304025110-1548584857308.png</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>三、GRPC</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/05grpc/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/05grpc/</guid><description>![1538374894598](assets/1538374894598.png)</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>什么是服务发现</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/06%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/06%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/</guid><description>​	微服务的框架体系中，服务发现是不能不提的一个模块。我相信了解或者熟悉微服务的童鞋应该都知道它的重要性。这里我只是简单的提一下，毕竟这不是我们的重点。我们看下面的一幅图片：</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>正向代理</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/07%E4%BB%A3%E7%90%86%E5%9D%87%E8%A1%A1/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/07%E4%BB%A3%E7%90%86%E5%9D%87%E8%A1%A1/</guid><description>​正向代理，意思是一个位于客户端和原始服务器(origin server)之间的服务器，为了从原始服务器取得内容，客户端向代理发送一个请求并指定目标(原始服务器)，然后代理向原始服务器转交请求并将获得的内容返回给客户端。所以已知我们目标的原始服务。</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>四、Consul</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/08consul/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/08consul/</guid><description>为什么要学习consul服务发现？</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>五、Micro</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/09micro/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/09micro/</guid><description>​	Micro解决了构建云本地系统的关键需求。它采用了微服务体系结构模式，并将其转换为一组工具，作为可伸缩平台的构建块。Micro隐藏了分布式系统的复杂性，并为开发人员提供了很好的理解概念。</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>租房网</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/10%E7%A7%9F%E6%88%BF%E7%BD%91/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/10%E7%A7%9F%E6%88%BF%E7%BD%91/</guid><description>6、避免环形依赖和双向依赖</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>02 获取地区信息</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/11%E8%8E%B7%E5%8F%96%E5%9C%B0%E5%9F%9F%E4%BF%A1%E6%81%AF/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/11%E8%8E%B7%E5%8F%96%E5%9C%B0%E5%9F%9F%E4%BF%A1%E6%81%AF/</guid><description>获取地区信息服务（首页相关）</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>03 获取验证码图片</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/12%E8%8E%B7%E5%8F%96%E9%AA%8C%E8%AF%81%E7%A0%81%E5%9B%BE%E7%89%87/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/12%E8%8E%B7%E5%8F%96%E9%AA%8C%E8%AF%81%E7%A0%81%E5%9B%BE%E7%89%87/</guid><description>获取验证码图片服务（注册相关）</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>13获取短信验证码服务（注册相关）</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/13%E8%8E%B7%E5%8F%96%E7%9F%AD%E4%BF%A1%E9%AA%8C%E8%AF%81%E7%A0%81/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/13%E8%8E%B7%E5%8F%96%E7%9F%AD%E4%BF%A1%E9%AA%8C%E8%AF%81%E7%A0%81/</guid><description>![1542886924797](assets/1542886924797.png)</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>发送注册信息服务（注册相关）</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/14%E6%B3%A8%E5%86%8C%E8%AF%B7%E6%B1%82/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/14%E6%B3%A8%E5%86%8C%E8%AF%B7%E6%B1%82/</guid><description>![img](assets/clipimage002.jpg)</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>获取session信息服务（登陆相关）</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/15%E8%8E%B7%E5%8F%96session%E4%BF%A1%E6%81%AF/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/15%E8%8E%B7%E5%8F%96session%E4%BF%A1%E6%81%AF/</guid><description>![img](assets/clipimage002-1542889467165.jpg)</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>发送登陆信息服务（登陆相关）</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/16%E7%99%BB%E5%BD%95%E8%AF%B7%E6%B1%82/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/16%E7%99%BB%E5%BD%95%E8%AF%B7%E6%B1%82/</guid><description>![img](assets/clipimage002-1543150684587.jpg)</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>删除（退出）登陆信息服务（登陆相关）</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/17%E9%80%80%E5%87%BA%E7%99%BB%E9%99%86/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/17%E9%80%80%E5%87%BA%E7%99%BB%E9%99%86/</guid><description>![img](assets/clipimage002-1543150703766.jpg)</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>获取用户基本信息服务（用户相关）</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/18%E8%8E%B7%E5%8F%96%E7%94%A8%E6%88%B7%E4%BF%A1%E6%81%AF/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/18%E8%8E%B7%E5%8F%96%E7%94%A8%E6%88%B7%E4%BF%A1%E6%81%AF/</guid><description>![img](assets/clipimage002-1543151932045.jpg)</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>10 上传用户头像</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/19%E4%B8%8A%E4%BC%A0%E7%94%A8%E6%88%B7%E5%A4%B4%E5%83%8F/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/19%E4%B8%8A%E4%BC%A0%E7%94%A8%E6%88%B7%E5%A4%B4%E5%83%8F/</guid><description>发送（上传）用户头像服务（用户相关）</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>11 更新用户名</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/20%E6%9B%B4%E6%96%B0%E7%94%A8%E6%88%B7%E5%90%8D/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/20%E6%9B%B4%E6%96%B0%E7%94%A8%E6%88%B7%E5%90%8D/</guid><description>更新用户名服务（用户相关）</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>获取（检查）用户实名信息服务（认证相关）</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/21%E6%A3%80%E6%9F%A5%E7%94%A8%E6%88%B7%E5%AE%9E%E5%90%8D%E8%AE%A4%E8%AF%81/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/21%E6%A3%80%E6%9F%A5%E7%94%A8%E6%88%B7%E5%AE%9E%E5%90%8D%E8%AE%A4%E8%AF%81/</guid><description>![img](assets/clipimage002-1543152417782.jpg)</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>发送用户实名认证信息服务（认证相关）</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/22%E6%9B%B4%E6%96%B0%E5%AE%9E%E5%90%8D%E8%AE%A4%E8%AF%81%E4%BF%A1%E6%81%AF/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/22%E6%9B%B4%E6%96%B0%E5%AE%9E%E5%90%8D%E8%AE%A4%E8%AF%81%E4%BF%A1%E6%81%AF/</guid><description>![img](assets/clipimage002-1543152506873.jpg)</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>14 获取当前用户已发布房源信息</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/23%E4%B8%9A%E5%8A%A1%E6%A2%B3%E7%90%86/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/23%E4%B8%9A%E5%8A%A1%E6%A2%B3%E7%90%86/</guid><description>获取用户已发布房源信息服务（商品相关）</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>使用docker-compose进行单机集群启动</title><link>https://blog.zhequtao.com/posts/golang/go-block/material/24%E4%BD%BF%E7%94%A8docker-compose%E8%BF%9B%E8%A1%8C%E5%8D%95%E6%9C%BA%E9%9B%86%E7%BE%A4%E5%90%AF%E5%8A%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/material/24%E4%BD%BF%E7%94%A8docker-compose%E8%BF%9B%E8%A1%8C%E5%8D%95%E6%9C%BA%E9%9B%86%E7%BE%A4%E5%90%AF%E5%8A%A8/</guid><description>将所有读取conf文件夹内容部的程序的绝对路径修改为相对路径</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>1. Fabric环境搭建</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/1%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/1%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/</guid><description>&gt; 1. 官方帮助文档：https://hyperledger-fabric.readthedocs.io/en/release-1.4/</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>2. Hyperledger Fabric介绍</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/2fabric%E4%BB%8B%E7%BB%8D/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/2fabric%E4%BB%8B%E7%BB%8D/</guid><description>&gt; 如果说以比特币为代表的货币区块链技术为 1.0，以以太坊为代表的合同区块链技术为 2.0，那么实现了完备的权限控制和安全保障的 Hyperledger 项目毫无疑问代表着区块链技术 3.0 时代的到来。</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>3. Fabric核心模块</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/3fabric%E6%A0%B8%E5%BF%83%E6%A8%A1%E5%9D%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/3fabric%E6%A0%B8%E5%BF%83%E6%A8%A1%E5%9D%97/</guid><description>Fabric是一个由五个核心模块组成的程序组. 在fabric在成功编译完成之后, 一共会有五个核心模块, 如下:</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>4 搭建第一个自己的网络</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/4%E7%BD%91%E7%BB%9C%E6%90%AD%E5%BB%BA-%E8%84%9A%E6%9C%AC/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/4%E7%BD%91%E7%BB%9C%E6%90%AD%E5%BB%BA-%E8%84%9A%E6%9C%AC/</guid><description>&gt; 下面让我们手动搭建一个自己的fabric 网络:</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>5. 智能合约</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/5%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/5%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6/</guid><description>&gt; 智能合约是区块链中的一个非常重要的概念和组成部分。在Fabric中将智能合约称之为ChainCode - 链码。</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>6. Fabric 账号</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/6fabric%E8%B4%A6%E5%8F%B7/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/6fabric%E8%B4%A6%E5%8F%B7/</guid><description>&gt; Fabric的账号体系是Fabric的重要的组成部分，由于Fabric是基于证书而不是传统的用户名密码形式的身份和角色认证的，因此很多从事传统基于数据库系统开发的技术人员在转向Fabric开发时会遇到很多困惑。因此下边内容将详细介绍Fabric的账号体系，为大家解决关于Fabric账号证书体系相</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>7. Solo多机多节点部署</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/7solo%E5%A4%9A%E6%9C%BA%E5%A4%9A%E8%8A%82%E7%82%B9%E9%83%A8%E7%BD%B2/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/7solo%E5%A4%9A%E6%9C%BA%E5%A4%9A%E8%8A%82%E7%82%B9%E9%83%A8%E7%BD%B2/</guid><description>所有的节点分离部署, 每台主机上有一个节点, 节点的分布如下表:</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>8. kafka集群部署</title><link>https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/8kafka%E5%A4%9A%E6%9C%BA%E5%A4%9A%E8%8A%82%E7%82%B9%E9%83%A8%E7%BD%B2/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/fabric2x/old/8kafka%E5%A4%9A%E6%9C%BA%E5%A4%9A%E8%8A%82%E7%82%B9%E9%83%A8%E7%BD%B2/</guid><description>|   名称   |     IP地址      |       Hostname        | 组织结构 |</description><pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate></item><item><title>版权申明</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/</guid><description>&lt;h1 align=\&quot;center\&quot;&gt;《电商设计手册 | SkrShop》&lt;/h1&gt;</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>技术栈选型 - 2018.08.10</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/records/record-20180810/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/records/record-20180810/</guid><description>+ nginx/openresty</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>用户模型 - 2018.08.15</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/records/record-20180817/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/records/record-20180817/</guid><description>&lt;img src=\&quot;http://cdn.tigerb.cn/user-system.png\&quot;&gt;</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>用户模型 - 2018.08.30</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/records/record-20180830/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/records/record-20180830/</guid><description>用户模型 - 2018.08.30 账户模型 用户模型 员工模型 系统权限管理模型 地址存id还是文字</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>Golden Flash 金色闪光</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/tigerb/golden-flash/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/tigerb/golden-flash/</guid><description>金色闪光来自火影中四代火影波风水门的外号，速度的代表，适合顺势高并发的场景。</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>商品数据模型</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/tigerb/product/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/tigerb/product/</guid><description>1. spu详情 GET {version}/product/spu/{spuid}</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>skr-shop 之 抢红包方案设计</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/astraw/market/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/astraw/market/</guid><description>公平性：比较先抢、后抢的公平性</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>微信红包的架构设计 &amp; Demo</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/astraw/market/red-envelop/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/astraw/market/red-envelop/</guid><description>答：微信金额是拆的时候实时算出来，不是预先分配的，采用的是纯内存计算，不需要预算空间存储。采取实时计算金额的考虑：预算需要占存储，实时效率很高，预算才效率低。</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>skr-shop 之 店铺设计</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/astraw/shop/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/astraw/shop/</guid><description>购物车：多店铺商品购物车设计</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>购物车数据结构</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/dayu/cart/cart-design/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/dayu/cart/cart-design/</guid><description>购物车用什么结构体来存储？</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>用户视角</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/dayu/cart/cart-requirement/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/dayu/cart/cart-requirement/</guid><description>对于一个电商来讲，购物车是整个购买流程最重要的一步。因为电商发展到今天购物车不仅仅只是为了完成打包下单的功能；也是收藏、对比、促销提醒、相关推荐的重要展示窗口。如此多的能力我们该如何设计保证购物车的高性能、以及良好的扩展能力来满足未来的发展呢？</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>优惠券服务</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/tigerb/marketing/coupon/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/tigerb/marketing/coupon/</guid><description>https://www.processon.com/view/link/5ea51bc95653bb6efc6d58b9</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>[Skr-Shop]通用抽奖工具之需求分析</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/tigerb/marketing/lottery-demand/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/tigerb/marketing/lottery-demand/</guid><description>首先我们先来回顾下营销体系的组成：</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>[Skr-Shop]通用抽奖工具之系统设计</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/tigerb/marketing/lottery-sys/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/tigerb/marketing/lottery-sys/</guid><description>上篇文章[《SkrShop通用抽奖工具之需求分析》](http://tigerb.cn/2019/12/23/skr-lottery/)我们已经通过一些常见的抽奖场景，得到了符合这些抽奖场景的抽奖工具五要素：</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>[Skr-Shop]营销体系开篇</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/tigerb/marketing/marketing/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/tigerb/marketing/marketing/</guid><description>营销体系在一个电商系统中承担着尖刀般的作用，为电商团队拼下无数订单，就如同现实生活中的一线销售人员，引流、促销、提高成单率和客单价。</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>[Skr-Shop]什么，秒杀系统也有这么多种！</title><link>https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/tigerb/marketing/seckill/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/go%E7%94%B5%E5%95%86%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C/material/tigerb/marketing/seckill/</guid><description>&gt; 5张图送你5种秒杀系统，再加点骚操作，再顺带些点心里话🤷‍♀️。</description><pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate></item><item><title>GoS5 day04</title><link>https://blog.zhequtao.com/posts/golang/go-new/laonanhai/gos5day04/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/laonanhai/gos5day04/</guid><description>​	高阶函数:函数可以作为参数也可以作为返回值</description><pubDate>Fri, 03 Apr 2020 00:00:00 GMT</pubDate></item><item><title>常用代码片段</title><link>https://blog.zhequtao.com/posts/snippets/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/snippets/</guid><description>&gt; 如果本篇文章能够对你有所帮助，可以帮我在 [ChinaArJun/op-note](https://github.com/ChinaArJun/op-note) 上点个 star</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何判断文件中的换行符是 LF(\n) 还是 CRLF(\r\n)</title><link>https://blog.zhequtao.com/posts/post/lf-crlf/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/lf-crlf/</guid><description>最近遇到了很多 与 ，虽然一直知道他们都是换行符，但也没有细究，今天顺手查了下。 首先，先解释下 与 的区别，在 Difference between \n and \r? 中有这样的示意 \r = CR (Carriage Return) → Used as a new line character in Mac OS before X \n = LF (Line Feed) → Used as…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>关于 async/await 的两个 OOM 的示例</title><link>https://blog.zhequtao.com/posts/post/async-oom/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/async-oom/</guid><description>01 Promise.map 与 并发控制 这个原因在于使用 控制并发数时，其中的 函数中的 立即 掉，导致实际并发数暴增。 02 递归调用</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何快速了解新业务</title><link>https://blog.zhequtao.com/posts/post/business-get-started/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/business-get-started/</guid><description>最近接触新业务较多，关于了解新业务有一点感想，总结如下 1. 比了解新业务代码更重要的是要了解新业务，比了解新业务更重要的是业务意识 1. 如果是业务开发，毕业前三年更应该关注于技术以及技术细节，三到五年技术业务并重，五年以后业务为主 以下是关于如何快速熟悉新业务的一些经验之谈 &lt;!--more-- 本文链接: &lt;https://blog.zhequtao.com/post/business-ge…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Service Worker 与在 create-react-app 中所遇到的问题解决方案</title><link>https://blog.zhequtao.com/posts/post/cache-for-sw/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/cache-for-sw/</guid><description>缓存策略 是 google 出的关于 service worker 生成预缓存列表，缓存策略，Background API 的一个库，综合了自家以前 以及 的功能。 介绍了几种缓存策略，workbox-strategies。 也对这几种缓存策略做了介绍，caching-strategies。 但是关于这些策略的原理以及如何使用， 强烈推荐 谷歌开发者文档中的 离线指南。 &lt;!--more-- 使用…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>node 中的缓存击穿与解决方案</title><link>https://blog.zhequtao.com/posts/post/cache-miss-concurrent/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/cache-miss-concurrent/</guid><description>缓存击穿指当某个 key 的缓存失效时，此时高并发请求来临时，会产生大量 IO 操作（读读数据库或发个请求），影响性能。 高并发场景并不多见，按理来说缓存击穿也很少发生。其实不然，数据的 batch 也会造成缓存击穿。 查看以下示例，获取某个用户的信息 如果</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Canvas 与 SVG 画图对比小记</title><link>https://blog.zhequtao.com/posts/post/canvas-and-svg-shapes/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/canvas-and-svg-shapes/</guid><description>画影图形指描画犯人面影，悬赏通缉。这里用法明显有问题，不过取其表义而已。 在一个前端看来，画图有三种方法，Cavas，SVG 以及 CSS。至于三者优劣，将在此针对各种图形做逐一比较，有方，圆，椭圆，扇形，多边形，渐变，文本处理以及动画 以下是在 codepen 的代码以及实际效果地址，可打开实际效果地址进行调试 + codepen + codepen live &lt;!--more-- Stroke…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>网站运营常见数据</title><link>https://blog.zhequtao.com/posts/post/data-operation/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/data-operation/</guid><description>自从到了一条 toC 的业务线，听得最多的三个词就是拉新，留存，转化了。为了不使自己太过跟不上队伍，来总结下一些关于运营网站的指标。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何为你的测试环境制造假数据</title><link>https://blog.zhequtao.com/posts/post/dev-data-create/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/dev-data-create/</guid><description>如果你出去面试，无论你是干前端后端还是做算法数据的，必有一道开发性问题不厌其烦地在等着你: 你在工作中遇到过什么难题？ 而我在开发过程中，并且长时间地都面对着两个难题： 1. 如何给变量起名字 1. 如何给测试环境造数据 今天就来聊聊第二个问题。 我在上一篇文章: 如何快速了解新业务，其中也提到了一点: 熟悉新业务最重要的是通过点点点，而非通过代码。 而在测试环境中创建合适的有关联的有意义的假数据…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Node 中异常，exit code 与 docker</title><link>https://blog.zhequtao.com/posts/post/exit-code-node-and-docker/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/exit-code-node-and-docker/</guid><description>最近观察项目 跑的情况如何时，会偶尔发现一两个镜像虽然构建成功但是容器跑不起来的情况。究其原因，是因为一个 的问题 &lt;!--more-- 本文地址: &lt;https://blog.zhequtao.com/post/exit-code-node-and-docker 与 区别 以下是两段代码，第一个是抛出一个异常，第二个是 ，两段代码都会如下打印出一段异常信息，那么两者有什么区别？ 从一个比较底层的…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Frontend-Ci-Quality</title><link>https://blog.zhequtao.com/posts/post/frontend-ci-quality/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/frontend-ci-quality/</guid><description>date: 2019-07-16T20:47:50+08:00</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>一些实用的 git 小技巧</title><link>https://blog.zhequtao.com/posts/post/git-tips/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/git-tips/</guid><description>前些月，写了一个关于 git 的表格，叫Git Cheat Sheet，现分享一些有用的小技巧。另推荐一个非常不错的关于 git 小技巧的项目 git-tips。 &lt;!--more-- 是谁动了我的代码 谁动了我的代码？ 谁的 bug 指到了我的头上？ 团队合作时，经常会出现这样的问题。这时候可以使用 来定位代码的最后一次修改。但是，有一个问题，这并不能看出本行代码以前的修改。比如项目组中某人对全…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>http 响应头中的 ETag 值是如何生成的</title><link>https://blog.zhequtao.com/posts/post/http-etag/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/http-etag/</guid><description>http 静态文件响应头的 ETag 如何生成 关于 的生成需要满足几个条件 1. 当文件不会更改时， 值保持不变。所以不能单纯使用 1. 便于计算，不会特别耗 CPU。这样子 不是特别合适 1. 便于横向扩展，多个 上生成的 值一致。这样子 就排除了 关于服务器中 如何生成可以参考 HTTP: Generating ETag Header 那么在 中的 是如何生成的？ nginx 中 ETag …</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如果 http 响应头中 ETag 值改变了，是否意味着文件内容一定已经更改</title><link>https://blog.zhequtao.com/posts/post/http-last-modified/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/http-last-modified/</guid><description>如果 http 响应头中 ETag 值改变了，是否意味着文件内容一定已经更改 本篇文章由我的 一日一题 中的四个 组合而成 + 【Q111】http 响应头中的 ETag 值是如何生成的 + 【Q112】如果 http 响应头中 ETag 值改变了，是否意味着文件内容一定已经更改 + 【Q115】文件系统中 mtime 和 ctime 指什么，都有什么不同 + 【Q116】http 服务中静态文件…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何实现图片懒加载</title><link>https://blog.zhequtao.com/posts/post/image-lazy-load/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/image-lazy-load/</guid><description>懒加载，顾名思义，在当前网页，滑动页面到能看到图片的时候再加载图片 故问题拆分成两个： 1. 如何判断图片出现在了当前视口 （即如何判断我们能够看到图片） 2. 如何控制图片的加载 本篇文章原文地址: 如何实现图片懒加载，另存到 我的每日一题 方案一 如何判断图片出现在了当前视口 ， ， 以及 各种关于图片的高度作比对 这些高度都代表了什么意思？ 这我以前有可能是知道的，那时候我比较单纯，喜欢死磕…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>文章归档</title><link>https://blog.zhequtao.com/posts/post/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/</guid><description>- [Golang](/golang/go-new/)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>interview 2019</title><link>https://blog.zhequtao.com/posts/post/interview-2019/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/interview-2019/</guid><description>+ 简单的自我介绍与项目经验 + 一道 setTimeout/Promise 输出顺序问题的题 + 什么是事件循环 + async 与 generator 的关系以及实现原理 + react 和 vue 有什么区别 + vue 的双向绑定怎么实现的，在 3.0 后呢 + react 的生命周期是什么 + react 中的 key 用来做什么 + 什么是 virtual DOM + webpack …</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>生成过程</title><link>https://blog.zhequtao.com/posts/post/juejin-article/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/juejin-article/</guid><description>周末使用一行命令制作了一个关于掘金的优秀面试文章，但很多人反馈有几篇文章漏掉了，原因是因为我在爬取文章时筛选了面试的标签。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>面向面试编程，面向掘金面试，一入掘金门，方知面试易</title><link>https://blog.zhequtao.com/posts/post/juejin-interview/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/juejin-interview/</guid><description>一九年已末，二零年将至。 我使用 与 一行简单的命令爬取了掘金的面试集合榜单，有兴趣的同学可以看看爬取过程: 使用 jq 与 sed 制作掘金面试文章排行榜，可以提高你使用命令行的乐趣 关于前端，后端，移动端的面试，这里统统都有，希望可以在面试的过程中帮助到你。另外我也有一个仓库 日问 来记录前后端以及 devops 一些有意思的问题，欢迎交流 &lt;!--more-- + 原文地址: &lt;https:…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>jwt 实践应用以及特殊案例思考</title><link>https://blog.zhequtao.com/posts/post/jwt-guide/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/jwt-guide/</guid><description>JSON Web Token 是 [rfc7519](https://tools.ietf.org/html/rfc7519) 出的一份标准，使用 JSON 来传递数据，用于判定用户是否登录状态。jwt 之前，使用 session 来做用户认证。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何实现类似 lodash 的 get 与 merge 函数</title><link>https://blog.zhequtao.com/posts/post/lodash-get-and-merge/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/lodash-get-and-merge/</guid><description>基本上成为了写 javascript 工具库的标配，它广泛应用在各种服务端以及前端应用中，但是它的包体积略大了一些。对于服务端来说，包的体积并不是十分的重要，或者换句话说，不像前端那样对包的体积特别敏感，一分一毫都会影响页面打开的性能，从而影响用户体验。 正因为前端包体积对于用户体验的重要性，因此有各种各样减小包体积的方法。针对 来说，你完全不必要引入 的所有工具函数，你只需要按需引入或者直接使用…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>我的一天</title><link>https://blog.zhequtao.com/posts/post/my-day/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/my-day/</guid><description>我的一天 在知乎上看到这个问题就答一下: 普通程序员的工作生活是怎样的？ 平时会跑步，周末会去爬山，春天的时候喜欢去逛公园 工作日 6:00 起床，简单洗漱 当然冬天会晚一些，夏天有时也会更早一些 6:20 骑自行车去周围大学操场，跑步 跑步喜欢在早上，外力干预比较少(比如不会突然开会、聚餐、改BUG之类)，且换衣服鞋方便 跑步一般 8公里/10公里/15公里 (当然不是每天，有时候也会断一两周)…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>关于统计诗词字云的解决方案</title><link>https://blog.zhequtao.com/posts/post/poem-char-frequent-stat/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/poem-char-frequent-stat/</guid><description>关于统计诗词字云中的解决方案 周末写了两个脚本，用以统计诗词中的高频字，并抽取其中意象作为飞花令的令字。这两个脚本的地址以及所做如下 1. bin/charCloud.js: 把50万诗词按字、作者朝代、高频作者做关键字，使用 计数，存入 中 1. bin/charCloudStat.js: 根据以上脚本的计数结果，再把 中的数据迁移到 中 &lt;!--more-- 原文地址: &lt;https://bl…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>postgres cheatsheet</title><link>https://blog.zhequtao.com/posts/post/postgres-cheatsheet/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/postgres-cheatsheet/</guid><description>+ \\d+ 列出所有 table/sequence/view，并列出存储大小等详细信息</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>设计一个 Select 组件</title><link>https://blog.zhequtao.com/posts/post/react-component-design/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/react-component-design/</guid><description>设计一个 Select 组件 设计一个 Icon 组件 设计一个 Layout 组件 设计一个 Avator 组件 function component 与 typescript</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>react-hook 与 计数器</title><link>https://blog.zhequtao.com/posts/post/react-hooks-and-countdown/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/react-hooks-and-countdown/</guid><description>Hook 是 React 16.8 的新增特性，官网有一个相当简单的示例来展示它的用法 一见倾心，它的简洁深深打动了我。于是我决定为它添加几行代码写个计数器:</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>谈谈 redis 在项目中的常见使用场景</title><link>https://blog.zhequtao.com/posts/post/redis-case/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/redis-case/</guid><description>最近在写一个脚手架，其中 的使用场景还挺多，于是总结下它的常见使用场景 &lt;!--more-- + 本文链接: &lt;https://blog.zhequtao.com/post/redis-case/ + github 备份: &lt;https://github.com/arjun/blog 缓存 缓存是 出镜率最高的一种使用场景，仅仅使用 就可以实现，不过也有一些需要考虑的点 + 如何更好地设置缓存 +…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>关于前端静态资源在 OSS 上冗余问题的解决</title><link>https://blog.zhequtao.com/posts/post/redundant-static-resource/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/redundant-static-resource/</guid><description>背景 先说前端静态资源的部署。在现有的打包方案下，为了充分利用 http 的永久缓存，打包后静态资源文件一般会戳个 hash 值。这样打包后的某个文件会长这个样子: 。 又为了充分利用 CDN 对静态资源的加速，我们会把静态资源扔到对象存储 OSS 上，然后使用 CDN 对 OSS 的静态资源加速。于是，久而久之，OSS 上堆积的文件也越来越多</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>在 pg 中重设用户表的 ID</title><link>https://blog.zhequtao.com/posts/post/refactor-id-in-pg/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/refactor-id-in-pg/</guid><description>是一个非常典型的 REST API。最近在浏览我的应用时，经常会有 而我的用户表的 ID 采用了整型自增的数据类型，为了使我的网站的用户数看起来不太寒碜，我绝对把我的用户 id 拉长一些！ &lt;!--more-- 我的数据库采用 postgres 本文链接: &lt;https://blog.zhequtao.com/post/refactor-id-in-pg/ 设置外键，同步更新 对所有用户用户表 I…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>sed 命令实践: 升级 sequelize.js 时批量替换字符串</title><link>https://blog.zhequtao.com/posts/post/sequelize-op-replacement-and-sed/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/sequelize-op-replacement-and-sed/</guid><description>sequelize 是 Node 中使用比较多的一个 ORM 库，最近计划将项目中的 升级至 V5 版本。 根据 升级文档，其中一项是即将禁用 ，使用 Sequelize.Op 等 Symbol operators 来代替。 而 主要用在查询条件中，用以生成查询条件，如 &lt;!--more-- 简而言之，需要把本项目中的所有查询条件， 从 左边的替换为右边的。这也是本篇文章的主要内容 本文链接: &lt;…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>sequelize V5 升级记录以及编译时与运行时问题解决方案</title><link>https://blog.zhequtao.com/posts/post/sequelize-upgrade/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/sequelize-upgrade/</guid><description>最近把项目中的 sequelize 由 升级到了 ，以下是升级记录 &lt;!--more-- 本文地址: &lt;https://blog.zhequtao.com/post/sequelize-upgrade/ 01 删包 从 package.json 中删掉 sequelize 以及 @types/sequelize 02 过文档 大致过一遍官方升级文档 &lt;http://docs.sequelizejs…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Node 中异常收集与监控</title><link>https://blog.zhequtao.com/posts/post/server-structed-error/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/server-structed-error/</guid><description>在一个后端服务设计中，异常捕获是必不可少需要考虑的因素 而当异常发生时，能够第一时间捕捉到并且能够获得足够的信息定位到问题至关重要 这也是本篇文章的内容 刚开始，先抛出两个问题 1. 在生产环境中后端连接的数据库挂了，是否能够第一时间收到通知并定位到问题，而不是等到用户反馈之后又用了半天时间才找到问题 (虽然运维肯定会在第一时间知道数据库挂了) 1. 在生产环境中有一条 API 出了问题，能否衡量…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>关于诗词的 graphql API 记录</title><link>https://blog.zhequtao.com/posts/post/shici-api/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/shici-api/</guid><description>+ 诗词 graphql 文档 + 前端展现 打开 graphql playground，可以进行测试 &lt;!--more-- 诗词 作者 名句 标签</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>创建 hash 与 btree 代价那个大</title><link>https://blog.zhequtao.com/posts/post/sql-and-index/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/sql-and-index/</guid><description>+ Index Scan</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>SQL必知必会</title><link>https://blog.zhequtao.com/posts/post/sql-examples/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/sql-examples/</guid><description>本篇文章是 SQL 必知必会 的读书笔记，SQL必知必会的英文名叫做 Sams Teach Yourself in 10 Minutes。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Traefik 入手与简单配置</title><link>https://blog.zhequtao.com/posts/post/traefik-start/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/traefik-start/</guid><description>Traefik 与 nginx 一样，是一款反向代理的工具，至于使用他原因基于以下几点 + 漂亮的 dashboard 界面 + 可基于容器 label 进行配置 + 新添服务简单，不用像 nginx 一样复杂配置，并且不用频繁重启 + 对 prometheus 和 k8s 的集成 + 尝试一下... 接下来讲一下它的基本功能以及文件配置 安装 下载二进制文件，指定配置文件，直接执行可以启动。 当…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>常见系统调用</title><link>https://blog.zhequtao.com/posts/post/system-call/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/system-call/</guid><description>epoll pwait wait for an I/O event on an epoll file descriptor. + epoll pwait epoll ctl control interface for an epoll descriptor accept 4 accept a connection on a socket. + accept4 write write to a fi…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>typescript 高级技巧</title><link>https://blog.zhequtao.com/posts/post/ts-tips/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/ts-tips/</guid><description>用了一段时间的 之后，深感中大型项目中 的必要性，它能够提前在编译期避免许多 bug，如很恶心的拼写问题。而越来越多的 也开始使用 ，学习 已是势在必行。 以下是我在工作中总结到的比较实用的 技巧。 &lt;!--more-- 本文链接: &lt;https://blog.zhequtao.com/post/ts-tips/ 01 keyof 与 略有相似，只不过 取 的键。 假设有一个 如下所示，我们需要使…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>在 typescript/webpack 中配置 graphql-tag (即 import query.graphql)</title><link>https://blog.zhequtao.com/posts/post/typescript-graphql-webpackloader/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/typescript-graphql-webpackloader/</guid><description>graphql-tag 首先来说一说</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>当你所使用的三方包已经引用了模块 lodash.get，此时你再 npm i lodash.get 会增大打包体积吗</title><link>https://blog.zhequtao.com/posts/post/web/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/web/</guid><description>当你所使用的三方包已经引用了模块 ，此时你再 会增大打包体积吗 前端工程化 减小打包体积</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>deploy-drone</title><link>https://blog.zhequtao.com/posts/k8s/deploy-drone/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/deploy-drone/</guid><description>title: \&quot;k8s在github上易用轻量的持续集成方案: helm 结合 drone\&quot;</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>DNS 与服务发现</title><link>https://blog.zhequtao.com/posts/k8s/dns-based-service-discovery/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/dns-based-service-discovery/</guid><description>Service 与 DNS record 使用 nginx 配置域名访问</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>部署利器: helm</title><link>https://blog.zhequtao.com/posts/k8s/helm-legacy/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/helm-legacy/</guid><description>title: 部署利器 helm 安装以及使用指南 (helv v2/v3)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>部署利器: helm</title><link>https://blog.zhequtao.com/posts/k8s/helm/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/helm/</guid><description>title: helm 安装以及使用指南</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>在 kubernetes 上自动为你的域名配置 https</title><link>https://blog.zhequtao.com/posts/k8s/https/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/https/</guid><description>在 kubernetes 中自动为域名配置 https 随着 web 的发展， 对于现代网站来说是必不可少的。如果你想得到一个免费的证书，那么 Let&apos;s Encrypt 是一个不错的选择，它的主要目的是推进网站 的进程。 感谢 Let&apos;s Encrypt 的免费证书 借助 ，在 中为域名配置 将会变得非常简单，部署资源成功后在 中为 配置证书将会变得非常容易: 只需要在 Ingress 中多添加…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>k8s 实践</title><link>https://blog.zhequtao.com/posts/k8s/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/</guid><description>1. [kubernetes-2 小时安装及部署捷径](./install/kubernetes-2小时安装及部署捷径/2⼩小时躲坑k8s-⼤大型分布式集群环境捷径部署.md)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>在 k8s 中通过 Ingress 配置域名访问</title><link>https://blog.zhequtao.com/posts/k8s/ingress/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/ingress/</guid><description>使用 Ingress 进行域名访问 在上篇文章中我们已经使用 k8s 部署了第一个应用，此时我们可以使用 使它可以在互联网上可以被访问到 (当然你要有自己的域名并且指向正确) + 部署你的第一个应用: Pod，Application 与 Service 以下是官网搬用的关于 的一幅图，用以描述 Ingress 的作用。如果你对它一无所知，你可以把它理解为传统的 nginx，用以配置自己网站的域名使…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>k8s 中 docker 的安装与配置</title><link>https://blog.zhequtao.com/posts/k8s/install-docker/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/install-docker/</guid><description>在 k8s 支持的容器方案中除了 docker，还有其它容器方案 + CRI-O + Containerd 官方推荐的 docker 版本为: docker 18.06.2。在 k8s 的 master 与 node 节点都需要安装 docker。 安装 docker 在 centos 上安装 docker 的官方文档: &lt;https://docs.docker.com/install/linux…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>K8s-Install</title><link>https://blog.zhequtao.com/posts/k8s/install-kubeadm-login/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/install-kubeadm-login/</guid><description>date: 2019-07-13T11:09:57+08:00 kubectl 基础命令 kubectl get pods 是 k8s 最基本而且最常用的命令，类似于 。 此时获取所有的 pod，结果如下所示。我们发现 的状态在 状态，并没有运行起来。此时需要安装一个网络 Pod，参考下一个章节 RBAC 添加 Dashboard 没有什么比数据可视化更重要的事了，你可以安装 Dashboard …</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>install-kubeadm</title><link>https://blog.zhequtao.com/posts/k8s/install-kubeadm/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/install-kubeadm/</guid><description>title: 安装 kubeadm/kubelet/kubectl</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>搭建一个集群的主节点 (control-plane node)</title><link>https://blog.zhequtao.com/posts/k8s/install-master-node/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/install-master-node/</guid><description>主节点以前叫 ，现在官网称 。 使用 就可以很简单地搭建一个主节点。但是在搭建主节点过程中，有可能由于国内网络的原因而不得成功。所以本篇文章分为两部分 + 如果有网络问题，如何准备离线镜像 + 搭建主节点 准备离线镜像 如果你能够访问谷歌，则直接查看下一节：搭建主节点 在 节点执行命令，获取需要预先下载的镜像列表。 在 节点，把镜像列表存为 ，通过 与 批量下载镜像与打包。并通过 在代理节点与 m…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>安装 network pod: flannel</title><link>https://blog.zhequtao.com/posts/k8s/install-worker-node/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/install-worker-node/</guid><description>网络组件用以在 pod 间进行通信，再此之前，我们会发现 coredns 组件处于 Pending 状态。我们使用网络组件 flannel 来确保 coredns 的正常运行。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>kubectl create secret</title><link>https://blog.zhequtao.com/posts/k8s/k8s-cheatsheets/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/k8s-cheatsheets/</guid><description>+ docker-registry: 创建一个给 Docker registry 使用的 secret</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>安装k8s过程会遇到的linxu命令</title><link>https://blog.zhequtao.com/posts/k8s/linux-command/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/linux-command/</guid><description>安装 是一个技术活，其中涉及到很多在 上的命令行操作。在此之前，熟悉一些在 上的基本命令是必不可少的。 也可以反过来说 不了解这些命令你有可能寸步难行 。 以下是在安装过程中有可能会反复使用的命令 yum 是在 下的包管理工具 rsync 被用来与远程服务器间传送文件，与 类似，但 可以实现增量传送 如需要传输k8s所需要的镜像压缩包时: 首次打包了总共5个镜像为 k8s.tar，传输到目标节点。…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>在本地管理集群</title><link>https://blog.zhequtao.com/posts/k8s/local-kubectl/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/local-kubectl/</guid><description>关于本篇文章，你可以参考官方文档：[Configure Access to Multiple Clusters](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-cluster</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 k8s 部署你的第一个应用: Pod, Deployment 与 Service</title><link>https://blog.zhequtao.com/posts/k8s/pod/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/pod/</guid><description>当我们学习如何在 k8s 上部署应用时，部署一个简单的 nginx，能够访问到它的配置页面。由于它五脏俱全，功能简单，无状态，可以当做 k8s 部署应用的 hello, world。本篇文章将学习如何使用 Pod，Deployment 与 Service 开始部署第一个应用</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>安装 k8s 前的准备工作</title><link>https://blog.zhequtao.com/posts/k8s/prepare/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/prepare/</guid><description>关于 k8s 的安装可以参考: k8s 官方搭建文档 版本 + kubernetes v1.16 + docker 18.06.2-ce: 官方文档 推荐此版本 + centos 7 节点命名 以下两个节点(云服务器)作为 k8s 的一部分 + shanyue master 172.17.68.39 (2vCPU, 4G Mem) + shuifeng work 172.17.68.40 (2vC…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>部署 postgres</title><link>https://blog.zhequtao.com/posts/k8s/stateful-application/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/stateful-application/</guid><description>部署 postgres nfs PersistentVolume 与 PersistentVolumeClaim</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>K8s-Install</title><link>https://blog.zhequtao.com/posts/k8s/temp/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/k8s/temp/</guid><description>date: 2019-07-13T11:09:57+08:00 kubectl 基础命令 kubectl get pods 是 k8s 最基本而且最常用的命令，类似于 。 此时获取所有的 pod，结果如下所示。我们发现 的状态在 状态，并没有运行起来。此时需要安装一个网络 Pod，参考下一个章节 RBAC 添加 Dashboard 没有什么比数据可视化更重要的事了，你可以安装 Dashboard …</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>2019</title><link>https://blog.zhequtao.com/posts/record/2019/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/record/2019/</guid><description>&gt; 一声梧叶一声秋，一点芭蕉一点愁</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>2019总结与2020展望</title><link>https://blog.zhequtao.com/posts/record/2019review/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/record/2019review/</guid><description>转眼之间2019年就要过去了，又是到了写总结的时候了。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>2020</title><link>https://blog.zhequtao.com/posts/record/2020/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/record/2020/</guid><description>&gt; 可能2019是互联网行业有史以来最艰难的一年，也可能是未来十年里面最好的一年</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Leetcode前导篇</title><link>https://blog.zhequtao.com/posts/algorithm/leetcode/01/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/leetcode/01/</guid><description>1. [algorithm.yuanbin.me](https://algorithm.yuanbin.me/zh-hans/basicsdatastructure/linkedlist.html)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>复杂度分析</title><link>https://blog.zhequtao.com/posts/algorithm/leetcode/02/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/leetcode/02/</guid><description>我刚才说了，大 O 这种复杂度表示方法只是表示一种变化趋势。我们通常会忽略掉公式中的常量、低阶、系数，只需要记录一个最大阶的量级就可以了。所以，我们在分析一个算法、一段代码的时间复杂度的时候，也只关注循环执行次数最多的那一段代码就可以了。这段核心代码执行次数的 n 的量级，就是整段要分析代码的时间复</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>排序算法</title><link>https://blog.zhequtao.com/posts/algorithm/leetcode/03/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/leetcode/03/</guid><description>数组排序函数 sort 底层实现分析</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>查找算法</title><link>https://blog.zhequtao.com/posts/algorithm/leetcode/04/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/leetcode/04/</guid><description>二分查找案例剖析：IP地址对应城市查询</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>散列表</title><link>https://blog.zhequtao.com/posts/algorithm/leetcode/05/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/leetcode/05/</guid><description>散列函数设计与散列冲突处理</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>字符串匹配</title><link>https://blog.zhequtao.com/posts/algorithm/leetcode/06/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/leetcode/06/</guid><description>BF算法（最简单、最暴力的匹配算法）</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>图</title><link>https://blog.zhequtao.com/posts/algorithm/leetcode/08/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/leetcode/08/</guid><description>图的存储（邻接矩阵、邻接表）</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>二叉树</title><link>https://blog.zhequtao.com/posts/algorithm/leetcode/07/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/leetcode/07/</guid><description>二叉树的创建和存储（数组、链表）</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>数据结构应用</title><link>https://blog.zhequtao.com/posts/algorithm/leetcode/09/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/leetcode/09/</guid><description>在 O(1) 时间删除链表结点</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>常用算法篇</title><link>https://blog.zhequtao.com/posts/algorithm/leetcode/10/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/leetcode/10/</guid><description>对公司员工年龄进行排序（快速排序）</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>11</title><link>https://blog.zhequtao.com/posts/algorithm/leetcode/11/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/leetcode/11/</guid><description>斐波那契数列应用：青蛙跳台阶算法</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>知识点</title><link>https://blog.zhequtao.com/posts/algorithm/%E5%AE%9E%E9%AA%8C%E6%A5%BC/day01-%E6%95%B0%E7%BB%84%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/%E5%AE%9E%E9%AA%8C%E6%A5%BC/day01-%E6%95%B0%E7%BB%84%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/</guid><description>从本实现开始我们将进入到 Golang 的学习之旅，Golang 的许多初学者都会对数组 (Array) 与切片 (Slice) 感到困惑。他们虽然同属于集合类的类型，但是用起来却十分不同。在本节实验中，你将学习到数组与切片到底是哪里不同，这里也是 Golang 面试中的一个常考知识点。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>知识点</title><link>https://blog.zhequtao.com/posts/algorithm/%E5%AE%9E%E9%AA%8C%E6%A5%BC/day02-%E6%A0%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/algorithm/%E5%AE%9E%E9%AA%8C%E6%A5%BC/day02-%E6%A0%88/</guid><description>在本次实验中，我们将从栈的定义开始，先实现一个栈的数据结构，然后再实现栈的基本操作。最后通过实现两个栈的常见的应用场景。通过这种由浅入深的实验方式，加深大家对于栈这个数据结构的理解。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>ansible 自动化运维指南</title><link>https://blog.zhequtao.com/posts/content/op/ansible-guide/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/ansible-guide/</guid><description>ansible 简易入门 使用 ansible 可以进行批量配置，批量安装软件，省了一大部分繁琐的重复工作，提高了管理服务器的效率。 本章介绍如何使用 的安装以及关于 的基本功能。建议拥有云服务器的同学都可以学习一下 &lt;!--more-- + 原文链接: 使用 ansible 做自动化运维 + 系列文章: 服务器运维笔记 自动化运维的必要性 我现在有两个云服务器用来瞎折腾，装的都是 centos …</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>带着问题学习 ansible</title><link>https://blog.zhequtao.com/posts/content/op/ansible-problem/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/ansible-problem/</guid><description>ansible 中的细节问题 如何更快地学习某门技术？ + 学习示例，比如 ansible 可以查看 ansible/ansible-examples + 带着问题来思考 于是我总结了在我初学 ansible 时所带的一些疑问 当某个 task 执行错误时不中断操作 添加参数 如何根据 task 执行结果来作为分支条件 使用 监听当前任务执行结果， 作为分支条件 使用 git，file 等模块比直…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 ansible 批量管理 ssh key</title><link>https://blog.zhequtao.com/posts/content/op/ansible-ssh/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/ansible-ssh/</guid><description>假设你在某个云服务器厂商新入手了10台linux服务器作为生产环境，它们被命名为 shanyue01-shanyue10，此时需要他们能够互相登录，应该怎么做？</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>github 上持续集成方案 drone 的简介及部署</title><link>https://blog.zhequtao.com/posts/content/op/deploy-drone/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/deploy-drone/</guid><description>drone.ci 简介及部署 一般小型公司的持续集成方案会选择: + ，当然部分公司也会选择 。 选择 的原因很简单，因为使用了 作为代码托管平台。那为什么选择了 作为代码托管呢， 是免费版(社区版)，对于昂贵的 toB 软件来说，一家公司至少省了几十万的开销，而且支持自建平台，搭在自家的服务器中，安全性得到了保证。 而对比 的同一类产品，世界最大的同性社交网站 来说，随着微软的收购， 也越来越开…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 ctop 监控容器指标</title><link>https://blog.zhequtao.com/posts/content/op/ctop/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/ctop/</guid><description>使用 ctop 监控容器指标 如果你经常在 下工作，那你肯定对 以及它的增强版 非常熟悉。如果说 是管理进程的，而 则是管理容器的。 安装 在 下安装 命令使用 直接使用 进入容器指标可视化界面 当进入指标可视化界面后，可以使用快捷键进行筛选，排序，检索 + ，退出或者返回上一级 + ，同vi，上下移动 + ，展示所有容器 + ，查看某一容器日志 + ，对所有容器进行筛选 + ，查看单个容器状态 …</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>在阿里云OSS托管你的个人网站</title><link>https://blog.zhequtao.com/posts/content/op/deploy-fe-with-alioss/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/deploy-fe-with-alioss/</guid><description>在阿里云OSS托管你的个人网站 即 ，对象存储服务。我们可以通过阿里云的 来托管自己的前端应用，个人网站或者博客 在 使用 netlify 托管你的前端应用 中我也介绍到另一种专业的网站托管服务平台 。那相比 ，阿里云的 oss 有什么好处呢？只有一个，网络问题，并且可以结合阿里云的CDN使用。 如果你的域名已经备案，且执着于网络时延，推荐在阿里云的 部署你的应用。你可以直接在阿里云官网购买 ， …</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何使用 docker 高效部署前端应用</title><link>https://blog.zhequtao.com/posts/content/op/deploy-fe-with-docker/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/deploy-fe-with-docker/</guid><description>docker 变得越来越流行，它可以轻便灵活地隔离环境，进行扩容，方便运维管理。对开发者也更方便开发，测试与部署。这里介绍如何使用 Docker 部署前端应用。千里之行，始于足下，足下的意思就是，先让它能够跑起来。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 netlify 托管你的前端应用</title><link>https://blog.zhequtao.com/posts/content/op/deploy-fe-with-netlify/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/deploy-fe-with-netlify/</guid><description>netlify 可以为你的静态资源做托管，就是说它可以托管你的前端应用，就像 github page 那样。不过，它不又只像 github page 那么功能单一。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>后端部署演化史</title><link>https://blog.zhequtao.com/posts/content/op/deploy-fe/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/deploy-fe/</guid><description>后端一说起刀耕火种，那肯定紧随着后端工程化这一话题。随着 / / ， ， ， ， 以及 的发展，后端已经在逐渐替代过去 引 开发的方式了，掀起了工程化这一大浪潮。得益于工程化的发展与开源社区的良好生态，后端应用的可用性与效率得到了很大提高。 后端以前是刀耕火种，那后端应用部署在以前也是刀耕火种。那后端应用部署的发展得益于什么，随后端工程化带来的副产品？ 这只是一部分，而更重要的原因是 的崛起。 为…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 dnsmasq 为内部集群搭建本地 DNS 服务器</title><link>https://blog.zhequtao.com/posts/content/op/dnsmasq/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/dnsmasq/</guid><description>搭建集群内部 DNS 服务器 当我们使用 反向代理和自动服务发现后，我们对集群内部的服务分为两类 1. 公有服务。如我的博客，网站，以及为它们提供服务的 API。我们可以通过公有的域名去映射服务使得外网能够访问，如通过我自己的域名 与 。 1. 私有服务。如 ， ， ， 以及自己实现的不公开的私有服务。我们可以通过自建 DNS 服务器，来对这些域名进行访问。如 做 来映射到内部集群的网关入口 (当…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 docker 部署异常监控服务 Sentry</title><link>https://blog.zhequtao.com/posts/content/op/deploy-sentry/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/deploy-sentry/</guid><description>异常监控服务 Sentry 部署 Sentry 是一个使用 python 写的异常监控服务，并有支持很多语言的 SDK。 这里有官方部署文档和 compose file: getsentry/onpremise 在当前部署 sentry 时 (2019/06/20)，文档处于这个 commit 的位置 ae39a6 虽然每次部署服务时的首选是看看有没有官方以及社区 star 较多的 compose…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 docker/docker-compose/k8s/helm 部署 postgres</title><link>https://blog.zhequtao.com/posts/content/op/deploy-postgres/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/deploy-postgres/</guid><description>使用 helm 部署 postgres 前置知识 + 部署</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>docker compose 简易入门</title><link>https://blog.zhequtao.com/posts/content/op/docker-compose/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/docker-compose/</guid><description>docker compose 简易入门 当我们通过了解 docker 简易入门 本篇文章后，想必此时我们已经可以基于 镜像创建一个最简单的容器：启动一个最简单的 http 服务 其中有诸多参数命令 + : 启动一个 进程 + : 为容器指定名称 + : 宿主机与容器端口映射，方便容器对外提供服务 + : 基于该镜像创建容器 这还只是一个简单的 的容器，如果有更多的容器那应该如何管理呢？ 使用 来编…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>docker 简易入门</title><link>https://blog.zhequtao.com/posts/content/op/docker/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/docker/</guid><description>docker 简易入门 使应用部署更加轻量，可移植，可扩展。更好的环境隔离也更大程度地避免了生产环境与测试环境不一致的巨大尴尬。由于 轻便可移植的特点也极大促进了 的发展。 &lt;!--more-- + 原文链接: docker简易入门 + 系列文章: 个人服务器运维指南 术语 的架构图如下 从图中可以看出几个组成部分 + : 即 命令行工具 + : 宿主机， 的运行环境服务器 + : 的守护进程， …</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>dockerfile 最佳实践</title><link>https://blog.zhequtao.com/posts/content/op/dockerfile-practice/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/dockerfile-practice/</guid><description>Dockerfile 最佳实践 Dockerfile 最佳实践已经出现在官方文档中，地址在 Best practices for writing Dockerfiles。如果再写一份最佳实践，倒有点关公门前耍大刀之意。因此本篇文章是对官方文档的翻译，理解，扩展与示例补充 &lt;!--more-- + 原文地址: dockerfile 最佳实践 + 系列文章: 个人服务器运维指南 如果本篇文章能够对你有…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>git 安装及基本配置</title><link>https://blog.zhequtao.com/posts/content/op/git/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/git/</guid><description>git 基本上来说是开发者必备工具了，在服务器里没有 git 实在不太能说得过去。何况，没有 git 的话，面向github编程 从何说起，如同一个程序员断了左膀右臂。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>github actions 入门指南及博客部署实践</title><link>https://blog.zhequtao.com/posts/content/op/github-action-guide/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/github-action-guide/</guid><description>CI/CD 已经是大势所趋，而对于普通开发者甚至小公司可以先从 github actions 始感受 CI/CD 的魅力。本文浅显易懂，并且以博客部署作为实践，对于广大开发者更为友好。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用免费服务搭建一个博客</title><link>https://blog.zhequtao.com/posts/content/op/if-you-want-a-blog/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/if-you-want-a-blog/</guid><description>如果你只想搭建一个博客，那么你很可能不需要一个服务器</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>当我有服务器时我做了什么 · &lt;small&gt;个人服务器运维指南&lt;/small&gt;</title><link>https://blog.zhequtao.com/posts/content/op/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/</guid><description>去年我写了一篇文章: [当我有一台服务器时做了什么](https://blog.zhequtao.com/op/when-server.html)。当时为了不至于浪费我在阿里云低价优惠买的服务器，于是使用 docker 跑了一个应用，并参照我司的技术架构搭建了相关的基础设施。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>服务器登录配置</title><link>https://blog.zhequtao.com/posts/content/op/init/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/init/</guid><description>当刚拥有服务器后，首先需要登录服务器，本节主要有以下三个实践操作：快速登录，免密登录，禁用密码。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>导读</title><link>https://blog.zhequtao.com/posts/content/op/introduction/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/introduction/</guid><description>随着 PaaS 的流行， 没有钱没有服务器也可以作很多事情。如</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 jq 与 sed 制作掘金面试文章榜单</title><link>https://blog.zhequtao.com/posts/content/op/jq-sed-case/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/jq-sed-case/</guid><description>jq 是一款命令行的 json 处理工具。类似于 lodash 一样，它可以对 json 做各种各样的处理，如 pick，get，filter，sort，map</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>awk 命令使用及示例</title><link>https://blog.zhequtao.com/posts/content/op/linux-awk/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/linux-awk/</guid><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>linux 的 cpu/memory/process 等各项监控指标小记</title><link>https://blog.zhequtao.com/posts/content/op/linux-monitor/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/linux-monitor/</guid><description>自开始负责生产环境部署，中间遇到了若干线上环境内存以及CPU的问题。由于微服务以及容器的流行，现在已经可以很方便的使用 K8s + prometheus + grafana + alert 的方式进行监控，这足以覆盖大部分场景。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>sed 命令详解及示例</title><link>https://blog.zhequtao.com/posts/content/op/linux-sed/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/linux-sed/</guid><description>sed 是一个用来筛选与转换文本内容的工具。一般用来批量替换，删除某行文件。如果想在 mac 中使用 sed，请使用 gsed 代替，不然会被坑</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>jq 命令详解及示例</title><link>https://blog.zhequtao.com/posts/content/op/jq/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/jq/</guid><description>jq 是一款命令行的 json 处理工具。类似于 lodash 一样，它可以对 json 做各种各样的处理，如 pick，get，filter，sort，map</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>tcpdump 命令详解及示例</title><link>https://blog.zhequtao.com/posts/content/op/linux-tcpdump/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/linux-tcpdump/</guid><description>sed 是一个用来筛选与转换文本内容的工具。一般用来批量替换，删除某行文件。如果想在 mac 中使用 sed，请使用 gsed 代替，不然会被坑</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 openvpn 与集群内部服务通信</title><link>https://blog.zhequtao.com/posts/content/op/openvpn/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/openvpn/</guid><description>当我们访问集群内部服务，如数据库，缓存，traefik Dashboard，gitlab 时，如果直接暴露在公网中，则会造成很大安全隐患，而使用 Basic Auth 等也不能完全避开问题。此时在开发环境使用 Virtual Private Network 连接集群是一个不错的选择</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>serverless</title><link>https://blog.zhequtao.com/posts/content/op/serverless/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/serverless/</guid><description>+ [accountid](https://account.console.aliyun.com/?#/secure)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>ssh public key 与 github 的配置</title><link>https://blog.zhequtao.com/posts/content/op/ssh-setting/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/ssh-setting/</guid><description>ssh keygen 生成非对称加密中的 public-key 与 private-key，并把 publick-key 扔到 github 上。与上篇文章配置服务器免登陆一样的步骤。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>linux 基础信息查看以及相关命令</title><link>https://blog.zhequtao.com/posts/content/op/system-info/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/system-info/</guid><description>关于云服务器系统的基础信息一般在购买时就有标明，至于一些资源的使用在云服务器服务商的控制台上也有相应的监控，如果你对监控有更细致化的需求，采用 node exporter + cadvisor + prometheus + grafana 也可以做地更为精细。但是最重要的是: 你要了解哪些指标，以及它们如何在服务器上用命令敲出来</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>终端复用神器 tmux 简介配置及高频操作</title><link>https://blog.zhequtao.com/posts/content/op/tmux-setting/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/tmux-setting/</guid><description>tmux 是一个终端复用器，这也是它命名的由来 t(terminal) mux(multiplexer)，你可以在一个屏幕上管理多个终端！</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>traefik 简易入门</title><link>https://blog.zhequtao.com/posts/content/op/traefik/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/traefik/</guid><description>Traefik 简易入门 与 一样，是一款优秀的反向代理工具，或者叫 。至于使用它的原因则基于以下几点 + 无须重启即可更新配置 + 自动的服务发现与负载均衡 + 与 的完美集成，基于 的配置 + 漂亮的 界面 + 的支持，对 和 的集成 接下来讲一下它的安装，基本功能以及配置。 在 与 版本间差异过大，本篇文章采用了 &lt;!--more-- + 原文链接: Traefik: 更好用更简单的反向代理…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>vim 高频操作，常用配置与插件简介</title><link>https://blog.zhequtao.com/posts/content/op/vim-setting/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/vim-setting/</guid><description>当你有一个服务器，或者运维若干服务器时，没有什么比不够熟练 vim 更让人难受和窝心的事情了。而在各种编辑器中 vim 模式也大受欢迎。因此，学习 vim 是很有必要的。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>当我有一台服务器时我做了什么</title><link>https://blog.zhequtao.com/posts/content/op/when-server-2019/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/when-server-2019/</guid><description>当我有一台服务器时我做了什么 当一八年末的时候，我写了一篇文章 当我有一台服务器时我做了什么 又是年末，我服务器的架构也发生了一些变化，因此总结一番 &lt;!--more-- + 原文地址: 当我有一台服务器时我做了什么 + 系列文章: 当我有一台服务器时我做了什么 概览 去年服务器有两台，一台 2C4G，一台 1C2G 今年服务器有三台，以以下名称作为 ，配置如下 + : 1C2G，不到一百块钱。用…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>当我有一台服务器时我做了什么</title><link>https://blog.zhequtao.com/posts/content/op/when-server/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/content/op/when-server/</guid><description>记于一八年末 + 原文地址: 当我有一台服务器时我做了什么 + 系列文章: 当我有一台服务器时我做了什么 前端调研 刚开始调研服务器渲染写了一个 demo，正好对诗词感兴趣，就做了一个关于诗词的站点，越写越大，demo 变成了 DEMO，总的来说还是特别简单。随手挂到了服务器下。 &lt;!--more-- 技术栈 👉 + + + + 网址如 👉 诗词弦歌 后来又把自己的博客挂了上去 👉 按人均的…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Golang系列文章</title><link>https://blog.zhequtao.com/posts/golang/go-new/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/</guid><description>Go语言也称 Golang，兼具效率、性能、安全、健壮等特性。这套Go语言教程（Golang教程）通俗易懂，深入浅出，既适合没有基础的读者快速入门，也适合工作多年的程序员查阅知识点。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>项目介绍</title><link>https://blog.zhequtao.com/posts/golang/go-questions/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/</guid><description>- 个人博客：https://qcrao.com</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>[翻译] Grid 布局完全指南</title><link>https://blog.zhequtao.com/posts/post/grid-guide/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/grid-guide/</guid><description>JSON Web Token 是 [rfc7519](https://tools.ietf.org/html/rfc7519) 出的一份标准，使用 JSON 来传递数据，用于判定用户是否登录状态。jwt 之前，使用 session 来做用户认证。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 Grid 进行常见布局</title><link>https://blog.zhequtao.com/posts/post/grid-layout-common-usage/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/grid-layout-common-usage/</guid><description>grid 布局是W3C提出的一个二维布局系统，通过 display: grid 来设置使用，对于以前一些复杂的布局能够得到更简单的解决。本篇文章通过几个布局来对对 grid 布局进行一个简单的了解。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 Postman 做 API 自动化测试</title><link>https://blog.zhequtao.com/posts/post/postman-for-api-automated-testing/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/postman-for-api-automated-testing/</guid><description>Postman 最基本的功能用来重放请求，并且配合良好的 `response` 格式化工具。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>关于 http 缓存的一个小问题以及引发的思考</title><link>https://blog.zhequtao.com/posts/post/a-problem-about-http-cache/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/a-problem-about-http-cache/</guid><description>本文地址 http://blog.zhequtao.com/post/a-problem-about-http-cache/ 问题回顾 前几天，写了一篇博客，浏览器中的二进制，其中总结了一张图。 &lt;!--more-- 后来，我对图片做了一些更改，又发布了上去。这时候问题出现了，图片没有更新！ 比没有缓存更严重的问题是缓存了不该缓存的东西！ 我研究了下该图片的 Request/Response 信息…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>记录一个有关 curl 和 tar 的小问题</title><link>https://blog.zhequtao.com/posts/post/a-problem-with-tar-and-curl/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/a-problem-with-tar-and-curl/</guid><description>这是我今天在工作时遇到的一个有关解压的问题，先还原下问题 今天在解压一个压缩包时解压失败，以下是命令以及失败提示 这里首先提示，造成这个问题的原因以及解决方案很简单，对你很有可能没有借鉴意义。不过寻找原因的过程以及从这个问题上学到的东西还是有点意思的。 &lt;!--more-- 本文链接 &lt;https://blog.xiange.tech/post/a-problem-with-tar-and-cur…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>由 GraphQL 来思考 API Design</title><link>https://blog.zhequtao.com/posts/post/api-design-inspire-by-graphql/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/api-design-inspire-by-graphql/</guid><description>他山之石可以攻玉。qraphql 一些天然的设计或者思想对写 Rest API 有很大的借鉴或参考意义。这里总结下一些受启发的 API 设计规范。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浏览器中的二进制以及相关转换</title><link>https://blog.zhequtao.com/posts/post/binary-in-frontend/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/binary-in-frontend/</guid><description>浏览器，或者前端更多处理的是 View 层，即 `UI = f(state)`，状态至界面的转化。但是也有很多关于二进制的处理，如下载 Excel，文档生成 PDF，对多个文件打包下载。本篇文章总结了浏览器端的二进制以及之间的转化，如 ArrayBuffer 转 Blob，Base64 转 TypedArray 等等</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>关于 canal 的安装以及配置</title><link>https://blog.zhequtao.com/posts/post/canal-binlog-to-kafka/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/canal-binlog-to-kafka/</guid><description>最近在公司的测试环境搭了一套 canal 用以同步 mysql 的 binlog。环境搭建步骤如下，和官方文档无异，权作记录 &lt;!--more-- 安装 在 &lt;https://github.com/alibaba/canal/releases 中选择最新的安装包进行下载 配置 修改数据库以及如何与Topic对应的配置 修改 kafka 的配置 更多详细内容参考官方文档 Canal Kafka Ro…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>网站域名更换记录以及一系列衍生问题</title><link>https://blog.zhequtao.com/posts/post/domain-update-record/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/domain-update-record/</guid><description>博客域名更换记录以及衍生问题解决方案 拖延了半年后，我终于在最近把我的域名 &lt;https://blog.zhequtao.com 通过了备案，趁此对我的域名进行更换: 由 &lt;https://blog.xiange.tech 更换到了 &lt;https://blog.zhequtao.com 如果刚开始就使用新域名，倒是很简单。但是更换域名就需要做一些额外的琐碎的东西了，如 https，反向代理，SEO…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>春天的花与诗词</title><link>https://blog.zhequtao.com/posts/post/flower-in-spring/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/flower-in-spring/</guid><description>春天的花与诗词 春花秋月何时了 美好的东西往往易逝 正因过于美好，过于短暂，才有惜花，伤春之说。也成了旧日不再的意象。 迎春 花有重开日，人无再少年。 梅花与腊梅 迎春与连翘 黄花翠蔓无人愿，浪得迎春世上名。 黄花，翠蔓，三出叶。是迎春最明显的特征。 桃花 去年今日此门中，人面桃花相映红。 人面不知何处去，桃花依旧笑春风。 樱花 大部分人分不清樱花与桃花，若把染井吉野与白山桃放在一起 ，他们绝不会…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>flutter 入门指南</title><link>https://blog.zhequtao.com/posts/post/flutter-guide/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/flutter-guide/</guid><description>flutter flutter 的出现不得不说是激动人心的，你可以以 React-Style 的方式写多端应用。而相比 RN 而言，它自身的版本迭代也比较积极。 &lt;!--more-- 前言 开发系统 我在 MacOS 上进行开发 shell 我的 shell 是 ，配置文件在 。如果你们的是 + mobile - android + 基础 - 前端 css 与 react 建议跟着目录走 翻译 +…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>从数据库到前端，使用 enum 代替 constant number</title><link>https://blog.zhequtao.com/posts/post/constant-db-to-client/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/constant-db-to-client/</guid><description>在我经历过的几个以node为主的后端项目中，都有一个文件 。顾名思义，里边保存着各种常量，而大多是字符串与数字的对应关系。 但是在实际工作中，根据数字来调试相当费劲，先不说后端代码中 这种可避免的神奇操作。(PS: 虽然我在吐槽它，但是有时我也会犯，给后来不熟悉业务者一脸懵逼...)。在数据库中查询也会遇到一些问题。 &lt;!--more-- 记得在我们数据库中，有一个用户表，其中一个字段 中 1和2…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>GraphQL 开发指南</title><link>https://blog.zhequtao.com/posts/post/graphql-guide/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/graphql-guide/</guid><description>单文件管理 与 如下，在单文件中定义 与其在 以及 中对应的查询。并把 与 集中管理。 按需取数据库字段 使用 可以按需查询，并注入到 函数中的 字段 分页 对列表添加 以及 参数来进行分页 数据库层解决 N+1 查询问题 使用 dataloader-sequelize 解决数据库查询的 batch 问题 当使用以下查询时，会出现 N+1 查询问题 如果不做优化，生成的 如下 而使用 解决 N+1…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用十行 React 代码实现一个关键字高亮组件</title><link>https://blog.zhequtao.com/posts/post/highlight-in-react/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/highlight-in-react/</guid><description>最近遇到了一个小问题： 一串长文本，一个关键词数组，对长文本中的关键词进行高亮。 最后实现效果如下： &lt;https://shici.xiange.tech/poems/l0c0leh93v8 &lt;!--more-- 使用 js 实现高亮函数 取巧一点方法，可以对长文本中的关键字进行替换，使之包装在一个标签下，为标签添加高亮样式。 为了更好地语义化，对关键词高亮应该使用什么 html 标签呢？ 使用 …</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>带你了解最新的Golang市场行情</title><link>https://blog.zhequtao.com/posts/post/jobs-golang/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/jobs-golang/</guid><description>带你了解最新的Golang市场行情 项目地址：https://github.com/ChinaArJun/LagouColly 如果对你有所帮助，欢迎 Star。 目标 在工作中 Golang 已是一份子，想让大家了解一下 Golang 的市场行情，也想让更多的人熟悉它。因此主要是展示数据分析的结果，城市分别为 北京、上海、广州、深圳、杭州、成都、重庆、武汉、杭州、长沙、西安、南京、厦门，再得出一…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>JS 调试示例</title><link>https://blog.zhequtao.com/posts/post/js-debug-examples/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/js-debug-examples/</guid><description>在写 node 应用或者 react 应用时，经常需要看一些库的源码，而在看源码时，除了一个顺手的 IDE 外，学会调试也至关重要。因此，我把常见的调试的一些小问题记录下来。 &lt;!--more-- + 本文链接: &lt;https://blog.zhequtao.com/post/js-debug-examples/ Return Value 如何通过调试获取函数的返回值 当函数返回的是一个表达式时，…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>You-Dont-Know-JS 疑难汇总</title><link>https://blog.zhequtao.com/posts/post/js-puzzles/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/js-puzzles/</guid><description>最近我看了 You-Dont-Know-JS 的两个小册，在看书的过程中，为了方便以后索引与更深入的了解，也为了避免遗忘，我对每一册的较为复杂的点做了总结，编辑如下</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>jwt 实践邮件验证与登录</title><link>https://blog.zhequtao.com/posts/post/jwt-and-verifycode/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/jwt-and-verifycode/</guid><description>去年我写了一篇介绍 的文章。 文章指出如果没有特别的用户注销及单用户多设备登录的需求，可以使用 jwt，而 jwt 的最大的特征就是无状态，且不加密。 除了用户登录方面外，还可以使用 jwt 验证邮箱验证码，其实也可以验证手机验证码，但是鉴于我囊中羞涩，只能验证邮箱了。 另外，我已在我的试验田进行了实践，不过目前前端代码写的比较简陋，甚至没有失败的回馈提示。至于为什么前端写的简陋，完全是因为前端的…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>kafka 从入门到入门</title><link>https://blog.zhequtao.com/posts/post/learning-kafka/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/learning-kafka/</guid><description>最近工作中需要使用到 ，基于 的 与 的 把数据发布到 。 另外一大用途主要用作消息中间件，虽然没有在业务系统中使用它作为消息队列，但这也是一个令人心动的功能。趁此契机，从环境搭建，系统原理，到生产使用再系统过一遍 。 &lt;!--more-- 术语 + Stream 先把它理解成数据。 + Topic 类似于数据库的一个表，数据流 record 的集合。对于它的每一条记录都有 key，value 和…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>scala 入门指南</title><link>https://blog.zhequtao.com/posts/post/learning-scala/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/learning-scala/</guid><description>前言 环境 如果你正在学习或者只想敲几个示例，那么强烈推荐 Scastie，一个嵌在浏览器中的线上编辑器。 如果你更喜欢 REPL 环境在自己的 scala shell 中学习和测试，则需要首先安装 sbt，使用 sbt 进入 scala shell。 &lt;!--more-- 安装 sbt sbt 用来创建，编译，测试且运行 scala 项目。这里介绍如何安装它。 注意：安装 sbt 依赖于 jav…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>spark 入门指南</title><link>https://blog.zhequtao.com/posts/post/learning-spark/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/learning-spark/</guid><description>搭建环境 在 &lt;https://spark.apache.org/downloads.html 页面选择适合版本的 并进行下载。此处演示下载的是 2.4.1 版本 &lt;!--more-- Spark Shell 在当前路径下，使用命令 进入 spark-shell 此时，有几个全局变量需要解释一下，可以直接在 中使用 + 指 + 指 关于 的基本语法，参考我的另一篇文章 Dataset 是 中指对象…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Index</title><link>https://blog.zhequtao.com/posts/post/learning-zookeeper/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/learning-zookeeper/</guid><description>date: 2019-04-11T11:38:43+08:00</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用纯 CSS 实现仿 Material Design 的 input 过渡效果</title><link>https://blog.zhequtao.com/posts/post/login-input-style/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/login-input-style/</guid><description>以前一段时间，基于对 与 的调研，再加上本人的兴趣，我做了一个站点，也作为我以后各种技术折腾，实践以及兴趣交汇的试验田。 最近我需要在我的实验田使用 实践校验码的功能。校验码，就是指注册时邮箱或者短信的校验码。需要校验码则需要有登录注册，而在登录注册时，为了多写一些 CSS，我决定实现一个 Material Design 的表单过渡效果。 实现效果见 诗词弦歌 - 登录 开始之前，你先看看是否认识…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Node-Cls</title><link>https://blog.zhequtao.com/posts/post/node-cls/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/node-cls/</guid><description>date: 2019-06-26T14:36:10+08:00</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>异常监控服务 Sentry 的部署</title><link>https://blog.zhequtao.com/posts/post/op/sentry-install/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/op/sentry-install/</guid><description>Sentry 是一个使用 python 写的异常监控服务，并支持很多语言的 SDK。 在 github 上有官方的部署文档和 compose file: getsentry/onpremise 在当前部署 sentry 时 (2019/06/20)，文档处于这个 commit 的位置 &lt;https://github.com/getsentry/onpremise/tree/ae39a61d4d8a…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>postgres 使用 WAL</title><link>https://blog.zhequtao.com/posts/post/postgres-wal-log/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/postgres-wal-log/</guid><description>什么是 WAL (Write Ahead Logging) 简而言之，postgres 会对每次写操作记一次日志，日志的集合。 WAL 用于保证数据的完整性 (Integrity)，根据它的完整性特点，它可以用作以下方面 + 备份恢复 + 主机 开启 WAL wal level=archive archive mode=on 查看 WAL WAL 日志位于 postgres 数据文件的 ,nf 参…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>邮件发送，限流，漏桶与令牌桶算法</title><link>https://blog.zhequtao.com/posts/post/rate-limit/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/rate-limit/</guid><description>前段时间，我使用了 jwt 来实现邮箱验证码的校验与用户认证与登录，还特别写了一篇文章作为总结。 在那篇文章中，提到了一个点，如何限速。 在短信验证码和邮箱验证码，如果不限速，被恶意攻击造成大量的 QPS，不仅拖垮了服务，也会心疼如水的资费。鉴于君子固穷的原则，在我的邮箱服务里加上限速。 关于如何限速，有两个比较出名的算法，漏桶算法与令牌桶算法，这里对其简单介绍一下，最后再实践在我发邮件的API中…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 requestId 标记全链路日志</title><link>https://blog.zhequtao.com/posts/post/requestid-and-tracing/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/requestid-and-tracing/</guid><description>标记全链路日志有助于更好的解决 bug 和分析接口性能，本篇文章使用 来作为示例 &lt;!--more-- + 代码示例 + 本文地址 + github 当一个请求到来时，会产生哪些日志 + 本次请求报文 + 本次请求涉及到的数据库操作 + 本次请求涉及到的缓存操作 + 本次请求涉及到的服务请求 + 本次请求所遭遇的异常 + 本次请求执行的关键函数 + 本次请求所对应的响应体 如何查询本次从请求到响应…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 sbt 配置管理与运行</title><link>https://blog.zhequtao.com/posts/post/sbt-get-started/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/sbt-get-started/</guid><description>关于安装，参考上一篇文章 启动 shell 首先创建项目目录，并创建一个 sbt 文件 启动 sbt shell，在 shell 中可以使用 查看命令帮助 在 shell 中使用 命令或者 Ctrl+D 退出 退出 shell 后，文件目录已发生了改变，我们使用 查看一下文件目录，这里的 代表打印目录层级深度为5。 如果你没有安装 ，可以使用 ，不过可读性和美观度就差了很多了。 hello, wo…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>node 中 stream 的使用</title><link>https://blog.zhequtao.com/posts/post/node-stream/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/node-stream/</guid><description>在学习 node 的 之前，先抛出一个问题 如何找到所有 node 的进程？ 我们一般会使用以下命令来解决这个问题 其中，它运行了 和 两个进程，它们之间通过 来衔接输入输出，而 就是管道 ( )。 pipe (管道) 可以把源数据从一端导向另一端 Readable</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 Spark 进行流处理</title><link>https://blog.zhequtao.com/posts/post/spark-streaming-programming/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/spark-streaming-programming/</guid><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 Let&apos;s Encrypt 为 Traefik 制作证书并自动续期</title><link>https://blog.zhequtao.com/posts/post/traefik-https/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/traefik-https/</guid><description>前言 你需要在 github 上找到 并下载安装 + certbot-auto 手动 DNS 在 dns-plugins 中选择 。 &lt;https://certbot-dns-cloudflare.readthedocs.io/en/stable/ &lt;https://dash.cloudflare.com/sign-up 自动续期 列出证书列表 ./certbot-auto certificate…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>vim 快速入门</title><link>https://blog.zhequtao.com/posts/post/vim-quick-start/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/post/vim-quick-start/</guid><description>以下是能够在零配置下快速使用 vim 的一系列步骤，只需要多加练习，便能快速熟练使用 vim。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Requests 源码阅读-Day1</title><link>https://blog.zhequtao.com/posts/python/requests%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/requests-%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB-day1/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/requests%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/requests-%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB-day1/</guid><description>requests是一个Python的网络请求库，和urllib、httplib之流相比起来最大的优点就是好用，requests官方标榜的就是“我们的库是给人用的哦”。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Requests 源码阅读-Day2</title><link>https://blog.zhequtao.com/posts/python/requests%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/requests-%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB-day2/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/requests%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/requests-%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB-day2/</guid><description>tests/testrequests.py</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Requests 源码阅读-Day4</title><link>https://blog.zhequtao.com/posts/python/requests%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/requests-%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB-day4/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/requests%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/requests-%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB-day4/</guid><description>调用了OrderedDict方法，这个方法在头声明过</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Requests 源码阅读-Day3</title><link>https://blog.zhequtao.com/posts/python/requests%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/requests-%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB-day3/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/requests%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/requests-%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB-day3/</guid><description>继续前面的分析，来到了hook这部分</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Requests 源码阅读-Day5</title><link>https://blog.zhequtao.com/posts/python/requests%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/requests-%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB-day5/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/requests%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/requests-%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB-day5/</guid><description>Session对象实例化后指向session，接着调用了其内部方法request：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>pytest 学习笔记</title><link>https://blog.zhequtao.com/posts/python/requests%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/pytest-%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/requests%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/pytest-%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</guid><description>pytest是python的一种单元测试框架</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第10章-序列的修改、散列和切片</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC10%E7%AB%A0-%E5%BA%8F%E5%88%97%E7%9A%84%E4%BF%AE%E6%94%B9%E6%95%A3%E5%88%97%E5%92%8C%E5%88%87%E7%89%87/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC10%E7%AB%A0-%E5%BA%8F%E5%88%97%E7%9A%84%E4%BF%AE%E6%94%B9%E6%95%A3%E5%88%97%E5%92%8C%E5%88%87%E7%89%87/</guid><description>反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力，在python中一切皆对象（类，实例，模块等等都是对象），那么我们就可以通过反射的形式操作对象相关的属性。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第11章-抽象类</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC11%E7%AB%A0-%E6%8A%BD%E8%B1%A1%E7%B1%BB/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC11%E7%AB%A0-%E6%8A%BD%E8%B1%A1%E7%B1%BB/</guid><description>python中并没有提供抽象类与抽象方法，</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第12章-类继承</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC12%E7%AB%A0-%E7%B1%BB%E7%BB%A7%E6%89%BF/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC12%E7%AB%A0-%E7%B1%BB%E7%BB%A7%E6%89%BF/</guid><description>Py 2.x 和 Py 3.x 中有一个很大的区别就是类，无论是类的定义还是类的继承。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第13章 正确重载运算符</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC13%E7%AB%A0%E6%AD%A3%E7%A1%AE%E9%87%8D%E8%BD%BD%E8%BF%90%E7%AE%97%E7%AC%A6/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC13%E7%AB%A0%E6%AD%A3%E7%A1%AE%E9%87%8D%E8%BD%BD%E8%BF%90%E7%AE%97%E7%AC%A6/</guid><description>这里我们看几个之前没讲过的运算符neg,pos,invert</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第14章 可迭代的对象、迭代器和生成器</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC14%E7%AB%A0%E5%8F%AF%E8%BF%AD%E4%BB%A3%E7%9A%84%E5%AF%B9%E8%B1%A1%E8%BF%AD%E4%BB%A3%E5%99%A8%E5%92%8C%E7%94%9F%E6%88%90%E5%99%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC14%E7%AB%A0%E5%8F%AF%E8%BF%AD%E4%BB%A3%E7%9A%84%E5%AF%B9%E8%B1%A1%E8%BF%AD%E4%BB%A3%E5%99%A8%E5%92%8C%E7%94%9F%E6%88%90%E5%99%A8/</guid><description>我们知道一个对象可以迭代是因为实现了iter方法，</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第15章 上下文管理器和else块</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC15%E7%AB%A0%E4%B8%8A%E4%B8%8B%E6%96%87%E7%AE%A1%E7%90%86%E5%99%A8%E5%92%8Celse%E5%9D%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC15%E7%AB%A0%E4%B8%8A%E4%B8%8B%E6%96%87%E7%AE%A1%E7%90%86%E5%99%A8%E5%92%8Celse%E5%9D%97/</guid><description>&gt;try..except..else没有捕获到异常，执行else语句</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第16章 协程</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC16%E7%AB%A0%E5%8D%8F%E7%A8%8B/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC16%E7%AB%A0%E5%8D%8F%E7%A8%8B/</guid><description>是程序在操作系统中的一次执行过程，是系统进行资源分配和调度的基本单位</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第17章 使用future处理并发</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC17%E7%AB%A0%E4%BD%BF%E7%94%A8future%E5%A4%84%E7%90%86%E5%B9%B6%E5%8F%91/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC17%E7%AB%A0%E4%BD%BF%E7%94%A8future%E5%A4%84%E7%90%86%E5%B9%B6%E5%8F%91/</guid><description>Python3引入的concurrent.futures模块。concurrent.futures 是python3新增加的一个库，用于并发处理，提供了多线程和多进程的并发功能 类似于其他语言里的线程池（也有一个进程池），他属于上层的封装，对于用户来说，不用在考虑那么多东西了</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第16章 协程-补充内容</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC16%E7%AB%A0%E5%8D%8F%E7%A8%8B-%E8%A1%A5%E5%85%85%E5%86%85%E5%AE%B9/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC16%E7%AB%A0%E5%8D%8F%E7%A8%8B-%E8%A1%A5%E5%85%85%E5%86%85%E5%AE%B9/</guid><description>多进程就是利用 CPU 的多核优势，在同一时间并行地执行多个任务，可以大大提高执行效率。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第18章 使用asyncio包处理并发</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC18%E7%AB%A0%E4%BD%BF%E7%94%A8asyncio%E5%8C%85%E5%A4%84%E7%90%86%E5%B9%B6%E5%8F%91/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC18%E7%AB%A0%E4%BD%BF%E7%94%A8asyncio%E5%8C%85%E5%A4%84%E7%90%86%E5%B9%B6%E5%8F%91/</guid><description>当一个进程启动之后，会默认产生一个主线程，因为线程是程序执行流的最小单元。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第19章 动态属性和特性</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC19%E7%AB%A0%E5%8A%A8%E6%80%81%E5%B1%9E%E6%80%A7%E5%92%8C%E7%89%B9%E6%80%A7/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC19%E7%AB%A0%E5%8A%A8%E6%80%81%E5%B1%9E%E6%80%A7%E5%92%8C%E7%89%B9%E6%80%A7/</guid><description>getattr方法</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第1章 序幕</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC1%E7%AB%A0%E5%BA%8F%E5%B9%95/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC1%E7%AB%A0%E5%BA%8F%E5%B9%95/</guid><description>这一章中作者简要的介绍了python数据模型，主要是python的一些特殊方法。比如len,getitem. 并用一个纸牌的程序来讲解了这些方法</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第21章 类元编程</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC21%E7%AB%A0%E7%B1%BB%E5%85%83%E7%BC%96%E7%A8%8B/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC21%E7%AB%A0%E7%B1%BB%E5%85%83%E7%BC%96%E7%A8%8B/</guid><description>第21章 类元编程 [toc] 类工厂函数 collections.namedtuple ABC元类 这些内容可以查看第11章</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第22章 python字节码-补充内容</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC22%E7%AB%A0python%E5%AD%97%E8%8A%82%E7%A0%81-%E8%A1%A5%E5%85%85%E5%86%85%E5%AE%B9/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC22%E7%AB%A0python%E5%AD%97%E8%8A%82%E7%A0%81-%E8%A1%A5%E5%85%85%E5%86%85%E5%AE%B9/</guid><description>在日常生活中，Python代码一般是不编译的，几个py文件复制来就能用。再加上脚本语言的名头，有些不太了解Python的朋友就以为Python没有编译这个过程。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第23章 python时间模块</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC23%E7%AB%A0python%E6%97%B6%E9%97%B4%E6%A8%A1%E5%9D%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC23%E7%AB%A0python%E6%97%B6%E9%97%B4%E6%A8%A1%E5%9D%97/</guid><description>time模块提供各种操作时间的函数</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第24章 python命名空间</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC24%E7%AB%A0python%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC24%E7%AB%A0python%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4/</guid><description>就是python解释器 ，启动就可以使用的名字存储在内置命名空间中</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第2章 序列构成的数组</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC2%E7%AB%A0%E5%BA%8F%E5%88%97%E6%9E%84%E6%88%90%E7%9A%84%E6%95%B0%E7%BB%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC2%E7%AB%A0%E5%BA%8F%E5%88%97%E6%9E%84%E6%88%90%E7%9A%84%E6%95%B0%E7%BB%84/</guid><description>第二章开始介绍了列表这种数据结构，这个在python是经常用到的结构</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第3章 字典和集合</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC3%E7%AB%A0%E5%AD%97%E5%85%B8%E5%92%8C%E9%9B%86%E5%90%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC3%E7%AB%A0%E5%AD%97%E5%85%B8%E5%92%8C%E9%9B%86%E5%90%88/</guid><description>可能你见过列表推导时,却没有见过字典推导式,在2.7中才加入的:</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第4章 文本和字节序列</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC4%E7%AB%A0%E6%96%87%E6%9C%AC%E5%92%8C%E5%AD%97%E8%8A%82%E5%BA%8F%E5%88%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC4%E7%AB%A0%E6%96%87%E6%9C%AC%E5%92%8C%E5%AD%97%E8%8A%82%E5%BA%8F%E5%88%97/</guid><description>&gt; markdom可以插入emoji表情包</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第5章 函数</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC5%E7%AB%A0%E5%87%BD%E6%95%B0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC5%E7%AB%A0%E5%87%BD%E6%95%B0/</guid><description>在python中一切都可以视作为对象，包括函数</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第6章 使用一等函数实现设计模式</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC6%E7%AB%A0%E4%BD%BF%E7%94%A8%E4%B8%80%E7%AD%89%E5%87%BD%E6%95%B0%E5%AE%9E%E7%8E%B0%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC6%E7%AB%A0%E4%BD%BF%E7%94%A8%E4%B8%80%E7%AD%89%E5%87%BD%E6%95%B0%E5%AE%9E%E7%8E%B0%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/</guid><description>每个设计模式都是围绕如下三个问题：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第7章-扩展内容</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC7%E7%AB%A0-%E6%89%A9%E5%B1%95%E5%86%85%E5%AE%B9/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC7%E7%AB%A0-%E6%89%A9%E5%B1%95%E5%86%85%E5%AE%B9/</guid><description>&gt;面向过程：根据业务逻辑从上到下写垒代码</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第7章 函数装饰器和闭包</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC7%E7%AB%A0%E5%87%BD%E6%95%B0%E8%A3%85%E9%A5%B0%E5%99%A8%E5%92%8C%E9%97%AD%E5%8C%85/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC7%E7%AB%A0%E5%87%BD%E6%95%B0%E8%A3%85%E9%A5%B0%E5%99%A8%E5%92%8C%E9%97%AD%E5%8C%85/</guid><description>装饰器是一个很著名的设计模式，经常被用于有切面需求的场景，较为经典的有插入日志、性能测试、事务处理, Web权限校验, Cache等。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第8章-对象引用、可变性和垃圾回收</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC8%E7%AB%A0-%E5%AF%B9%E8%B1%A1%E5%BC%95%E7%94%A8%E5%8F%AF%E5%8F%98%E6%80%A7%E5%92%8C%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC8%E7%AB%A0-%E5%AF%B9%E8%B1%A1%E5%BC%95%E7%94%A8%E5%8F%AF%E5%8F%98%E6%80%A7%E5%92%8C%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6/</guid><description>copy 浅复制，不会拷贝其子对象，修改子对象，将受影响</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>第9章-符合Python风格的对象</title><link>https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC9%E7%AB%A0-%E7%AC%A6%E5%90%88python%E9%A3%8E%E6%A0%BC%E7%9A%84%E5%AF%B9%E8%B1%A1/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/python/%E6%B5%81%E7%95%85%E7%9A%84python/%E7%AC%AC9%E7%AB%A0-%E7%AC%A6%E5%90%88python%E9%A3%8E%E6%A0%BC%E7%9A%84%E5%AF%B9%E8%B1%A1/</guid><description>Python内置属性很多，其中slots属性比较少会被用到，基本不会被当作是必选项。但如果您对内存使用有颇高的要求，slots会给你很大帮助。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.1 今日目标</title><link>https://blog.zhequtao.com/posts/sql/mysql/01mysql%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/01mysql%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/</guid><description>1.1 今日目标 1. 了解数据库的发展史 2. 了解什么是SQL语句 3. 了解启动和停止MySQL服务器 4. 能够连接MySQL数据库 5. 能够关闭数据库连接 6. 能够创建数据库 7. 能够查看所有数据库 8. 能够修改数据库的字符编码 9. 能够删除数据库 10. 能够选择数据库 11. 能够创建表 12. 能够查看当前数据库中的所有表 13. 能够查看表结构 14. 能够查看创建表的…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.1 今日目标</title><link>https://blog.zhequtao.com/posts/sql/mysql/02%E5%88%97%E7%B1%BB%E5%9E%8B%E5%92%8C%E6%95%B0%E6%8D%AE%E5%AE%8C%E6%95%B4%E6%80%A7/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/02%E5%88%97%E7%B1%BB%E5%9E%8B%E5%92%8C%E6%95%B0%E6%8D%AE%E5%AE%8C%E6%95%B4%E6%80%A7/</guid><description>1.1 今日目标 1. 了解MySQL常用的客户端软件 2. 理解整型的使用 3. 理解浮点型的使用 4. 理解字符型的使用 5. 理解枚举型的使用 6. 理解集合型的使用 7. 理解日期型的使用 8. 理解非空约束 9. 理解默认值约束 10. 理解自动增长 11. 理解主键约束 12. 理解唯一键约束 13. 知道备注 14. 知道SQL注释 15. 理解外键约束 1.2 数据类型——值类型 …</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.1 今日目标</title><link>https://blog.zhequtao.com/posts/sql/mysql/03%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1%E4%B8%8E%E6%9F%A5%E8%AF%A2%E8%AF%AD%E5%8F%A5/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/03%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1%E4%B8%8E%E6%9F%A5%E8%AF%A2%E8%AF%AD%E5%8F%A5/</guid><description>1.1 今日目标 1. 理解实体之间的关系 2. 理解绘制E-R图 3. 理解三范式 4. 理解范式和性能的关系 5. 能够查询表中的数据 6. 理解聚合函数 7. 理解模糊查询 8. 理解分组查询 1.2 数据库基本概念 1、关系：两个表的公共字段 2、行：也称记录，也称实体 3、列：也称字段，也称属性 4、数据冗余：相同的数据存储在不同的地方 5、数据完整性：正确性+准确性=数据完整性 思考：…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.1 今日目标</title><link>https://blog.zhequtao.com/posts/sql/mysql/04%E8%A7%86%E5%9B%BE%E4%BA%8B%E5%8A%A1%E7%B4%A2%E5%BC%95%E5%87%BD%E6%95%B0go%E8%BF%9E%E6%8E%A5mysql/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/04%E8%A7%86%E5%9B%BE%E4%BA%8B%E5%8A%A1%E7%B4%A2%E5%BC%95%E5%87%BD%E6%95%B0go%E8%BF%9E%E6%8E%A5mysql/</guid><description>1.1 今日目标 1. 理解多表查询 2. 理解子查询 3. 能够创建视图 4. 能够删除视图 5. 能够查看创建视图的SQL语句 6. 能够理解事务的作用 7. 能够操作事务 8. 理解索引的作用 9. 能够创建索引 10. 能够删除索引 11. 知道常用的函数 12. 了解预处理语句的作用 13. 能够使用预处理语句 14. 了解存储过程的作用 15. 能够创建存储过程 16. 能够调用存储过…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>MySQL高级知识-第1章</title><link>https://blog.zhequtao.com/posts/sql/mysql/mysql%E9%AB%98%E7%BA%A7%E7%9F%A5%E8%AF%86-%E7%AC%AC1%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/mysql%E9%AB%98%E7%BA%A7%E7%9F%A5%E8%AF%86-%E7%AC%AC1%E7%AB%A0/</guid><description>这里使用 MariaDB 作为数据库</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>MySQL高级知识-第2章</title><link>https://blog.zhequtao.com/posts/sql/mysql/mysql%E9%AB%98%E7%BA%A7%E7%9F%A5%E8%AF%86-%E7%AC%AC2%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/mysql%E9%AB%98%E7%BA%A7%E7%9F%A5%E8%AF%86-%E7%AC%AC2%E7%AB%A0/</guid><description>一般情况下，mysql会默认提供多种存储引擎,你可以通过下面的查看:</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>MySQL高级知识-第3章</title><link>https://blog.zhequtao.com/posts/sql/mysql/mysql%E9%AB%98%E7%BA%A7%E7%9F%A5%E8%AF%86-%E7%AC%AC3%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/mysql%E9%AB%98%E7%BA%A7%E7%9F%A5%E8%AF%86-%E7%AC%AC3%E7%AB%A0/</guid><description>Index-索引是帮助MySQL高效获取数据的数据结构，可以理解为是排序好的快速查找数据结构</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>MySQL高级知识-第4章</title><link>https://blog.zhequtao.com/posts/sql/mysql/mysql%E9%AB%98%E7%BA%A7%E7%9F%A5%E8%AF%86-%E7%AC%AC4%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/mysql%E9%AB%98%E7%BA%A7%E7%9F%A5%E8%AF%86-%E7%AC%AC4%E7%AB%A0/</guid><description>1.默认没有启动慢查询日志，需要手动设置</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>SQL 必知必会</title><link>https://blog.zhequtao.com/posts/sql/mysql/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/</guid><description>本篇文章是 SQL 必知必会 的读书笔记，SQL必知必会的英文名叫做 Sams Teach Yourself in 10 Minutes。但是，我肯定是不能够在10分钟就能学会本书所有涉及到的sql，所以就起个名字叫30分钟学会SQL语句（其实半个小时也没有学会...）。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.1 发送者、接收者和窃听者</title><link>https://blog.zhequtao.com/posts/golang/go-block/blockchain/encryption-expand/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/blockchain/encryption-expand/</guid><description>&gt; 请想象一个Alice向Bob发送电子邮件的场景。在这个场景中，发出邮件的Alice称为 发送者（sender），而收到邮件的Bob则称为 接收者（receiver）。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>01 - 对称加密</title><link>https://blog.zhequtao.com/posts/golang/go-block/blockchain/encryption/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-block/blockchain/encryption/</guid><description>- ssl/tls - https</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>01、</title><link>https://blog.zhequtao.com/posts/golang/go-new/arjun/02-golang-gc/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/arjun/02-golang-gc/</guid><description>01、 02、 03、 03、 04、 05、 06、 07、 08、 09、 10、 11、 12、 13、 14、 15、 16、</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>01、流程控制之跳出for循环</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/base02/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/base02/</guid><description>01、流程控制之跳出for循环 02、pointer 03、map 04、map和slice组合 05、函数 总结</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>01、字符串</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/base03/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/base03/</guid><description>01、字符串 02、函数使用技巧 03、defer func 04、defer return 05、global var 06、func type 07、匿名函数 08、闭包 09、闭包2 10、闭包3 11、闭包4 12、defer + 闭包 13、panic recover 14、fmt 15、homework - 练习</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>01、复习结构体</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/base05/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/base05/</guid><description>01、复习结构体 02、interface-1 03、接口示例2 04、接口的实现 05、 06、 07、 08、 09、 10、 11、调用10init的函数 12、 13、 14、 15、 16、</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>01、</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/base06/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/base06/</guid><description>mylogger框架: console.go</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>base04-递归+结构体</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/base04/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/base04/</guid><description>base04-递归+结构体 递归 02、type 03、结构体1 04、结构体2 05、 打印 06、结构体 07、 构造函数 08、方法是作用于特定类型的函数 09、 10、结构体遇到的问题 11、sms函数版 12、 13、 14、结构体模拟实现其他语言中的&quot;继承&quot; 15、 结构体与json 16、 17、</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>01、</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/base07/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/base07/</guid><description>01、 02、 03、 04、 05、 06、 07、 08、 09、 10、 11、 12、ini demo 配置文件解析 conf.init 文件</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>01、</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/base08/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/base08/</guid><description>01、 02、 03、 03、 04、 05、 06、 07、 08、 09、 10、 11、 12、 13、 14、 15、 16、</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>01、</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/base09/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/base09/</guid><description>01、 02、 03、 03、 04、 05、 06、 07、 08、 09、 10、 11、 12、 13、 14、 15、 16、</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>01、</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/base10/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/base10/</guid><description>01、 02、 03、 03、 04、 05、 06、 07、 08、 09、 10、 11、 12、 13、 14、 15、 16、</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>01、</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/base11/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/base11/</guid><description>01、 02、 03、 03、 04、 05、 06、 07、 08、 09、 10、 11、 12、 13、 14、 15、 16、</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>01、</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/base12/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/base12/</guid><description>01、 02、 03、 03、 04、 05、 06、 07、 08、 09、 10、 11、 12、 13、 14、 15、 16、</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>mac快捷键</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/goland/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/goland/</guid><description>我们可以手动格式化代码，利用</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go Modules 和 goproxy.cn</title><link>https://blog.zhequtao.com/posts/golang/go-new/base/gomodules/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/base/gomodules/</guid><description>module 是项目相关 Go 包的一个集合，它们作为一个独立单元将项目所需的依赖包版本化。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>golang面试的一些技术要点</title><link>https://blog.zhequtao.com/posts/golang/go-new/interview/interview%E6%8A%80%E6%9C%AF%E9%9D%A2%E8%AF%95/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/interview/interview%E6%8A%80%E6%9C%AF%E9%9D%A2%E8%AF%95/</guid><description>描述自己的所做过的哪些项目</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>关于面试的一些个人看法</title><link>https://blog.zhequtao.com/posts/golang/go-new/interview/interview%E9%9D%A2%E8%AF%95%E7%9C%8B%E6%B3%95/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/interview/interview%E9%9D%A2%E8%AF%95%E7%9C%8B%E6%B3%95/</guid><description>简历通常最好是两页，一页的简历会显得过于简洁，正常来说不管一个人在某个行业做得好与坏，都能够把自己的所掌握的东西转换到两张 A4 纸上。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>项目启动</title><link>https://blog.zhequtao.com/posts/golang/go-new/microserver/apis/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/microserver/apis/</guid><description>1. 避免环形依赖和双向依赖</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Consul</title><link>https://blog.zhequtao.com/posts/golang/go-new/microserver/consul/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/microserver/consul/</guid><description>为什么要学习consul服务发现?</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>GRPC</title><link>https://blog.zhequtao.com/posts/golang/go-new/microserver/grpc/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/microserver/grpc/</guid><description>gRPC 是一个高性能、开源和通用的 RPC 框架，面向移动和 HTTP/2 设计。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Golang系列文章</title><link>https://blog.zhequtao.com/posts/golang/go-new/microserver/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/microserver/</guid><description>Go语言也称 Golang，兼具效率、性能、安全、健壮等特性。这套Go语言教程（Golang教程）通俗易懂，深入浅出，既适合没有基础的读者快速入门，也适合工作多年的程序员查阅知识点。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Micro</title><link>https://blog.zhequtao.com/posts/golang/go-new/microserver/micro-server/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/microserver/micro-server/</guid><description>+ Micro解决了构建云本地系统的关键需求。它采用了微服务体系结构模式，并将其转换为一组工具，作为可伸缩平 台的构建块。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Protobuf</title><link>https://blog.zhequtao.com/posts/golang/go-new/microserver/protobuf/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/microserver/protobuf/</guid><description>1. [多进程、多线程与协程的引入](https://books.studygolang.com/gobyexample/)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>jwt身份效验</title><link>https://blog.zhequtao.com/posts/golang/go-new/web/jwt/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/web/jwt/</guid><description>场景: 我们现在的API是可以随意调用的，这显然还不安全全，在本文中我们通过 jwt-go: [GoDoc](https://godoc.org/github.com/dgrijalva/jwt-go). 的方式来简单解决这个问题。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>优化你的应用结构和实现Redis缓存</title><link>https://blog.zhequtao.com/posts/golang/go-new/web/redis/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/web/redis/</guid><description>之前就在想，不少教程或示例的代码设计都是一步到位的（也没问题）</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>02开篇：什么是微服务架构</title><link>https://blog.zhequtao.com/posts/golang/go-project/gomicro%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%BC%80%E5%8F%91/99%E7%9A%84%E5%89%AF%E6%9C%AC10/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/gomicro%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%BC%80%E5%8F%91/99%E7%9A%84%E5%89%AF%E6%9C%AC10/</guid><description>在网络协议的 RPC 协议部分，我们已经简单介绍了微服务诞生的原因，以及底层 RPC 框架的运行原理，今天开始，我们正式开始微服务架构分享之旅，在此之前，我们需要明确微服务架构的概念。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>02开篇：什么是微服务架构</title><link>https://blog.zhequtao.com/posts/golang/go-project/gomicro%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%BC%80%E5%8F%91/99%E7%9A%84%E5%89%AF%E6%9C%AC11/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/gomicro%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%BC%80%E5%8F%91/99%E7%9A%84%E5%89%AF%E6%9C%AC11/</guid><description>在网络协议的 RPC 协议部分，我们已经简单介绍了微服务诞生的原因，以及底层 RPC 框架的运行原理，今天开始，我们正式开始微服务架构分享之旅，在此之前，我们需要明确微服务架构的概念。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>01开篇：微服务架构</title><link>https://blog.zhequtao.com/posts/golang/go-project/gomicro%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%BC%80%E5%8F%91%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/01gomicro%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%BC%80%E5%8F%91/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/gomicro%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%BC%80%E5%8F%91%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/01gomicro%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%BC%80%E5%8F%91/</guid><description>此系列教程正在更新中，通过本系列教程的学习，你可以从理论、框架、开发、运维等各个维度对微服务架构有一个整体的认识：了解并掌握微服务原理、RPC 框架 Go Micro、服务接口开发流程、以及常见注册中心、集群部署、服务监控、服务追踪、服务治理、性能测试等微服务基础组件，从而能够独立操刀并主持中小型微</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>02开篇：什么是微服务架构</title><link>https://blog.zhequtao.com/posts/golang/go-project/gomicro%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%BC%80%E5%8F%91%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/02%E5%BC%80%E7%AF%87%E4%BB%80%E4%B9%88%E6%98%AF%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/gomicro%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%BC%80%E5%8F%91%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/02%E5%BC%80%E7%AF%87%E4%BB%80%E4%B9%88%E6%98%AF%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84/</guid><description>在网络协议的 RPC 协议部分，我们已经简单介绍了微服务诞生的原因，以及底层 RPC 框架的运行原理，今天开始，我们正式开始微服务架构分享之旅，在此之前，我们需要明确微服务架构的概念。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Makefile 管理 API 项目</title><link>https://blog.zhequtao.com/posts/golang/go-project/restfulgo/16-makefile-%E7%AE%A1%E7%90%86-api-%E9%A1%B9%E7%9B%AE/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/restfulgo/16-makefile-%E7%AE%A1%E7%90%86-api-%E9%A1%B9%E7%9B%AE/</guid><description>- 介绍 Makefile</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>给 API 命令增加版本功能</title><link>https://blog.zhequtao.com/posts/golang/go-project/restfulgo/17-api%E5%91%BD%E4%BB%A4%E5%A2%9E%E5%8A%A0%E7%89%88%E6%9C%AC%E5%8A%9F%E8%83%BD/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/restfulgo/17-api%E5%91%BD%E4%BB%A4%E5%A2%9E%E5%8A%A0%E7%89%88%E6%9C%AC%E5%8A%9F%E8%83%BD/</guid><description>- 如何给 apiserver 增加版本功能</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>给 API 增加启动脚本</title><link>https://blog.zhequtao.com/posts/golang/go-project/restfulgo/18-%E7%BB%99api%E5%A2%9E%E5%8A%A0%E5%90%AF%E5%8A%A8%E8%84%9A%E6%9C%AC/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/restfulgo/18-%E7%BB%99api%E5%A2%9E%E5%8A%A0%E5%90%AF%E5%8A%A8%E8%84%9A%E6%9C%AC/</guid><description>- 如何管理 apiserver 启动命令，包括启动、重启、停止和查看运行状态</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>基于 Nginx 的 API 部署方案</title><link>https://blog.zhequtao.com/posts/golang/go-project/restfulgo/19-%E5%9F%BA%E4%BA%8Enginx%E7%9A%84api%E9%83%A8%E7%BD%B2%E6%96%B9%E6%A1%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/restfulgo/19-%E5%9F%BA%E4%BA%8Enginx%E7%9A%84api%E9%83%A8%E7%BD%B2%E6%96%B9%E6%A1%88/</guid><description>- 介绍如何安装 Nginx</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>API 高可用方案</title><link>https://blog.zhequtao.com/posts/golang/go-project/restfulgo/20-api%E9%AB%98%E5%8F%AF%E7%94%A8%E6%96%B9%E6%A1%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/restfulgo/20-api%E9%AB%98%E5%8F%AF%E7%94%A8%E6%96%B9%E6%A1%88/</guid><description>本小节为可选小节。因为该方案需要有至少两台服务器，没有多台服务器的读者只需要了解即可。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>go test 测试你的代码</title><link>https://blog.zhequtao.com/posts/golang/go-project/restfulgo/21-go-test%E6%B5%8B%E8%AF%95%E4%BB%A3%E7%A0%81/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/restfulgo/21-go-test%E6%B5%8B%E8%AF%95%E4%BB%A3%E7%A0%81/</guid><description>在实际开发中，不仅要开发功能，更重要的是确保这些功能稳定可靠，并且拥有一个不错的性能，要确保这些就要对代码进行测试，开发人员通常会进行单元测试和性能测试。不同的语言通常都有自己的测试包/模块，Go 语言也一样，在 Go 中可以通过 testing 包对代码进行单元和性能测试，下面就来详细介绍。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>API 性能分析</title><link>https://blog.zhequtao.com/posts/golang/go-project/restfulgo/22-api%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/restfulgo/22-api%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/</guid><description>作为开发，我们一般都局限在功能上的单元测试，对一些性能上的细节我们往往没有去关注，如果我们在上线的时候对项目整体性能没有一个全面的了解的话，当流量越来越大时，可能会出现各种各样的问题，比如 CPU 占用高、内存使用率高等。为了避免这些性能瓶颈，我们在开发的过程中需要通过一定的手段来对程序进行性能分析</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>将Golang应用部署到Docker</title><link>https://blog.zhequtao.com/posts/golang/go-project/restfulgo/23-%E5%B0%86golang%E5%BA%94%E7%94%A8%E9%83%A8%E7%BD%B2%E5%88%B0docker/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/restfulgo/23-%E5%B0%86golang%E5%BA%94%E7%94%A8%E9%83%A8%E7%BD%B2%E5%88%B0docker/</guid><description>项目地址：[https](https://github.com/EDDYCJY/go-gin-example) : [//github.com/EDDYCJY/go-gin-example](https://github.com/EDDYCJY/go-gin-example)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>生成 Swagger 在线文档</title><link>https://blog.zhequtao.com/posts/golang/go-project/restfulgo/23-%E7%94%9F%E6%88%90swagger%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/restfulgo/23-%E7%94%9F%E6%88%90swagger%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3/</guid><description>- 如何给 API 添加 Swagger 文档功能</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>API 性能测试和调优</title><link>https://blog.zhequtao.com/posts/golang/go-project/restfulgo/24-api%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95%E5%92%8C%E8%B0%83%E4%BC%98/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/restfulgo/24-api%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95%E5%92%8C%E8%B0%83%E4%BC%98/</guid><description>- 简单介绍 API 性能测试知识</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 开发技巧</title><link>https://blog.zhequtao.com/posts/golang/go-project/restfulgo/25-%E6%8B%93%E5%B1%951go%E5%BC%80%E5%8F%91%E6%8A%80%E5%B7%A7/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/restfulgo/25-%E6%8B%93%E5%B1%951go%E5%BC%80%E5%8F%91%E6%8A%80%E5%B7%A7/</guid><description>本小节是拓展内容，笔者会不定期更新 Go 开发技巧，使该技巧的内容尽可能全，并保证技巧的实用性。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 规范指南</title><link>https://blog.zhequtao.com/posts/golang/go-project/restfulgo/26-%E6%8B%93%E5%B1%952go%E8%A7%84%E8%8C%83%E6%8C%87%E5%8D%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/restfulgo/26-%E6%8B%93%E5%B1%952go%E8%A7%84%E8%8C%83%E6%8C%87%E5%8D%97/</guid><description>本小节是拓展内容，笔者会不定期更新 Go 规范指南，使该指南的内容尽可能全，并保证规范的实用性。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>总结</title><link>https://blog.zhequtao.com/posts/golang/go-project/restfulgo/27-%E6%80%BB%E7%BB%93/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/restfulgo/27-%E6%80%BB%E7%BB%93/</guid><description>至此，我们已完成了本小册的学习。通过前面各小节的学习，相信你已经对 API 开发的整个流程有了一定的了解，也知道如何去构建流程中的每个功能。本小册是一个入门教程，更复杂的场景，需要在具体的业务开发中，由读者去探索。这是一个大型的实战类小册，笔者耗费了不少精力来构建这本小册，也希望这本小册确实能够帮助</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC10/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC10/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC11/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC11/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC12/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC12/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC13/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC13/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC14/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC14/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC15/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC15/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC2/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC2/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC3/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC3/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC4/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC4/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC5/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC5/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC6/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC6/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC7/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC7/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC8/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>浅谈虚拟化和容器技术</title><link>https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC9/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-project/%E5%BC%80%E5%8F%91%E8%80%85docker%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/01-%E6%B5%85%E8%B0%88%E8%99%9A%E6%8B%9F%E5%8C%96%E5%92%8C%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%89%AF%E6%9C%AC9/</guid><description>相信所有对 Docker 有所耳闻的朋友都知道，它是一款以容器虚拟化技术为基础的软件，因此在了解有关 Docker 的概念知识和使用方法之前，虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里，我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>GC 的认识</title><link>https://blog.zhequtao.com/posts/golang/go-questions/gc/gc/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/gc/gc/</guid><description>[GC官方源码](https://github.com/golang/go/blob/master/src/runtime/mgc.go)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>channel 在什么情况下会引起资源泄漏</title><link>https://blog.zhequtao.com/posts/golang/go-questions/channel/channel-%E5%9C%A8%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%E4%B8%8B%E4%BC%9A%E5%BC%95%E8%B5%B7%E8%B5%84%E6%BA%90%E6%B3%84%E6%BC%8F/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/channel/channel-%E5%9C%A8%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%E4%B8%8B%E4%BC%9A%E5%BC%95%E8%B5%B7%E8%B5%84%E6%BA%90%E6%B3%84%E6%BC%8F/</guid><description>Channel 可能会引发 goroutine 泄漏。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/channel/channel-%E5%8F%91%E9%80%81%E5%92%8C%E6%8E%A5%E6%94%B6%E5%85%83%E7%B4%A0%E7%9A%84%E6%9C%AC%E8%B4%A8%E6%98%AF%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/channel/channel-%E5%8F%91%E9%80%81%E5%92%8C%E6%8E%A5%E6%94%B6%E5%85%83%E7%B4%A0%E7%9A%84%E6%9C%AC%E8%B4%A8%E6%98%AF%E4%BB%80%E4%B9%88/</guid><description>Channel 发送和接收元素的本质是什么？</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>数据结构</title><link>https://blog.zhequtao.com/posts/golang/go-questions/channel/channel-%E5%BA%95%E5%B1%82%E7%9A%84%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E6%98%AF%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/channel/channel-%E5%BA%95%E5%B1%82%E7%9A%84%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E6%98%AF%E4%BB%80%E4%B9%88/</guid><description>底层数据结构需要看源码，版本为 go 1.9.2：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>停止信号</title><link>https://blog.zhequtao.com/posts/golang/go-questions/channel/channel-%E6%9C%89%E5%93%AA%E4%BA%9B%E5%BA%94%E7%94%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/channel/channel-%E6%9C%89%E5%93%AA%E4%BA%9B%E5%BA%94%E7%94%A8/</guid><description>Channel 和 goroutine 的结合是 Go 并发编程的大杀器。而 Channel 的实际应用也经常让人眼前一亮，通过与 select，cancel，timer 等结合，它能实现各种各样的功能。接下来，我们就要梳理一下 channel 的应用。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>什么是 CSP</title><link>https://blog.zhequtao.com/posts/golang/go-questions/channel/%E4%BB%80%E4%B9%88%E6%98%AF-csp/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/channel/%E4%BB%80%E4%B9%88%E6%98%AF-csp/</guid><description>&gt; Do not communicate by sharing memory; instead, share memory by communicating.</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>源码分析</title><link>https://blog.zhequtao.com/posts/golang/go-questions/channel/%E4%BB%8E-channel-%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%E7%9A%84%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/channel/%E4%BB%8E-channel-%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%E7%9A%84%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>我们先来看一下接收相关的源码。在清楚了接收的具体过程之后，再根据一个实际的例子来具体研究。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>从一个关闭的 channel 仍然能读出数据吗</title><link>https://blog.zhequtao.com/posts/golang/go-questions/channel/%E4%BB%8E%E4%B8%80%E4%B8%AA%E5%85%B3%E9%97%AD%E7%9A%84-channel-%E4%BB%8D%E7%84%B6%E8%83%BD%E8%AF%BB%E5%87%BA%E6%95%B0%E6%8D%AE%E5%90%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/channel/%E4%BB%8E%E4%B8%80%E4%B8%AA%E5%85%B3%E9%97%AD%E7%9A%84-channel-%E4%BB%8D%E7%84%B6%E8%83%BD%E8%AF%BB%E5%87%BA%E6%95%B0%E6%8D%AE%E5%90%97/</guid><description>从一个有缓冲的 channel 里读数据，当 channel 被关闭，依然能读出有效值。只有当返回的 ok 为 false 时，读出的数据才是无效的。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>关于 channel 的 happened-before 有哪些</title><link>https://blog.zhequtao.com/posts/golang/go-questions/channel/%E5%85%B3%E4%BA%8E-channel-%E7%9A%84-happened-before-%E6%9C%89%E5%93%AA%E4%BA%9B/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/channel/%E5%85%B3%E4%BA%8E-channel-%E7%9A%84-happened-before-%E6%9C%89%E5%93%AA%E4%BA%9B/</guid><description>&gt; In computer science, the happened-before relation (denoted: -&gt;) is a relation between the result of two events, such that if one event should happen</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>关闭一个 channel 的过程是怎样的</title><link>https://blog.zhequtao.com/posts/golang/go-questions/channel/%E5%85%B3%E9%97%AD%E4%B8%80%E4%B8%AA-channel-%E7%9A%84%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/channel/%E5%85%B3%E9%97%AD%E4%B8%80%E4%B8%AA-channel-%E7%9A%84%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>关闭某个 channel，会执行函数 closechan：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>源码分析</title><link>https://blog.zhequtao.com/posts/golang/go-questions/channel/%E5%90%91-channel-%E5%8F%91%E9%80%81%E6%95%B0%E6%8D%AE%E7%9A%84%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/channel/%E5%90%91-channel-%E5%8F%91%E9%80%81%E6%95%B0%E6%8D%AE%E7%9A%84%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>发送操作最终转化为 chansend 函数，直接上源码，同样大部分都注释了，可以看懂主流程：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/channel/%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E5%9C%B0%E5%85%B3%E9%97%AD-channel/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/channel/%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E5%9C%B0%E5%85%B3%E9%97%AD-channel/</guid><description>关于 channel 的使用，有几点不方便的地方：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>操作 channel 的情况总结</title><link>https://blog.zhequtao.com/posts/golang/go-questions/channel/%E6%93%8D%E4%BD%9C-channel-%E7%9A%84%E6%83%85%E5%86%B5%E6%80%BB%E7%BB%93/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/channel/%E6%93%8D%E4%BD%9C-channel-%E7%9A%84%E6%83%85%E5%86%B5%E6%80%BB%E7%BB%93/</guid><description>总结一下操作 channel 的结果：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>GPM 是什么</title><link>https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/gpm-%E6%98%AF%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/gpm-%E6%98%AF%E4%BB%80%E4%B9%88/</guid><description>G、P、M 是 Go 调度器的三个核心组件，各司其职。在它们精密地配合下，Go 调度器得以高效运转，这也是 Go 天然支持高并发的内在动力。今天这篇文章我们来深入理解 GPM 模型。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/m-%E5%A6%82%E4%BD%95%E6%89%BE%E5%B7%A5%E4%BD%9C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/m-%E5%A6%82%E4%BD%95%E6%89%BE%E5%B7%A5%E4%BD%9C/</guid><description>在 schedule 函数中，我们简单提过找一个 runnable goroutine 的过程，这一讲我们来详细分析源码。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/goroutine-%E5%A6%82%E4%BD%95%E9%80%80%E5%87%BA/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/goroutine-%E5%A6%82%E4%BD%95%E9%80%80%E5%87%BA/</guid><description>上一讲说到调度器将 main goroutine 推上舞台，为它铺好了道路，开始执行 runtime.main 函数。这一讲，我们探索 main goroutine 以及普通 goroutine 从执行到退出的整个过程。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/g0-%E6%A0%88%E4%BD%95%E7%94%A8%E6%88%B7%E6%A0%88%E5%A6%82%E4%BD%95%E5%88%87%E6%8D%A2/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/g0-%E6%A0%88%E4%BD%95%E7%94%A8%E6%88%B7%E6%A0%88%E5%A6%82%E4%BD%95%E5%88%87%E6%8D%A2/</guid><description>上一讲讲完了 main goroutine 的诞生，它不是第一个，算上 g0，它要算第二个了。不过，我们要考虑的就是这个 goroutine，它会真正执行用户代码。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>goroutine 调度时机有哪些</title><link>https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/goroutine-%E8%B0%83%E5%BA%A6%E6%97%B6%E6%9C%BA%E6%9C%89%E5%93%AA%E4%BA%9B/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/goroutine-%E8%B0%83%E5%BA%A6%E6%97%B6%E6%9C%BA%E6%9C%89%E5%93%AA%E4%BA%9B/</guid><description>在四种情形下，goroutine 可能会发生调度，但也并不一定会发生，只是说 Go scheduler 有机会进行调度。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>goroutine和线程的区别</title><link>https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/goroutine%E5%92%8C%E7%BA%BF%E7%A8%8B%E7%9A%84%E5%8C%BA%E5%88%AB/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/goroutine%E5%92%8C%E7%BA%BF%E7%A8%8B%E7%9A%84%E5%8C%BA%E5%88%AB/</guid><description>谈到 goroutine，绕不开的一个话题是：它和 thread 有什么区别？</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/mian-gorutine-%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/mian-gorutine-%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA/</guid><description>上一讲我们讲完了 Go scheduler 的初始化，现在调度器一切就绪，就差被调度的实体了。本文就来讲述 main goroutine 是如何诞生，并且被调度的。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/schedule-%E5%BE%AA%E7%8E%AF%E5%A6%82%E4%BD%95%E5%90%AF%E5%8A%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/schedule-%E5%BE%AA%E7%8E%AF%E5%A6%82%E4%BD%95%E5%90%AF%E5%8A%A8/</guid><description>上一讲新创建了一个 goroutine，设置好了 sched 成员的 sp 和 pc 字段，并且将其添加到了 p0 的本地可运行队列，坐等调度器的调度。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/schedule-%E5%BE%AA%E7%8E%AF%E5%A6%82%E4%BD%95%E8%BF%90%E8%BD%AC/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/schedule-%E5%BE%AA%E7%8E%AF%E5%A6%82%E4%BD%95%E8%BF%90%E8%BD%AC/</guid><description>上一节，我们讲完 main goroutine 以及普通 goroutine 的退出过程。main goroutine 退出后直接调用 exit(0) 使得整个进程退出，而普通 goroutine 退出后，则进行了一系列的调用，最终又切到 g0 栈，执行 schedule 函数。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>抢占进行系统调用的 P</title><link>https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/sysmon-%E5%90%8E%E5%8F%B0%E7%9B%91%E6%8E%A7%E7%BA%BF%E7%A8%8B%E5%81%9A%E4%BA%86%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/sysmon-%E5%90%8E%E5%8F%B0%E7%9B%91%E6%8E%A7%E7%BA%BF%E7%A8%8B%E5%81%9A%E4%BA%86%E4%BB%80%E4%B9%88/</guid><description>在 runtime.main() 函数中，执行 runtimeinit() 前，会启动一个 sysmon 的监控线程，执行后台监控任务：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>一个调度相关的陷阱</title><link>https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E4%B8%80%E4%B8%AA%E8%B0%83%E5%BA%A6%E7%9B%B8%E5%85%B3%E7%9A%84%E9%99%B7%E9%98%B1/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E4%B8%80%E4%B8%AA%E8%B0%83%E5%BA%A6%E7%9B%B8%E5%85%B3%E7%9A%84%E9%99%B7%E9%98%B1/</guid><description>由于 Go 语言是协作式的调度，不会像线程那样，在时间片用完后，由 CPU 中断任务强行将其调度走。对于 Go 语言中运行时间过长的 goroutine，Go scheduler 有一个后台线程在持续监控，一旦发现 goroutine 运行超过 10 ms，会设置 goroutine 的“抢占标志位</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>什么是 sheduler</title><link>https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E4%BB%80%E4%B9%88%E6%98%AF-go-shceduler/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E4%BB%80%E4%B9%88%E6%98%AF-go-shceduler/</guid><description>Go 程序的执行由两层组成：Go Program，Runtime，即用户程序和运行时。它们之间通过函数调用来实现内存管理、channel 通信、goroutines 创建等功能。用户程序进行的系统调用都会被 Runtime 拦截，以此来帮助它进行调度以及垃圾回收相关的工作。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>什么是workstealing</title><link>https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E4%BB%80%E4%B9%88%E6%98%AFworkstealing/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E4%BB%80%E4%B9%88%E6%98%AFworkstealing/</guid><description>Go scheduler 的职责就是将所有处于 runnable 的 goroutines 均匀分布到在 P 上运行的 M。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>调整 SP</title><link>https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E6%8F%8F%E8%BF%B0-scheduler-%E7%9A%84%E5%88%9D%E5%A7%8B%E5%8C%96%E8%BF%87%E7%A8%8B/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E6%8F%8F%E8%BF%B0-scheduler-%E7%9A%84%E5%88%9D%E5%A7%8B%E5%8C%96%E8%BF%87%E7%A8%8B/</guid><description>上一节我们说完了 GPM 结构体，这一讲，我们来研究 Go sheduler 结构体，以及整个调度器的初始化过程。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/interface/go-%E6%8E%A5%E5%8F%A3%E4%B8%8E-c-%E6%8E%A5%E5%8F%A3%E6%9C%89%E4%BD%95%E5%BC%82%E5%90%8C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/interface/go-%E6%8E%A5%E5%8F%A3%E4%B8%8E-c-%E6%8E%A5%E5%8F%A3%E6%9C%89%E4%BD%95%E5%BC%82%E5%90%8C/</guid><description>接口定义了一种规范，描述了类的行为和功能，而不做具体实现。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/interface/go-%E8%AF%AD%E8%A8%80%E4%B8%8E%E9%B8%AD%E5%AD%90%E7%B1%BB%E5%9E%8B%E7%9A%84%E5%85%B3%E7%B3%BB/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/interface/go-%E8%AF%AD%E8%A8%80%E4%B8%8E%E9%B8%AD%E5%AD%90%E7%B1%BB%E5%9E%8B%E7%9A%84%E5%85%B3%E7%B3%BB/</guid><description>先直接来看维基百科里的定义：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/interface/iface-%E5%92%8C-eface-%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/interface/iface-%E5%92%8C-eface-%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%E4%BB%80%E4%B9%88/</guid><description>iface 和 eface 都是 Go 中描述接口的底层结构体，区别在于 iface 描述的接口包含方法，而 eface 则是不包含任何方法的空接口：interface{}。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>方法</title><link>https://blog.zhequtao.com/posts/golang/go-questions/interface/%E5%80%BC%E6%8E%A5%E6%94%B6%E8%80%85%E5%92%8C%E6%8C%87%E9%92%88%E6%8E%A5%E6%94%B6%E8%80%85%E7%9A%84%E5%8C%BA%E5%88%AB/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/interface/%E5%80%BC%E6%8E%A5%E6%94%B6%E8%80%85%E5%92%8C%E6%8C%87%E9%92%88%E6%8E%A5%E6%94%B6%E8%80%85%E7%9A%84%E5%8C%BA%E5%88%AB/</guid><description>方法能给用户自定义的类型添加新的行为。它和函数的区别在于方法有一个接收者，给一个函数添加一个接收者，那么它就变成了方法。接收者可以是值接收者，也可以是指针接收者。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/interface/%E5%A6%82%E4%BD%95%E7%94%A8-interface-%E5%AE%9E%E7%8E%B0%E5%A4%9A%E6%80%81/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/interface/%E5%A6%82%E4%BD%95%E7%94%A8-interface-%E5%AE%9E%E7%8E%B0%E5%A4%9A%E6%80%81/</guid><description>Go 语言并没有设计诸如虚函数、纯虚函数、继承、多重继承等概念，但它通过接口却非常优雅地支持了面向对象的特性。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/interface/%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%8A%A8%E6%80%81%E7%B1%BB%E5%9E%8B%E5%92%8C%E5%8A%A8%E6%80%81%E5%80%BC/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/interface/%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%8A%A8%E6%80%81%E7%B1%BB%E5%9E%8B%E5%92%8C%E5%8A%A8%E6%80%81%E5%80%BC/</guid><description>从源码里可以看到：iface包含两个字段：tab 是接口表指针，指向类型信息；data 是数据指针，则指向具体的数据。它们分别被称为动态类型和动态值。而接口值包括动态类型和动态值。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/interface/%E6%8E%A5%E5%8F%A3%E7%9A%84%E6%9E%84%E9%80%A0%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/interface/%E6%8E%A5%E5%8F%A3%E7%9A%84%E6%9E%84%E9%80%A0%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>我们已经看过了 iface 和 eface 的源码，知道 iface 最重要的是 itab 和 type。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-questions/interface/%E6%8E%A5%E5%8F%A3%E8%BD%AC%E6%8D%A2%E7%9A%84%E5%8E%9F%E7%90%86/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/interface/%E6%8E%A5%E5%8F%A3%E8%BD%AC%E6%8D%A2%E7%9A%84%E5%8E%9F%E7%90%86/</guid><description>通过前面提到的 iface 的源码可以看到，实际上它包含接口的类型 interfacetype 和 实体类型的类型 type，这两者都是 iface 的字段 itab 的成员。也就是说生成一个 itab 同时需要接口的类型和实体的类型。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>类型转换</title><link>https://blog.zhequtao.com/posts/golang/go-questions/interface/%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2%E5%92%8C%E6%96%AD%E8%A8%80%E7%9A%84%E5%8C%BA%E5%88%AB/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/interface/%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2%E5%92%8C%E6%96%AD%E8%A8%80%E7%9A%84%E5%8C%BA%E5%88%AB/</guid><description>我们知道，Go 语言中不允许隐式类型转换，也就是说 = 两边，不允许出现类型不相同的变量。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>编译器自动检测类型是否实现接口</title><link>https://blog.zhequtao.com/posts/golang/go-questions/interface/%E7%BC%96%E8%AF%91%E5%99%A8%E8%87%AA%E5%8A%A8%E6%A3%80%E6%B5%8B%E7%B1%BB%E5%9E%8B%E6%98%AF%E5%90%A6%E5%AE%9E%E7%8E%B0%E6%8E%A5%E5%8F%A3/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/interface/%E7%BC%96%E8%AF%91%E5%99%A8%E8%87%AA%E5%8A%A8%E6%A3%80%E6%B5%8B%E7%B1%BB%E5%9E%8B%E6%98%AF%E5%90%A6%E5%AE%9E%E7%8E%B0%E6%8E%A5%E5%8F%A3/</guid><description>经常看到一些开源库里会有一些类似下面这种奇怪的用法：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>float 类型可以作为 map 的 key 吗</title><link>https://blog.zhequtao.com/posts/golang/go-questions/map/float-%E7%B1%BB%E5%9E%8B%E5%8F%AF%E4%BB%A5%E4%BD%9C%E4%B8%BA-map-%E7%9A%84-key-%E5%90%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/map/float-%E7%B1%BB%E5%9E%8B%E5%8F%AF%E4%BB%A5%E4%BD%9C%E4%B8%BA-map-%E7%9A%84-key-%E5%90%97/</guid><description>从语法上看，是可以的。Go 语言中只要是可比较的类型都可以作为 key。除开 slice，map，functions 这几种类型，其他类型都是 OK 的。具体包括：布尔值、数字、字符串、指针、通道、接口类型、结构体、只包含上述类型的数组。这些类型的共同特征是支持 == 和 != 操作符，k1 ==</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>map 中的 key 为什么是无序的</title><link>https://blog.zhequtao.com/posts/golang/go-questions/map/map-%E4%B8%AD%E7%9A%84-key-%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AF%E6%97%A0%E5%BA%8F%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/map/map-%E4%B8%AD%E7%9A%84-key-%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AF%E6%97%A0%E5%BA%8F%E7%9A%84/</guid><description>map 在扩容后，会发生 key 的搬迁，原来落在同一个 bucket 中的 key，搬迁后，有些 key 就要远走高飞了（bucket 序号加上了 2^B）。而遍历的过程，就是按顺序遍历 bucket，同时按顺序遍历 bucket 中的 key。搬迁后，key 的位置发生了重大的变化，有些 key</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>map 是线程安全的吗</title><link>https://blog.zhequtao.com/posts/golang/go-questions/map/map-%E6%98%AF%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E7%9A%84%E5%90%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/map/map-%E6%98%AF%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E7%9A%84%E5%90%97/</guid><description>在查找、赋值、遍历、删除的过程中都会检测写标志，一旦发现写标志置位（等于1），则直接 panic。赋值和删除函数在检测完写标志是复位之后，先将写标志位置位，才会进行之后的操作。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>map 的删除过程是怎样的</title><link>https://blog.zhequtao.com/posts/golang/go-questions/map/map-%E7%9A%84%E5%88%A0%E9%99%A4%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/map/map-%E7%9A%84%E5%88%A0%E9%99%A4%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>写操作底层的执行函数是 mapdelete：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>什么是 map</title><link>https://blog.zhequtao.com/posts/golang/go-questions/map/map-%E7%9A%84%E5%BA%95%E5%B1%82%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86%E6%98%AF%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/map/map-%E7%9A%84%E5%BA%95%E5%B1%82%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86%E6%98%AF%E4%BB%80%E4%B9%88/</guid><description>维基百科里这样定义 map：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>map 的扩容过程是怎样的</title><link>https://blog.zhequtao.com/posts/golang/go-questions/map/map-%E7%9A%84%E6%89%A9%E5%AE%B9%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/map/map-%E7%9A%84%E6%89%A9%E5%AE%B9%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>使用哈希表的目的就是要快速查找到目标 key，然而，随着向 map 中添加的 key 越来越多，key 发生碰撞的概率也越来越大。bucket 中的 8 个 cell 会被逐渐塞满，查找、插入、删除 key 的效率也会越来越低。最理想的情况是一个 bucket 只装一个 key，这样，就能达到 O(</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>map 的赋值过程是怎样的</title><link>https://blog.zhequtao.com/posts/golang/go-questions/map/map-%E7%9A%84%E8%B5%8B%E5%80%BC%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/map/map-%E7%9A%84%E8%B5%8B%E5%80%BC%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>通过汇编语言可以看到，向 map 中插入或者修改 key，最终调用的是 mapassign 函数。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>map 的遍历过程是怎样的</title><link>https://blog.zhequtao.com/posts/golang/go-questions/map/map-%E7%9A%84%E9%81%8D%E5%8E%86%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/map/map-%E7%9A%84%E9%81%8D%E5%8E%86%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>本来 map 的遍历过程比较简单：遍历所有的 bucket 以及它后面挂的 overflow bucket，然后挨个遍历 bucket 中的所有 cell。每个 bucket 中包含 8 个 cell，从有 key 的 cell 中取出 key 和 value，这个过程就完成了。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>可以对 map 的元素取地址吗</title><link>https://blog.zhequtao.com/posts/golang/go-questions/map/%E5%8F%AF%E4%BB%A5%E5%AF%B9-map-%E7%9A%84%E5%85%83%E7%B4%A0%E5%8F%96%E5%9C%B0%E5%9D%80%E5%90%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/map/%E5%8F%AF%E4%BB%A5%E5%AF%B9-map-%E7%9A%84%E5%85%83%E7%B4%A0%E5%8F%96%E5%9C%B0%E5%9D%80%E5%90%97/</guid><description>无法对 map 的 key 或 value 进行取址。以下代码不能通过编译：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>可以边遍历边删除吗</title><link>https://blog.zhequtao.com/posts/golang/go-questions/map/%E5%8F%AF%E4%BB%A5%E8%BE%B9%E9%81%8D%E5%8E%86%E8%BE%B9%E5%88%A0%E9%99%A4%E5%90%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/map/%E5%8F%AF%E4%BB%A5%E8%BE%B9%E9%81%8D%E5%8E%86%E8%BE%B9%E5%88%A0%E9%99%A4%E5%90%97/</guid><description>map 并不是一个线程安全的数据结构。同时读写一个 map 是未定义的行为，如果被检测到，会直接 panic。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何实现两种 get 操作</title><link>https://blog.zhequtao.com/posts/golang/go-questions/map/%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E4%B8%A4%E7%A7%8D-get-%E6%93%8D%E4%BD%9C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/map/%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E4%B8%A4%E7%A7%8D-get-%E6%93%8D%E4%BD%9C/</guid><description>Go 语言中读取 map 有两种语法：带 comma 和 不带 comma。当要查询的 key 不在 map 里，带 comma 的用法会返回一个 bool 型变量提示 key 是否在 map 中；而不带 comma 的语句则会返回一个 key 类型的零值。如果 key 是 int 型就会返回 0，</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何比较两个 map 相等</title><link>https://blog.zhequtao.com/posts/golang/go-questions/map/%E5%A6%82%E4%BD%95%E6%AF%94%E8%BE%83%E4%B8%A4%E4%B8%AA-map-%E7%9B%B8%E7%AD%89/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/map/%E5%A6%82%E4%BD%95%E6%AF%94%E8%BE%83%E4%B8%A4%E4%B8%AA-map-%E7%9B%B8%E7%AD%89/</guid><description>直接将使用 map1 == map2 是错误的。这种写法只能比较 map 是否为 nil。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>什么情况下需要使用反射</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E5%8F%8D%E5%B0%84/%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%E4%B8%8B%E9%9C%80%E8%A6%81%E4%BD%BF%E7%94%A8%E5%8F%8D%E5%B0%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E5%8F%8D%E5%B0%84/%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%E4%B8%8B%E9%9C%80%E8%A6%81%E4%BD%BF%E7%94%A8%E5%8F%8D%E5%B0%84/</guid><description>使用反射的常见场景有以下两种：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>types 和 interface</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E5%8F%8D%E5%B0%84/go-%E8%AF%AD%E8%A8%80%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%8F%8D%E5%B0%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E5%8F%8D%E5%B0%84/go-%E8%AF%AD%E8%A8%80%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%8F%8D%E5%B0%84/</guid><description>interface，它是 Go 语言实现抽象的一个非常强大的工具。当向接口变量赋予一个实体类型的时候，接口会存储实体的类型信息，反射就是通过接口的类型信息实现的，反射建立在类型的基础上。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>什么是反射</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E5%8F%8D%E5%B0%84/%E4%BB%80%E4%B9%88%E6%98%AF%E5%8F%8D%E5%B0%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E5%8F%8D%E5%B0%84/%E4%BB%80%E4%B9%88%E6%98%AF%E5%8F%8D%E5%B0%84/</guid><description>&gt;在计算机科学中，反射是指计算机程序在运行时（Run time）可以访问、检测和修改它本身状态或行为的一种能力。用比喻来说，反射就是程序在运行的时候能够“观察”并且修改自己的行为。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何比较两个对象完全相同</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E5%8F%8D%E5%B0%84/%E5%A6%82%E4%BD%95%E6%AF%94%E8%BE%83%E4%B8%A4%E4%B8%AA%E5%AF%B9%E8%B1%A1%E5%AE%8C%E5%85%A8%E7%9B%B8%E5%90%8C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E5%8F%8D%E5%B0%84/%E5%A6%82%E4%BD%95%E6%AF%94%E8%BE%83%E4%B8%A4%E4%B8%AA%E5%AF%B9%E8%B1%A1%E5%AE%8C%E5%85%A8%E7%9B%B8%E5%90%8C/</guid><description>Go 语言中提供了一个函数可以完成此项功能：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>切片作为函数参数</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87/%E5%88%87%E7%89%87%E4%BD%9C%E4%B8%BA%E5%87%BD%E6%95%B0%E5%8F%82%E6%95%B0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87/%E5%88%87%E7%89%87%E4%BD%9C%E4%B8%BA%E5%87%BD%E6%95%B0%E5%8F%82%E6%95%B0/</guid><description>前面我们说到，slice 其实是一个结构体，包含了三个成员：len, cap, array。分别表示切片长度，容量，底层数据的地址。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>数组和切片有什么异同</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87%E6%9C%89%E4%BB%80%E4%B9%88%E5%BC%82%E5%90%8C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87%E6%9C%89%E4%BB%80%E4%B9%88%E5%BC%82%E5%90%8C/</guid><description>slice 的底层数据是数组，slice 是对数组的封装，它描述一个数组的片段。两者都可以通过下标来访问单个元素。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>切片的容量是怎样增长的</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87/%E5%88%87%E7%89%87%E7%9A%84%E5%AE%B9%E9%87%8F%E6%98%AF%E6%80%8E%E6%A0%B7%E5%A2%9E%E9%95%BF%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87/%E5%88%87%E7%89%87%E7%9A%84%E5%AE%B9%E9%87%8F%E6%98%AF%E6%80%8E%E6%A0%B7%E5%A2%9E%E9%95%BF%E7%9A%84/</guid><description>一般都是在向 slice 追加了元素之后，才会引起扩容。追加元素调用的是 append 函数。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 程序启动过程是怎样的</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/go-%E7%A8%8B%E5%BA%8F%E5%90%AF%E5%8A%A8%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/go-%E7%A8%8B%E5%BA%8F%E5%90%AF%E5%8A%A8%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>我们从一个 Hello World 的例子开始：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>go build</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/go-%E7%BC%96%E8%AF%91%E7%9B%B8%E5%85%B3%E7%9A%84%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/go-%E7%BC%96%E8%AF%91%E7%9B%B8%E5%85%B3%E7%9A%84%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/</guid><description>就能得到和 go 相关的命令简介：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>编译过程</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/go-%E7%BC%96%E8%AF%91%E9%93%BE%E6%8E%A5%E8%BF%87%E7%A8%8B%E6%A6%82%E8%BF%B0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/go-%E7%BC%96%E8%AF%91%E9%93%BE%E6%8E%A5%E8%BF%87%E7%A8%8B%E6%A6%82%E8%BF%B0/</guid><description>我们从一个 Hello World 的例子开始：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>GoRoot 和 GoPath 有什么用</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/goroot-%E5%92%8C-gopath-%E6%9C%89%E4%BB%80%E4%B9%88%E7%94%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/goroot-%E5%92%8C-gopath-%E6%9C%89%E4%BB%80%E4%B9%88%E7%94%A8/</guid><description>GoRoot 是  Go 的安装路径。mac 或 unix 是在 /usr/local/go 路径上，来看下这里都装了些什么：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>逃逸分析是怎么进行的</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/%E9%80%83%E9%80%B8%E5%88%86%E6%9E%90%E6%98%AF%E6%80%8E%E4%B9%88%E8%BF%9B%E8%A1%8C%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/%E9%80%83%E9%80%B8%E5%88%86%E6%9E%90%E6%98%AF%E6%80%8E%E4%B9%88%E8%BF%9B%E8%A1%8C%E7%9A%84/</guid><description>在编译原理中，分析指针动态范围的方法称之为逃逸分析。通俗来讲，当一个对象的指针被多个方法或线程引用时，我们称这个指针发生了逃逸。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Promise 简单实现</title><link>https://blog.zhequtao.com/posts/other/code/promise/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/other/code/promise/</guid><description>实现 一个简单的 的粗糙实现，关键点在于 1. 当 时， 函数由一个队列维护 1. 当状态变为 时，队列中所有 函数执行 1. 当 时， 函数直接执行 &lt;!--more-- 状态同理</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何实现 Promise 的限流: Promise.map 的简单实现</title><link>https://blog.zhequtao.com/posts/other/code/promise-map/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/other/code/promise-map/</guid><description>实现 假设有一个 Promise 为 和一个待请求数组为 ，使用它们进行请求数据。但是为了避免 IO 过大，需要限定三个并发数量 &lt;!--more-- 写一段能够实现功能的松散的代码是很简单的，不过对提供 API 的设计思路也是相当重要的。简单实现如下，使用 维护一个并发数量的计数器即可 代码 设计成 的 API，是比较模块化，也是易于使用的。代码的关键在于维护一个队列，当超过限定数量的 Prom…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>SSR</title><link>https://blog.zhequtao.com/posts/other/code/apollo-react/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/other/code/apollo-react/</guid><description>SSR ReactDOM.renderToString(App) ApolloReact.renderToStringWithData(App)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>graphql.js 源码解析</title><link>https://blog.zhequtao.com/posts/other/code/graphql/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/other/code/graphql/</guid><description>可以视作由两大部分组成 1. ，可以视作 rest 中的 API，它可以与客户端相结合，提供查询语句 1. ，可以视作 rest 中对应 API 的逻辑层，它可以与服务端相结合，根据查询语句提供结果 以下是一个简单的 的示例 在这里分析一下以上简单代码的源码解析</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>graphql-tag 使用以及源码解析</title><link>https://blog.zhequtao.com/posts/other/code/graphql-tag/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/other/code/graphql-tag/</guid><description>是在写 应用必不可少的一个工具，不管你是在服务器端还是客户端。而 的代码也非常简单，大体也就八个字： 他山之石可以攻玉 。 本文链接: &lt;https://blog.zhequtao.com/code/graphql-tag 简介 用来把 转化成 的 。既然，在客户端发请求时仍然使用 ，为什么需要客户端转成 ，这有几个原因 1. 编译成 AST 可以在编译时检确保 query 的合法性 (比如查询了…</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>GO 学习笔记</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/</guid><description>一边学go gin框架，一边复习go语法知识</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第10章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC10%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC10%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第10章](#go-语言学习笔记--第10章)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第11章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC11%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC11%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第11章](#go-%e8%af%ad%e8%a8%80%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0--%e7%ac%ac11%e7%ab%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第12章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC12%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC12%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第12章](#go-%e8%af%ad%e8%a8%80%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0--%e7%ac%ac12%e7%ab%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第13章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC13%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC13%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第13章](#go-%e8%af%ad%e8%a8%80%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0--%e7%ac%ac13%e7%ab%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第15章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC15%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC15%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第15章](#go-%e8%af%ad%e8%a8%80%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0--%e7%ac%ac15%e7%ab%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第14章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC14%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC14%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第14章](#go-%e8%af%ad%e8%a8%80%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0--%e7%ac%ac14%e7%ab%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第16章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC16%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC16%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第16章](#go-%e8%af%ad%e8%a8%80%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0--%e7%ac%ac16%e7%ab%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第17章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC17%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC17%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第17章](#go-%e8%af%ad%e8%a8%80%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0--%e7%ac%ac17%e7%ab%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第18章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC18%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC18%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第18章](#go-%e8%af%ad%e8%a8%80%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0--%e7%ac%ac18%e7%ab%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第1章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC1%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC1%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第1章](#go-语言学习笔记--第1章)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第2章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC2%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC2%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第2章](#go-语言学习笔记--第2章)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第3章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC3%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC3%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第3章](#go-%e8%af%ad%e8%a8%80%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0--%e7%ac%ac3%e7%ab%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第4章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC4%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC4%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第4章](#go-%e8%af%ad%e8%a8%80%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0--%e7%ac%ac4%e7%ab%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第5章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC5%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC5%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第5章](#go-%e8%af%ad%e8%a8%80%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0--%e7%ac%ac5%e7%ab%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第6章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC6%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC6%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第6章](#go-%e8%af%ad%e8%a8%80%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0--%e7%ac%ac6%e7%ab%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第7章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC7%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC7%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第7章](#go-%e8%af%ad%e8%a8%80%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0--%e7%ac%ac7%e7%ab%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第8章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC8%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC8%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第8章](#go-语言学习笔记--第8章)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 语言学习笔记 -第9章</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC9%E7%AB%A0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-go/%E7%AC%AC9%E7%AB%A0/</guid><description>- [Go 语言学习笔记 -第9章](#go-%e8%af%ad%e8%a8%80%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0--%e7%ac%ac9%e7%ab%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>目录</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/summary/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/summary/</guid><description>[1.1 聊一聊，Go 的相对路径问题](talk/golang-relatively-path.md)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>煎鱼的迷之博客</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/</guid><description>写写代码，喝喝茶，搞搞 Go，一起吧，这是我的项目地址：https://github.com/EDDYCJY/blog</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>极客时间 数据分析实战45讲详细笔记</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/</guid><description>- [01丨 数据分析全景图及修炼指南 ](./01/README.md)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Docker Compose 学习</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/compose/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/compose/</guid><description>- [Docker Compose 学习](#docker-compose-%e5%ad%a6%e4%b9%a0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Dockerfile</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/dockerfile/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/dockerfile/</guid><description>- [Dockerfile](#dockerfile)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Dockerfile体系结构</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/dockerfile%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/dockerfile%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/</guid><description>- [Dockerfile体系结构](#dockerfile%e4%bd%93%e7%b3%bb%e7%bb%93%e6%9e%84)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Docker核心技术</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E6%A0%B8%E5%BF%83%E6%8A%80%E6%9C%AF/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E6%A0%B8%E5%BF%83%E6%8A%80%E6%9C%AF/</guid><description>- [Docker核心技术](#docker%e6%a0%b8%e5%bf%83%e6%8a%80%e6%9c%af)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>K8S</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/k8s/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/k8s/</guid><description>- [K8S](#k8s)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Docker和LXC关系</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E5%92%8Clxc%E5%85%B3%E7%B3%BB/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E5%92%8Clxc%E5%85%B3%E7%B3%BB/</guid><description>- [Docker和LXC关系](#docker%e5%92%8clxc%e5%85%b3%e7%b3%bb)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Docker Machine 学习笔记</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/machine/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/machine/</guid><description>- [Docker Machine 学习笔记](#docker-machine-%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Docker Mesos 学习</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/mesos/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/mesos/</guid><description>Docker Mesos 学习 集群资源调度平台 -内容待补充</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Docker Swarm 学习</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/swarm/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/swarm/</guid><description>Docker Swarm是Docker官方三剑客项目之一，提供Docker容器集群服务，是Docker官方对容器云生态进行支持的核心方案。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>docker介绍</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E4%BB%8B%E7%BB%8D/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E4%BB%8B%E7%BB%8D/</guid><description>- [docker介绍](#docker%e4%bb%8b%e7%bb%8d)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Docker容器数据卷</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E5%AE%B9%E5%99%A8%E6%95%B0%E6%8D%AE%E5%8D%B7/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E5%AE%B9%E5%99%A8%E6%95%B0%E6%8D%AE%E5%8D%B7/</guid><description>- [Docker容器数据卷](#docker容器数据卷)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>docker常用命令</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/</guid><description>- [docker常用命令](#docker常用命令)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>docker底层原理</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86/</guid><description>- [docker底层原理](#docker%e5%ba%95%e5%b1%82%e5%8e%9f%e7%90%86)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>docker架构</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E6%9E%B6%E6%9E%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E6%9E%B6%E6%9E%84/</guid><description>- [docker架构](#docker%e6%9e%b6%e6%9e%84)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>docker镜像</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E9%95%9C%E5%83%8F/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E9%95%9C%E5%83%8F/</guid><description>- [docker镜像](#docker镜像)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>docker阿里云镜像加速</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E9%98%BF%E9%87%8C%E4%BA%91%E9%95%9C%E5%83%8F%E5%8A%A0%E9%80%9F/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/docker%E9%98%BF%E9%87%8C%E4%BA%91%E9%95%9C%E5%83%8F%E5%8A%A0%E9%80%9F/</guid><description>- [docker阿里云镜像加速](#docker%e9%98%bf%e9%87%8c%e4%ba%91%e9%95%9c%e5%83%8f%e5%8a%a0%e9%80%9f)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Docker系统学习</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</guid><description>- [01丨 docker介绍 ](./docker介绍.md)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>安装docker</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E5%AE%89%E8%A3%85docker/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E5%AE%89%E8%A3%85docker/</guid><description>这里使用fedora系统来安装</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>docker 监控</title><link>https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E5%AE%B9%E5%99%A8%E7%9B%91%E6%8E%A7/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/docker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E5%AE%B9%E5%99%A8%E7%9B%91%E6%8E%A7/</guid><description>- [docker 监控](#docker-%e7%9b%91%e6%8e%a7)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>SQL 必知必会</title><link>https://blog.zhequtao.com/posts/sql/mysql/mysql%E9%87%87%E5%9D%91%E8%AE%B0/mysql-%E5%BF%85%E7%9F%A5%E5%BF%85%E4%BC%9A%E7%AC%94%E8%AE%B0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/sql/mysql/mysql%E9%87%87%E5%9D%91%E8%AE%B0/mysql-%E5%BF%85%E7%9F%A5%E5%BF%85%E4%BC%9A%E7%AC%94%E8%AE%B0/</guid><description>本篇文章是 SQL 必知必会 的读书笔记，SQL必知必会的英文名叫做 Sams Teach Yourself in 10 Minutes。但是，我肯定是不能够在10分钟就能学会本书所有涉及到的sql，所以就起个名字叫30分钟学会SQL语句（其实半个小时也没有学会...）。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>项目介绍</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/</guid><description>- 个人博客：https://qcrao.com</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>接口</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/context-%E5%A6%82%E4%BD%95%E8%A2%AB%E5%8F%96%E6%B6%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/context-%E5%A6%82%E4%BD%95%E8%A2%AB%E5%8F%96%E6%B6%88/</guid><description>context 包的代码并不长，context.go 文件总共不到 500 行，其中还有很多大段的注释，代码可能也就 200 行左右的样子，是一个非常值得研究的代码库。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>context 是什么</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/context-%E6%98%AF%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/context-%E6%98%AF%E4%BB%80%E4%B9%88/</guid><description>Go 1.7 标准库引入 context，中文译作“上下文”，准确说它是 goroutine 的上下文，包含 goroutine 的运行状态、环境、现场等信息。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>传递共享的数据</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/context-%E6%9C%89%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/context-%E6%9C%89%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8/</guid><description>Go 常用来写后台服务，通常只需要几行代码，就可以搭建一个 http server。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>context.Value 的查找过程是怎样的</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/contextvalue-%E7%9A%84%E6%9F%A5%E6%89%BE%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/contextvalue-%E7%9A%84%E6%9F%A5%E6%89%BE%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>由于它直接将 Context 作为匿名字段，因此仅管它只实现了 2 个方法，其他方法继承自父 context。但它仍然是一个 Context，这是 Go 语言的一个特点。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go指针和unsafe.Pointer有什么区别</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/go%E6%8C%87%E9%92%88%E5%92%8Cunsafepointer%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/go%E6%8C%87%E9%92%88%E5%92%8Cunsafepointer%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB/</guid><description>Go 语言的作者之一 Ken Thompson 也是 C 语言的作者。所以，Go 可以看作 C 系语言，它的很多特性都和 C 类似，指针就是其中之一。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何利用unsafe包修改私有成员</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/%E5%A6%82%E4%BD%95%E5%88%A9%E7%94%A8unsafe%E5%8C%85%E4%BF%AE%E6%94%B9%E7%A7%81%E6%9C%89%E6%88%90%E5%91%98/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/%E5%A6%82%E4%BD%95%E5%88%A9%E7%94%A8unsafe%E5%8C%85%E4%BF%AE%E6%94%B9%E7%A7%81%E6%9C%89%E6%88%90%E5%91%98/</guid><description>对于一个结构体，通过 offset 函数可以获取结构体成员的偏移量，进而获取成员的地址，读写该地址的内存，就可以达到改变成员值的目的。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>获取 slice 长度</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/%E5%A6%82%E4%BD%95%E5%88%A9%E7%94%A8unsafe%E8%8E%B7%E5%8F%96slicemap%E7%9A%84%E9%95%BF%E5%BA%A6/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/%E5%A6%82%E4%BD%95%E5%88%A9%E7%94%A8unsafe%E8%8E%B7%E5%8F%96slicemap%E7%9A%84%E9%95%BF%E5%BA%A6/</guid><description>通过前面关于 slice 的[文章](https://mp.weixin.qq.com/s/MTZ0C9zYsNrb8wyIm2D8BA)，我们知道了 slice header 的结构体定义：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何实现字符串和byte切片的零拷贝转换</title><link>https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%92%8Cbyte%E5%88%87%E7%89%87%E7%9A%84%E9%9B%B6%E6%8B%B7%E8%B4%9D%E8%BD%AC%E6%8D%A2/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%92%8Cbyte%E5%88%87%E7%89%87%E7%9A%84%E9%9B%B6%E6%8B%B7%E8%B4%9D%E8%BD%AC%E6%8D%A2/</guid><description>这是一个非常精典的例子。实现字符串和 bytes 切片之间的转换，要求是 zero-copy。想一下，一般的做法，都需要遍历字符串或 bytes 切片，再挨个赋值。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>2.2 如此，用dep获取私有库</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/02-module/dep-private/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/02-module/dep-private/</guid><description>dep是一个依赖管理工具。它需要1.9或更新的Golang版本才能编译</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>2.1 Go依赖管理工具dep</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/02-module/dep/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/02-module/dep/</guid><description>&gt;Go dependency management tool</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 介绍与环境安装</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/31-install/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/31-install/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>定制 GORM Callbacks</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/310-gorm-callback/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/310-gorm-callback/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Cron定时任务</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/311-cron/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/311-cron/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>优化配置结构及实现图片上传</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/312-config-upload/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/312-config-upload/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>优化你的应用结构和实现Redis缓存</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/313-application-redis/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/313-application-redis/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>生成二维码、合并海报</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/315-image/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/315-image/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>在图片上绘制文字</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/316-font/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/316-font/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>3.17 用Nginx部署Go应用</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/317-nginx/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/317-nginx/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>3.19 Golang 交叉编译</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/319-cgo/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/319-cgo/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>请入门 Makefile</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/319-makefile/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/319-makefile/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>实现导出、导入 Excel</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/314-excel/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/314-excel/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Gin搭建Blog API&apos;s （一）</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/32-api-01/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/32-api-01/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Gin搭建Blog API&apos;s （二）</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/33-api-02/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/33-api-02/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Gin搭建Blog API&apos;s （三）</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/34-api-03/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/34-api-03/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>使用 JWT 进行身份校验</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/35-jwt/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/35-jwt/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>编写一个简单的文件日志</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/36-log/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/36-log/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>3.8 为它加上Swagger</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/38-swagger/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/38-swagger/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>3.7 优雅的重启服务</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/37-reload-http/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/37-reload-http/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>将Golang应用部署到Docker</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/39-golang-docker/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/03-gin/39-golang-docker/</guid><description>项目地址：https://github.com/EDDYCJY/go-gin-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>4.5 基于 CA 的 TLS 证书认证</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/ca-tls/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/ca-tls/</guid><description>项目地址：https://github.com/EDDYCJY/go-grpc-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>4.2 gRPC Client and Server</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/client-and-server/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/client-and-server/</guid><description>项目地址：https://github.com/EDDYCJY/go-grpc-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>4.9 gRPC Deadlines</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/deadlines/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/deadlines/</guid><description>在前面的章节中，已经介绍了 gRPC 的基本用法。那你想想，让它这么裸跑真的没问题吗？</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>4.7 让你的服务同时提供 HTTP 接口</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/grpc-http/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/grpc-http/</guid><description>项目地址：https://github.com/EDDYCJY/go-grpc-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>4.4 TLS 证书认证</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/grpc-tls/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/grpc-tls/</guid><description>项目地址：https://github.com/EDDYCJY/go-grpc-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>环境部署与发布</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/install/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/install/</guid><description>项目地址：https://github.com/EDDYCJY/go-grpc-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>4.6 Unary and Stream interceptor</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/interceptor/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/interceptor/</guid><description>项目地址：https://github.com/EDDYCJY/go-grpc-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>4.8 对 RPC 方法做自定义认证</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/per-rpc-credentials/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/per-rpc-credentials/</guid><description>项目地址：https://github.com/EDDYCJY/go-grpc-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>4.3 gRPC Streaming, Client and Server</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/stream-client-server/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/stream-client-server/</guid><description>项目地址：https://github.com/EDDYCJY/go-grpc-example</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>4.10 分布式链路追踪 gRPC + Opentracing + Zipkin</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/zipkin/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/04-grpc/zipkin/</guid><description>在实际应用中，你做了那么多 Server 端，写了 N 个 RPC 方法。想看看方法的指标，却无处下手？</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>5.4 gRPC+gRPC Gateway 能不能不用证书？</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/05-grpc-gateway/grpc-gateway-tls/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/05-grpc-gateway/grpc-gateway-tls/</guid><description>如果你以前有涉猎过 gRPC+gRPC Gateway 这两个组件，你肯定会遇到这个问题，就是 “为什么非得开 TLS，才能够实现同端口双流量，能不能不开？” 又或是 “我不想用证书就实现这些功能，行不行？”。我被无数的人问过无数次这些问题，也说服过很多人，但说服归说服，不代表放弃。前年不行，不代表</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>5.2 Hello World</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/05-grpc-gateway/hello-world/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/05-grpc-gateway/hello-world/</guid><description>这节将开始编写一个复杂的Hello World，涉及到许多的知识，建议大家认真思考其中的概念</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>环境部署与发布</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/05-grpc-gateway/install/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/05-grpc-gateway/install/</guid><description>假定我们有一个项目需求，希望用Rpc作为内部API的通讯，同时也想对外提供Restful Api，写两套又太繁琐不符合</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>5.3 Swagger了解一下</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/05-grpc-gateway/swagger/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/05-grpc-gateway/swagger/</guid><description>在[上一节](https://segmentfault.com/a/1190000013408485)，我们完成了一个服务端同时支持Rpc和RESTful Api后，你以为自己大功告成了，结果突然发现要写Api文档和前端同事对接= = 。。。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>6.2 深入理解 Go defer</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/06-defer/defer/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/06-defer/defer/</guid><description>在上一章节 [《深入理解 Go panic and recover》](https://book.eddycjy.com/golang/panic/panic-and-recover.html) 中，我们发现了 defer 与其关联性极大，还是觉得非常有必要深入一下。希望通过本章节大家可以对 def</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>6.1 深入理解 Go panic and recover</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/06-panic/panic-and-recover/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/06-panic/panic-and-recover/</guid><description>作为一个 gophper，我相信你对于 panic 和 recover 肯定不陌生，但是你有没有想过。当我们执行了这两条语句之后。底层到底发生了什么事呢？前几天和同事刚好聊到相关的话题，发现其实大家对这块理解还是比较模糊的。希望这篇文章能够从更深入的角度告诉你为什么，它到底做了什么事？</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>7.3 深入理解 Go map：初始化和访问元素</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/07-map/map-access/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/07-map/map-access/</guid><description>从本文开始咱们一起探索 Go map 里面的奥妙吧，看看它的内在是怎么构成的，又分别有什么值得留意的地方？</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>7.4 深入理解 Go map：赋值和扩容迁移</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/07-map/map-assign/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/07-map/map-assign/</guid><description>在 [上一章节](https://book.eddycjy.com/golang/map/map-access.html) 中，数据结构小节里讲解了大量基础字段，可能你会疑惑需要 #&amp;（！……#（！￥！ 来干嘛？接下来我们一起简单了解一下基础概念。再开始研讨今天文章的重点内容。我相信这样你能更好的读</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>7.5 为什么遍历 Go map 是无序的？</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/07-map/why-map-no-order/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/07-map/why-map-no-order/</guid><description>![image](http://wx2.sinaimg.cn/large/006fVPCvly1g1s1ah84k8j30k70dvaac.jpg)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>7.1 深入理解 Go Slice</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/07-slice/slice/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/07-slice/slice/</guid><description>![image](https://i.imgur.com/lIoSqWC.png)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>7.2 Go Slice 最大容量大小是怎么来的</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/07-slice/why-slice-max/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/07-slice/why-slice-max/</guid><description>![image](https://i.imgur.com/bQQRTTY.png)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>8.1 fmt 标准库 --- Print 是怎么样输出的？</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/08-pkg/fmt/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/08-pkg/fmt/</guid><description>标准开场见多了，那内部标准库又是怎么输出这段英文的呢？今天一起来围观下源码吧 🤭</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>8.2 log 标准库</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/08-pkg/log/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/08-pkg/log/</guid><description>[日期]&lt;空格&gt;[时分秒]&lt;空格&gt;[内容]&lt;\\n&gt;</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>8.3 有点不安全却又一亮的 Go unsafe.Pointer</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/08-pkg/unsafe/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/08-pkg/unsafe/</guid><description>在上一篇文章[《深入理解 Go Slice》](https://book.eddycjy.com/golang/slice/slice.html)中，大家会发现其底层数据结构使用了 unsafe.Pointer。因此想着再介绍一下其关联知识</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>9.1 Go 大杀器之性能剖析 PProf</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/09-tools/go-tool-pprof/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/09-tools/go-tool-pprof/</guid><description>写了几吨代码，实现了几百个接口。功能测试也通过了，终于成功的部署上线了</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>9.2 Go 大杀器之跟踪剖析 trace</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/09-tools/go-tool-trace/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/09-tools/go-tool-trace/</guid><description>![image](https://i.imgur.com/RHLGCaz.png)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>用 GODEBUG 看 GC</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/09-tools/godebug-gc/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/09-tools/godebug-gc/</guid><description>![image](https://image.eddycjy.com/b07f55c7fd136392763729b9782f7776.png)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>用 GODEBUG 看调度跟踪</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/09-tools/godebug-sched/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/09-tools/godebug-sched/</guid><description>![image](https://image.eddycjy.com/b01c2ce25e34f80d499f0488d034b00b.png)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>9.2 爬取汽车之家 二手车产品库</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/10-crawler/cars/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/10-crawler/cars/</guid><description>项目地址：https://github.com/go-crawler/car-prices</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>9.1 爬取豆瓣电影 Top250</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/10-crawler/douban-top250/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/10-crawler/douban-top250/</guid><description>爬虫是标配了，看数据那一刻很有趣。第一个就从最最最简单最基础的爬虫开始写起吧！</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>9.3 了解一下Golang的市场行情</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/10-crawler/go2018/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/10-crawler/go2018/</guid><description>项目地址：https://github.com/go-crawler/lagoujobs</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>高效学习方法 MAS</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/01/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/01/</guid><description>- Muilti-Dimension 多角度</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>02 学习数据挖掘的最佳路径是什么 笔记</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/02/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/02/</guid><description>![最佳路径](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/bestPath.png)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>学数据分析要掌握哪些基本概念</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/06/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/06/</guid><description>学数据分析要掌握哪些基本概念 商业智能 数据仓库 数据挖掘 聚类算法 关联分析算法 数据清洗 数据集成 数据变换 数据可视化</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>用户画像的准则</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/07/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/07/</guid><description>1. 统一化：统一标识用户ID，如使用手机号、微信号、微博等</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>数据采集：如何自动化采集数据</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/08/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/08/</guid><description>开放数据源，一般在公共机构，学校，企业都会有，一般网上搜索“某某开放数据库”容易找到；</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>数据质量的准则</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/11/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/11/</guid><description>- 是否存在空值 统计字段是否完善</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>数据集成</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/12/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/12/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/20200109172634.png)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>数据挖掘前的准备工作</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/13/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/13/</guid><description>在数据变换前，需要对数据进行筛选，然后进行数据探索和相关性分析，接着选择算法模型，然后针对算法模型对数据进行数据变换，从而完成数据挖掘前的准备工作。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>sklearn 包</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/21/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/21/</guid><description>- 适应于 特征变量是连续变量 负荷高斯分布 例如身高</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>朴素贝叶斯分类(上)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/20/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/20/</guid><description>通过经验来判断事情发生的概率</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何进行乳腺癌检测</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/23/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/23/</guid><description>1. SVM 可以做回归</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>KNN 工作原理(上)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/24/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/24/</guid><description>1. 计算待分类物与他物之间的距离</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>PageRank(下)</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/33/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/33/</guid><description>1.  如何使用工具完成 PageRank 算法</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>分类和回归</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/35/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/35/</guid><description>- 不同： 输出的结果类型</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Python自动化运营微博</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/37/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/37/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/33ee64c5a434e1a7093594499e9c05d5.png)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>数据挖掘实战1</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/39/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/39/</guid><description>![](https://raw.githubusercontent.com/Syncma/Figurebed/master/img/card1.png)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>数据分析思维</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/44/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/44/</guid><description>以往赚钱的经历，把它写在时间轴，纵坐标为事件，事件影响越大，对你的影响越大</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>求职攻略</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/45/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98/45/</guid><description>1. HR 看项目经验的逻辑是什么</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.6 来，控制一下 goroutine 的并发数量</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/control-goroutine/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/control-goroutine/</guid><description>![image](https://i.imgur.com/dGQVT1x.jpg)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.10 Go defer 会有性能损耗，尽量不要用？</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/defer-loss/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/defer-loss/</guid><description>![image](https://i.imgur.com/YlKjnSH.jpg)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.7 for-loop 与 json.Unmarshal 性能分析概要</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/for-loop-json-unmarshal/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/for-loop-json-unmarshal/</guid><description>在项目中，常常会遇到循环交换赋值的数据处理场景，尤其是 RPC，数据交互格式要转为 Protobuf，赋值是无法避免的。一般会有如下几种做法：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.8 简单围观一下有趣的 //go: 指令</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/go-ins/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/go-ins/</guid><description>![image](http://wx2.sinaimg.cn/large/006fVPCvly1g1m1bplu3mj30xc0m8myg.jpg)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.5 在 Go 中恰到好处的内存对齐</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/go-memory-align/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/go-memory-align/</guid><description>![image](https://i.imgur.com/SyctY6Q.png)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.2 Go 的 fake-useragent 了解一下</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/go-fake-useragent/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/go-fake-useragent/</guid><description>有的网站会根据 User-Agent 的不同，跳转到不同（PC、M）的站点，也有根据版本的不同给出不一样的提示等等，而 User-Agent 的变化更是爬虫里的基础姿势</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.3 用 Go 来了解一下 Redis 通讯协议</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/go-redis-protocol/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/go-redis-protocol/</guid><description>Go、PHP、Java... 都有那么多包来支撑你使用 Redis，那你是否有想过</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go1.13 defer 的性能是如何提高的？</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/go113-defer/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/go113-defer/</guid><description>最近 Go1.13 终于发布了，其中一个值得关注的特性就是 defer 在大部分的场景下性能提升了30%，但是官方并没有具体写是怎么提升的，这让大家非常的疑惑。而我因为之前写过[《深入理解 Go defer》](https://book.eddycjy.com/golang/defer/defer.</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.1 聊一聊，Go 的相对路径问题</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/golang-relatively-path/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/golang-relatively-path/</guid><description>Golang 中存在各种运行方式，如何正确的引用文件路径成为一个值得商议的问题</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.4 使用 Gomock 进行单元测试</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/gomock/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/gomock/</guid><description>在实际项目中，需要进行单元测试的时候。却往往发现有一大堆依赖项。这时候就是 [Gomock](https://github.com/golang/mock) 大显身手的时候了</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.9 我要在栈上。不，你应该在堆上</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/stack-heap/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/stack-heap/</guid><description>![image](https://i.imgur.com/ixyP3XP.jpg)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>干货满满的 Go Modules 和 goproxy.cn</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/goproxy-cn/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/goproxy-cn/</guid><description>大家好，我是一只普通的煎鱼，周四晚上很有幸邀请到 goproxy.cn 的作者 @盛傲飞（@aofei） 到 Go 夜读给我们进行第 61 期 《Go Modules、Go Module Proxy 和 goproxy.cn》的技术分享。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>1.11 从实践到原理，带你参透 gRPC</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/talking-grpc/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/talking-grpc/</guid><description>![image](https://i.imgur.com/cjLNsWj.png)</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 应用内存占用太多，让排查？（VSZ篇）</title><link>https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/why-vsz-large/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-learning/%E7%85%8E%E9%B1%BC%E7%9A%84blog/01-talk/why-vsz-large/</guid><description>前段时间，某同学说某服务的容器因为超出内存限制，不断地重启，问我们是不是有内存泄露，赶紧排查，然后解决掉，省的出问题。我们大为震惊，赶紧查看监控+报警系统和性能分析，发现应用指标压根就不高，不像有泄露的样子。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>GC 的认识</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/gc/gc/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/gc/gc/</guid><description>&gt; 当文中提及目前、目前版本等字眼时均指 Go 1.14，此外，文中所有 go 命令版本均为 Go 1.14。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>channel 在什么情况下会引起资源泄漏</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/channel-%E5%9C%A8%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%E4%B8%8B%E4%BC%9A%E5%BC%95%E8%B5%B7%E8%B5%84%E6%BA%90%E6%B3%84%E6%BC%8F/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/channel-%E5%9C%A8%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%E4%B8%8B%E4%BC%9A%E5%BC%95%E8%B5%B7%E8%B5%84%E6%BA%90%E6%B3%84%E6%BC%8F/</guid><description>Channel 可能会引发 goroutine 泄漏。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/channel-%E5%8F%91%E9%80%81%E5%92%8C%E6%8E%A5%E6%94%B6%E5%85%83%E7%B4%A0%E7%9A%84%E6%9C%AC%E8%B4%A8%E6%98%AF%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/channel-%E5%8F%91%E9%80%81%E5%92%8C%E6%8E%A5%E6%94%B6%E5%85%83%E7%B4%A0%E7%9A%84%E6%9C%AC%E8%B4%A8%E6%98%AF%E4%BB%80%E4%B9%88/</guid><description>Channel 发送和接收元素的本质是什么？</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>数据结构</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/channel-%E5%BA%95%E5%B1%82%E7%9A%84%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E6%98%AF%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/channel-%E5%BA%95%E5%B1%82%E7%9A%84%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E6%98%AF%E4%BB%80%E4%B9%88/</guid><description>底层数据结构需要看源码，版本为 go 1.9.2：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>停止信号</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/channel-%E6%9C%89%E5%93%AA%E4%BA%9B%E5%BA%94%E7%94%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/channel-%E6%9C%89%E5%93%AA%E4%BA%9B%E5%BA%94%E7%94%A8/</guid><description>Channel 和 goroutine 的结合是 Go 并发编程的大杀器。而 Channel 的实际应用也经常让人眼前一亮，通过与 select，cancel，timer 等结合，它能实现各种各样的功能。接下来，我们就要梳理一下 channel 的应用。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>什么是 CSP</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E4%BB%80%E4%B9%88%E6%98%AF-csp/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E4%BB%80%E4%B9%88%E6%98%AF-csp/</guid><description>&gt; Do not communicate by sharing memory; instead, share memory by communicating.</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>源码分析</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E4%BB%8E-channel-%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%E7%9A%84%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E4%BB%8E-channel-%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%E7%9A%84%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>我们先来看一下接收相关的源码。在清楚了接收的具体过程之后，再根据一个实际的例子来具体研究。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>从一个关闭的 channel 仍然能读出数据吗</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E4%BB%8E%E4%B8%80%E4%B8%AA%E5%85%B3%E9%97%AD%E7%9A%84-channel-%E4%BB%8D%E7%84%B6%E8%83%BD%E8%AF%BB%E5%87%BA%E6%95%B0%E6%8D%AE%E5%90%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E4%BB%8E%E4%B8%80%E4%B8%AA%E5%85%B3%E9%97%AD%E7%9A%84-channel-%E4%BB%8D%E7%84%B6%E8%83%BD%E8%AF%BB%E5%87%BA%E6%95%B0%E6%8D%AE%E5%90%97/</guid><description>从一个有缓冲的 channel 里读数据，当 channel 被关闭，依然能读出有效值。只有当返回的 ok 为 false 时，读出的数据才是无效的。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>关于 channel 的 happened-before 有哪些</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E5%85%B3%E4%BA%8E-channel-%E7%9A%84-happened-before-%E6%9C%89%E5%93%AA%E4%BA%9B/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E5%85%B3%E4%BA%8E-channel-%E7%9A%84-happened-before-%E6%9C%89%E5%93%AA%E4%BA%9B/</guid><description>&gt; In computer science, the happened-before relation (denoted: -&gt;) is a relation between the result of two events, such that if one event should happen</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>关闭一个 channel 的过程是怎样的</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E5%85%B3%E9%97%AD%E4%B8%80%E4%B8%AA-channel-%E7%9A%84%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E5%85%B3%E9%97%AD%E4%B8%80%E4%B8%AA-channel-%E7%9A%84%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>关闭某个 channel，会执行函数 closechan：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>源码分析</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E5%90%91-channel-%E5%8F%91%E9%80%81%E6%95%B0%E6%8D%AE%E7%9A%84%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E5%90%91-channel-%E5%8F%91%E9%80%81%E6%95%B0%E6%8D%AE%E7%9A%84%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>发送操作最终转化为 chansend 函数，直接上源码，同样大部分都注释了，可以看懂主流程：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E5%9C%B0%E5%85%B3%E9%97%AD-channel/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E5%9C%B0%E5%85%B3%E9%97%AD-channel/</guid><description>关于 channel 的使用，有几点不方便的地方：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>操作 channel 的情况总结</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E6%93%8D%E4%BD%9C-channel-%E7%9A%84%E6%83%85%E5%86%B5%E6%80%BB%E7%BB%93/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/channel/%E6%93%8D%E4%BD%9C-channel-%E7%9A%84%E6%83%85%E5%86%B5%E6%80%BB%E7%BB%93/</guid><description>总结一下操作 channel 的结果：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>GPM 是什么</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/gpm-%E6%98%AF%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/gpm-%E6%98%AF%E4%BB%80%E4%B9%88/</guid><description>G、P、M 是 Go 调度器的三个核心组件，各司其职。在它们精密地配合下，Go 调度器得以高效运转，这也是 Go 天然支持高并发的内在动力。今天这篇文章我们来深入理解 GPM 模型。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/m-%E5%A6%82%E4%BD%95%E6%89%BE%E5%B7%A5%E4%BD%9C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/m-%E5%A6%82%E4%BD%95%E6%89%BE%E5%B7%A5%E4%BD%9C/</guid><description>在 schedule 函数中，我们简单提过找一个 runnable goroutine 的过程，这一讲我们来详细分析源码。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/g0-%E6%A0%88%E4%BD%95%E7%94%A8%E6%88%B7%E6%A0%88%E5%A6%82%E4%BD%95%E5%88%87%E6%8D%A2/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/g0-%E6%A0%88%E4%BD%95%E7%94%A8%E6%88%B7%E6%A0%88%E5%A6%82%E4%BD%95%E5%88%87%E6%8D%A2/</guid><description>上一讲讲完了 main goroutine 的诞生，它不是第一个，算上 g0，它要算第二个了。不过，我们要考虑的就是这个 goroutine，它会真正执行用户代码。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>goroutine 调度时机有哪些</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/goroutine-%E8%B0%83%E5%BA%A6%E6%97%B6%E6%9C%BA%E6%9C%89%E5%93%AA%E4%BA%9B/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/goroutine-%E8%B0%83%E5%BA%A6%E6%97%B6%E6%9C%BA%E6%9C%89%E5%93%AA%E4%BA%9B/</guid><description>在四种情形下，goroutine 可能会发生调度，但也并不一定会发生，只是说 Go scheduler 有机会进行调度。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>goroutine和线程的区别</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/goroutine%E5%92%8C%E7%BA%BF%E7%A8%8B%E7%9A%84%E5%8C%BA%E5%88%AB/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/goroutine%E5%92%8C%E7%BA%BF%E7%A8%8B%E7%9A%84%E5%8C%BA%E5%88%AB/</guid><description>谈到 goroutine，绕不开的一个话题是：它和 thread 有什么区别？</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/goroutine-%E5%A6%82%E4%BD%95%E9%80%80%E5%87%BA/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/goroutine-%E5%A6%82%E4%BD%95%E9%80%80%E5%87%BA/</guid><description>上一讲说到调度器将 main goroutine 推上舞台，为它铺好了道路，开始执行 runtime.main 函数。这一讲，我们探索 main goroutine 以及普通 goroutine 从执行到退出的整个过程。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/mian-gorutine-%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/mian-gorutine-%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA/</guid><description>上一讲我们讲完了 Go scheduler 的初始化，现在调度器一切就绪，就差被调度的实体了。本文就来讲述 main goroutine 是如何诞生，并且被调度的。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/schedule-%E5%BE%AA%E7%8E%AF%E5%A6%82%E4%BD%95%E5%90%AF%E5%8A%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/schedule-%E5%BE%AA%E7%8E%AF%E5%A6%82%E4%BD%95%E5%90%AF%E5%8A%A8/</guid><description>上一讲新创建了一个 goroutine，设置好了 sched 成员的 sp 和 pc 字段，并且将其添加到了 p0 的本地可运行队列，坐等调度器的调度。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/schedule-%E5%BE%AA%E7%8E%AF%E5%A6%82%E4%BD%95%E8%BF%90%E8%BD%AC/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/schedule-%E5%BE%AA%E7%8E%AF%E5%A6%82%E4%BD%95%E8%BF%90%E8%BD%AC/</guid><description>上一节，我们讲完 main goroutine 以及普通 goroutine 的退出过程。main goroutine 退出后直接调用 exit(0) 使得整个进程退出，而普通 goroutine 退出后，则进行了一系列的调用，最终又切到 g0 栈，执行 schedule 函数。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>抢占进行系统调用的 P</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/sysmon-%E5%90%8E%E5%8F%B0%E7%9B%91%E6%8E%A7%E7%BA%BF%E7%A8%8B%E5%81%9A%E4%BA%86%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/sysmon-%E5%90%8E%E5%8F%B0%E7%9B%91%E6%8E%A7%E7%BA%BF%E7%A8%8B%E5%81%9A%E4%BA%86%E4%BB%80%E4%B9%88/</guid><description>在 runtime.main() 函数中，执行 runtimeinit() 前，会启动一个 sysmon 的监控线程，执行后台监控任务：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>一个调度相关的陷阱</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E4%B8%80%E4%B8%AA%E8%B0%83%E5%BA%A6%E7%9B%B8%E5%85%B3%E7%9A%84%E9%99%B7%E9%98%B1/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E4%B8%80%E4%B8%AA%E8%B0%83%E5%BA%A6%E7%9B%B8%E5%85%B3%E7%9A%84%E9%99%B7%E9%98%B1/</guid><description>由于 Go 语言是协作式的调度，不会像线程那样，在时间片用完后，由 CPU 中断任务强行将其调度走。对于 Go 语言中运行时间过长的 goroutine，Go scheduler 有一个后台线程在持续监控，一旦发现 goroutine 运行超过 10 ms，会设置 goroutine 的“抢占标志位</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>什么是 sheduler</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E4%BB%80%E4%B9%88%E6%98%AF-go-shceduler/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E4%BB%80%E4%B9%88%E6%98%AF-go-shceduler/</guid><description>Go 程序的执行由两层组成：Go Program，Runtime，即用户程序和运行时。它们之间通过函数调用来实现内存管理、channel 通信、goroutines 创建等功能。用户程序进行的系统调用都会被 Runtime 拦截，以此来帮助它进行调度以及垃圾回收相关的工作。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>什么是workstealing</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E4%BB%80%E4%B9%88%E6%98%AFworkstealing/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E4%BB%80%E4%B9%88%E6%98%AFworkstealing/</guid><description>Go scheduler 的职责就是将所有处于 runnable 的 goroutines 均匀分布到在 P 上运行的 M。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/go-%E6%8E%A5%E5%8F%A3%E4%B8%8E-c-%E6%8E%A5%E5%8F%A3%E6%9C%89%E4%BD%95%E5%BC%82%E5%90%8C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/go-%E6%8E%A5%E5%8F%A3%E4%B8%8E-c-%E6%8E%A5%E5%8F%A3%E6%9C%89%E4%BD%95%E5%BC%82%E5%90%8C/</guid><description>接口定义了一种规范，描述了类的行为和功能，而不做具体实现。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>调整 SP</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E6%8F%8F%E8%BF%B0-scheduler-%E7%9A%84%E5%88%9D%E5%A7%8B%E5%8C%96%E8%BF%87%E7%A8%8B/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/goroutine-%E8%B0%83%E5%BA%A6%E5%99%A8/%E6%8F%8F%E8%BF%B0-scheduler-%E7%9A%84%E5%88%9D%E5%A7%8B%E5%8C%96%E8%BF%87%E7%A8%8B/</guid><description>上一节我们说完了 GPM 结构体，这一讲，我们来研究 Go sheduler 结构体，以及整个调度器的初始化过程。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/go-%E8%AF%AD%E8%A8%80%E4%B8%8E%E9%B8%AD%E5%AD%90%E7%B1%BB%E5%9E%8B%E7%9A%84%E5%85%B3%E7%B3%BB/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/go-%E8%AF%AD%E8%A8%80%E4%B8%8E%E9%B8%AD%E5%AD%90%E7%B1%BB%E5%9E%8B%E7%9A%84%E5%85%B3%E7%B3%BB/</guid><description>先直接来看维基百科里的定义：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/iface-%E5%92%8C-eface-%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/iface-%E5%92%8C-eface-%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%E4%BB%80%E4%B9%88/</guid><description>iface 和 eface 都是 Go 中描述接口的底层结构体，区别在于 iface 描述的接口包含方法，而 eface 则是不包含任何方法的空接口：interface{}。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>方法</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/%E5%80%BC%E6%8E%A5%E6%94%B6%E8%80%85%E5%92%8C%E6%8C%87%E9%92%88%E6%8E%A5%E6%94%B6%E8%80%85%E7%9A%84%E5%8C%BA%E5%88%AB/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/%E5%80%BC%E6%8E%A5%E6%94%B6%E8%80%85%E5%92%8C%E6%8C%87%E9%92%88%E6%8E%A5%E6%94%B6%E8%80%85%E7%9A%84%E5%8C%BA%E5%88%AB/</guid><description>方法能给用户自定义的类型添加新的行为。它和函数的区别在于方法有一个接收者，给一个函数添加一个接收者，那么它就变成了方法。接收者可以是值接收者，也可以是指针接收者。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/%E5%A6%82%E4%BD%95%E7%94%A8-interface-%E5%AE%9E%E7%8E%B0%E5%A4%9A%E6%80%81/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/%E5%A6%82%E4%BD%95%E7%94%A8-interface-%E5%AE%9E%E7%8E%B0%E5%A4%9A%E6%80%81/</guid><description>Go 语言并没有设计诸如虚函数、纯虚函数、继承、多重继承等概念，但它通过接口却非常优雅地支持了面向对象的特性。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%8A%A8%E6%80%81%E7%B1%BB%E5%9E%8B%E5%92%8C%E5%8A%A8%E6%80%81%E5%80%BC/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%8A%A8%E6%80%81%E7%B1%BB%E5%9E%8B%E5%92%8C%E5%8A%A8%E6%80%81%E5%80%BC/</guid><description>从源码里可以看到：iface包含两个字段：tab 是接口表指针，指向类型信息；data 是数据指针，则指向具体的数据。它们分别被称为动态类型和动态值。而接口值包括动态类型和动态值。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/%E6%8E%A5%E5%8F%A3%E7%9A%84%E6%9E%84%E9%80%A0%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/%E6%8E%A5%E5%8F%A3%E7%9A%84%E6%9E%84%E9%80%A0%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>我们已经看过了 iface 和 eface 的源码，知道 iface 最重要的是 itab 和 type。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>参考资料</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/%E6%8E%A5%E5%8F%A3%E8%BD%AC%E6%8D%A2%E7%9A%84%E5%8E%9F%E7%90%86/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/%E6%8E%A5%E5%8F%A3%E8%BD%AC%E6%8D%A2%E7%9A%84%E5%8E%9F%E7%90%86/</guid><description>通过前面提到的 iface 的源码可以看到，实际上它包含接口的类型 interfacetype 和 实体类型的类型 type，这两者都是 iface 的字段 itab 的成员。也就是说生成一个 itab 同时需要接口的类型和实体的类型。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>类型转换</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2%E5%92%8C%E6%96%AD%E8%A8%80%E7%9A%84%E5%8C%BA%E5%88%AB/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2%E5%92%8C%E6%96%AD%E8%A8%80%E7%9A%84%E5%8C%BA%E5%88%AB/</guid><description>我们知道，Go 语言中不允许隐式类型转换，也就是说 = 两边，不允许出现类型不相同的变量。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>编译器自动检测类型是否实现接口</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/%E7%BC%96%E8%AF%91%E5%99%A8%E8%87%AA%E5%8A%A8%E6%A3%80%E6%B5%8B%E7%B1%BB%E5%9E%8B%E6%98%AF%E5%90%A6%E5%AE%9E%E7%8E%B0%E6%8E%A5%E5%8F%A3/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/interface/%E7%BC%96%E8%AF%91%E5%99%A8%E8%87%AA%E5%8A%A8%E6%A3%80%E6%B5%8B%E7%B1%BB%E5%9E%8B%E6%98%AF%E5%90%A6%E5%AE%9E%E7%8E%B0%E6%8E%A5%E5%8F%A3/</guid><description>经常看到一些开源库里会有一些类似下面这种奇怪的用法：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>float类型可以作为map的key吗</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/float%E7%B1%BB%E5%9E%8B%E5%8F%AF%E4%BB%A5%E4%BD%9C%E4%B8%BAmap%E7%9A%84key%E5%90%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/float%E7%B1%BB%E5%9E%8B%E5%8F%AF%E4%BB%A5%E4%BD%9C%E4%B8%BAmap%E7%9A%84key%E5%90%97/</guid><description>从语法上看，是可以的。Go 语言中只要是可比较的类型都可以作为 key。除开 slice，map，functions 这几种类型，其他类型都是 OK 的。具体包括：布尔值、数字、字符串、指针、通道、接口类型、结构体、只包含上述类型的数组。这些类型的共同特征是支持 == 和 != 操作符，k1 ==</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>map中的key为什么是无序的</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/map%E4%B8%AD%E7%9A%84key%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AF%E6%97%A0%E5%BA%8F%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/map%E4%B8%AD%E7%9A%84key%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AF%E6%97%A0%E5%BA%8F%E7%9A%84/</guid><description>map 在扩容后，会发生 key 的搬迁，原来落在同一个 bucket 中的 key，搬迁后，有些 key 就要远走高飞了（bucket 序号加上了 2^B）。而遍历的过程，就是按顺序遍历 bucket，同时按顺序遍历 bucket 中的 key。搬迁后，key 的位置发生了重大的变化，有些 key</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>map是线程安全的吗</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/map%E6%98%AF%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E7%9A%84%E5%90%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/map%E6%98%AF%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E7%9A%84%E5%90%97/</guid><description>在查找、赋值、遍历、删除的过程中都会检测写标志，一旦发现写标志置位（等于1），则直接 panic。赋值和删除函数在检测完写标志是复位之后，先将写标志位置位，才会进行之后的操作。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>map的删除过程是怎样的</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/map%E7%9A%84%E5%88%A0%E9%99%A4%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/map%E7%9A%84%E5%88%A0%E9%99%A4%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>写操作底层的执行函数是 mapdelete：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>什么是 map</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/map%E7%9A%84%E5%BA%95%E5%B1%82%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86%E6%98%AF%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/map%E7%9A%84%E5%BA%95%E5%B1%82%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86%E6%98%AF%E4%BB%80%E4%B9%88/</guid><description>维基百科里这样定义 map：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>map的扩容过程是怎样的</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/map%E7%9A%84%E6%89%A9%E5%AE%B9%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/map%E7%9A%84%E6%89%A9%E5%AE%B9%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>使用哈希表的目的就是要快速查找到目标 key，然而，随着向 map 中添加的 key 越来越多，key 发生碰撞的概率也越来越大。bucket 中的 8 个 cell 会被逐渐塞满，查找、插入、删除 key 的效率也会越来越低。最理想的情况是一个 bucket 只装一个 key，这样，就能达到 O(</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>map的赋值过程是怎样的</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/map%E7%9A%84%E8%B5%8B%E5%80%BC%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/map%E7%9A%84%E8%B5%8B%E5%80%BC%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>通过汇编语言可以看到，向 map 中插入或者修改 key，最终调用的是 mapassign 函数。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>map的遍历过程是怎样的</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/map%E7%9A%84%E9%81%8D%E5%8E%86%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/map%E7%9A%84%E9%81%8D%E5%8E%86%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>本来 map 的遍历过程比较简单：遍历所有的 bucket 以及它后面挂的 overflow bucket，然后挨个遍历 bucket 中的所有 cell。每个 bucket 中包含 8 个 cell，从有 key 的 cell 中取出 key 和 value，这个过程就完成了。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>可以对map的元素取地址吗</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/%E5%8F%AF%E4%BB%A5%E5%AF%B9map%E7%9A%84%E5%85%83%E7%B4%A0%E5%8F%96%E5%9C%B0%E5%9D%80%E5%90%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/%E5%8F%AF%E4%BB%A5%E5%AF%B9map%E7%9A%84%E5%85%83%E7%B4%A0%E5%8F%96%E5%9C%B0%E5%9D%80%E5%90%97/</guid><description>无法对 map 的 key 或 value 进行取址。以下代码不能通过编译：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>可以边遍历边删除吗</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/%E5%8F%AF%E4%BB%A5%E8%BE%B9%E9%81%8D%E5%8E%86%E8%BE%B9%E5%88%A0%E9%99%A4%E5%90%97/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/%E5%8F%AF%E4%BB%A5%E8%BE%B9%E9%81%8D%E5%8E%86%E8%BE%B9%E5%88%A0%E9%99%A4%E5%90%97/</guid><description>map 并不是一个线程安全的数据结构。同时读写一个 map 是未定义的行为，如果被检测到，会直接 panic。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何实现两种get操作</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E4%B8%A4%E7%A7%8Dget%E6%93%8D%E4%BD%9C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E4%B8%A4%E7%A7%8Dget%E6%93%8D%E4%BD%9C/</guid><description>Go 语言中读取 map 有两种语法：带 comma 和 不带 comma。当要查询的 key 不在 map 里，带 comma 的用法会返回一个 bool 型变量提示 key 是否在 map 中；而不带 comma 的语句则会返回一个 key 类型的零值。如果 key 是 int 型就会返回 0，</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何比较两个map相等</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/%E5%A6%82%E4%BD%95%E6%AF%94%E8%BE%83%E4%B8%A4%E4%B8%AAmap%E7%9B%B8%E7%AD%89/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/map/%E5%A6%82%E4%BD%95%E6%AF%94%E8%BE%83%E4%B8%A4%E4%B8%AAmap%E7%9B%B8%E7%AD%89/</guid><description>直接将使用 map1 == map2 是错误的。这种写法只能比较 map 是否为 nil。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>types 和 interface</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E5%8F%8D%E5%B0%84/go-%E8%AF%AD%E8%A8%80%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%8F%8D%E5%B0%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E5%8F%8D%E5%B0%84/go-%E8%AF%AD%E8%A8%80%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%8F%8D%E5%B0%84/</guid><description>interface，它是 Go 语言实现抽象的一个非常强大的工具。当向接口变量赋予一个实体类型的时候，接口会存储实体的类型信息，反射就是通过接口的类型信息实现的，反射建立在类型的基础上。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>什么情况下需要使用反射</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E5%8F%8D%E5%B0%84/%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%E4%B8%8B%E9%9C%80%E8%A6%81%E4%BD%BF%E7%94%A8%E5%8F%8D%E5%B0%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E5%8F%8D%E5%B0%84/%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%E4%B8%8B%E9%9C%80%E8%A6%81%E4%BD%BF%E7%94%A8%E5%8F%8D%E5%B0%84/</guid><description>使用反射的常见场景有以下两种：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>什么是反射</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E5%8F%8D%E5%B0%84/%E4%BB%80%E4%B9%88%E6%98%AF%E5%8F%8D%E5%B0%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E5%8F%8D%E5%B0%84/%E4%BB%80%E4%B9%88%E6%98%AF%E5%8F%8D%E5%B0%84/</guid><description>&gt;在计算机科学中，反射是指计算机程序在运行时（Run time）可以访问、检测和修改它本身状态或行为的一种能力。用比喻来说，反射就是程序在运行的时候能够“观察”并且修改自己的行为。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何比较两个对象完全相同</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E5%8F%8D%E5%B0%84/%E5%A6%82%E4%BD%95%E6%AF%94%E8%BE%83%E4%B8%A4%E4%B8%AA%E5%AF%B9%E8%B1%A1%E5%AE%8C%E5%85%A8%E7%9B%B8%E5%90%8C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E5%8F%8D%E5%B0%84/%E5%A6%82%E4%BD%95%E6%AF%94%E8%BE%83%E4%B8%A4%E4%B8%AA%E5%AF%B9%E8%B1%A1%E5%AE%8C%E5%85%A8%E7%9B%B8%E5%90%8C/</guid><description>Go 语言中提供了一个函数可以完成此项功能：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>切片作为函数参数</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87/%E5%88%87%E7%89%87%E4%BD%9C%E4%B8%BA%E5%87%BD%E6%95%B0%E5%8F%82%E6%95%B0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87/%E5%88%87%E7%89%87%E4%BD%9C%E4%B8%BA%E5%87%BD%E6%95%B0%E5%8F%82%E6%95%B0/</guid><description>前面我们说到，slice 其实是一个结构体，包含了三个成员：len, cap, array。分别表示切片长度，容量，底层数据的地址。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>切片的容量是怎样增长的</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87/%E5%88%87%E7%89%87%E7%9A%84%E5%AE%B9%E9%87%8F%E6%98%AF%E6%80%8E%E6%A0%B7%E5%A2%9E%E9%95%BF%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87/%E5%88%87%E7%89%87%E7%9A%84%E5%AE%B9%E9%87%8F%E6%98%AF%E6%80%8E%E6%A0%B7%E5%A2%9E%E9%95%BF%E7%9A%84/</guid><description>一般都是在向 slice 追加了元素之后，才会引起扩容。追加元素调用的是 append 函数。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>数组和切片有什么异同</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87%E6%9C%89%E4%BB%80%E4%B9%88%E5%BC%82%E5%90%8C/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87/%E6%95%B0%E7%BB%84%E5%92%8C%E5%88%87%E7%89%87%E6%9C%89%E4%BB%80%E4%B9%88%E5%BC%82%E5%90%8C/</guid><description>slice 的底层数据是数组，slice 是对数组的封装，它描述一个数组的片段。两者都可以通过下标来访问单个元素。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go 程序启动过程是怎样的</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/go-%E7%A8%8B%E5%BA%8F%E5%90%AF%E5%8A%A8%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/go-%E7%A8%8B%E5%BA%8F%E5%90%AF%E5%8A%A8%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>我们从一个 Hello World 的例子开始：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>go build</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/go-%E7%BC%96%E8%AF%91%E7%9B%B8%E5%85%B3%E7%9A%84%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/go-%E7%BC%96%E8%AF%91%E7%9B%B8%E5%85%B3%E7%9A%84%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/</guid><description>就能得到和 go 相关的命令简介：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>编译过程</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/go-%E7%BC%96%E8%AF%91%E9%93%BE%E6%8E%A5%E8%BF%87%E7%A8%8B%E6%A6%82%E8%BF%B0/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/go-%E7%BC%96%E8%AF%91%E9%93%BE%E6%8E%A5%E8%BF%87%E7%A8%8B%E6%A6%82%E8%BF%B0/</guid><description>我们从一个 Hello World 的例子开始：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>GoRoot 和 GoPath 有什么用</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/goroot-%E5%92%8C-gopath-%E6%9C%89%E4%BB%80%E4%B9%88%E7%94%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/goroot-%E5%92%8C-gopath-%E6%9C%89%E4%BB%80%E4%B9%88%E7%94%A8/</guid><description>GoRoot 是  Go 的安装路径。mac 或 unix 是在 /usr/local/go 路径上，来看下这里都装了些什么：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>逃逸分析是怎么进行的</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/%E9%80%83%E9%80%B8%E5%88%86%E6%9E%90%E6%98%AF%E6%80%8E%E4%B9%88%E8%BF%9B%E8%A1%8C%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5/%E9%80%83%E9%80%B8%E5%88%86%E6%9E%90%E6%98%AF%E6%80%8E%E4%B9%88%E8%BF%9B%E8%A1%8C%E7%9A%84/</guid><description>在编译原理中，分析指针动态范围的方法称之为逃逸分析。通俗来讲，当一个对象的指针被多个方法或线程引用时，我们称这个指针发生了逃逸。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>接口</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/context-%E5%A6%82%E4%BD%95%E8%A2%AB%E5%8F%96%E6%B6%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/context-%E5%A6%82%E4%BD%95%E8%A2%AB%E5%8F%96%E6%B6%88/</guid><description>context 包的代码并不长，context.go 文件总共不到 500 行，其中还有很多大段的注释，代码可能也就 200 行左右的样子，是一个非常值得研究的代码库。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>context 是什么</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/context-%E6%98%AF%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/context-%E6%98%AF%E4%BB%80%E4%B9%88/</guid><description>Go 1.7 标准库引入 context，中文译作“上下文”，准确说它是 goroutine 的上下文，包含 goroutine 的运行状态、环境、现场等信息。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>传递共享的数据</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/context-%E6%9C%89%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/context-%E6%9C%89%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8/</guid><description>Go 常用来写后台服务，通常只需要几行代码，就可以搭建一个 http server。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>Go指针和unsafe.Pointer有什么区别</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/go%E6%8C%87%E9%92%88%E5%92%8Cunsafepointer%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/go%E6%8C%87%E9%92%88%E5%92%8Cunsafepointer%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB/</guid><description>Go 语言的作者之一 Ken Thompson 也是 C 语言的作者。所以，Go 可以看作 C 系语言，它的很多特性都和 C 类似，指针就是其中之一。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>context.Value 的查找过程是怎样的</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/contextvalue-%E7%9A%84%E6%9F%A5%E6%89%BE%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/context/contextvalue-%E7%9A%84%E6%9F%A5%E6%89%BE%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/</guid><description>由于它直接将 Context 作为匿名字段，因此仅管它只实现了 2 个方法，其他方法继承自父 context。但它仍然是一个 Context，这是 Go 语言的一个特点。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>如何利用unsafe包修改私有成员</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/%E5%A6%82%E4%BD%95%E5%88%A9%E7%94%A8unsafe%E5%8C%85%E4%BF%AE%E6%94%B9%E7%A7%81%E6%9C%89%E6%88%90%E5%91%98/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/%E5%A6%82%E4%BD%95%E5%88%A9%E7%94%A8unsafe%E5%8C%85%E4%BF%AE%E6%94%B9%E7%A7%81%E6%9C%89%E6%88%90%E5%91%98/</guid><description>对于一个结构体，通过 offset 函数可以获取结构体成员的偏移量，进而获取成员的地址，读写该地址的内存，就可以达到改变成员值的目的。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item><item><title>获取 slice 长度</title><link>https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/%E5%A6%82%E4%BD%95%E5%88%A9%E7%94%A8unsafe%E8%8E%B7%E5%8F%96slicemap%E7%9A%84%E9%95%BF%E5%BA%A6/</link><guid isPermaLink="true">https://blog.zhequtao.com/posts/golang/go-new/gobook/go-questions/%E6%A0%87%E5%87%86%E5%BA%93/unsafe/%E5%A6%82%E4%BD%95%E5%88%A9%E7%94%A8unsafe%E8%8E%B7%E5%8F%96slicemap%E7%9A%84%E9%95%BF%E5%BA%A6/</guid><description>通过前面关于 slice 的[文章](https://mp.weixin.qq.com/s/MTZ0C9zYsNrb8wyIm2D8BA)，我们知道了 slice header 的结构体定义：</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate></item></channel></rss>