VXiaoZhi Blog

「离开世界之前 一切都是过程」

Markdown 转换为 HTML 的golang开源项目

Markdown 转换为 HTML 的golang开源项目

在 Go 语言生态中,有几个优秀的开源项目可以将 Markdown 转换为 HTML。以下是常见的工具和库: Goldmark GitHub: https://github.com/yuin/goldmark 特点: 高性能、符合 CommonMark 标准。 支持扩展(如表格、任务列表、数学公式等)。 被许多知名项目(如 Hugo 静态站点生成器)使用。 提供 P...

js模板引擎Pug

js模板引擎Pug

Pug 是一个用 JavaScript 实现的高性能的模板引擎,支持 Node.js 和浏览器运行环境,其灵感来自 Haml 项目。 曾用名 “Jade” 本项目曾用名叫 “Jade”。然而,我们发现 “Jade” 是一个已经被注册的商标,因此需要给项目起一个新名字。经过项目维护团队的讨论,我们将名字改为了 “Pug”。从版本 2 开始,”pug” 成为了官方软件包的名称。 如果你的软...

Go语言Web框架:Beego

Go语言Web框架:Beego

Beego框架概述 Beego是一个用Go语言开发的全栈MVC框架,由国人谢孟军(Asta Xie)开发并维护。它借鉴了Python的Django和Flask等框架的设计思想,同时结合了Go语言的特性,为开发者提供了一套完整的Web开发解决方案。 Beego自2012年发布以来,已经成为Go生态中最受欢迎的Web框架之一,被广泛应用于各种规模的Web应用开发中。 基于 beego 的应...

基于boost.asio的WebSocket类库

基于boost.asio的WebSocket类库

zaphoyd/websocketpp WebSocket++ github 具有以下特点: Header Only的跨平台 WebSocket 库 网络 IO 基于 Boost::asio 实现 由于boost::asio 的 io_context 使用了线程存储,所以在 M:N 的协程模式(fiber) 下调用需格外小心。最好是采用 1:N 的协程。 当服务作为...

boost.asio 网络编程

boost.asio 网络编程

参考 boost.asio 网络编程 C++ 网络编程 asio 使用总结 基于 Boost Asio 的 C++ 网络编程 Boost.Asio看这一篇就够了

html5之语义化标签

html5之语义化标签

语义化标签 在[HTML5]标准中,新加了几个用于增添页面语义的标签,这些标签有:article、section、nav和aside等。与别的大多数标签不同,浏览器在解释渲染这些标签的时候仅仅把它们作为普通的div块级元素来进行处理,不会添加任何额外的展现逻辑;也即,这些标签仅用于增添语义。对于Web开发人员而言,使用这些标签的实际意义主要有2点:搜索引擎优化(SEO),以及增加页面的可用...

trpc微服务寻址方案设计

trpc微服务寻址方案设计

服务命名 tRPC在服务命名上定义了以下3个纬度信息: app名(应用名),表示某个业务系统的名称,用于标识某个业务下不同服务模块的一个集合; server名(模块名),表示具体服务模块的名称,一般也称为模块的进程名称; service名,表示具体服务提供者的名称,一般使用proto文件定义的Service名称; 其中app.server 的组合在全局上要具备唯一性。 ...

通知推送服务方案

通知推送服务方案

Bark Backend of Bark ntfy.sh ntfy.sh

Kubernetes 优雅停止

Kubernetes 优雅停止

Kubernetes 优雅停止 在Kubernetes (K8s) 中,Pod的优雅终止过程是一个有序的过程,旨在确保Pod中运行的应用程序能够平滑关闭,释放资源,并尽可能减少因突然关闭带来的数据丢失和服务中断。 以下是Pod优雅终止的一般步骤 删除Pod请求 用户或控制器发出删除Pod的请求,比如通过 kubectl delete pod &l...

C/C++面试基础知识

C/C++面试基础知识

C/C++ Basics 如何定义一个只能在堆上(栈上)生成对象的类? 如何定义一个只能在堆上(栈上)生成对象的类? 只能在堆上 方法:将析构函数设置为私有 原因:C++ 是静态绑定语言,编译器管理栈上对象的生命周期,编译器在为类对象分配栈空间时,会先检查类的析构函数的访问性。若析构函数不可访问,则不能在栈上创建对象。 只能在栈上 方法:将 new 和 delete 重...