<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>NotionNext BLOG</title>
        <link>https://blog.manro.space/</link>
        <description>这是一个由NotionNext生成的站点</description>
        <lastBuildDate>Mon, 11 Sep 2023 00:45:40 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>zh-CN</language>
        <copyright>All rights reserved 2023, Marno</copyright>
        <item>
            <title><![CDATA[Nacos动态配置刷新导致的服务卡死问题分析]]></title>
            <link>https://blog.manro.space/article/fec2e479-6e08-4623-b90c-d0f3d15513c7</link>
            <guid>https://blog.manro.space/article/fec2e479-6e08-4623-b90c-d0f3d15513c7</guid>
            <pubDate>Wed, 14 Jun 2023 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-fec2e4796e084623b90cd0f3d15513c7"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-e2856ad72717486e980e274f66d3f40d" data-id="e2856ad72717486e980e274f66d3f40d"><span><div id="e2856ad72717486e980e274f66d3f40d" class="notion-header-anchor"></div><a class="notion-hash-link" href="#e2856ad72717486e980e274f66d3f40d" title="背景"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">背景</span></span></h2><blockquote class="notion-quote notion-block-ce834aee5ac0414ab70920667c19ab14"><div>技术背景：Nacos+SpringCloud+redis</div></blockquote><div class="notion-text notion-block-c719cc00ae9c49138c1d4d1c6a248bd1">某业务需要修改配置，由于需要频繁改动，因此选择配置上云；服务节点数：2+1</div><div class="notion-blank notion-block-4551c200e3f54047bfd6dc12eff5dc01"> </div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-8d5f7b71fd3d42dd901e1f11801496e2" data-id="8d5f7b71fd3d42dd901e1f11801496e2"><span><div id="8d5f7b71fd3d42dd901e1f11801496e2" class="notion-header-anchor"></div><a class="notion-hash-link" href="#8d5f7b71fd3d42dd901e1f11801496e2" title="问题描述"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">问题描述</span></span></h2><div class="notion-text notion-block-6c86cfbde461418db36d9485c0e1c74a">灾难在点击发布配置的瞬间，一开始普罗米修斯疯狂报警，线程数飙升，此时下意识认为是配置写错，立即删除新配置进行发布。但报警还在继续，认为是配置没有正确刷新，遂在历史记录中选择回滚。但操作对濒死的服务无效，并且事故开始影响到其他业务。</div><div class="notion-blank notion-block-90cfe084a776449e920c1174a317541c"> </div><div class="notion-text notion-block-87ce4c335eb64122b8eabce0b13e305a">经检查，此时服务无日志生成，已进入假死状态。受影响的服务仅一个，剩下两个服务正常。</div><div class="notion-blank notion-block-15144c41bcce4fd980a0833d1f566905"> </div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-266503ac7a0e4740b0010623a16f22e9" data-id="266503ac7a0e4740b0010623a16f22e9"><span><div id="266503ac7a0e4740b0010623a16f22e9" class="notion-header-anchor"></div><a class="notion-hash-link" href="#266503ac7a0e4740b0010623a16f22e9" title="补救措施"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">补救措施</span></span></h2><div class="notion-text notion-block-bc0bbd6eaf1045fa826d0a381cd1ab44">立即下线此服务，选择替补服务上线，经测试服务正常工作。同时开始对案发现场进行分析。</div><div class="notion-blank notion-block-c90819d86e2644af8f8b8530b44d4e4a"> </div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-19fbb6db0b584eebadd04fcc4036d64f" data-id="19fbb6db0b584eebadd04fcc4036d64f"><span><div id="19fbb6db0b584eebadd04fcc4036d64f" class="notion-header-anchor"></div><a class="notion-hash-link" href="#19fbb6db0b584eebadd04fcc4036d64f" title="问题分析"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">问题分析</span></span></h2><blockquote class="notion-quote notion-block-2cb63b79c28a4a43a1637c18103e4d1c"><div>工具：<a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://public.dhe.ibm.com/software/websphere/appserv/support/tools/jca/jca4614.jar">jca4614.jar</a></div></blockquote><div class="notion-text notion-block-4c29a9be3b034831bbc98838f02e6fe3">dump现场，拿出文件进行分析。</div><ol start="1" class="notion-list notion-list-numbered notion-block-76fe82ad697940e8a15d3eced6ef8df7"><li>cmd执行命令，打开可视化面板</li><ol class="notion-list notion-list-numbered notion-block-76fe82ad697940e8a15d3eced6ef8df7"></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-a4563e4ae7c9455a838b4328263ec6ad"><li>点击左上角文件夹，选择<code class="notion-inline-code">.dump</code>文件打开</li></ol><ol start="3" class="notion-list notion-list-numbered notion-block-465e34a78933460caaf0d137180f8ee2"><li>可以从窗口中看到简要分析</li><ol class="notion-list notion-list-numbered notion-block-465e34a78933460caaf0d137180f8ee2"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-8c4415fc1936452684be231f1f896d41"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fbb25471b-05a8-4df4-af74-8267e88e2f76%2FUntitled.png?table=block&amp;id=8c4415fc-1936-4526-84be-231f1f896d41" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-425709289ad8400ba4b786e6efdaf660">其中有52%的线程处于<code class="notion-inline-code">Waiting on condition</code>状态，对应方法为getBean()</div></ol></ol><ol start="4" class="notion-list notion-list-numbered notion-block-d14495aaa76c4920aca569fc9d86a93b"><li>右键点击文件，选择查看线程详情</li><ol class="notion-list notion-list-numbered notion-block-d14495aaa76c4920aca569fc9d86a93b"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-e8e4cbf537a44395b31ef21c663600bf"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:531px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F12186364-4353-4497-8f05-454d0a2415ee%2FUntitled.png?table=block&amp;id=e8e4cbf5-37a4-4395-b31e-f21c663600bf" alt="notion image" loading="lazy" decoding="async"/></div></figure></ol></ol><ol start="5" class="notion-list notion-list-numbered notion-block-982f140963e249ed8624a8d812986a94"><li>选择按堆栈深度排序，可以看到堆栈顶部的线程</li><ol class="notion-list notion-list-numbered notion-block-982f140963e249ed8624a8d812986a94"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-dcb7cc29e821493d9ad1778a8a2eced3"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fa63fc259-9b15-43f2-a74a-c2e57fa2b314%2FUntitled.png?table=block&amp;id=dcb7cc29-e821-493d-9ad1-778a8a2eced3" alt="notion image" loading="lazy" decoding="async"/></div></figure></ol></ol><ol start="6" class="notion-list notion-list-numbered notion-block-99009c3c5e6e4396966027ee8259ba37"><li>在右边查看详情</li><ol class="notion-list notion-list-numbered notion-block-99009c3c5e6e4396966027ee8259ba37"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-0c2ec8a5c22a4ff5b64152e740292ff6"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Ffe6d40ca-6aba-4756-b938-a00018bacaf6%2FUntitled.png?table=block&amp;id=0c2ec8a5-c22a-4ff5-b641-52e740292ff6" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-9599801b6e2b4e3b893965d05b5095dd">找到这里除框架外我们自己的代码，可以看到线程卡在了A类中的name()方法；</div><div class="notion-text notion-block-998484048864471f888606e3c247be5d">这里粘贴部分代码如下：</div><div class="notion-blank notion-block-3c8066919a2b473cb272b4a1f3d4ce2a"> </div><div class="notion-text notion-block-5216e44b6a914559bb8c4f2076410297">根据nacos动态配置刷新的过程可以判断，这里刷新动态配置后，销毁了相关的全部bean，此时业务走到B类，在初始化B类时，调用了这里的构造方法，从而用到了A类中的name()方法。</div><div class="notion-text notion-block-6c144f58295a4cbcb938f1a79f7c43a9">但是name()方法仅返回了String，一般不会引起死锁，因此我们看向上一层堆栈。</div><div class="notion-blank notion-block-d7d3f83af0db47c78e3cbca7478092cf"> </div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-52fd7a6cda914c7da5428936ba2b8bb7"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F0d8796f8-ea71-47d8-8005-391711a3ef3c%2FUntitled.png?table=block&amp;id=52fd7a6c-da91-4c7d-a542-8936ba2b8bb7" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-c7656774e36e4edbbd04b7894de9d073">很快定位到问题所在，这里看到在A类中有一个lock的动作，而这里lock是通过redis进行操作：</div><div class="notion-text notion-block-ebb17eb8550a470d8eb473b1d38557d1">这里完善一下A中的代码</div><div class="notion-text notion-block-7ea27811dbca464cbb1e984b239424d9">同时根据堆栈中信息可以得出，这里正在等待<code class="notion-inline-code">redissonClient.getLock(key).lock(time, TimeUnit.MILLISECONDS);</code></div><div class="notion-text notion-block-8955eaf62eca4b94aeef9743e3a27ca5">此时基本可以定位到此线程卡死的位置了，再通过kibana查询日志得出，52线程早在凌晨三点便已卡住。</div><div class="notion-blank notion-block-b72843608d8045b59a1fccd53a44b43a"> </div></ol></ol><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-1f1d71014f894cab952942303584e585" data-id="1f1d71014f894cab952942303584e585"><span><div id="1f1d71014f894cab952942303584e585" class="notion-header-anchor"></div><a class="notion-hash-link" href="#1f1d71014f894cab952942303584e585" title="现场重现"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">现场重现</span></span></h2><ol start="1" class="notion-list notion-list-numbered notion-block-458e1a353a5b48e0b8d0fb600c42552d"><li>凌晨三点，52线程卡住，此线程由主线程新建，此时主线程仅等待2.5秒，因此52线程的卡住状态不会影响到线上业务。</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-d200a8f4af9b49bb8929cd9e24e8a6e8"><li>修改配置，发出动态刷新指令；</li></ol><ol start="3" class="notion-list notion-list-numbered notion-block-34d21d43c5ad499eb5728633ba9fb890"><li>此服务中开始销毁bean；</li></ol><ol start="4" class="notion-list notion-list-numbered notion-block-eef0cd0151a143f18cddc5cbe4e6c455"><li>尽管A未被销毁，但已经被程序认为销毁成功；</li></ol><ol start="5" class="notion-list notion-list-numbered notion-block-d7401438768748eb83fb7d384df6b31e"><li>新业务到达，开始重构bean；</li></ol><ol start="6" class="notion-list notion-list-numbered notion-block-887c947058c74c169d1077ed37982fe3"><li>在调用A.name()时，由于bean是单例，此实例被52线程持有，因此无法访问方法；</li></ol><ol start="7" class="notion-list notion-list-numbered notion-block-bc1dadf5230546c282b4a1404d6b8681"><li>所有进程开始等待B类构建；</li></ol><ol start="8" class="notion-list notion-list-numbered notion-block-2d27b41e77a147cf916c1e57f2ea9227"><li>服务业务持续进入，消耗线程储备；</li></ol><ol start="9" class="notion-list notion-list-numbered notion-block-6bef37e0deba4e759966b19f49d4c556"><li>服务完全卡死不动。</li></ol><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-af9240b263c348fd8f79216af049c418" data-id="af9240b263c348fd8f79216af049c418"><span><div id="af9240b263c348fd8f79216af049c418" class="notion-header-anchor"></div><a class="notion-hash-link" href="#af9240b263c348fd8f79216af049c418" title="经验教训"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">经验教训</span></span></h2><div class="notion-text notion-block-08b40ff21f2e4239bdf5f3381c218ff4">尽管使用了nacos进行动态刷新配置，但此操作仍然不安全，这里redis的操作有小概率没有获得返回结果，导致http超时等待。因此不建议频繁使用nacos进行配置刷新。</div><div class="notion-blank notion-block-50d0edcda8d946b1b3a1ffb2ec3d49e2"> </div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[考研失败后Notion给我的建议]]></title>
            <link>https://blog.manro.space/article/de6fb3cb-1ef6-4cf0-a02b-04a3f679dc11</link>
            <guid>https://blog.manro.space/article/de6fb3cb-1ef6-4cf0-a02b-04a3f679dc11</guid>
            <pubDate>Mon, 27 Feb 2023 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-de6fb3cb1ef64cf0a02b04a3f679dc11"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><div class="notion-text notion-block-78e0b27e7eaa4888b29c1a301ff623fe">考研失败可能会让你感到沮丧和失望，但这并不是世界末日。以下是一些应对考研失败的方法：</div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-d8c63850d12d42ea95c23b38b6093a6b" data-id="d8c63850d12d42ea95c23b38b6093a6b"><span><div id="d8c63850d12d42ea95c23b38b6093a6b" class="notion-header-anchor"></div><a class="notion-hash-link" href="#d8c63850d12d42ea95c23b38b6093a6b" title="1.接受失败"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">1.接受失败</span></span></h3><div class="notion-text notion-block-9b17b789383045dab9aa28397056415e">首先，你需要接受考研失败的事实。这并不意味着你没有能力考上研究生，而只是说明你在这次考试中没有达到自己的期望。请不要把考研成绩看作自己的全部，也不要将考研结果与自己的价值联系在一起。</div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-352fbe74d5c043c9b0d9107a46ba98e8" data-id="352fbe74d5c043c9b0d9107a46ba98e8"><span><div id="352fbe74d5c043c9b0d9107a46ba98e8" class="notion-header-anchor"></div><a class="notion-hash-link" href="#352fbe74d5c043c9b0d9107a46ba98e8" title="2.分析原因"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">2.分析原因</span></span></h3><div class="notion-text notion-block-5dd70986b2184bc7aa6c83868aa0ed5a">接受失败之后，你需要分析考研失败的原因。是因为自己的备考不充分？还是因为考试的压力太大，导致发挥失常？如果你能够找到失败的原因，就可以有针对性地进行下一步的规划和努力。</div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-b27b8318874d4ee3a0d83050fbb3e212" data-id="b27b8318874d4ee3a0d83050fbb3e212"><span><div id="b27b8318874d4ee3a0d83050fbb3e212" class="notion-header-anchor"></div><a class="notion-hash-link" href="#b27b8318874d4ee3a0d83050fbb3e212" title="3.制定新的计划"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">3.制定新的计划</span></span></h3><div class="notion-text notion-block-cad398c1e37349c5b8080df82a212435">根据分析的结果，你需要制定新的计划和目标。你可以重新规划自己的备考时间表，增加备考时间和量，或者重新选择复习材料和方法。同时，你也可以考虑其他的备考方案，例如就业、出国留学等等。</div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-b87d57e956a44136954614db259ab9de" data-id="b87d57e956a44136954614db259ab9de"><span><div id="b87d57e956a44136954614db259ab9de" class="notion-header-anchor"></div><a class="notion-hash-link" href="#b87d57e956a44136954614db259ab9de" title="4.继续努力"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">4.继续努力</span></span></h3><div class="notion-text notion-block-75cda11d1f31468d99387af41760d337">最重要的是，你需要继续努力。无论你决定采取什么样的备考方案，都需要付出时间和努力。坚持不懈、持之以恒地努力，才能最终取得成功。</div><div class="notion-text notion-block-5ea0acf6753940caa222e0a1b170c94d">最后，不要忘记向身边的人寻求支持。家人、朋友和老师都可以为你提供帮助和激励，让你更加坚定和自信地面对未来。</div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-cad8c8fbba0941d2ac048d4aa6d36795" data-id="cad8c8fbba0941d2ac048d4aa6d36795"><span><div id="cad8c8fbba0941d2ac048d4aa6d36795" class="notion-header-anchor"></div><a class="notion-hash-link" href="#cad8c8fbba0941d2ac048d4aa6d36795" title="5.寻求帮助"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">5.寻求帮助</span></span></h3><div class="notion-text notion-block-9e8539d5840a491186f06be37430ccf7">如果你感到无助或焦虑，不要犹豫去寻求帮助。你可以向心理咨询师或专业机构寻求帮助和支持。他们可以为你提供情感支持和解决问题的建议，帮助你走出困境。</div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-fb0e7436ccbc4236a0613eb0cfd96656" data-id="fb0e7436ccbc4236a0613eb0cfd96656"><span><div id="fb0e7436ccbc4236a0613eb0cfd96656" class="notion-header-anchor"></div><a class="notion-hash-link" href="#fb0e7436ccbc4236a0613eb0cfd96656" title="6.保持积极心态"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">6.保持积极心态</span></span></h3><div class="notion-text notion-block-7f44eb21318349b697b333bfcbbd264e">最后，你需要保持积极心态。即使在面对挫折和困难时，也要保持自信和乐观。你需要相信自己的能力和未来的发展潜力。不要因为一次考试的失败而放弃自己的梦想和目标。</div><div class="notion-text notion-block-63e0df7b678b4f75bce78e5368adcd45">总之，考研失败并不是世界末日。接受失败、分析原因、制定新的计划、继续努力、寻求帮助和保持积极心态，这些方法可以帮助你走出困境，迎接更加美好的未来。</div><div class="notion-text notion-block-3c61bd16ed8b413f896d66435d6c8534">考研失败可能会让你感到沮丧和失望，但这并不是世界末日。以下是一些应对考研失败的方法：</div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[DNS解析与网关]]></title>
            <link>https://blog.manro.space/article/257b5dab-b77d-43d8-b7be-d07d621ed943</link>
            <guid>https://blog.manro.space/article/257b5dab-b77d-43d8-b7be-d07d621ed943</guid>
            <pubDate>Thu, 09 Feb 2023 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-257b5dabb77d43d8b7bed07d621ed943"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><div class="notion-text notion-block-e6af5d2fb55b48e7b1f2ca0e214ad6af">今天旧域名到期，在换新域名时需要对新域名配置DNS解析，由此想到一个问题：DNS解析会针对不同的域名前缀进行IP解析，这一功能让我想到了网关服务，那么DNS解析与网关的区别是什么呢？</div><div class="notion-blank notion-block-c0aaaa68ef724df88cab282ca5a0b141"> </div><h4 class="notion-h notion-h3 notion-h-indent-0 notion-block-a84851be4035468d9affdca26be80ba8" data-id="a84851be4035468d9affdca26be80ba8"><span><div id="a84851be4035468d9affdca26be80ba8" class="notion-header-anchor"></div><a class="notion-hash-link" href="#a84851be4035468d9affdca26be80ba8" title="功能"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">功能</span></span></h4><div class="notion-text notion-block-fc132ec04f2540aa909bf4c2def07e43">DNS是对域名进行解析，给到主机访问的正确IP。一般来说常用的为www和无前缀解析，即默认访问地址（www.baidu.com, baidu.com），如有需要也可以针对不同前缀做不同的地址解析，如对于百度百科业务模块，解析的主机IP就有别于百度主页主机IP。</div><div class="notion-text notion-block-2373977923c743a885984415058ca2ef">网关，犹如一道大门，对所有访问进行处理，常见功能如流量分发、流量拦截等。</div><h4 class="notion-h notion-h3 notion-h-indent-0 notion-block-4e1240c9522045a39592c0cbe445ba98" data-id="4e1240c9522045a39592c0cbe445ba98"><span><div id="4e1240c9522045a39592c0cbe445ba98" class="notion-header-anchor"></div><a class="notion-hash-link" href="#4e1240c9522045a39592c0cbe445ba98" title="关系"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">关系</span></span></h4><div class="notion-text notion-block-b934c913663f4c8e8fc585e9b2ee6c48">从功能中可以对比发现，DNS仅仅对流量的目标IP进行解析，而无法做到对流量的管理，而网关则兼具管理功能。那么，生产中DNS的解析和网关的关系是怎样的，功能是如何分配的？</div><div class="notion-text notion-block-29407a819ee44eee8de35bf89e766006">首先，流量从客户端发出，对某一域名进行访问，经过DNS解析后找到了目标主机的地址；目标主机上运行一个网关服务，对请求进行处理，分发到负责处理的软件中去。</div><h4 class="notion-h notion-h3 notion-h-indent-0 notion-block-3da6ce411eae4fd989753198bb037f12" data-id="3da6ce411eae4fd989753198bb037f12"><span><div id="3da6ce411eae4fd989753198bb037f12" class="notion-header-anchor"></div><a class="notion-hash-link" href="#3da6ce411eae4fd989753198bb037f12" title="总结"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">总结</span></span></h4><div class="notion-text notion-block-3341fe6f609541e182ca1b446810e057">DNS解析可以通过对不同的域名前缀对服务进行区分，起到一个基本网关的作用，同时这样做也有利于对域名资源的节约使用，无需为小模块尽心域名注册；而网关服务则更注重对业务模块的流量把控。</div><div class="notion-blank notion-block-064fde255a69406494f4385bca520b0c"> </div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[悼念江书记]]></title>
            <link>https://blog.manro.space/article/e10fbb63-19a5-42d5-8b95-d27af12b9a37</link>
            <guid>https://blog.manro.space/article/e10fbb63-19a5-42d5-8b95-d27af12b9a37</guid>
            <pubDate>Fri, 02 Dec 2022 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-e10fbb6319a542d58b95d27af12b9a37"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-8251fd0ee40643099754cae6d29154c5" data-id="8251fd0ee40643099754cae6d29154c5"><span><div id="8251fd0ee40643099754cae6d29154c5" class="notion-header-anchor"></div><a class="notion-hash-link" href="#8251fd0ee40643099754cae6d29154c5" title="悲起"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">悲起</span></span></h3><blockquote class="notion-quote notion-gray_background notion-block-bc829cde06d346ff9103210e364d55ca"><div>“我们敬爱的江泽民同志患白血病合并多脏器功能衰竭，抢救无效，于2022年11月30日12时13分在上海逝世，享年96岁。”
                                                                          ——《告全党全军全国各族人民书》</div></blockquote><div class="notion-blank notion-block-3202fe024fe048ee8e0048a94fb66a47"> </div><div class="notion-text notion-block-8f3342a1c9aa454f91f807fba86bcf8b">十一月的最后一天，小雪。和寒冷一起到来的是令人悲伤的消息——江同志的去世。</div><div class="notion-text notion-block-f10c49a17833442d846e92df075fed1c">多年的玩笑和玩梗，甚至都不知道应该怎样正式地称呼他。可即便这样，总是嬉笑着，嗔骂着，在听到这一消息的瞬间也还是愣了神，一种悲伤的气息从身体的深处透露出来，却也不至于有泪水湿润了眼眶，只是有一声长长的叹息没能从喉咙里发出来。</div><div class="notion-blank notion-block-cbc4e9fc4feb4d5b80a5093b640edf55"> </div><div class="notion-text notion-block-6bf0aed1056f42a3aff251ef8d6c9bd7">和现代的网民一样，在听到消息的瞬间就要打开手机看看大家都在说什么，也是不出所料的，或缅怀，或问询，漠不关心的，转发消息的，随后便是整齐的黑白排版，最大字号的标题和文章。</div><div class="notion-text notion-block-9c4ffd0757314e428ef19d4f990e657e">看了眼窗外，雪花淅沥沥飘着。</div><div class="notion-blank notion-block-3bec0b11cfbd45a49be9860ee26eae3c"> </div><div class="notion-blank notion-block-16c22f45a4464b41a1b31237796750d9"> </div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-ea1d42ee63d944f89862677dfb10564e" data-id="ea1d42ee63d944f89862677dfb10564e"><span><div id="ea1d42ee63d944f89862677dfb10564e" class="notion-header-anchor"></div><a class="notion-hash-link" href="#ea1d42ee63d944f89862677dfb10564e" title="昔忆"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">昔忆</span></span></h3><blockquote class="notion-quote notion-gray_background notion-block-8e7bf9a167b841d4920e48fca2120fa3"><div>“我只是做了一些微不足道的事情。”
                                                                          ——江泽民</div></blockquote><div class="notion-blank notion-block-53190ca949254b7ab9cf59f66a601284"> </div><div class="notion-text notion-block-1e136d3f4f3044ada3aa9421d2d49bed">追悼的文章毕竟不是人物传记——人物传记我也确实写不出来，甚至准确的说，我对这位老人的生平知之甚少，对他的了解居然大多来自负面消息。</div><div class="notion-blank notion-block-6129bfec536e48a9b3c94b0bf142885a"> </div><div class="notion-text notion-block-560034766a954af7bdd2c99dd00fd17a">可能和大多数人一样，最开始的了解是一首诗：<code class="notion-inline-code">“苟利国家生死以，岂因福祸避趋之。”</code>，或者是看到朋友圈现象级的<code class="notion-inline-code">“膜”</code>、<code class="notion-inline-code">“蛤”</code>、<code class="notion-inline-code">“长者”</code>云云，发言的人却又不多说，一定要带着一些神秘感。毕竟是中国人，“莫谈国事“的奇妙效应和对政治的朦胧懵懂，总是对那些青春期的少年充满着诱惑。有些好事者便开始想办法去墙外寻找答案。于是各种“真相”便从”轮子们“的社交账号上进入到了政治白纸的脑袋里。</div><div class="notion-blank notion-block-08224734dedd4d78a90a26ca5a585301"> </div><div class="notion-text notion-block-bb9df7b121c3495eb126f988caaa0628">确实，对江主席的抹黑和编的野史黑料，原本就是反动势力对当权者的攻击，也是对老百姓的洗脑渗透，但毕竟是境外势力，对国内情势没有那么熟悉，虽然在造谣，但手段确实在低级，虽然偶有成功案例。就我所接触到的圈子的情况，大家在听闻骇人的真相后，或是那一段经典的翡翠台的采访视频，无不在潜移默化中对这位老人的幽默风趣和智慧的眼光、思考的深度等等所折服，尽管千玺一代的年轻人对这位老人的执政基本是没有感知的，但却在这种情况下，或多或少的了解了他的一些事迹。</div><div class="notion-blank notion-block-d943c559430d48cd9dd595104d5a64e4"> </div><div class="notion-text notion-block-01cb1660df754729a9e25aa1873e6c23">随着年龄的增长，我也有幸带着对象来到扬州，走近他曾经住过的地方。在我认知中遥不可及的领导人的故居，甚至大门都没有人看守，古朴的院落竟就如此和谐地和吵闹的扬州城浑然一体。我怀着满心的激动和欢喜，和我最要好的朋友们分享了此刻的定位。碍于颜面，没有好意思在门前鞠躬，但却也确实没有必要，毕竟当时江老尚健在，我的心里也没有想到他如今的离世。只在离开时在心里默默的一鞠躬，权当对江主席的瞻仰。</div><div class="notion-blank notion-block-45b1fe04e6784a0988a84ea70cd68d71"> </div><div class="notion-text notion-block-f641845e09d94fea8189c524a06a4bf5">轮子们总是骂江老，甚至搬出迷信的说法，但我相信很多人都是希望老人能健康地活着。甚至大家开启了长寿竞争的比赛，包括英国的伊丽莎白二世那些同一个时代的人，在这几年都相继离去，我甚至在暗自高兴，可江主席的离去也是如此突然，让人措手不及。</div><div class="notion-blank notion-block-c70fb5b289e14433ab75543afc3b8ad4"> </div><div class="notion-blank notion-block-efc730c08e554ff499785d088b3ef43b"> </div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-bb5759eef1c14ccaa6ce839d6cadc8ce" data-id="bb5759eef1c14ccaa6ce839d6cadc8ce"><span><div id="bb5759eef1c14ccaa6ce839d6cadc8ce" class="notion-header-anchor"></div><a class="notion-hash-link" href="#bb5759eef1c14ccaa6ce839d6cadc8ce" title="止息"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">止息</span></span></h3><blockquote class="notion-quote notion-gray_background notion-block-d1661578340f42da81fb1a49637199ae"><div>“人民英雄永垂不朽！”
                                                                          ——毛泽东</div></blockquote><div class="notion-blank notion-block-9f7b78f98ed4458fb0bf1e6d1b978257"> </div><div class="notion-text notion-block-380936f1e4ba4865ba73be2a791be211">当前国内的政治情况相比以往还是比较严重的，国内外反动势力的躁动和人民对疫情的不满，多多少少的因素交织在一起，而如今这一则消息更是犹如一片乌云凝结的水汽，让本就低沉的空气愈发粘稠起来。</div><div class="notion-blank notion-block-a4cccbedd7894e2aa2917d8c845f3301"> </div><div class="notion-text notion-block-4d0c33280c024370867e2b585b9f3de9">江主席的离开，世界上少了一位活泼可爱的老人，会眨着眼睛怒斥“Naive!”，也会和蔼的笑着祝或大家新年快落。看这表情包里的那个“Today is Saturday, I want to relax!”，心情不免又低沉了几分。</div><div class="notion-blank notion-block-a102b4732f1c4a168dcb851e0f674066"> </div><div class="notion-text notion-block-028f9037c76f4b27809573729e5675f8">时间会扔人们忘记伤痛，也会忘记那个高高的裤腰带的时代，人们不会再继续将那副黑框眼镜题在嘴边，但一旦看到那句诗，却总会想起那位老人。逝者已矣，便是将上面那句口号喊出来也就到此结束罢了吧———是缅怀，是悼念，也是对那个时代的道别。</div><div class="notion-blank notion-block-6dcef7998d1f4b0c9add9a996490a132"> </div><div class="notion-blank notion-block-9aafffc4c1f64f0a9e789309aabd88f5"> </div><div class="notion-blank notion-block-88472c547631437d861970925d236ba1"> </div><hr class="notion-hr notion-block-f7aea945b7d54b96a42e92bedf7f3b9d"/><div class="notion-text notion-block-9a332e15328c48cca304a4052305c6e5">窗外的雪已经没在下了，已经是白茫茫一片了。</div><div class="notion-text notion-block-4f393493b46845c780b96c2ddd10ebea">2022.12.02 03:09 </div><div class="notion-text notion-block-7a5283f4224842989102330ca4b4658f">于芜湖</div><div class="notion-blank notion-block-c5feba1a20ba46f5a9d5750760701b53"> </div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[建站之路]]></title>
            <link>https://blog.manro.space/article/0f909e21-9ced-4fc2-8891-370eb5ba6684</link>
            <guid>https://blog.manro.space/article/0f909e21-9ced-4fc2-8891-370eb5ba6684</guid>
            <pubDate>Sat, 23 Jul 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[到2022年间的建站历史和反思]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-0f909e219ced4fc28891370eb5ba6684"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-4461d1a98f4c498797659962a80aac1c" data-id="4461d1a98f4c498797659962a80aac1c"><span><div id="4461d1a98f4c498797659962a80aac1c" class="notion-header-anchor"></div><a class="notion-hash-link" href="#4461d1a98f4c498797659962a80aac1c" title="写在前面"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">写在前面</span></span></h3><div class="notion-text notion-block-c0bdfafb65a54feab443f11d915484c3">对编程开发的兴趣始于从小对动手实践的热爱，相较于同龄人，我接触计算机的时间较早，面对网上花花绿绿的网站，十分好奇他们是怎么制作的。</div><div class="notion-blank notion-block-d6987f0e87674b99bd909ed272522ffd"> </div><div class="notion-text notion-block-e269f3c93b47429a9c48ffed65ccb2af">上小学的时候，同学的妈妈买了一本很厚的书，书名忘记了，大概内容就是教一些代码或技巧，让你成为计算机世界坠靓的仔。那时候流行QQ空间，里面有一段让空间的花藤升到最高级的代码，研究了一通问我能不能实现，由于实现的效果只能在本地看到，已模糊的记忆中还有一些类似<code class="notion-inline-code">&lt;&gt;</code>的字符，大概率是一种<code class="notion-inline-code">HTML</code>（现在看来编辑应该就是把满级花藤的代码copy到书中去了），这可能是我接触的最早的编程语言。</div><div class="notion-text notion-block-7b2cfa7caca24dcd9333e0204ca7b486">也正是QQ空间这种能让自己的文字被阅读、被纪念、被归档的感觉，让我想要拥有自己的一个网站。那时博客刚刚兴起，而我还在纠结怎么写日记（<s>抄去年的</s>）。</div><div class="notion-text notion-block-637ee3aafd1a4e3ab7fa110d859a9d70">然而在往后的学习生活中，由于沉迷游戏，并没有学习到更深层次的编程技巧，在coding方面的能力便止步于此了。</div><div class="notion-blank notion-block-1a2e972bf24242869b4ef1e353ffcb4e"> </div><div class="notion-text notion-block-706b508d405e41bf8c890c5713dc3584">直到高考结束，我问自己，下面的路怎么走？想了很久，最终选择了软件工程这条路。</div><div class="notion-text notion-block-062c6b2074dc4312a424c35c8a8a5288">终于决定要做个程序员了，那个暑假便想着如何入门，想要先做一份自己的网站，然而最终却整天在<s>花村、艾兴瓦尔德、漓江塔这些地方流窜</s>打游戏。</div><div class="notion-blank notion-block-0ab103b8ec254c798932d80fb01c1faf"> </div><div class="notion-text notion-block-7b48fdcc2bc347f9bf54da110d21ce55">就这样，迎来了我的大学生活。</div><div class="notion-blank notion-block-cb9abce4ab5a4641834448563fbb489d"> </div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-5dbbceaf0bab4def86b32e27ab40db81" data-id="5dbbceaf0bab4def86b32e27ab40db81"><span><div id="5dbbceaf0bab4def86b32e27ab40db81" class="notion-header-anchor"></div><a class="notion-hash-link" href="#5dbbceaf0bab4def86b32e27ab40db81" title="学生时代"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">学生时代</span></span></h3><div class="notion-text notion-block-af8ff90256ae4454829430b8956576a6">在学校的生活枯燥无味，虽然记得建站这件事，也参加了一些社团，浅学了一些前端的知识能看懂<code class="notion-inline-code">HTML</code>这一类代码，觉得进步很大，于是每天上课都在打牌，甚至我的宿舍基本成了网吧，一张桌子上摆了五台电脑，RGB的灯光在每个人的脸上流淌，就这样一拖再拖，终于到了大三。</div><div class="notion-blank notion-block-13036b5311d349e08000c682bca8d014"> </div><div class="notion-text notion-block-9a89e15f757846dba697fca33154f272">眼看到同学们实习去了、比赛去了，我也开始着急了，开始下了决心，看起了Java，积极参加校招，终于三个月后开始了第一份实习工作。这时，终于开始搞我的网站了。</div><div class="notion-text notion-block-d6880f8a83c249809f71cd1b1adeac78">由于前面学的基本都是前端的东西，只会做做样子，没办法做一些数据处理，于是在网上找到了一些做网站相关的教程，最终决定的技术栈是<code class="notion-inline-code">HTML</code>+<code class="notion-inline-code">JavaScript</code>+<code class="notion-inline-code">Java</code>+<code class="notion-inline-code">Tomcat</code>。</div><div class="notion-text notion-block-1695a795b1a54db4a83ec14c1a9d447b">有人会问，单纯建站的话有很多模板，甚至一键生成的技术也不是问题，为什么要自己动手从零开始呢？其实还是因为自己能力不行，看不懂，哈哈。</div><div class="notion-text notion-block-feff38147a38418d8bf267a24c5a2df2">当时为了让自己更有动力，甚至是把它当作给同学的生日礼物做的，想要做的很好。</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-5ef44b43b8354226abf6cf6de86d8f8c"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F5009be26-7dc4-4254-8324-68c1d041e75e%2FC68AA512-3EC0-4401-BD63-7C52D7D119F7.jpeg?table=block&amp;id=5ef44b43-b835-4226-abf6-cf6de86d8f8c" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-e5a575c726f44044a7fc04aab35e380c">虽然只能本地运行，但好歹有个样子，也遇到并解决了一些问题，比如跨域、身份验证等。为了真正连接到互联网，我买了自己的第二个服务器（第一个在小鸟云，一块钱白嫖了一年，但我甚至没有登录过），白嫖了一年的亚马逊，甚至写了<a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://blog.csdn.net/Marno_o/article/details/88935486">一份教程在CSDN</a>。但因为种种原因，并没有很满意。</div><blockquote class="notion-quote notion-block-cefb0b46694f48c0b8360914b2398935"><div>为了纪念，特意上传到GitHub，现在看来真是满目疮痍，全是漏洞 😂</div></blockquote><div class="notion-blank notion-block-ec94694afc1a492bae5c9c9fe148a2bd"> </div><div class="notion-text notion-block-ece4fadcf6954f8687965fcfc9312673">然而正在我沾沾自喜的时候，却被我舍友的一句“<b>这都多少年前的技术了</b>”整破了防。</div><div class="notion-text notion-block-a4153806568f4a1da514d07e34c23416">由于学识不够，在网上找到的也是一些陈旧的知识，导致这种事情发生也是不可避免的。于是向舍友请教，了解了一些比较流行的技术比如spring等，但这时已经没什么时间去研究了。</div><div class="notion-blank notion-block-5d7104b2fc1548b481699ecbe05c521a"> </div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-0b6b6ad1641f4fd09c1d2425b5681b06" data-id="0b6b6ad1641f4fd09c1d2425b5681b06"><span><div id="0b6b6ad1641f4fd09c1d2425b5681b06" class="notion-header-anchor"></div><a class="notion-hash-link" href="#0b6b6ad1641f4fd09c1d2425b5681b06" title="工作期间"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">工作期间</span></span></h3><div class="notion-text notion-block-2bc2bd891af44bbcb40a5ddad6dffc0c">我的第一份正式工作是在新冠元年获得的，感谢之前的建站经验，对我的面试可能起到了一些帮助。</div><div class="notion-text notion-block-0a39a664e839461da822bb9f05e314a4">那段时间还没毕业，有借口跟公司说做毕业设计，其实是在偷懒。毕业设计做的还算有思路，进度比较快，导师也比较满意，于是剩下的时间去研究了一些coding之外的东西，比如服务器的<b>运维</b>，也了解了域名和备案这些。</div><div class="notion-text notion-block-05f12f5d31594ebd94ece8f811fc938c">尽管这些只是兴趣，但也对我后面的工作起到了<b>非常正面</b>的作用。</div><div class="notion-text notion-block-fb5c75bcc0754f70b788c227ce688dcf">在后面的时间，由于工作的原因，学习到的东西基本都是需求驱动的，也就不存在建站一说了。</div><div class="notion-blank notion-block-d17d784ad99d4916954a99acd0fe3017"> </div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-a9073ce03a304760ad35cdec4dbd2bef" data-id="a9073ce03a304760ad35cdec4dbd2bef"><span><div id="a9073ce03a304760ad35cdec4dbd2bef" class="notion-header-anchor"></div><a class="notion-hash-link" href="#a9073ce03a304760ad35cdec4dbd2bef" title="现在"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">现在</span></span></h3><div class="notion-text notion-block-f3984d4695c4412cb75f37fa63112e95">最终还是选择了考研，并且为了不让自己退缩，选择了脱产。</div><div class="notion-text notion-block-48025665930f4b3087dd4accb90b6d9e">但是学习是枯燥的，在<s>闲暇之余</s>摸鱼的时候，想给自己找一份好用的笔记软件，从国产WizNote到Craft，还有同事介绍的语雀，最终见识到了Notion这一利器最终选择了它。</div><div class="notion-text notion-block-e85af222ffab49ad93d92d0b6ed868ba">选择的原因也和这段时间的工作经历有关，一是有丰富的API进行操作，而是良好的生态环境，最重要的是产品确实不错而且美观大方。</div><div class="notion-text notion-block-36840dde6ede428a90f8af24a0e617df">有API自然想到制作博客，当然这些都是现成的，虽然不像第一个网站那样高度自定义，但也满足了我的基本需求了。</div><div class="notion-text notion-block-bed2b85042cb4d618099d65fc3a22e0f">依靠这些工具，加上我的一些资源，现在，我终于能说：</div><blockquote class="notion-quote notion-block-54edd09696f043b18fd4940016ccbf27"><div>🎉 祝贺我自己正式开通个人网站啦~</div></blockquote><div class="notion-blank notion-block-c609b2d470ed48ccb8b024ebee1bc76e"> </div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Idea使用技巧——Git提交]]></title>
            <link>https://blog.manro.space/article/73d2a434-1ec4-4803-9e57-a4047c799512</link>
            <guid>https://blog.manro.space/article/73d2a434-1ec4-4803-9e57-a4047c799512</guid>
            <pubDate>Tue, 26 Jul 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[使用Idea提交代码时，你是否直接“Commit & Push”了呢？看看规范做法是什么样的吧~]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-73d2a4341ec448039e57a4047c799512"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-2c8a45ce8c404d3faa7a5414c46561fd" data-id="2c8a45ce8c404d3faa7a5414c46561fd"><span><div id="2c8a45ce8c404d3faa7a5414c46561fd" class="notion-header-anchor"></div><a class="notion-hash-link" href="#2c8a45ce8c404d3faa7a5414c46561fd" title="1. commit信息模板"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">1. commit信息模板</span></span></h3><blockquote class="notion-quote notion-block-9c3b6dc34f184c2b814b2f1ef0205f97"><div>此插件可以在提交代码时提供简单的模板，并且符合commit内容规范</div></blockquote><div class="notion-row notion-block-e4514446ee1444cfae3b99f099b70865"><div class="notion-column notion-block-eaaf5f9aeed940f49e695b9af89b6b69" style="width:calc((100% - (1 * min(32px, 4vw))) * 0.25)"><ol start="1" class="notion-list notion-list-numbered notion-block-4539a2c6344143a397fe4e6552864110"><li>下载插件</li><ol class="notion-list notion-list-numbered notion-block-4539a2c6344143a397fe4e6552864110"><div class="notion-text notion-block-eafd372f3bea4e748654d87f820fea1b">商店搜索<code class="notion-inline-code">Git Commit Template</code>，下载安装</div></ol></ol></div><div class="notion-spacer"></div><div class="notion-column notion-block-f45489ae7cff4367b5ee7e802966c259" style="width:calc((100% - (1 * min(32px, 4vw))) * 0.75)"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-7fed5c120a954e0e8339356783f5de03"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://assets.che300.com/wiki/2021-11-01/16357543424122943.png" alt="notion image" loading="lazy" decoding="async"/></div></figure></div><div class="notion-spacer"></div></div><ol start="1" class="notion-list notion-list-numbered notion-block-fdde3520d7274243a216c648b6607de9"><li>使用插件</li><ol class="notion-list notion-list-numbered notion-block-fdde3520d7274243a216c648b6607de9"><li>在提交代码时，选中此按钮</li><ol class="notion-list notion-list-numbered notion-block-56cedeaf806b4602bc879fe7f76ac824"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-02b9ae1de3d74917a3b9cc5cd0e29fc5"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:288px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://assets.che300.com/wiki/2021-11-01/16357545905094803.png" alt="notion image" loading="lazy" decoding="async"/></div></figure></ol><li>在新打开的对话框中按描述填写信息，其中的信息与规范的对应关系如图所示</li><ol class="notion-list notion-list-numbered notion-block-cc0438174e284cc68691248748ee550e"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-68fc0d2e42c84cf18d10ea9d64e5560d"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:288px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://assets.che300.com/wiki/2021-11-01/16357546353962511.png" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-6b5a72bc8d34497787ecdbe7e027c110"><b>注</b>：若选中Wrap at 72 characters，则会尝试将body内容包装在72字符之内</div></ol><li>选中ok完成commit信息构建，这时可以看到commit信息框中已经有了符合规范的commit信息了。</li></ol></ol><h4 class="notion-h notion-h3 notion-h-indent-1 notion-block-c92b56d5042446af934ee8ab6dee1d89" data-id="c92b56d5042446af934ee8ab6dee1d89"><span><div id="c92b56d5042446af934ee8ab6dee1d89" class="notion-header-anchor"></div><a class="notion-hash-link" href="#c92b56d5042446af934ee8ab6dee1d89" title="2. commit信息格式校验"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">2. commit信息格式校验</span></span></h4><blockquote class="notion-quote notion-block-ba9e420150344392a6c4e3ba014386a8"><div>此插件可以在提交代码时提供对commit信息的格式校验，防止不符合规范的提交发生。</div></blockquote><div class="notion-row notion-block-d7d636891cf44f8eb9fe02c075c96b26"><div class="notion-column notion-block-e6d39e9cf9f54c4abb17b2186fc734a0" style="width:calc((100% - (1 * min(32px, 4vw))) * 0.25)"><ol start="1" class="notion-list notion-list-numbered notion-block-0dbca1b60183495ba66348a4f14211e9"><li>下载插件</li><ol class="notion-list notion-list-numbered notion-block-0dbca1b60183495ba66348a4f14211e9"><div class="notion-text notion-block-c7088e1fd38a456a8837af1c58b50fbd">想要做到校验，需要插件支持：商店搜索<code class="notion-inline-code">GitToollBox</code>，下载安装</div></ol></ol></div><div class="notion-spacer"></div><div class="notion-column notion-block-cf1128ad5c84403fa6ffe6da9b5c1aa6" style="width:calc((100% - (1 * min(32px, 4vw))) * 0.75)"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-b6c9844b5843497c8f141761ebe3cf7f"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://assets.che300.com/wiki/2021-11-01/16357551381967295.png" alt="notion image" loading="lazy" decoding="async"/></div></figure></div><div class="notion-spacer"></div></div><ol start="1" class="notion-list notion-list-numbered notion-block-672a7430139b4c4b98ade48353a9bffe"><li>使用插件</li><ol class="notion-list notion-list-numbered notion-block-672a7430139b4c4b98ade48353a9bffe"><li>打开系统设置，配置目录为：<code class="notion-inline-code">Version control</code> → <code class="notion-inline-code">GitToolBox</code> → <code class="notion-inline-code">Commit</code></li><ol class="notion-list notion-list-numbered notion-block-311510820a674578b0e32e0b900755e6"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-00baf38a0076443d83a1ffa5894bc379"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://assets.che300.com/wiki/2021-11-01/1635755340434917.png" alt="notion image" loading="lazy" decoding="async"/></div></figure></ol><li>选中上图标记④，在上图⑤标记出的位置更改校验正则</li><ol class="notion-list notion-list-numbered notion-block-3cef3dd4b91f4f699fa9bd14b45304b0"><blockquote class="notion-quote notion-block-4ffe2addf21244849afac114aba98db0"><div>摘抄自Git commit提交规范 ，由于校验方式不同，此处在《规范》的末尾额外增加了<code class="notion-inline-code">([\s\S]+)</code>，实际使用效果相同</div></blockquote><div class="notion-text notion-block-7e74235334cf41a482882b08c193f203">下方文本框用于测试校验正则正确性</div></ol><li>至此配置结束，完成commit信息后，点击提交即会在提交前进行校验，当格式不正确时会进行提示，效果如下图所示</li><ol class="notion-list notion-list-numbered notion-block-93590a12365247e5a1ec0a63c6b15f66"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-f5d8a7264e224e65aa9a0087701ea191"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:480px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://assets.che300.com/wiki/2021-11-01/16357556784563971.png" alt="notion image" loading="lazy" decoding="async"/></div></figure></ol></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-61b19d3ae3cd419f8dc1e8b2b06269be"><li>其他校验</li><ol class="notion-list notion-list-numbered notion-block-61b19d3ae3cd419f8dc1e8b2b06269be"><div class="notion-text notion-block-1a66baa142664c6b87bfddfd49b35b58">idea同时提供自带校验规则，但效果较差。这里不再展开</div></ol></ol><h4 class="notion-h notion-h3 notion-h-indent-1 notion-block-57e547a7bedc4ed588e127d38b9c3837" data-id="57e547a7bedc4ed588e127d38b9c3837"><span><div id="57e547a7bedc4ed588e127d38b9c3837" class="notion-header-anchor"></div><a class="notion-hash-link" href="#57e547a7bedc4ed588e127d38b9c3837" title="3. commit信息更改"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">3. commit信息更改</span></span></h4><div class="notion-text notion-block-9b2526c2cac9474db29f3dec9710ad19">在git面板上，选中提交信息，按<code class="notion-inline-code">F2</code>即可快速修改提交信息</div><h4 class="notion-h notion-h3 notion-h-indent-1 notion-block-7155b78ce4bc4c799b7123bb9285050b" data-id="7155b78ce4bc4c799b7123bb9285050b"><span><div id="7155b78ce4bc4c799b7123bb9285050b" class="notion-header-anchor"></div><a class="notion-hash-link" href="#7155b78ce4bc4c799b7123bb9285050b" title="4. 合并提交"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">4. 合并提交</span></span></h4><blockquote class="notion-quote notion-block-8d2929934c934c1992886790aa15015f"><div>需要2021版本支持</div></blockquote><div class="notion-text notion-block-3af32ba976b24a978006212205eb9011">选中需要合并的提交，右键选择<code class="notion-inline-code">Squash Commits</code>，在新对话框中编辑提交信息，保存即可。</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-a5c3140fdc3d4423ae81ce6ebe365027"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:624px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://assets.che300.com/wiki/2021-11-01/16357563684321864.png" alt="notion image" loading="lazy" decoding="async"/></div></figure><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-3dad0bdc6a0645fcada2ae782b2edfd0"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:480px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://assets.che300.com/wiki/2021-11-01/16357564603248095.png" alt="notion image" loading="lazy" decoding="async"/></div></figure><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1cd7827ed16d47f681146e946bed380e"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:864px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://assets.che300.com/wiki/2021-11-01/16357564760204408.png" alt="notion image" loading="lazy" decoding="async"/></div></figure></main></div>]]></content:encoded>
        </item>
    </channel>
</rss>