POLOXUE's BLOG
文章列表
分类标签
关于我
Posts
15
Apr 2025
掌握 backtrader 策略回测:均线交叉交易系统
我花了一个星期通读了 backtrader 的官方文档,順便还通过 AI 整理出了它的中文文档,我不想写 backtrader 的基础入门教程,还不如直接用 backtrader 逐步展开回测这一个策略,或许更加容易掌握它的使用。 相较...
04
Apr 2025
配对交易基础教程
本文是翻译自 QuantInsti 的配对交易基础教程。
19
Mar 2025
实时监控加密货币现货市场的三角套利机会
本文继续介绍一个常见的套利策略,三角套利策略。
09
Mar 2025
加密货币市场的低风险套利策略-期现套利
本文介绍加密货币市场上的又一个低风险套利策略,期现套利策略。
08
Mar 2025
期货回测避坑-基于 tushare 计算期货复权价格
本文介绍如何计算期货的复权数据,以 Tushare 作为数据源。
03
Mar 2025
开发了一个加密货币跨市场价差监控工具
我开发了一个加密货币跨交易所价差的监控工具。
22
Feb 2025
通过 Hummingbot 运行一个做市机器人
最近在研究了下一个叫 Hummingbot 的 Python 加密货币机器人,它其中提供了高频做市、跨市场套利和资金费率套利等策略。
16
Feb 2025
实时监控加密货币跨交易所的套利机会
有评论希望我展开来说说跨交易所的套利机会。一直觉得随着参与这类策略的人多了,机会很少了,就没有深入研究过。这次借这个机会尝试一下。
12
Feb 2025
分享一个全量下载数字货币分钟行情的代码片段
今天,分享一个简短的脚本,从 binance 下载全量的行情数据,包括分钟级别的 OHLCV 行情。
11
Feb 2025
如何评价交易策略的表现?
在设计一个量化策略时,常会面临这样的疑问:我的策略好不好?怎么判断它是否真正有效?
10
Feb 2025
如何通过 Python 获取加密货币的历史实时行情
如果你想参与加密货币市场,获取实时、准确的市场数据就是重要的第一步。
04
Feb 2025
基于 Python 开发 GMGN.AI 抢币机器人
本文介绍如何使用 Python 开发一个 gmgn.ai 的抢币机器人,它可以用来从链上抢币,如 Trump 等 meme 币。
13
Jan 2025
使用 Streamlit 打造一个股票筛选分析工具
本文将通过 Python、Streamlit 和 Tushare,搭建一个简单易用的股票筛选器,它不仅可以筛选股票,还能查看详细数据并生成动态 K 线图,让你对股票市场有更全面的了解。
24
Dec 2024
Backtesting.py 参数优化入门
本文介绍 Backtesting.py 的参数优化,快速上手 **Backtesting.py** 参数优化。
18
Dec 2024
Backtesting.py 快速上手
本文将介绍 **Backtesting.py**,一个轻量级的 Python 的交易回测框架。
15
Dec 2024
借助 OpenAI 开发一个效率小工具监控油管频道
油管提供了获取知识和资讯的渠道,有很多有价值的信息。本文介绍如何借助 Python 和 AI 开发一个工具,监控油管频道,提升我们的日常学习和工作效率。
10
Dec 2024
mplfinance - 一个轻松绘制股票行情图表的 python 库
mplfinance 是一个基于 matplotlib 的金融数据可视化工具,旨在方便地生成 OHLC、K线图和其他金融相关图表。本教程将逐步带你从基础到高级使用,帮助你熟练掌握 `mplfinance` 的使用技巧。
10
Dec 2024
数据清洗与预处理:做好分析的第一步
今天,就来聊聊数据清洗和预处理,用一个常见的股票行情数据作为例子,走一遍实际的操作。你会发现,这并不是一件多难的事。
04
Dec 2024
从 Tushare 数据下载金融数据
本文介绍如何使用 tushare 下载金融数据,主要还是通过最基础的数据介绍它的使用。
01
Nov 2024
通过 python 获取金融数据-akshare
本文将介绍如何获取金融数据,我将基于 Python 开源数据包实现免费数据的下载。
01
Nov 2024
浅谈算法交易
本文想基于我的理解浅谈下算法交易,或者说是量化交易。
23
Sep 2024
理解未平仓量(Open Interest)在期权交易中的作用
理解未平仓量在期权交易中至关重要,它有助于做出明智的决策并制定成功的交易策略。未平仓量代表市场中特定执行价格和到期日的未关闭或未行权的期权合约总数。
22
Sep 2024
隐含波动率理解与 Python 计算
你是否曾想过如何衡量市场对波动率的预期?有没有一种方法可以预测未来的波动率,助我们在期权交易中制定策略?希望这篇文章给你这些问题的答案,它将详细介绍有关隐含波动率的知识。
21
Sep 2024
使用 Python 绘制 BTC 期权的波动率曲面
波动率曲面(Volatility Surface)是期权交易中展示隐含波动率随行权价(strike price)和到期时间(expiry time)变化的一种三维图形。
20
Sep 2024
跨式期权交易和 Python
期权作为一种灵活的工具提供了精准把控市场的可能性。在众多策略中,跨式期权策略有着简单性和潜在的收益最大化的特点。
18
Sep 2024
如何使用 Python Matplotlib 绘制 3D 曲面图
在数据可视化中,3D 图表是一个非常有用的工具,特别是当我们想要展示复杂的三维数据时,如期权的波动率曲面。Python 的 `matplotlib` 库提供了生成各种类型图表,包括 3D 图表。
09
Sep 2024
Python 三方库 Opstrat 绘制收益图加深期权策略理解
本文介绍介绍一个 Python 包- opstrat,通过它绘制期权收益图,帮助我们理解期权策略的收益风险比。
08
Sep 2024
期权备兑策略介绍与通过 Python 绘制收益图
本文介绍备兑期权(covered calls)策略,一个交易者员常用的策略。期权交易看起来复杂,常常使新手却步。然而,一旦正确掌握了,就会变得简单易懂。
23
Jul 2024
如何使用 Python 将日线行情转换为周线
将低周期的蜡烛图转换为长周期蜡烛图是一种常见的需求,如分钟线到小时线、日线到周线,这可以帮我们更好分析图表和产生信号。
14
Jul 2024
Python 实现技术指标邮件告警通知
在交易中,如果你有一套人工配合机器人的交易思路,即希望人工确认而不直接下单,那么及时获取关键位置的通知信息,如一些特征明显的技术指标的告警信息,是非常重要的。
12
Jul 2024
使用 Akshare 下载国内的期货(主力连续)、股票和指数的历史行情数据
本文介绍如何使用 akshare 下载国内的期货、股票和指数的历史行情数据。
01
Jul 2024
永续合约资金费率数据搜集
在上一篇博文中,我介绍了永续合约资金费率套利的原理。任何一个交易策略如果想要长期使用,必须挖掘和分析它在不同行情下的表现,而这一过程离不开获取历史数据。
23
Jun 2024
谈谈加密货币市场上的资金费率套利
资金费率套利是一种基于加密货币市场特有的永续合约(Perpetual Contract)来实现的巧妙赚取收益的策略。
13
May 2024
一个 Python 轻量级交易图表库 - lightweight-charts-python
这两天发现一个可在 Python 显示交易图表的库,名为 lightweight-charts-python。顾名思义,它是基于 tradingview 轻量级库 lightweight-charts 开发而来。
14
Apr 2024
基于 net/http 抽象出 go 服务优雅停止的一般思路
Go 中如何实现优雅停止呢?本文将从 Go 的优雅实现中抽象出一般思路。
10
Apr 2024
HTTPie,一款意外丢失 54k star,不到两年重获 31k 的 HTTP 客户端命令
作为程序员,如果你要快速调试 HTTP 接口,首先想到的工具是什么?GUI 版 HTTP 客户端 Postman?命令行 curl?还是使用浏览器?
09
Apr 2024
我想用 Go 的 plugin 机制实现热更新,我失败了
昨天发了一篇名为 'entr 一个通用的热重启方案' 的文章,写完这个命令的简单使用后,我开始思考一个问题:如 Go 这样的静态编译型语言是否能实现热更新?如果能,该如何实现呢?
08
Apr 2024
entry,一个语言无关的热重启方案
在开发类似于 web 或其他常驻服务时,我们在修改代码后,要手动重启才能更新服务。如果你不是这种情况,或许框架默认支持热重启或是你集成了其他工具
03
Apr 2024
我在终端上免费使用 GPT
最近尝试了一款内置 AI 能力的终端软件,名为 Warp,它的交互设计非常不错,很值得上手。但它的问题是中文不友好,且我也不希望 AI 的能力被限制在某款终端上。
01
Apr 2024
如何像使用终端一样使用浏览器?
今天写一篇小短文,推荐两个 Chrome 插件,用于程序员们提高浏览器的操作效率,像使用终端一样使用浏览器。
15
Mar 2024
推荐 bubbletea 扩展库开发 TUI 应用
今天的文章重点介绍 bubbletea 的一系列扩展库,和 bubbletea 一样是位于 github.com/charmbracelet 下,由 charmbracelet 团队开发的其他开源库。
09
Mar 2024
Go 中的监视器模式与配置热更新
上篇介绍 GO 的 GUI 库 Fyne 时,提到 Fyne 的数据绑定用到了监听器模式。本文就展开说下我对 Go 中监听器模式的理解和应用吧。
07
Mar 2024
一个 Go 实现的跨平台 GUI 框架 Fyne
Go 一直以来都没有一个标准 GUI 库,Go 官方也没有提供。在 Go 实现的几个 GUI 库中,Fyne 算是最出色的,它有着简洁的API、支持跨平台能力,且高度可扩展。这也就是说,Fyne 是用来开发 App。
01
Mar 2024
我用 Go 开发了一个简易版 shell
之前看到 Github 有个 build-your-own-x 的仓库,觉得挺有意思的,有不少有趣的实现。我就想着多尝试实现些这样的小项目,看看不同的领域。一方面提升我的编程能力,另外,也希望能发现一些不错的项目。
26
Feb 2024
一个基于差异同步数据库结构的工具 - Skeema
本文将继续介绍数据库 schema 数据库同步工具。今天,推荐是的一个基于差异方式实现数据库 schema 迁移的工具库 - skeema,同样也是基于 Go 实现。
25
Feb 2024
一个基于增量同步数据库结构的工具 - Goose
我将以这个数据库结构迁移为基础,推荐两个 Go 实现的数据结构同步工具,它们基于的是两种完全不同的实现方式:增量和差异。
25
Feb 2024
我用 Python 为 iTerm2 开发一个类似 tmuxifier 的工具
我在思考如何提高终端工作效率时,想到了在 iTerm2 中实现一个类似于 tmuxifier 布局管理工具。如果你不了解 tmuxifier,简单来说,它是 tmux 的布局管理工具。
24
Feb 2024
我是如何每天在 binance 套利 20 美金的?
本文是关于我如何在 binance 无风险套利实现每个月挣了 20-25 美金的。
23
Feb 2024
如何正确处理 Go 项目中关于文件路径的问题
在使用 Go 开发项目时,估计有不少人遇到过无法正确处理文件路径的问题,特别是刚从如 PHP、python 这类动态语言转向 Go 的朋友,已经习惯了通过相对源码文件找到其他文件。这个问题能否合理解决,不仅关系到程序的可移植性,还直接影响到程序的稳定性和安全性。
21
Feb 2024
Go 如何按行读取(大)文件?尝试 bufio 包提供的几种方式
在编程时,按行读取文件是一个很常规的需求,它相较于一次性读出整个文件,有着诸如内存效率高、处理速度快、实时性高、可扩展性强等优势。
20
Feb 2024
数据库结构变更同步:增量 VS 差异
平时在开发项目时,常会需要改动数据库结构,比如说,有时候需要加个表,改个字段名,这是个挺常见的事。为了搞定这些改动,一般有两种做法:增量同步和差异同步。
20
Feb 2024
Go 中如何高效遍历目录?探索几种方法
遍历目录文件是一个常见的操作,它的使用场景有如文件目录产看(ls 命令)、文件系统清理、日志分析、项目构建等多种任务。
19
Feb 2024
推荐一个可用于快速创建 TUI 应用的框架 - Bubble Tea
今天介绍一个 TUI 库 - Bubble Tea,一个小巧但强大的文本用户界面(TUI)框架,基于 Go 语言开发。
18
Feb 2024
Go 中的 init 如何用?它的常见应用场景有哪些呢?
Go 中有一个特别函数 `init()` 函数,它在 Go 中扮演着一个特殊的角色,可用于包的一些初始化操作。
07
Feb 2024
Go 语言中如何大小端字节序?int 转 byte 是如何进行的?
在 Go 语言中,将 byte 转换为 int 时是否涉及字节序(endianness)?我可以直接使用 `int(byte_var)` 进行转换吗?
06
Feb 2024
Go 是否有三元运算符?Rust 和 Python 是怎么做的?
什么是三元运算符?在其他一些编程语言中,如 C 语言,三元运算符是一种可以用一行代码实现条件选择的简便方法。
05
Feb 2024
Go 中如何检查文件是否存在?可能产生竞态条件?
Go 语言如何检查文件是否存在呢?如果你用的是 Python,可通过 `os.path.exists` 这样的标准库函数实现。遗憾的是,Go 标准库没有提供这样直接的函数,但好在,没有直接的,却有不那么直接的方法。
02
Feb 2024
Go语言中 enum 实现方式有哪些?一定要绝对类型安全吗?
Go 语言中,枚举的表达方式并不像在一些其他语言中那样直接。要想在 GO 中用好枚举,需要我们了解 Go 中枚举的不同表示形式。
01
Feb 2024
Go 中如何打印结构体?代码调试效率提升
不知道大家是否遇到打印结构体的需求呢?结构体就像是一个小盒子,里面可以放很多不同类型的东西,如数字、字符串、slice、map 或其他结构体。但,如果我们想看看盒子里都放了什么,该怎么办呢?
28
Jan 2024
Go 中 struct tag 如何用?基于它实现字段级别的访问控制
在Go 中,结构体主要是用于定义复杂数据类型。而 struct tag 则是附加在 struct 字段后的字符串,提供了一种方式来存储关于字段的元信息。然后,tag 在程序运行时不会直接影响程序逻辑。
27
Jan 2024
Go 语言实现可选参数:重载?变长参数?
在编程时,常会遇到这样的情况:一个函数偶尔需要一些不固定的选项参数。一些语言中,通过重载或者支持可选参数解决这个问题。但在 Go 中,情况有所不同,因为 Go 不支持函数重载,也没有内置可选参数功能。
24
Jan 2024
Go 定时器:如何避免潜在的内存泄漏陷阱
这篇文章将探讨的是 Go 中如何高效使用 timer,特别是与select 一起使用时,如何防止潜在的内存泄漏问题。
22
Jan 2024
为什么 Golang Fasthttp 选择使用 slice 而非 map 存储请求数据
Fasthttp 是一个高性能的 Golang HTTP 框架,它在设计上做了许多优化以提高性能。其中一个显著的设计选择是使用 slice 而非 map 来存储数据,尤其是在处理 HTTP headers 时。
22
Jan 2024
如何有效获取 Go 变量类型?探索多种方法
但在 Go 语言中,如何快速获取一个变量的类型?我相信很多 Go 语言初学者都会遇到这样的问题。本文将介绍 Go 中几种获取变量类型的方法,从基本到复杂。
21
Jan 2024
从 fatal 错误到 sync.Map:Go中 Map 的并发策略
为什么 Go 语言在多个 goroutine 同时访问和修改同一个 map 时,会报出fatal错误而不是panic?这篇文章将带你一步步了解背后的原理,并引出解决 map 并发问题的方案。
20
Jan 2024
GO 中高效 int 转换 string 的方法与源码剖析
本文将从逐步介绍几种在 Go 中将 int 转换为 string 的常见方法,并重点分析这几种方法在性能上的特点。
17
Jan 2024
Go 语言中高效切片拼接和 GO 1.22 提供的新方法
在 Go 语言中,切片拼接是一项常见的操作,但如果处理不当,可能会导致性能问题或意外的副作用。本文将详细介绍几种高效的切片拼接方法,包括它们的优缺点以及适用场景。
16
Jan 2024
从 Context 看 Go 设计模式:接口、封装和并发控制
在 Go 语言中,`context` 包是并发编程的核心,用于传递取消信号和请求范围的值。但其传值机制,特别是为什么不通过指针传递,而是通过接口。虽然是简单问题,但值得引发我的一些思考。
15
Jan 2024
利用 ChatGPT 高效搜索:举一反三的思考方式,高效查找解决方案
本文只是我的一些尝试,基于 ChatGPT 实现系统化快速搜索某编程语言的特定领域相关包或者基于其他语言类推荐落地方案的尝试。
06
Jan 2024
Python 视频剪辑库 - Moviepy 的混合剪辑 mixing clips
今天我们来介绍 MoviePy 的混合剪辑 - mixing clips。
05
Jan 2024
将 MoviePy 和 OpenAI Whisper 给视频添加字幕
本博文将就此主题展开,介绍如何基于 openai-whisper 和 moviepy 实现通过 Python 快速给视频添加字幕。
03
Jan 2024
Python 视频剪辑库 - MoviePy 中 TextClip
本文将介绍 MoviePy 第三种基础 Clip - TextClip。
03
Jan 2024
Python 视频剪辑库 - MoviePy 的音频操作
本文将重点介绍 MoviePy 音频的一些操作,如音频提取创建、放大与片段剪辑等。
02
Jan 2024
Python 视频剪辑库 - MoviePy 的基础使用
本视频将讨论的内容,介绍一个名为 MoviePy 的 Python 库,希望它能简化一些流程化的视频创作过程。本文是起始篇。
09
Dec 2023
基于 Python 视频搬运 Part5 - 初始化与资源下载
本文介绍 mvideo 视频搬运项目的初始化与资源下载部分的实现代码。
09
Dec 2023
基于 Python 视频搬运 Part4 - pytube 下载 YouTube 资源
本文是 pytube 教程,介绍如何使用 pytube 实现通过 Python 下载油管音视频等资源。
08
Dec 2023
基于 Python 视频搬运 Part3 - 配置和数据的统一管理
本文介绍 mvideo 项目如何管理配置和视频搬运过程中的数据。
06
Dec 2023
介绍一个搭建免费博客的实现方案
本文如何搭建一套免费的博客,实现可基于 markdown 撰写博客,使用免费环境部署,以及添加评论、图床和统计等附加能力。
02
Dec 2023
基于 Python 视频搬运 Part2 - 代码布局
本文介绍基于 Python 视频搬运项目的代码布局。
27
Nov 2023
基于 Python 视频搬运 Part 1 - 先导篇
本文介绍如何基于 Python 实现的从 YouTube 自动化搬运视频到国内平台的命令行工具,计划命名为 mvideo,即 move video 的意思。
17
Nov 2023
我的终端环境:Tmux Part1 - 快速一览
本文将主要介绍 tmux 的快速一览。
17
Nov 2023
我用 GitHub 作为存储开发了一个随机图片 API
本文介绍如何基于 GitHub 为图片存储,通过 API 随机返回可用的图片地址。
14
Nov 2023
我的终端环境:终端启动消息 - pfetch/neofetch/fastfetch 教程
本文接着上文,介绍终端启动消息的配置,让你的终端比之前文更加绚丽多彩。
13
Nov 2023
我的终端环境:终端启动消息 - ASCII art
本文介绍如何配置终端的 welcome 消息,让你每天都是好心情。
06
Nov 2023
我的终端环境:高效 shell 命令(四)之 20+1 个 modern-unix 命令
本文将继续介绍 11 个 modern-unix 命令,快速一览。
02
Nov 2023
提效开发调试的三个命令
本文将介绍的 3 命令,用于提高 Web 开发人员们的日常效率,它们分别是 entr、httpie 和 jq。
30
Oct 2023
推荐 3 个高效搜索命令
本文将介绍一些高效的查找搜索命令,分别是 fd、ripgrep 与 fzf,提升命令内容的查找效率
27
Oct 2023
用 exa/zoxide/bat 替换 ls/cd/cat 命令
本篇是高效命令系列第一篇,介绍 exa、zoxide 、bat 替换 ls 和 cd、cat,为我们的终端增添色彩。
20
Oct 2023
终端环境:zsh 主题自定义 powerlevel10k
本教程介绍如何安装 zsh 主题 powerlevel10k 的安装与配置。
18
Oct 2023
终端环境:6 个强大的 zsh 提效插件
今天,将会在上文的基础上,再介绍 6 个插件,其中 4 个是 oh-my-zsh 的内置插件,还有两个第三方插件。
16
Oct 2023
终端环境:zsh 、oh-my-zsh、提示主题与 7 效率插件
本教程将主要介绍 zsh 的安装、主题,以及介绍 7 提升效率的 zsh 插件
10
Oct 2023
Golang 中如何实现多行字符串
Python 中,如果想要表示多行字符串,只要通过三单/双引号(""")包裹字符串即可。 类似代码,如下所示。 ```python a = """line1 line2 line3""" print(a) ``` 执行代码,查看输出...
09
Oct 2023
从头构建 Go Web 框架(四):第三方路由集成
> 本系列文章写于 2014 年,相较于 golang 极短的发展历程,这已经是古董级别的一篇文章了,但 web 框架思想概念依然有效。希望通过翻译这个系列文章,能让大家都现有 Go Web 框架有更深的认识。 本文是 "构建属于自己的...
29
Sep 2023
从头构建 Go Web 框架(三):中间件的数据共享
> 本系列文章写于 2014 年,相较于 golang 极短的发展历程,这已经是古董级别的一篇文章了,但 web 框架思想概念依然有效。系统通过这个系列文章,能让大家都现有 Go Web 框架有更深的认识。 本文是 "构建属于自己的 W...
28
Sep 2023
终端环境:iTerm2
本系列的目标是介绍如何基于 iTerm2、zsh、Tmux 和 Neovim 搭建我的日常开发环境
27
Sep 2023
基于 LunarVim 搭建不同编程语言 IDE
本文介绍,如何基于 LunarVim 搭建不同编程语言的 Neovim IDE 开发环境。 ## 前言 本文将用几行命令快速安装 Neovim IDE,完成不同编程语言的环境搭建。尽量不涉及到自定义配置,将完全基于 LunarVim ...
25
Sep 2023
Neovim 配置隔离-实现多语言环境支持
本文将介绍如何实现 Neovim 的配置隔离,实现不同编程语言使用不同的编辑器配置。 ## 背景说明 近段时间,一直在学习如何高效使用 Neovim。不断配置的过程中想到,Neovim 是否支持配置隔离,不同用途不同配置。最直接的体现...
25
Sep 2023
Vim 小技巧:高效利用 vim 的行号
我们知道,Vim 支持配置是否显示行号,对这个行号认知,我们一般指的是绝对行号。其实 Vim 支持配置两种行号模式:`number`(绝对行号) 和 `relativenumber`(相对行号)。 今天,基于 vim 行号介绍一个提升其...
18
Sep 2023
什么是 zsh?我是否应该使用 zsh
我们知道,在所有的 Linux/Unix 中 shell,Bash 是最流行的,它是多数 Linux 发行版的默认 shell。除了 bazh,zsh 是另外一款非常流行的 shell。它功能更强大,而且还是 macOS 中的默认 She...
17
Sep 2023
从 0 开始:教你如何配置 zsh
本文将介绍如何使用 zsh 来提升命令行的操作效率。 你是否每天都在与命令行打交道? 如果答案是 "Yes",那你肯定想拥有一个强大可定制的 Shell。 而 zsh 就是为这个目标而生,它运行于诸如 Linux 、MacOS 等类 ...
15
Sep 2023
iTerm2 启动时进入 Tmux 模式
介绍一个最快速的方式使 iTerm2 启动默认进入 Tmux 模式。默认情况下,每次启动 iTerm2,还需要一步输入 tmux attach 进入到 tmux 模式下。 我用 Tmux 是为了管理不同项目的工作区,常见的 IDE 一般...
28
Oct 2021
从头构建 Go Web 框架(二):中间件
> 本系列文章写于 2014 年,相较于 golang 极短的发展历程,这已经是古董级别的一篇文章了,但 web 框架思想概念依然有效。系统通过这个系列文章,能让大家都现有 Go Web 框架有更深的认识。 本文是 "构建属于自己的 W...
23
Oct 2021
从头构建 Go Web 框架(一):介绍
> 本系列文章写于 2014 年,相较于 golang 极短的发展历程,这已经是古董级别的一篇文章了,但 web 框架思想概念依然有效。系统通过这个系列文章,能让大家都现有 Go Web 框架有更深的认识。 本文是 "构建属于自己的 W...
17
Jul 2021
powermock: 一个支持 gRPC 的 Mock Server
本文介绍的是如何基于 bilibili 的开源方案 powermock 搭建一套通用的适用于自己公司的 MockServer。
10
Dec 2019
Go 如何实现 HTTP 文件上传
 早前写过一篇文章,[Go HTTP...
05
Dec 2019
说说 Go 中的变量(附粗制滥造面试题)
和其他语言没有区别,Go 中的数据也是两种表示方式,常量和变量,本文先说说变量吧。 为了增加文章的趣味性(多掉些头发),搜集了一些常见的面试题。部分是自己瞎编的,顺便为自己明年可能到来的面试做些准备。 先答题,题目中附有提示,但无解答...
03
Dec 2019
如何评价 Golang 开源库 Cobra
开源库 Cobra 是 Golang 下用于创建命令行应用的框架。 它也是 k8s、hugo 等开源项目都在用框架。[GitHub 项目地址](https://github.com/spf13/cobra) ## 命令行应用 对于 G...
30
Nov 2019
Go 命令行解析 flag 包之通过子命令实现看 go 命令源码
 [上篇文章](https://m...
26
Nov 2019
Go 命令行解析 flag 包之扩展新类型
 [上篇文章](http...
23
Nov 2019
Go 命令行解析 flag 包之快速上手
 本篇文章是 Go 标准库...
07
Nov 2019
详细介绍 Go 中如何实现 bitset
最近尝试在 B 站录些小视频,我的 [B 站主页](https://space.bilibili.com/314069695)。录视频当是为了彻底搞懂某个知识点的最后一步吧,同时也希望能习得一些额外的能力。 在讲 Go 如何实现 bit...
06
Nov 2019
你真的不用再设置 GOROOT 了
为什么不再需要设置 `GOROOT` 呢?推荐读两篇英文文章,我意译了下,将它们放在了一篇里。 [第一篇](https://dave.cheney.net/2013/06/14/you-dont-need-to-set-goroot-r...
03
Nov 2019
从词法分析角度看 Go 代码的组成
之前的 Go 笔记系列,已经完成到了开发环境搭建,原本接下来的计划就是到语法部分了,但后来一直没有前进。主要是因为当时的工作比较忙,分散了精力,于是就暂时放下了。 最近,准备重新把之前计划捡起来。 第一步,肯定是了解 Go 基础语法部...
23
Oct 2019
Go Module 依赖关系的可视化
最近,我开发了一个非常简单的小工具,总的代码量 200 行不到。今天,简单介绍下它。这是个什么工具呢?它是一个用于可视化展示 Go Module 依赖关系的工具。 # 为何开发 为什么会想到开发这个工具?主要有两点原因: 一是最近经...
17
Oct 2019
Go 中如何解析 json 内部结构不确定的情况
 本文主要介绍的是...
14
Oct 2019
Go Module 存在的意义与解决的问题
最近,我在尝试整理一篇关于 Go 包管理发展历史的文章,希望能加深自己对这一块知识的认识。在搜集资料的时候,发现了这篇文章,顺手翻译了一下。 本文是该系列的第一篇,主要介绍包依赖管理中一些基础知识。文中提出了 Go 开发中的三个痛点,...
28
Sep 2019
一文理清 Go 引用的常见疑惑
今天,尝试谈下 Go 中的引用。 之所以要谈它,一方面是之前的我也有些概念混乱,想梳理下,另一方面是因为很多人对引用都有疑问。我经常会看到与引用有关的问题。 比如,什么是引用?引用和指针有什么区别?Go 中有引用类型吗?什么是值传递?...
15
Sep 2019
Go 中 Slice 的 In 实现探索
之前在知乎看到一个问题:为什么 Golang 没有像 Python 中 in 一样的功能?于是,搜了下这个问题,发现还是有不少人有这样的疑问。 今天来谈谈这个话题。 in 是一个很常用的功能,有些语言中可能也称为 contains,虽...
10
Sep 2019
Go 的 Http 请求系统指南
前几天在 "知乎想法" 谈到了一个话题,如何模仿学习,举了通过 net/http client 模仿 Pyhton 的requests的例子。但并未实践,难道想法真的只能是想法吗?当然不是,于是我决定先暂停一周 GO 笔记,来实践下自己...
10
Sep 2019
Go 问答汇总 Part Three
第三篇 Go 问答总结,2019 年 8 月份总结,大约有 12 篇问答。前两遍地址如下: [Go 问答汇总 Part One](https://www.poloxue.com/posts/2019-07-22-zhihu-go-par...
01
Sep 2019
Go 的静态检测功能
# 译者前言 第三篇 Go 官方博客译文,主要是关于 Go 内置的竞态条件检测工具。它可以有效地帮助我们检测并发程序的正确性。使用非常简单,只需在 go 命令加上 -race 选项即可。 本文最后介绍了两个真实场景下的竞态案例,第一个...
22
Aug 2019
如何测试你的 Go 代码
不论是开源项目,还是日常程序的开发,测试都是必不可少的一个环节。今天我们开始进入 Go 测试模块 testing 的介绍。 # 简单概述 我们选择开源项目,通常会比较关注这个项目的测试用例编写的是否完善,一个优秀项目的测试一般写的不会...
17
Aug 2019
Go 中如何使用反射 Part Two
# 译者前言 这篇博文介绍的内容比较实在,主要是关于两方面的内容。一是介绍 reflection 在 encoding/json 中的应用,另一个开发了一个 Cacher 工厂函数,实现函数式编程中的记忆功能,其实就是根据输入对输出进...
15
Aug 2019
如何阅读 Go 源码
Go 的源码在安装包的 src/ 目录下。怎么看它的源码呢?直接看吧!没人教的情况下,只能自己撸了。当然,这种内容一般也不会有人教。 怎么撸? Go 源码中,应该可分为与语言息息相关的部分,和官方提供的标准库。与语言实现相关的肯定是最...
10
Aug 2019
Go 中如何使用反射 Part One
# 什么是反射 多数情况下,Go 中的变量、类型和函数的使用都是非常简单的。 当你需要一个类型: ```go type Foo struct { A int B string } ``` 当你需要一个变量,定义如下: ...
10
Aug 2019
Go 问答汇总 Part Two
继上篇 [Go 问答汇总](https://www.poloxue.com/posts/2019-07-22-zhihu-go-part1/),已经过去了一个多月。今天汇总下近一个多月我关于 Go 的回答。 粗略数了一下,一个多月的时间...
29
Jul 2019
Go 实现词法分析与解析 Part Three
# 译者前言 最近发现我的翻译是越来越随性了,刚开始文章翻译的时候比较拘束,现在更多强调可读性,比如有些对文章大意没有什么影响的文字我现在都会选择直接跳过。 这篇文章主要是关于 INI 解释器的 parser 实现,它会从上一节中 ...
25
Jul 2019
Colly 从入门到不放弃指南
平时比较喜欢逛逛问答平台,比如 stackvoerflow,最近想聚合下一些平台的技术问答,比如 stackoverflow。 要完成这个工作,肯定是离不开爬虫工具。于是,我就想着顺便抽时间研究了 Go 的一款爬虫框架 colly。 ...
24
Jul 2019
Go 实现词法分析与解析 Part Two
本文是关于词法器实现的具体介绍,如果在阅读时遇到困难,建议参考源码阅读,文中的代码片段为了介绍思路。如何解析会在下一篇介绍。 最近简单看了下 Go 源码,在 src/go 目录下有几个模块,token、scanner 和 parser...
22
Jul 2019
Go 问答汇总 Part One
最近比较忙,因为工作需要,必须快速了解一些新知识,写文少了,翻译多了。 原因吗?也简单。 翻译好文不仅可以帮助大家学习,自己也能学到更多。 最近,单独开了个专栏,用于保存自己翻译的计算机相关译文,大家如果有兴趣可以关注一下。Go 专...
17
Jul 2019
Go 实现词法分析与解析 Part One
一直对词法分析与解析的话题比较感兴趣,最近发现了好几篇相关的优秀文章,准备好好翻译和研究下。我的理解,词法分析与解析的应用还是比较广泛的,无论简单的配置文件、各种模板语言、还是我们每天在写编程语言都离不开它。 本篇文章一个系列文章的第一...
12
Jul 2019
Go 通过 Context 实现并发控制
## 译者前言 第二篇官方博客的翻译,主要是关于 Go 并发控制的 context 包。 总体来说,我认为[上一篇](https://juejin.im/post/5d01177a5188254b9000975c)才是 Go 并发的基...
05
Jul 2019
Go 如何构建并发 Pipeline
## 译者前言 这篇文章来自 Go 官网,不愧是官方的博客,写的非常详细。在开始翻译这篇文章前,先简单说明两点。 首先,这篇文章我之前已经翻译过一遍,但最近再读,发现之前的翻译真是有点烂。于是,决定在完全不参考之前译文的情况下,把这...
18
Jun 2019
如何理解 Go 的接口
[如何理解 Golang 中的接口](https://www.zhihu.com/question/318138275/answer/699989214)。 个人认为,要理解 Go 的接口,一定先了解下鸭子模型。 # 鸭子模型 那什...
17
Jun 2019
如何防止你的 Goroutine 泄露(二)
上篇[文章](https://zhuanlan.zhihu.com/p/74090074)说到,防止 goroutine 泄露可从两个角度出发,分别是代码层面的预防与运行层面的监控检测。今天,我们来谈第二点。 # 简述 前文已经介绍了...
10
Jun 2019
如何防止你的 Goroutine 泄露
今天简单谈谈,Go 如何防止 goroutine 泄露。 # 概述 Go 的并发模型与其他语言不同,虽说它简化了并发程序的开发难度,但如果不了解使用方法,常常会遇到 goroutine 泄露的问题。虽然 goroutine 是轻量级的...
03
Jun 2019
Golang 中如何使用 Set
在Go编程中,数据结构的选择对解决问题至关重要。本文将探讨如何使用set和bitset两种数据结构,以及它们在Go中的应用场景。 # Go 的数据结构 Go 内置的数据结构并不多。工作中,我们最常用的两种数据结构分别是 slice 和...
27
May 2019
Go 虚拟环境管理工具 gvm
 本文谈下我对 Go 版本管理的一些...
06
May 2019
Go 的那些 IDE
经过前面的一系列工作后,Go 的语言环境已经搭建完成。 我们初步体验了 Go 提供的大部分命令。但在正式进入开发之前,还有件工作要做,那就是选择一款适合自己的 IDE。 ## 为什么使用IDE "程序员为什么要使用 IDE",在一些...
29
Apr 2019
Go 命令快速体验
利用 go run 和 go build 可以完成 Go 的整个编译执行流程。但 Go 提供给我们的命令当然远不止这两个。 本文将在所能及的范围内,尽量地介绍GO提供的所有命令,从而实现对它们有个整体的认识。 ## 概述 除了 go...
15
Apr 2019
详细聊聊如何安装 Go
本篇文章进入 Go 的开发环境搭建系列。 我们知道,编写任何语言的代码都离不开两样工具,语言开发包和代码编辑工具。 今天先来聊聊如何安装 Go。 我们或许都会觉得这种事非常简单,不值得写篇文章介绍。最初我也是这么想的。但深入了解下来...
08
Apr 2019
为什么要学 Go
新学一门语言,大家都想先弄清楚为什么要学它?玩知乎一段时间更是让我感受深刻,诸如 - 为什么要学习Python? - 为什么要学习C? - 为什么要学习Java? 之类问题经常出现在眼前。以前学语言时倒没怎么关心过这类问题。今年公司由...
18
Mar 2019
谈谈版本管理 GIT 的理论与架构
GIT 是当前最流行的版本控制系统。之前在公司系统做过一次系统总结,抽时间整理成文。 ## 基础概念 GIT是一种版本控制软件,那就首先了解一下什么是 “版本控制”? 比较官方的解释是,版本控制系统是一种记录一个或若干个内容变化,以...
31
Dec 2016
一文精通 crontab 从入门到出坑
此篇技术博文主要介绍的是 crontab, Linux 下的计划任务管理工具。涉及内容包括 crontab 使用配置、常见坑的分析和编者总结的错误调试方法。 我的理解,后台任务通常分为两种:常驻和定时。之前的文章《pm2进程管理工具使用...
10
Dec 2016
循序渐进 MySQL 事务隔离级别
本篇文章的重点在于总结MYSQL事务。 # 什么是事务 事务简言之就是一组 SQL 执行要么全部成功,要么全部失败。MYSQL 的事务在存储引擎层实现。 事务都有 ACID 特性: - 原子性(Atomicity):一个事务必须被...
30
Mar 2016
快速了解 Kafka 基础架构
今天来聊下大数据场景下比较流行的消息队列组件 kafka。本篇文章将主要从理论角度来介绍。