点击上方蓝色字体,关注我们

相关链接:

“6G专刊”重磅推出 / 2020年第6期目录来啦

6G愿景及潜在关键技术分析

6G愿景与需求:数字孪生、智能泛在

毕奇 / 移动通信的主要挑战及6G的研究方向

未来移动通信频谱兼容共存研究方法浅析

基于区块链的6G动态频谱共享技术

6G专刊   《移动通信》2020年第6期

面向6G的极化编码链路自适应技术*

牛凯

(北京邮电大学“泛网无线通信”教育部重点实验室,北京 100876)

*基金项目:国家重点研发计划基金资助项目(2018YFE0205501);国家自然科学基金资助项目(61671080)

【摘  要】作为第一种达到信道容量的高性能编码,极化码(Polar Code)是未来6G数据传输的重要候选方案,由此提出了面向6G的极化编码链路自适应传输框架。在此框架下,高性能的级联极化编码方案,逼近有限码长信道容量极限;通用的极化编码速率适配,支持高效HARQ机制;灵活的极化编码调制,显著提升链路频谱效率。极化编码链路自适应方案能够显著提升无线传输性能,满足超高可靠低时延与高频谱效率传输要求,在未来6G数据传输中有广泛的应用前景。

【关键词】极化码;信道极化;极化编码调制;极化编码链路自适应;极化编码HARQ

doi:10.3969/j.issn.1006-1010.2020.06.008

中图分类号:TN911.22       文献标志码:A

文章编号:1006-1010(2020)06-0048-09

引用格式:牛凯. 面向6G的极化编码链路自适应技术[J]. 移动通信, 2020,44(6): 48-56.

0   引言

2019年9月,芬兰奥陆大学发布了全球第一个6G白皮书,标志着移动通信技术的争夺焦点,正从第五代移动通信(5G)转向第六代移动通信(6G)。文献[1]、[2]指出,未来6G移动通信需要同时满足高可靠低时延(中断概率小于10-6、通信时延达到50~100 μs)与高频谱效率(峰值速率达到100 Gbit/s~1 Tbit/s)的性能要求。为了应对这些艰巨挑战,迫切要求6G无线链路传输技术取得突破。

2009年,土耳其学者Arıkan在文献[3]提出了极化码(Polar Code),首次以构造性方法证明信道容量渐近可达。极化码发明10年来,成为信道编码领域的热门研究方向。2016年11月,极化码入选5G移动通信的控制信道编码候选方案,并最终写入5G标准[4-5]。极化码作为5G控制信道的编码标准,只是实用化的一小步,在数据信道中应用极化码才具有更重大的意义。

为了应对6G数据传输的技术挑战,基于极化编码的链路自适应传输将是非常有竞争力的一种候选技术。本文旨在介绍满足6G传输需求的极化编码链路自适应技术,展望极化码在6G数据信道中的应用前景。

1    极化编码的6G数据链路框架

1.1  极化编码

极化码基于信道极化现象设计,它最早由Arıkan引入[3],是指将一组可靠性相同的二进制对称输入离散无记忆信道(B-DMC)W采用递推编码的方法,变换为一组有相关性的、可靠性各不相同的极化子信道的过程,随着码长(即信道数目)的增加,这些子信道呈现两极分化现象。

一般地,对于给定的B-DMC信道W,可以采用不同的构造方法[5-6],评估N个子信道的可靠性。其中K个高可靠的子信道集合A,称为信息集合,用于承载信息比特,而剩余的N-K个低可靠子信道集合Ac,用于承载收发两端都已知的固定比特(一般默认为全零),称为冻结比特(Frozen Bit)。

给定(N,K)极化码,信息位长度为K,编码长度为N,则编码器输入比特序列由信息比特与冻结比特构成,表示为。令表示编码比特序列。则极化码的原始编码表示如下:

其中编码生成矩阵B是排序矩阵,完成比特反序操作,表示矩阵进行n次Kronecker积操作,实质上是Hadamard变换矩阵。由于采用蝶形结构编码,极化码的编码复杂度为O(N1gN)[3]

极化码也可以采用简化编码方式,5G NR就采用这种方式[4],即:

对比公式(1)可知,其编码过程直接进行Hadamard变换,不必再进行比特反序操作。Arıkan在文献[3]中证明这两种编码形式是等价的。公式(2)的编码过程更简单,但在译码端需要调整接收信号的顺序。

1.2  数据链路框架

为了满足高可靠低时延与高频谱效率的6G传输需求,我们提出了图1所示的极化编码链路自适应框架。

如图1所示,这一框架是级联极化编码/HARQ/调制的组合。在发送端,首先进行循环冗余校验(CRC)编码,接着进行极化码编码,然后再基于HARQ机制进行速率适配(包括凿孔/缩短/重复等操作),最后进行编码比特到星座信号的映射操作。

相应地,在接收端,首先进行信道估计与软解调,生成比特级对数似然比(LLR)信息,同时提取信道质量信息(CQI),反馈到发送端。接着,基于HARQ的重传方式,进行信号合并、解速率适配与解交织等操作,将合并处理的LLR信息送入一个或多个极化码译码器。最后,根据译码输出进行CRC校验,如果校验通过则产生ACK信令,如果不通过则产生NACK信令反馈到发送端。

需要强调的是,为了适应无线信道的动态时变衰落特征,这一框架需要采用链路自适应机制,包括了码率、重传方式与调制阶数的自适应调整。基于接收端反馈的CQI信息,发送端进行调制阶数与编码码率的调整,一般而言,信道质量差、低信噪比条件下,采用低码率(R<1/2)与低阶调制(QPSK),而当信道质量变好或高信噪比条件下,则采用高码率(R>1/2)与高阶调制(16/64/256QAM)。基于接收端反馈的ACK/NACK信令与CQI信息,发送端选择蔡司合并(CC, Chase Combination)或增量冗余(IR, Incremental Redundancy)重传模式,调整速率适配图样,产生重传编码比特序列。

实际上,一般通信系统中也广泛存在可靠性差异导致的广义极化现象,例如星座调制的各个比特具有不同的可靠性[5]。上述框架就是基于广义极化思想设计的极化编码/调制整体极化系统。采用极化编码、HARQ与高阶调制,能够逼近信道容量极限,大幅度提升6G系统性能。

下面从极化编码与构造、极化编码HARQ与极化编码调制三个方面,分析与设计极化编码链路自适应系统。

2   高性能极化编译码与构造

Arıkan最早提出了串行抵消(SC)极化码译码算法[3],码长无限长条件下,采用这一次优算法即可达到信道容量极限。但在有限码长下,采用单独极化编码以及SC译码的性能较差。为了提高极化码有限码长性能,人们采用了CRC级联极化码以及高性能译码算法,在有限码长条件下,相对于Turbo、LDPC码有显著的性能增益[6]。为了满足6G超高可靠性要求,需要进一步探索极化码的各种实用化构造技术。

2.1  高性能极化短码构造

为了探索极化码短码的极限性能,笔者在文献[7]中提出了高性能极化码编译码方案。如图2所示,发送端包括CRC编码器与极化码编码器,接收端采用的是一种混合译码算法。该算法由CRC辅助的自适应串行抵消列表(SCL)译码算法与CRC辅助的球译码(SD)算法组成。

针对CRC级联极化码,我们在短码N=64, 128情况下进行了优化设计。短码条件下,CRC码的结构非常重要,会显著影响整个级联码的最小汉明距离与重量谱分布。经过精确计算与枚举搜索,文献[7]得到了各种码率下最优的CRC生成多项式。通过优化CRC生成多项式,可以显著提高级联码的整体性能。

高性能译码算法是提升极化码有限码长性能的关键。笔者[8]以及Tal和Vardy[9]同时提出了列表SC算法(SCL),另外还提出了堆栈SC算法[10]与SCH算法[11],这些算法相比于SC译码,性能有显著改进。进一步,笔者提出的CRC辅助的SCL/SCS译码算法(CA-SCL/SCS)[12]以及Li等人提出的自适应CA-SCL算法[13],极大增强了译码性能。对于短码极化码,笔者在文献[14]、[15]中提出了低复杂度的球译码(SD)算法,达到最大似然(ML)译码性能。

为了探索级联极化码的极限性能,我们提出了图2所示的CRC辅助混合译码算法(A-HD)。其基本思想是,译码器首先启动自适应CA-SCL算法,假设未达到预设最大列表规模Lmax,已经有路径通过CRC校验,则提前结束译码;反之,如果L=Lmax还没有路径通过CRC校验,则说明当前错误较为恶劣,此时利用SCL译码结果重新计算CRC比特并设置初始半径,进行CA-SD译码,得到最终结果。

在AWGN信道下,针对表1的级联极化码,图3给出了误块率(BLER)仿真结果。其中码长N=128,码率R=1/3,1/2,2/3,译码算法包括混合译码(CA-HD)、自适应CA-SCL译码(ADSCL)、固定列表CA-SCL译码,虚线表示基于正态近似(NA, Normal Approximation)的差错性能下界。这个理论下界是文献[16]提出的有限码长信道容量极限。另外,ADSCL与CA-HD的最大列表规模都为Lmax=1024。

图3可知,不同码率条件下,当采用固定的列表L=32时,相比于NA下界,都有明显的性能损失。ADSCL虽然列表规模达到了1 024,但性能仍然比CA-HD略差。并且在各种码率下,CA-HD的译码性能都接近了理论极限,例如R=1/2,BLER=10-3时,CA-HD与NA只相差0.025 dB,几乎达到了有限码长容量极限。

Arıkan在2019年的Shannon Lecture讲演中提到,为了达到有限码长容量极限,需要采用卷积码与极化码的级联方案,并且要采用序列译码算法,这就是所谓的PAC编码[17]。文献[7]的结果表明,采用经过优化的CRC-Polar级联编码与混合译码算法,也能够逼近容量极限,与PAC方案性能类似。并且PAC码的码率难以灵活调整,而CRC-Polar级联编码适用于多种码率,具有更强的普适性,能够适应6G链路码率自适应的传输需求。

2.2  极化码速率适配方案

极化码的原始编码,要求码长满足2的整数次幂的约束。而在无线链路的HARQ传输中,要求信道编码通过改变码长进行灵活的码率配置。因此,码长约束条件限制了极化码在HARQ中的应用。

在实际应用中,假定信息比特长度为K,实际的编码码长M不一定是2的幂次,因此需要采用速率匹配,将原始码长N调整为实际码长M。主流的速率匹配方案包括:凿孔(Puncturing)和缩短(Shortening)。前者的特点是凿孔位置的编码比特任意取值,而译码器无法获知这些比特取值,因此LLR设置为0。而后者特点是缩短位置的编码比特固定取值(例如0),这样译码器先验已知其比特取值,LLR设置为+∞。图4给出了等均匀凿孔(QUP)方案与反序等均匀缩短(RQUS)方案操作原理与示例。

笔者在文献[18]中提出了QUP凿孔方式,其原理如图4(a)所示。图中给出的是N比特的凿孔表,其中0表示将编码比特凿孔,而1表示保留原编码比特。在5G NR标准中采用简化编码形式,参见公式(2),则只需要凿掉开头的N-M个比特,而保留后续的M个比特。而如果采用原始编码形式,即公式(1),则原始凿孔表需要经过比特反序操作,这样凿孔位置就近似均匀分散在整个编码码字中,因此得名为准均匀凿孔(QUP)。这两种凿孔方式是等价的。图4(c)给出了原码长N=8,凿孔3比特,得到实际码长M=5的QUP凿孔示例。容易看出,对于5G NR标准,应当在比特序号集合{1, 2, 3}中凿掉这3个比特,而对于原始编码方式,需要在比特序号集合{1, 3, 5}中凿掉这3个比特。

类似地,文献[19]、[20]提出了RQUS凿孔方式,其原理如图4(b)所示。5G编码形式只需要缩短结尾的N-M个比特,而保留开头的M个比特。而原始编码形式,由于需要经过比特反序操作,缩短位置就近似均匀分散在整个编码码字中。这两种凿孔方式也是等价的。图4(d)给出了原码长,缩短3比特,得到N=8实际码长M=5的RQUS缩短示例。容易看出,对于5G NR标准,应当在比特序号集合{6, 7, 8}中缩短这3个比特;而对于原始编码方式,需要在比特序号集合{4, 6, 8}中缩短这3个比特。

上述QUP/RQUS方案就是5G NR标准中采用的速率适配方式[4],笔者在文献[19]中证明,这两种方式能够保证重量谱近似最优。

另外,针对Rayleigh信道的极化码构造,也是HARQ应用的重要问题。笔者在文献[21]中提出了两种容量等效的构造方法,能够以较低复杂度获得子信道可靠性的高精度评估,可以作为极化码在6G无线衰落信道中编码构造的基本参考。

3    极化编码HARQ

极化编码HARQ方案主要分为两大类:基于蔡司合并的HARQ与基于增量冗余的HARQ,下面简述代表性的方案。

3.1  基于蔡司合并的HARQ方案

笔者在文献[22]基于QUP凿孔方式,提出了极化编码的CC-HARQ传输方案,其流程如图5所示

在发送端,信息比特序列经过极化编码得到编码码字,经过QUP凿孔后得到实际发送的编码码字,送入无线信道。在接收端,如果译码结果的CRC校验失败,则向反馈信道发送NACK信号,要求发送端进行重传。发送端将再次传输全部的编码码字,接收端收到重传码字后,将之前各次接收到的LLR序列与当前接收的重传LLR序列叠加,再进行再译码。传输过程将一直持续,直到译码成功或者达到最大传输次数。

极化编码CC-HARQ每次重传的都是同一个码字,因此更容易与其它信号处理技术(如调制、多天线传输等)进行组合,实现简单。但由于重传整个码字,冗余较多,其链路吞吐率会降低。

3.2  基于增量冗余的HARQ方案

为了进一步提高HARQ的链路吞吐率,笔者在文献[23]提出了基于QUP凿孔的IR-HARQ传输方案,其流程如图6所示

IR-HARQ方案与CC-HARQ方案不同之处在于,前者送入发送端缓存的数据并不是凿孔后的编码码字,而是一部分待重传的信息序列。若接收端译码失败,则反馈NACK信号,发送端选择最容易出错的一些信息比特,不进行编码直接送入信道重传,接收端则利用重传的LLR信息去辅助译码。

3.3  极化扩展HARQ方案

文献[24]提出了一种基于极化矩阵扩展的IR-HARQ传输方案,简称为极化扩展(PE: Polar Extension)HARQ方案,其流程如图7所示

该方案同样基于QUP凿孔方式,其关键步骤是扩展码长,并重建一个低码率的极化码。在发送端,当扩展极化码时,首先恢复先前的凿孔位。如果需要更多位,则应扩展母码长度。在重构极化码时,根据构造算法确定扩展部分的新信息比特和原始部分的冗余比特(不可靠信息),将冗余比特复制到新信息位置,然后将冗余比特作为极化码的冻结位处理。在接收端,基于SC译码顺序,新的信息比特将在冗余比特之前译码,并且已经译码的信息比特可以作为相应位置的冻结比特值。由此,所有信息比特都在最可靠的子信道上。

PE-HARQ方案中,基于扩展极化矩阵生成的增量编码比特,容易与先前发送的编码比特串接以形成更低码率的极化码。该方案既具有长码的编码增益,又具有多重传输的分集增益。

3.4  极化码的HARQ方案性能对比

图8给出了AWGN信道下,基于速率适配的凿孔Turbo码(RCPT)、不规则重复累积码(RCIRA)(一种LDPC码)的HARQ方案,以及极化编码的CC-HARQ与IR-HARQ方案的吞吐率性能。

如图8所示,极化编码CC-HARQ方案比Turbo码和LDPC码的IR-HARQ方案的效果稍差。在低信噪比情况下,前者相比较后两者的性能损失约为1.0 dB。随着信噪比的增加,该方案与Turbo/LDPC编码方案的性能差距变小。而极化编码IR-HARQ方案受益于额外的编码增益,吞吐率性能远好于Turbo编码HARQ方案,并且相比于LDPC编码HARQ方案也有提升。

与CC-HARQ方案相比,IR-HARQ方案可以获得额外的编码增益,吞吐率更高,且实现灵活。但是CC-HARQ方案相比IR-HARQ方案复杂度较低,所需存储空间也较小,在译码器缓存、译码时延、反馈链路负荷以及与其它技术的兼容性等方面具有一定的优势。PE-HARQ方案是IR-HARQ方案的进一步改进,可以提高有限码长下的传输性能,能显著提升吞吐率。但该方案编码过程需要额外的模二加操作,会增加一定的复杂度。面向6G系统需求的高性能Polar-HARQ方案还需要进一步研究。

4   调制极化

由于星座调制信号承载多个比特,每个比特对应的子信道可靠性有差异,因此可以看作广义的信道极化,称为调制极化。图9给出了16QAM,采用集分割映射的调制极化示例。由图9可知,16QAM的四个调制极化子信道的容量有显著差异,比特1对应的子信道容量最小,可靠性差,而比特4相应的容量最大,可靠性高。

充分利用编码极化与调制极化效应,可以设计与优化极化编码调制系统,一般包括比特交织极化编码调制(BIPCM)与多级极化编码调制(MLC-PCM)两种结构[25-27]。图10给出了Rayleigh信道下,调制方式为QPSK/16QAM/64QAM,码长为512,码率为1/2与2/3,极化编码调制(PCM)与LTE Turbo编码调制在误块率(BLER)为10-4的频谱效率对比。极化码编码采用文献[6]构造,译码采用CA-SCL算法。Turbo码编码采用LTE标准,译码采用Log-MAP算法。

由图10可知,Rayleigh信道下,PCM相对于Turbo编码调制有1~2.5 dB的性能增益,并且,调制阶数越高,性能增益越大。6G系统将会应用超高阶调制,例如1024/4096 QAM,可以预见采用极化编码调制是提高频谱效率的有效手段。

5    结束语

极化码是最近十年信道编码领域的重大突破,具有重要的理论意义与工程应用价值。IEEE通信学会发布的极化码最佳读物[4],精选了极化码领域的50篇重要文献,作者有三篇论文(参考文献[6]、[11]、[21])入选,有兴趣了解极化码研究全貌的读者可以查阅。

未来6G无线链路要求满足高可靠低时延与高频谱效率的传输需求,对于编码调制设计提出了巨大的技术挑战。为了应对这一挑战,本文提出了极化编码链路自适应传输框架。在这一框架下,采用优化的CRC级联极化码,能够逼近有限码长容量极限,满足6G超高可靠数据传输要求。进一步,采用通用凿孔/缩短速率适配方式,设计高效的CC/IR-HARQ机制,能够改善6G无线链路传输性能。最后,采用极化编码调制方案,充分挖掘调制极化效应,能够极大提升频谱效率,满足6G高频谱效率传输需求。

综上所述,极化编码链路自适应传输技术,是满足未来6G移动通信需求的重要候选技术,具有广阔的应用前景。


★原文发表于《移动通信》2020年第6期★

doi:10.3969/j.issn.1006-1010.2020.06.008

中图分类号:TN911.22      文献标志码:A

文章编号:1006-1010(2020)06-0048-09

引用格式:牛凯. 面向6G的极化编码链路自适应技术[J]. 移动通信, 2020,44(6): 48-56.

作者简介

牛凯(orcid.org/0000-0002-8076-1867):现任北京邮电大学教授,中国电子学会信息论分会副主任委员,主要研究方向为信息论与信道编码,先后主持多项国家自然科学基金项目与863项目,在IEEE重要学术期刊和会议发表论文200篇,其中SCI检索58篇,设计的极化码高性能编译码算法成为5G标准主流方案。

《移动通信》投稿方式为在线投稿

请您登录网页投稿系统

链接地址:http://ydtx.cbpt.cnki.net

扫码关注最新动态

《移动通信》

▼往期精彩回顾▼5G网络创新研讨会(2020)论文集 / 征文火热进行中“6G专刊”重磅推出 / 2020年第6期目录来啦

收藏!2020年1—5期专题论文集合

2020年第5期目录来啦

2020年第4期目录

《移动通信》杂志由中国电子科技集团公司主管,中国电子科技集团公司第七研究所主办,是中国科技核心期刊、中国期刊方阵“双效期刊”、工业和信息化部精品电子期刊、广东省优秀期刊、中国科技论文统计源刊。国内连续出版物号:CN44-1301/TN,国际连续出版物号:ISSN1006-1010,邮发代号:46-181。

循环首次适应算法_面向6G的极化编码链路自适应技术相关推荐

  1. 循环首次适应算法_数据结构与算法之2——排序问题

    排序真的是数据结构与算法中的重中之重啊,无论是对编程能力的提升,以后工作后的应用,或者是应对面试的时候都是经常需要用到的.基本的几个经典排序一定要做到滚瓜烂熟,能够做到给你一个具体的排序算法题,一定能 ...

  2. 循环首次适应算法_遗传算法 | 了解底层, 摆脱工具箱

    点击上方" 剑指数模 ",选择" 置顶 / 星标 " 回复『进群』,加入高手如云 关于遗传算法,弈笙在一篇博客中看到了比较形象有趣的讲法,适合初学者理解,并用C ...

  3. 用循环首次适应算法、最佳适应算法和最坏适应算法,模拟可变分区存储管理,实现对内存区的分配和回收管理

    湖南师范大学 信息科学与工程学院 操作系统课程实验报告 实验项目名称: 可变分区存储管理 题目 实验一.可变分区存储管理 一.实验目的: 加深对可变分区存储管理的理解: 提高用C语言编制大型系统程序的 ...

  4. 【操作系统】-- 动态分区分配算法(首次适应算法FF、最佳适应算法BF、最坏适应算法WF、循环首次适应算法NF)

    一.首次适应算法 1.算法思想 每次从低地址开始查找,找到第一个能满足大小的空闲分区. 2.如何实现 空闲分区以地址递增的次序排列,每次分配内存时顺序查找空闲分区链,找到大小能满足要求的第一个空闲分区 ...

  5. caj文件打不开显示内存不足_面向大数据的高效存储容量缩减技术研究

    面向大数据的高效存储容量缩减技术研究 [摘要]:随着信息化的发展,全球数据量呈指数式增长,数据中心存储规模快速迈向了PB级甚至是EB级,其中包含了大量的冗余数据.这些冗余数据占用了大量的存储资源,导致 ...

  6. java利用复循环洗牌算法_随机洗牌算法

    今天偶然看到群里的朋友说道,面试被问如何将扑克牌随机洗牌输出.笔者觉得这道题挺有意思而且挺开放性,有多种不同的实现方式.然后我就随手写了一个算法,仔细一想这个算法的优化空间挺大,于是又写出三种算法. ...

  7. 动态分区分配的“首次适应算法_无人机集群——航迹规划你不知道的各种算法优缺点...

    我们都知道无人机(UAV )因具有可探测性低.造价低廉.不惧伤亡.起降简单.操作灵活.系统配置多样化.自动控制智能化等特点,因而在未来一体化联合作战中扮演越来越重要的角色.然而早期的无人机都是按照地面 ...

  8. 动态分区分配的“首次适应算法_动态图划分复制算法:Leopard

    数据管理和系统实现课程上要分享的论文:<LEOPARD: Lightweight Edge-Oriented Partitioning and Replication for Dynamic G ...

  9. openwrtx 安装无线_面向工业物联网的远距离无线输电技术

    在工业物联网(IIoT)的建设中,估计超过60%的成本都用在了布线与安装上.无线数据传输显然可以消除一些线缆连接,而采用无线技术进行电力传输,无疑可避免更多的布线. TransferFi是一家初创公司 ...

最新文章

  1. 很遗憾,我们正在逐渐丧失专注阅读的能力
  2. rust做嵌入式开发_Rust 嵌入式开发 STM32 amp; RISC-V
  3. 解决NGUI中sprite的边缘会出现黑线的问题
  4. iOS开发-NSArray
  5. PowerMockito使用详解
  6. linux 加jre环境变量
  7. 搜索NLP行业模型和轻量化客户定制
  8. 猿辅导MSMARCO冠军团队:用MARS模型解决机器阅读任务 | 吃瓜笔记
  9. 剑指offer面试题17. 打印从1到最大的n位数
  10. LeetCode-108将有序数组转换为二叉搜索树
  11. java MD5 32位加密
  12. 深度学习——VGG16模型详解
  13. 无线教育带来BYOD的A+体验
  14. 微信小程序WebSocket使用案例
  15. 哈工大2022计算机系统大作业
  16. 三步必杀(P4231)
  17. python爬取豆瓣书籍_Python 爬取豆瓣读书标签下的书籍
  18. android手机导出日志adb logcat
  19. 你不可不知的《哈利波特》秘密(四)
  20. 大众点评app数据采集接口

热门文章

  1. WinSock三种选择I/O模型
  2. 函数实现不放在头文件的原因,及何时可以放头文件的情况
  3. C/C++中容易造成内存溢出的函数
  4. Android端打开HttpDns的正确姿势
  5. 趣谈设计模式 | 适配器模式(Adapter):如何让现存对象适用于新的环境?
  6. Linux中的文件搜索 locate,find,grep ,whereis和which命令的使用
  7. springcloud 2.0 服务链路追踪踩坑以及一些小小的理解
  8. PostgreSQL和MySQL技术全面剖析
  9. delete后加 limit是个好习惯么 ?
  10. 写 Go 时如何优雅地查文档