Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ 内容 ] 怎样设计文件格式 #32

Open
NetaP495L opened this issue May 1, 2021 · 10 comments
Open

[ 内容 ] 怎样设计文件格式 #32

NetaP495L opened this issue May 1, 2021 · 10 comments

Comments

@NetaP495L
Copy link

我不确定写 parser 算不算计算机系学子的核心素养 or 比较好的练手项目

@LaoshuBaby
Copy link
Contributor

LaoshuBaby commented May 1, 2021 via email

@ayaka14732
Copy link
Member

怎么突然讲起 parser lol

@NetaP495L
Copy link
Author

我没学过编译原理但是糊过 parser,用正则表达式硬凑的,虽然不太能保证正确性()

@NetaP495L
Copy link
Author

如果正则表达式算是计算机系学子的必学内容,糊个 parser(不保证在 corner case 能正常运作)大概不算困难?

@LaoshuBaby
Copy link
Contributor

LaoshuBaby commented May 1, 2021 via email

@ayaka14732
Copy link
Member

刚刚在想和文件格式有什么关系 XD

是说 parse 配置文件嘛?绝大部分应用场景是可以用 JSON 或者 YAML 解决的,不用手写 parser

@NetaP495L
Copy link
Author

NetaP495L commented May 1, 2021

刚刚在想和文件格式有什么关系 XD

是说 parse 配置文件嘛?绝大部分应用场景是可以用 JSON 或者 YAML 解决的,不用手写 parser

显然不是指 parse 配置文件,而是从设计文件格式开始渐进地设计 parser

比如之前某项目的 Markdown + srt 字幕的缝合品

又比如说电子词典有个 mdx 格式,设计上有些遗憾,并且这是专有格式(其技术细节是被人从成品反推出来的)有版权风险,最近我就想重新搞一个词典格式(

@ayaka14732
Copy link
Member

千万不要……

众所周知,软件开发里有一句格言就是「不要重复造轮子」。之前我做过一个项目需要解析 ebz 词典格式,资料比 mdx 更少,其中一个问题是在 stackoverflow 上一个提问的启发下才解决的。现在再做词典的话应该用更常见的解决方案,比如做 APP 的话用 SQLite 数据库,做网站的话用 JSON 传递请求之类的。

(而且 mdx 是 binary 应该和 parser 没有关系 www)

感觉一般人在实际项目中几乎不会遇到真正需要自己设计文件格式的场景。

@qiuhuiming
Copy link

真没啥必要

@ayaka14732
Copy link
Member

现在大部分 binary 文件格式是一个 ZIP 包,里面有一些是配置文件,其他是资源和程序文件

@LaoshuBaby LaoshuBaby transferred this issue from thousand-trees-academy/TTA-Website Oct 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants