/images/avatar.jpg

好久不见,别来无恙

仿射空间数学理解及证明

仿射空间的数学定义与坐标变换公式详解

理解模块是笔者个人心得体会,如果有误欢迎留言指出

仿射空间基本定义

定义 1 (仿射空间)

设 $V$ 是域 $\mathbb{K}$ 上的 $n$ 维向量空间,$A$ 是一个非空集合,$A$ 中的元素称为(point)。如果存在满足以下条件的加法映射 $$+: A \times V \to A, \quad(p, x) \mapsto p + x \in A$$

SQLAlchemy核心架构与缓存体系

SQLAlchemy 核心架构与缓存体系

一、Session 的本质定义

Session 是工作单元控制器(Unit of Work Controller),不是查询缓存。

1.1 Session 的核心职责

  • 事务管理:管理 begin/commit/rollback 生命周期
  • Identity Map:维护对象唯一性(同一主键只有一个实例)
  • 变更追踪:跟踪对象的 new/dirty/deleted 状态
  • flush 协调:将内存变更转换为 SQL 语句

1.2 Session 缓存职责区分

缓存类型Session 是否负责说明
Identity Map(对象缓存)负责按主键存储对象,保证同一主键只有一个实例
Query Cache(查询缓存)不负责不按查询条件缓存,相同 SQL 仍会执行

二、连接池与 Session 的关系

2.1 架构

多个 Session 共用同一个 Engine 的连接池,但不共用缓存:

Python 深度进阶:元类 (Metaclass) 与属性查找机制解析

Python 深度进阶:元类 (Metaclass) 与属性查找机制解析

metaclass

class M(type):
    @classmethod
    def __prepare__(metacls, name, bases, **kwargs):
        namespace = dict()

        # 注入一个工具函数,类定义体里可以直接用
        namespace['add'] = lambda a, b: a + b
        namespace['BASE_VALUE'] = 100

        return namespace


class Test(metaclass=M):
    result = add(1, 2)  
    total = BASE_VALUE + 50  
    
test = Test()
print(Test.result)  #3

这里是一个元类,这里直接塞入了一个add方法,这样所有被这个元类创建的类都可以使用这个方法

DevContainer 实践:VS Code vs JetBrains 深度对比

DevContainer 实践:VS Code vs JetBrains 深度对比

为什么需要 DevContainer

作为 GIS 后端开发,我经常遇到这些痛点:

  • 环境依赖复杂:Python + C++ 扩展(GDAL、Shapely)编译环境难以统一
  • 团队协作困难:「在我电脑上能跑」成为日常
  • 迁移成本高:换电脑或服务器部署时重新折腾环境

DevContainer 的核心思想很简单:把开发环境装进容器,代码挂载进去,IDE 连进去开发