Godot 在4.X 之后推出了 `GDExtension`,通过第三方绑定扩展功能,目前官方支持的语言只有 C++。通过使用 `GDExtension C++` 编写扩展插件,可以作为库文件在 Godot 中交互使用。`GDExtension` 可以使用 C++ 原生库,提高了性能,还可以自编写游戏逻辑,无需和引擎一同编译。网上关于 GDExtension 的介绍资料较少,官方文档也很简略,所以本文主要介绍如何通过 Docker 镜像搭建 GDExtension C++ 的开发环境,实现一键化快速构建,省去每次开发环境配置的繁琐步骤。

阅读全文 »

本文主要介绍如何通过经纬度反查城市行政区域,主要分为两个步骤:1. 采集省市区边界数据,导入到 MongoDB、PostgreSQL 等支持地理空间索引的数据库中;2. 对于给定的经纬度,可以通过边界数据查询所在的行政区域。边界数据来源于开源项目,需要经过数据处理和清洗。另外,本文还介绍了行政区划代码、坐标系转换,并给出了源码实现和一键化部署的仓库地址。

阅读全文 »

本文介绍了分布式系统中的数据存储和组织方式,可以分为复制(replication)和分区(partitioning)两种方式,复制提供了冗余,提高可用性和读取性能,分区提供了扩展性,通过增加节点来扩展系统的容量和吞吐量。复制有三种方式:单主复制、多主复制、主从复制,其中单主复制一般常用的是主从复制方式。本文主要内容来自《数据密集型应用设计》一书。

阅读全文 »

本文介绍了数据密集型应用设计的三个基本问题:可靠性(Reliability)、可扩展性(Scalability)、可维护性(Maintainability)。可靠性指系统在故障环境中仍可正常工作;可扩展性指系统有合理的办法应对负载和复杂性的增长;可维护性指许多不同的人在不同的生命周期都能高效地在该系统上进行开发和维护的工作。这三种特性是数据密集型应用设计的基础。本文主要内容来自《数据密集型应用设计》一书。

阅读全文 »

Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。本文主要介绍 Redis 的数据结构和对象,数据结构包括简单动态字符串、链表、字典、跳跃表和整数集合,对象是通过数据结构实现的 Redis 对象,在 Redis 中,数据库的键值对、列表、集合、有序集合等数据结构都是通过对象来实现的。本文的内容主要来自《Redis 设计与实现》一书。

阅读全文 »

Gin 框架基于原生 net/http 库,在其基础上实现了路由、中间件、请求链等功能,提供了更加便捷的 web 服务开发方式。本文从源码角度出发,解析了 Gin 框架的设计思路,包括 Gin 核心结构、中间件与请求链、路由设置、HTTP 的使用模式、web 服务启动流程等,提供了一个粗浅的分析视角,帮助读者更好地理解 Gin 框架的设计。

阅读全文 »
0%