<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>kok-s0s · 博客</title><description>关于 C++、Qt、工具链和软件开发的技术文章</description><link>https://kok-s0s.netlify.app/</link><language>zh-cn</language><item><title>软件奔溃排查记录</title><link>https://kok-s0s.netlify.app/posts/crash_investigation_record/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/crash_investigation_record/</guid><description>近两月和这个杆上了，估摸 Q3 还得和它 Battle N 回。</description><pubDate>Mon, 07 Jul 2025 00:00:00 GMT</pubDate></item><item><title>为一门语言开发一个 VSCode 插件</title><link>https://kok-s0s.netlify.app/posts/vscode_extension/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/vscode_extension/</guid><description>具备 Code Format 以及 语法高亮等功能</description><pubDate>Tue, 17 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Code Review 也是一门技术活</title><link>https://kok-s0s.netlify.app/posts/code_review/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/code_review/</guid><description>即将成为三年工作经验的码仔，记录下一些 Code Review 环节强烈建议做的事情，在开发阶段严格自查，是最经济的投入，如果到了实际产品上线后才暴漏，危已危已。</description><pubDate>Mon, 19 May 2025 00:00:00 GMT</pubDate></item><item><title>Modbus 工业通讯协议实践</title><link>https://kok-s0s.netlify.app/posts/modbus_rtu/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/modbus_rtu/</guid><description>本科读的网络工程，没怎么接触过工业使用的一些通讯协议，近期开发使用到一个 RS485 + ModbusRTU 的组合来做业务数据传递处理，写个文章记录下吧！</description><pubDate>Sat, 19 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Qt Dev</title><link>https://kok-s0s.netlify.app/posts/qt_dev/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/qt_dev/</guid><description>已经使用这门语言做过不少的项目了，写篇文章记录下一些，好吧，直接贴和 GPT 问答过来了 ~~~</description><pubDate>Tue, 06 Aug 2024 00:00:00 GMT</pubDate></item><item><title>做一个天气查询的 TUI 程序</title><link>https://kok-s0s.netlify.app/posts/weather_cli/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/weather_cli/</guid><description>目标驱动 - 逐步逐步做成这个 TUI 程序</description><pubDate>Fri, 04 Aug 2023 00:00:00 GMT</pubDate></item><item><title>ChatGPT</title><link>https://kok-s0s.netlify.app/posts/chatgpt/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/chatgpt/</guid><description>使用 ChatGPT 已经有一段时间，用文字记录点东西。</description><pubDate>Fri, 31 Mar 2023 00:00:00 GMT</pubDate></item><item><title>造个 C++ 线程基类</title><link>https://kok-s0s.netlify.app/posts/cxx_thread/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_thread/</guid><description>以剔除 Qt 的 QThread 为目标而诞生的项目。设计的线程基类能搭配类似 Qt 中的信号与槽机制来使用，且利用现代 C++ 提供的互斥量和条件变量，让函数能够同步或异步运行，这样派生类（某业务工作线程）能持有定时器（线程）来做些定时任务（异步）。</description><pubDate>Mon, 20 Mar 2023 00:00:00 GMT</pubDate></item><item><title>记一次「 包轮子 」的经历</title><link>https://kok-s0s.netlify.app/posts/cxx_crud_file/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_crud_file/</guid><description>重新拾起 C++ 开发已经有 8 个月了，自己主导做的一件事情。三个看法，一是记住 C++ 能不造轮子，就别造轮子了；二是能做单元测试的东西，就要做单元测试；三是好好利用 ChatGPT 之类的东西来优化代码 -/- doge</description><pubDate>Tue, 14 Mar 2023 00:00:00 GMT</pubDate></item><item><title>用 #ifndef 替换 #pragma once</title><link>https://kok-s0s.netlify.app/posts/replace_the_macro/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/replace_the_macro/</guid><description>需要重复处理的文件过多了，就别 Ctrl C、Ctrl V 了,写点 Python 最合适了。</description><pubDate>Wed, 01 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Astro</title><link>https://kok-s0s.netlify.app/posts/astro/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/astro/</guid><description>一个生成器，支持 markdown，能自己写 css 改样式，而且构建非常非常模块化，岛屿的概念有意思，这技术超适合我这种喜欢用 markdwon 记录的人，更何况我还做过一段时间的切图仔，用的很轻松，这里写篇文章记录下构建过程，以及说些使用感受。</description><pubDate>Thu, 23 Feb 2023 00:00:00 GMT</pubDate></item><item><title>序章</title><link>https://kok-s0s.netlify.app/posts/clean_cxx/chapter_01/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/clean_cxx/chapter_01/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>构建安全体系</title><link>https://kok-s0s.netlify.app/posts/clean_cxx/chapter_02/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/clean_cxx/chapter_02/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>原则</title><link>https://kok-s0s.netlify.app/posts/clean_cxx/chapter_03/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/clean_cxx/chapter_03/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>C++ 代码整洁的基本规范</title><link>https://kok-s0s.netlify.app/posts/clean_cxx/chapter_04/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/clean_cxx/chapter_04/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>现代 C++ 的高级概念</title><link>https://kok-s0s.netlify.app/posts/clean_cxx/chapter_05/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/clean_cxx/chapter_05/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>面向对象</title><link>https://kok-s0s.netlify.app/posts/clean_cxx/chapter_06/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/clean_cxx/chapter_06/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>函数式编程</title><link>https://kok-s0s.netlify.app/posts/clean_cxx/chapter_07/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/clean_cxx/chapter_07/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>测试驱动开发</title><link>https://kok-s0s.netlify.app/posts/clean_cxx/chapter_08/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/clean_cxx/chapter_08/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>设计模式和习惯用法</title><link>https://kok-s0s.netlify.app/posts/clean_cxx/chapter_09/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/clean_cxx/chapter_09/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Chain of Responsibility</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/behavioral_patterns/chain_of_responsibility/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/behavioral_patterns/chain_of_responsibility/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Command</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/behavioral_patterns/command/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/behavioral_patterns/command/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Iterator</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/behavioral_patterns/iterator/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/behavioral_patterns/iterator/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Memento</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/behavioral_patterns/memento/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/behavioral_patterns/memento/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Observer</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/behavioral_patterns/observer/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/behavioral_patterns/observer/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Template Method</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/behavioral_patterns/template_method/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/behavioral_patterns/template_method/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Abstract Factory</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/creational_patterns/abstract_factory/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/creational_patterns/abstract_factory/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Builder</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/creational_patterns/builder/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/creational_patterns/builder/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Factory Method</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/creational_patterns/factory_method/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/creational_patterns/factory_method/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Prototype</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/creational_patterns/prototype/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/creational_patterns/prototype/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Singleton</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/creational_patterns/singleton/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/creational_patterns/singleton/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Adapter</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/structural_patterns/adapter/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/structural_patterns/adapter/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Bridge</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/structural_patterns/bridge/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/structural_patterns/bridge/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Composite</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/structural_patterns/composite/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/structural_patterns/composite/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Decorator</title><link>https://kok-s0s.netlify.app/posts/cxx_design_patterns/structural_patterns/decorator/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/cxx_design_patterns/structural_patterns/decorator/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>也许会忘记的 Linux 指令</title><link>https://kok-s0s.netlify.app/posts/knowledge_element/linux_command/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/knowledge_element/linux_command/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>消息队列的设计思想</title><link>https://kok-s0s.netlify.app/posts/knowledge_element/message_queue/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/knowledge_element/message_queue/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>C 与 C++ 的区别</title><link>https://kok-s0s.netlify.app/posts/scattered/00_c_cpp_differences_comparison/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/00_c_cpp_differences_comparison/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>指针与引用的区别</title><link>https://kok-s0s.netlify.app/posts/scattered/01_pointer_reference_differences_comparison/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/01_pointer_reference_differences_comparison/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>struct 与 class 的区别</title><link>https://kok-s0s.netlify.app/posts/scattered/02_struct_class_differences_comparison/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/02_struct_class_differences_comparison/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>struct 内存对齐问题，sizeof 与 strlen 区别</title><link>https://kok-s0s.netlify.app/posts/scattered/03_struct_alignment_sizeof_strlen/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/03_struct_alignment_sizeof_strlen/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>面向对象的三大特性</title><link>https://kok-s0s.netlify.app/posts/scattered/04_oop/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/04_oop/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>类的访问权限</title><link>https://kok-s0s.netlify.app/posts/scattered/05_class_permisions/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/05_class_permisions/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>类的构造析构函数、赋值函数、拷贝函数</title><link>https://kok-s0s.netlify.app/posts/scattered/06_class_functions/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/06_class_functions/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>移动构造函数与拷贝构造函数对比</title><link>https://kok-s0s.netlify.app/posts/scattered/07_copy_vs_move_constructors_comparison/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/07_copy_vs_move_constructors_comparison/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>内存分区：全局区、堆区、栈区、常量区、代码区</title><link>https://kok-s0s.netlify.app/posts/scattered/08_memory_partition/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/08_memory_partition/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>虚函数实现动态多态的原理</title><link>https://kok-s0s.netlify.app/posts/scattered/09_virtual_function_dynamic_polymorphism/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/09_virtual_function_dynamic_polymorphism/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>虚函数与纯虚函数的区别</title><link>https://kok-s0s.netlify.app/posts/scattered/10_virtual_pure_virtual_function_diff/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/10_virtual_pure_virtual_function_diff/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>深拷贝与浅拷贝的别</title><link>https://kok-s0s.netlify.app/posts/scattered/11_deep_copy_shallow_copy_diff/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/11_deep_copy_shallow_copy_diff/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>static, const, extern, volatile</title><link>https://kok-s0s.netlify.app/posts/scattered/12_c_cpp_keyword/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/12_c_cpp_keyword/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>C++ 中的类型转换</title><link>https://kok-s0s.netlify.app/posts/scattered/13_cpp_type_conversion/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/13_cpp_type_conversion/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>静态与多态：重写、重载、模板</title><link>https://kok-s0s.netlify.app/posts/scattered/14_static_vs_polymorphism_oop/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/14_static_vs_polymorphism_oop/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>四种智能指针及底层实现</title><link>https://kok-s0s.netlify.app/posts/scattered/15_smart_pointer/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/15_smart_pointer/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>右值引用</title><link>https://kok-s0s.netlify.app/posts/scattered/16_rvalue_reference/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/16_rvalue_reference/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>std::move 函数</title><link>https://kok-s0s.netlify.app/posts/scattered/17_cpp_move_func/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/17_cpp_move_func/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item><item><title>C++ 迭代器</title><link>https://kok-s0s.netlify.app/posts/scattered/18_cpp_Iterator/</link><guid isPermaLink="true">https://kok-s0s.netlify.app/posts/scattered/18_cpp_Iterator/</guid><pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate></item></channel></rss>