Lanno 正式版本发布
Lanno 发布一个正式版本,现在开始正式进入 1.0 版本号
https://github.com/Chivier/lanno

为什么需要 Lanno
在软件开发过程中,代码组织和文档管理一直是开发者面临的挑战。虽然像Copilot这样的AI工具在代码自动补全方面表现出色,但它们在整体代码结构组织上仍有不足。
现在有很多项目级的代码补全工具,但是我们经常会忽视一个问题:什么是结构
在 cmake, bazel 等现代项目中,需要对大量的复杂文件进行整理和耦合,然而这些用于整合编译的项目只会说明项目的依赖关系,而不会说「semantic structure」,即「我为什么需要将这个模块进行拆分」。
这种设计上的知识确实,让我看到了很多潜在机会,而这个项目本质上有两个用途:
- 给人用:我给我的合作者说明文件的用途
- 给机器用:AI 进行数据标注之后,获得了一种可以用来给文件作用标注的格式
总之 Lanno 应运而生,它提供了一种简单直观的方式来为文件添加注释和标签。当项目文件数量增加时,快速了解每个文件的用途变得困难。使用Lanno,你(也可能是 GPT)可以立即看到文件的标签和描述,无需打开每个文件查看其内容。
对于团队协作而言,Lanno尤为重要。新成员加入项目时,不必再逐一解释每个文件的功能,他们可以通过Lanno获得文件的概览,大大减少了上手时间。
我是怎么实现的?
Lanno的实现基于简单而强大的原则:
- 数据存储:使用JSON格式(
.lanno.json)存储文件元数据,确保数据结构清晰且易于处理。 - 命令行接口:设计了直观的语法,如
+tag添加标签,-tag删除标签,允许用户直接在命令行中快速操作。 - 交互式界面:实现了类似Vim的导航方式,支持分页浏览、搜索和快捷编辑,使大型项目的文件管理变得高效。
- 可扩展性:设计时考虑了扩展性,便于未来添加更多功能,如文件分类、自动标签建议等。
这种实现对我有什么用?
Lanno的实现为开发过程带来了多方面的好处:
- 提升开发效率:快速了解文件功能,减少在代码库中迷路的时间。
- 文档代码耦合:将文档与代码紧密结合,确保文档始终与代码同步更新。
- 结构化思考:通过给文件添加标签,促使开发者更系统地思考项目结构。
- 简化协作:新团队成员可以迅速了解项目组织,减少沟通成本。
- 降低技术债务:持续更新的文件注释有助于防止”无人知晓”的代码堆积。
对AI编程的讨论和思考
AI 工具如 Copilot 和 ChatGPT 在代码生成方面取得了显著进展,但它们在代码组织和项目结构理解上仍有局限。Lanno恰好填补了这一空白。
当今的 AI 工具擅长局部代码生成,但对全局项目结构的理解仍不够深入。开发者仍需要自己组织代码,确保项目的可维护性。token 的限制目前还是我们和 AI 的边界,我们有无限的过往,而 AI 只能在 128K 的记忆力挣扎。新兴的智巧工具,确是如山间突起的奇峰,引人注目。它们能在刹那间生出繁复的代码,令人惊叹。然而细细品来,却似是无根浮萍,不知所从。它们懂得枝叶的繁茂,却不解树根的延伸;能描摹一朵花的姿态,却难绘全园的格局。我希望 Lanno 提供一种方式,既可以帮助人类开发者,也可能为AI工具提供更多关于项目结构的上下文信息。
(好了,不说怪话了,本质上就是我文件夹有点多,缺一个打标注的工具)
(打完标注之后,发现好像还能用来做训练和自动化数据标注)
(这就是 LANNO,Ls with ANNOtation)