<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>云烟阁</title><link>https://liangtian.me/</link><description>Recent content on 云烟阁</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 09 Mar 2026 17:30:05 +0800</lastBuildDate><atom:link href="https://liangtian.me/index.xml" rel="self" type="application/rss+xml"/><item><title>关于我</title><link>https://liangtian.me/about/</link><pubDate>Sun, 20 Aug 2017 21:38:52 +0800</pubDate><guid>https://liangtian.me/about/</guid><description>&lt;h2 id="写在前面"&gt;写在前面&lt;/h2&gt;
&lt;p&gt;你好，欢迎访问我的博客，有什么建议意见可以给我留言，如果博客内的文章能够帮助到您，那真是太好不过了!&lt;/p&gt;</description></item><item><title>对比 claude code vscode cursor 等多个 ai 工具哪个好用</title><link>https://liangtian.me/post/which-bestaitool-claudecode-codex-cursor/</link><pubDate>Mon, 09 Mar 2026 17:30:05 +0800</pubDate><guid>https://liangtian.me/post/which-bestaitool-claudecode-codex-cursor/</guid><description>&lt;p&gt;
 &lt;img src="https://img1.liangtian.me/auto/202603/1773059766.jpg" alt=""&gt;

&lt;/p&gt;
&lt;p&gt;使用 Ai 辅助编程也有一年了，这篇文章总结下现在市面上比较火的 Ai 辅助编程软件，结合我一年来的使用经常，从智能生成，生态程度，易用性几个维度打分。&lt;/p&gt;
&lt;h2 id="cursor"&gt;cursor&lt;/h2&gt;
&lt;p&gt;cursor 是我第一个使用的AI 编程工具，去年上半年，我算正式开始使用大模型Ai 编程辅助，尝试着下载安装后，买了 20 美刀的月充，刚开始那段时间都没怎么用agent 能力，大量使用 tab 补全，不得不说，tab 补全这一块 cursor 秒杀所有的编辑器，相应速度飞快，而且特别懂你，能够根据上下文推导出来我想补全什么代码。&lt;/p&gt;</description></item><item><title>golang Channel用法和源码分析 二</title><link>https://liangtian.me/post/go-channel2/</link><pubDate>Fri, 25 Mar 2022 09:54:15 +0800</pubDate><guid>https://liangtian.me/post/go-channel2/</guid><description>&lt;p&gt;本篇文章我们一起了解下golang Channel的常见问题和用法。&lt;/p&gt;</description></item><item><title>golang Channel用法和源码分析 一</title><link>https://liangtian.me/post/go-channel/</link><pubDate>Thu, 24 Mar 2022 09:54:15 +0800</pubDate><guid>https://liangtian.me/post/go-channel/</guid><description>&lt;p&gt;本篇文章我们一起了解下golang里面channel的用法，和它的源码分析。&lt;/p&gt;</description></item><item><title>golang Map用法和源码分析</title><link>https://liangtian.me/post/go-map/</link><pubDate>Wed, 23 Mar 2022 11:32:08 +0800</pubDate><guid>https://liangtian.me/post/go-map/</guid><description>&lt;p&gt;本文从源码角度学习 golang map的一些操作，和对应的源码分析。&lt;/p&gt;</description></item><item><title>golang 几种负载均衡算法（随机，加权随机，轮询，一致性哈希）</title><link>https://liangtian.me/post/go-loadbalance-algorithm/</link><pubDate>Sun, 20 Mar 2022 14:20:15 +0800</pubDate><guid>https://liangtian.me/post/go-loadbalance-algorithm/</guid><description>&lt;p&gt;本篇我们详细讲解一些常用的负载均衡算法。&lt;/p&gt;</description></item><item><title>golang Slice的创建、添加、删除等操作和源码分析</title><link>https://liangtian.me/post/go-slice/</link><pubDate>Sun, 20 Mar 2022 13:48:24 +0800</pubDate><guid>https://liangtian.me/post/go-slice/</guid><description>&lt;p&gt;本文从源码角度学习 golang slice 的创建、删除、扩容，深拷贝和slice的源码实现。&lt;/p&gt;</description></item><item><title>golang ReverseProxy源码分析</title><link>https://liangtian.me/post/go-reverseproxy/</link><pubDate>Sun, 20 Mar 2022 13:15:02 +0800</pubDate><guid>https://liangtian.me/post/go-reverseproxy/</guid><description>&lt;p&gt;ReverseProxy是golang自带的简单网络Daili工具，仅适合自己测试用，不过麻雀虽小五脏俱全，功能还是挺多的。今天我们一起分析下这个工具的源码。&lt;/p&gt;</description></item><item><title>nsq - 一条消息的生命周期（一)</title><link>https://liangtian.me/post/nsq-life1/</link><pubDate>Tue, 15 Mar 2022 13:15:02 +0800</pubDate><guid>https://liangtian.me/post/nsq-life1/</guid><description>&lt;p&gt;本篇我们带着大家一起走完一遍nsq的生命周期。&lt;/p&gt;</description></item><item><title>nsq 源码 diskQueue 讲解</title><link>https://liangtian.me/post/nsq-diskqueue/</link><pubDate>Tue, 15 Mar 2022 10:15:02 +0800</pubDate><guid>https://liangtian.me/post/nsq-diskqueue/</guid><description>&lt;p&gt;&lt;code&gt;diskQueue是backendQueue&lt;/code&gt;接口的一个实现。&lt;code&gt;backendQueue&lt;/code&gt;的作用是在实现在内存go channel缓冲区满的情况下对消息的处理的对象。 除了diskQueue外还有&lt;code&gt;dummyBackendQueue&lt;/code&gt;实现了&lt;code&gt;backendQueue&lt;/code&gt;接口。&lt;/p&gt;</description></item><item><title>nsq Topic</title><link>https://liangtian.me/post/nsq-topic/</link><pubDate>Mon, 14 Mar 2022 20:15:02 +0800</pubDate><guid>https://liangtian.me/post/nsq-topic/</guid><description>&lt;p&gt;与Topic相关的代码主要位于nsqd/topic.go中。&lt;/p&gt;
&lt;p&gt;上一篇文字我们讲解了下nsq的启动流程。对nsq的整体框架有了一个大概的了解。本篇文章就是由大到小。对于topic这一部分进行详尽的讲解。&lt;/p&gt;</description></item><item><title>nsq 启动流程讲解</title><link>https://liangtian.me/post/nsq-2/</link><pubDate>Wed, 02 Mar 2022 20:15:02 +0800</pubDate><guid>https://liangtian.me/post/nsq-2/</guid><description>&lt;p&gt;这篇文章我们就正式的开始分析nsq的代码了，上一篇给大家介绍了下nsq的特性和功能。再分析代码的同时，大家可以比对着我写的nsq精注版代码一遍看一遍调试。这样的效果更佳。&lt;/p&gt;</description></item><item><title>nsq 初识</title><link>https://liangtian.me/post/nsq-1/</link><pubDate>Tue, 01 Mar 2022 20:15:02 +0800</pubDate><guid>https://liangtian.me/post/nsq-1/</guid><description>&lt;p&gt;NSQ 最初是由 bitly 公司开源出来的一款简单易用的分布式消息中间件，它可用于大规模系统中的实时消息服务，并且每天能够处理数亿级别的消息。&lt;/p&gt;</description></item><item><title>golang Http server包分析 二 源码解析</title><link>https://liangtian.me/post/golang-http-2/</link><pubDate>Tue, 01 Mar 2022 10:49:52 +0800</pubDate><guid>https://liangtian.me/post/golang-http-2/</guid><description>&lt;p&gt;该文章是分析golang http-server包的系列文章，本篇是第二篇，核心帮助大家深入http-server包的逻辑。明白http包是如何运转的，如何解析http协议。&lt;/p&gt;</description></item><item><title>golang Http server包分析 一 初识</title><link>https://liangtian.me/post/golang-http-1/</link><pubDate>Sun, 27 Feb 2022 10:49:52 +0800</pubDate><guid>https://liangtian.me/post/golang-http-1/</guid><description>&lt;p&gt; 该文章是分析golanghttp包的系列文章，本篇是第一篇，核心帮助大家了解和熟悉golang http包的整体逻辑。希望大家看完后能有所收货，有问题可以在博客留言板和我留言。&lt;/p&gt;</description></item><item><title>第一篇博文，纪念一下</title><link>https://liangtian.me/post/my-first-blog-post/</link><pubDate>Wed, 23 Feb 2022 00:00:00 +0000</pubDate><guid>https://liangtian.me/post/my-first-blog-post/</guid><description>&lt;p&gt;这是新博客的第一篇博文，很有纪念意义，也许多年后回来再看，这里就是梦开始的地方。😄&lt;/p&gt;</description></item><item><title>golang 自定义类型和类型别名(type)</title><link>https://liangtian.me/post/golang-astype/</link><pubDate>Tue, 09 Nov 2021 10:49:52 +0800</pubDate><guid>https://liangtian.me/post/golang-astype/</guid><description>&lt;p&gt;区分开自定义类型和类型别名之间的不同，在什么场景下用自定义类型，什么场景下用类型别名。&lt;/p&gt;</description></item><item><title>性能压测工具 wrk 使用</title><link>https://liangtian.me/post/wrk/</link><pubDate>Mon, 12 Oct 2020 11:40:02 +0800</pubDate><guid>https://liangtian.me/post/wrk/</guid><description>&lt;p&gt;wrk 是一款针对 Http 协议的基准测试工具，它能够在单机多核 CPU 的条件下，使用系统自带的高性能 I/O 机制，如 epoll，kqueue 等，通过多线程和事件模式，对目标机器产生大量的负载。&lt;/p&gt;</description></item><item><title>golang switch的用法</title><link>https://liangtian.me/post/go-switch/</link><pubDate>Mon, 14 Sep 2020 09:52:55 +0800</pubDate><guid>https://liangtian.me/post/go-switch/</guid><description>&lt;p&gt;最近一直在写go, switch说实话用的不算多。但是今天用了下发现go的switch可真不太一样啊。&lt;/p&gt;</description></item><item><title>golang select的用法</title><link>https://liangtian.me/post/go-select/</link><pubDate>Mon, 07 Sep 2020 11:32:11 +0800</pubDate><guid>https://liangtian.me/post/go-select/</guid><description>&lt;p&gt;golang的select与channel配合使用。它用于等待一个或者多个channel的输出。本篇我们重点讲下select的用法。&lt;/p&gt;</description></item><item><title>golang 中的init函数</title><link>https://liangtian.me/post/go-init/</link><pubDate>Sun, 16 Aug 2020 11:32:04 +0800</pubDate><guid>https://liangtian.me/post/go-init/</guid><description>&lt;p&gt;go语言中init函数用于包(package)的初始化，该函数是go语言的一个重要特性，&lt;/p&gt;</description></item><item><title>golang Json用法</title><link>https://liangtian.me/post/go-json/</link><pubDate>Wed, 15 Jul 2020 11:32:08 +0800</pubDate><guid>https://liangtian.me/post/go-json/</guid><description>&lt;p&gt;本篇文章我们一起了解下golang里面json的用法。&lt;/p&gt;</description></item><item><title>golang unsafe.Pointer用法</title><link>https://liangtian.me/post/go-unsafe-pointer/</link><pubDate>Mon, 15 Jun 2020 11:32:27 +0800</pubDate><guid>https://liangtian.me/post/go-unsafe-pointer/</guid><description>&lt;p&gt;unsafe 是关注 Go 程序操作类型安全的包。，使用它要格外小心； unsafe 可以特别危险，但它也可以特别有效。例如，当处理系统调用时，Go 的结构体必须和 C 的结构体拥有相同的内存结构，这时你可能除了使用 unsafe 以外，别无选择。&lt;/p&gt;</description></item><item><title/><link>https://liangtian.me/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://liangtian.me/search/</guid><description>&lt;p&gt;暂未支持。。。&lt;/p&gt;</description></item><item><title>Posts Archive</title><link>https://liangtian.me/archive/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://liangtian.me/archive/</guid><description/></item></channel></rss>