Lanno 正式版本发布

Lanno 发布一个正式版本,现在开始正式进入 1.0 版本号

https://github.com/Chivier/lanno

为什么需要 Lanno

在软件开发过程中,代码组织和文档管理一直是开发者面临的挑战。虽然像Copilot这样的AI工具在代码自动补全方面表现出色,但它们在整体代码结构组织上仍有不足。

现在有很多项目级的代码补全工具,但是我们经常会忽视一个问题:什么是结构

在 cmake, bazel 等现代项目中,需要对大量的复杂文件进行整理和耦合,然而这些用于整合编译的项目只会说明项目的依赖关系,而不会说「semantic structure」,即「我为什么需要将这个模块进行拆分」。

这种设计上的知识确实,让我看到了很多潜在机会,而这个项目本质上有两个用途:

  1. 给人用:我给我的合作者说明文件的用途
  2. 给机器用:AI 进行数据标注之后,获得了一种可以用来给文件作用标注的格式

总之 Lanno 应运而生,它提供了一种简单直观的方式来为文件添加注释和标签。当项目文件数量增加时,快速了解每个文件的用途变得困难。使用Lanno,你(也可能是 GPT)可以立即看到文件的标签和描述,无需打开每个文件查看其内容。

对于团队协作而言,Lanno尤为重要。新成员加入项目时,不必再逐一解释每个文件的功能,他们可以通过Lanno获得文件的概览,大大减少了上手时间。

我是怎么实现的?

Lanno的实现基于简单而强大的原则:

  1. 数据存储:使用JSON格式(.lanno.json)存储文件元数据,确保数据结构清晰且易于处理。
  2. 命令行接口:设计了直观的语法,如+tag添加标签,-tag删除标签,允许用户直接在命令行中快速操作。
  3. 交互式界面:实现了类似Vim的导航方式,支持分页浏览、搜索和快捷编辑,使大型项目的文件管理变得高效。
  4. 可扩展性:设计时考虑了扩展性,便于未来添加更多功能,如文件分类、自动标签建议等。

这种实现对我有什么用?

Lanno的实现为开发过程带来了多方面的好处:

  1. 提升开发效率:快速了解文件功能,减少在代码库中迷路的时间。
  2. 文档代码耦合:将文档与代码紧密结合,确保文档始终与代码同步更新。
  3. 结构化思考:通过给文件添加标签,促使开发者更系统地思考项目结构。
  4. 简化协作:新团队成员可以迅速了解项目组织,减少沟通成本。
  5. 降低技术债务:持续更新的文件注释有助于防止”无人知晓”的代码堆积。

对AI编程的讨论和思考

AI 工具如 Copilot 和 ChatGPT 在代码生成方面取得了显著进展,但它们在代码组织和项目结构理解上仍有局限。Lanno恰好填补了这一空白。

当今的 AI 工具擅长局部代码生成,但对全局项目结构的理解仍不够深入。开发者仍需要自己组织代码,确保项目的可维护性。token 的限制目前还是我们和 AI 的边界,我们有无限的过往,而 AI 只能在 128K 的记忆力挣扎。新兴的智巧工具,确是如山间突起的奇峰,引人注目。它们能在刹那间生出繁复的代码,令人惊叹。然而细细品来,却似是无根浮萍,不知所从。它们懂得枝叶的繁茂,却不解树根的延伸;能描摹一朵花的姿态,却难绘全园的格局。我希望 Lanno 提供一种方式,既可以帮助人类开发者,也可能为AI工具提供更多关于项目结构的上下文信息。

(好了,不说怪话了,本质上就是我文件夹有点多,缺一个打标注的工具)

(打完标注之后,发现好像还能用来做训练和自动化数据标注)

(这就是 LANNO,Ls with ANNOtation)


Lanno 正式版本发布
http://blog.chivier.site/2025-04-09/2025/Lanno-正式版本发布/
Author
Chivier Humber
Posted on
April 9, 2025
Licensed under