一个"project"文件应该怎么写?
How should a "project" file be written?
使用流行的软件包,如 Microsoft Word 或 Photoshop,我们通常可以选择将我们的进度保存为“项目”文件,然后可以打开该文件进一步编辑我们的作品。此文件通常包含所有选项和用户取得的进展(即您在 Word 中键入的文章)。
所以我的问题是,如果我正在做一个需要创建类似“项目”文件的类似应用程序,我应该怎么做?我的应用程序是一个科学应用程序,这意味着它需要很多(多维)数组。我知道有很多选择可以做到这一点,但我想知道事实上的方法。
以下是我列出的一些选项:
- XML:人类可读。尺寸太大,处理数组的工作量太大。
- JSON:更多 popular/modern。数组很好。
- 协议缓冲区:由Google创建。可能更快。
- 数据库:可能不是一个好的用例,因为“项目”文件很可能是“临时的”。此外,使用数组也不是很简单。
- 创建您自己的二进制格式:对于像我这样没有经验的程序员来说可能是最困难的解决方案。
- ???
我想从你们那里得到一些建议。谢谢 :).
(好问题。:)只有一些想法)我更喜欢主项目文件的文本格式。您可以创建差异并轻松打开、阅读和修改它。大型 ascii 或二进制数据可以作为序列化数据存储在外部文件或 SQLite 等数据库中,从那里可以通过应用程序轻松访问和处理。主项目具有指向外部数据存储的链接。我对主项目文件的建议是可以轻松转换为 JSON 格式的简单 XML 格式。 key
value
对 (dict
) 的列表适合开始。 value
可以是基本数据类型,也可以是 array
或 dict
。复杂的 XML 树不好。 key
名称还可以帮助描述和构建数据。所以我更喜欢 key="rect.4711.pos.x" value="500"
而不是 <rect id="4711"><pos><x>500</x>...</pos>...
。重要的方面是项目数据是可移植的 self-contained,即使项目是文件系统上的目录,用户也可以将项目视为一个单元,为此支持某种压缩格式的项目数据很好
使用流行的软件包,如 Microsoft Word 或 Photoshop,我们通常可以选择将我们的进度保存为“项目”文件,然后可以打开该文件进一步编辑我们的作品。此文件通常包含所有选项和用户取得的进展(即您在 Word 中键入的文章)。
所以我的问题是,如果我正在做一个需要创建类似“项目”文件的类似应用程序,我应该怎么做?我的应用程序是一个科学应用程序,这意味着它需要很多(多维)数组。我知道有很多选择可以做到这一点,但我想知道事实上的方法。
以下是我列出的一些选项:
- XML:人类可读。尺寸太大,处理数组的工作量太大。
- JSON:更多 popular/modern。数组很好。
- 协议缓冲区:由Google创建。可能更快。
- 数据库:可能不是一个好的用例,因为“项目”文件很可能是“临时的”。此外,使用数组也不是很简单。
- 创建您自己的二进制格式:对于像我这样没有经验的程序员来说可能是最困难的解决方案。
- ???
我想从你们那里得到一些建议。谢谢 :).
(好问题。:)只有一些想法)我更喜欢主项目文件的文本格式。您可以创建差异并轻松打开、阅读和修改它。大型 ascii 或二进制数据可以作为序列化数据存储在外部文件或 SQLite 等数据库中,从那里可以通过应用程序轻松访问和处理。主项目具有指向外部数据存储的链接。我对主项目文件的建议是可以轻松转换为 JSON 格式的简单 XML 格式。 key
value
对 (dict
) 的列表适合开始。 value
可以是基本数据类型,也可以是 array
或 dict
。复杂的 XML 树不好。 key
名称还可以帮助描述和构建数据。所以我更喜欢 key="rect.4711.pos.x" value="500"
而不是 <rect id="4711"><pos><x>500</x>...</pos>...
。重要的方面是项目数据是可移植的 self-contained,即使项目是文件系统上的目录,用户也可以将项目视为一个单元,为此支持某种压缩格式的项目数据很好