基于 inspect 实现重载

学习 

基于 inspect 在运行时动态匹配入参并调用指定函数。

实现了一个基于 OneBot v11 的开发框架,聊聊其中的细节


本文介绍了使用方法,以及一个 asyncio.create_task 存在的隐患、如何与 OneBot 通过 WebSocket 交互、一个简单的依赖注入框架的实现、插件系统的实现、配置系统的实现。

以元类实现单例


通过元类的方式在实例化前检查对象是否已保存,如果有就直接返回。

在 GitHub Pages 中使用 Vue Router


本文想要解决的是如何在 GitHub Pages 中使用 History Router,如果用 Hash Router 不会有问题,但是很丑。

自己实现 abc 模块的核心功能

学习 

通过 abc 模块可以在 Python 中使用抽象类,定义抽象方法、抽象属性。本文手动实现一个 ABCMeta 来探究其实现原理,这里就牵扯到 CPython 源码中对于 property 的 __isabstractmethod__ 定义。

Python 实现动态的工厂模式


本文讨论的主要是,如何把工厂模式生产的产品,即抽象类的子类信息动态地保存到一个表中,而不是直接简单粗暴地使用 if-else 来判断。使用 Python 中的装饰器或者元类来达到我们保存子类信息的目的。

Python itertools 简单介绍和运用例

学习 

前言最近写 Python 比较多,不可避免地要处理一堆可迭代对象。本文就介绍 Python 内置库 itertools 以及介绍几个我常用的函数的使用方法。

使用 FastAPI+aiosqlite+databases 搭建服务端的基础用法

开发 

本文是主要为从未使用过这些框架的人做一个介绍,并没有太多的技术含量。使用 sqlite 数据库中,连接池的问题可以暂缓考虑,文章中引用了 aiosqlite 下的一个 issue 来说明原因。

拓展 marked 支持自定义表情

开发 

拓展图片渲染的逻辑,支持自定义表情。实际上就是特殊的图片,人为添加了一些样式。

异步加载 Vue 组件以减小 chunk 体积


使用 useAsyncComponent 来异步加载组件,从而减小单个 chunk 的体积。