Skip to content

项目结构:

project/
├── CMakeLists.txt
├── README.md
├── src/
│   ├── main.cpp
│   ├── parser.cpp
│   └── analyzer.cpp
├── include/
│   ├── parser.h
│   └── analyzer.h
├── tests/
│   ├── test_parser.cpp
│   └── test_analyzer.cpp
├── docs/
│   └── design.md
├── .clang-format
├── .gitignore
└── .github/
    └── workflows/
        └── ci.yml

这体现的是:

  • 代码和测试分离
  • 接口和实现分离
  • 有 README
  • 有格式规范
  • 有 CI 自动检查
  • 有基本设计文档

License 怎么选

个人项目、课程项目、想让别人尽量随便用:
优先 MIT。简单、短、兼容性高。

公司项目、AI/基础设施/工程库、担心专利问题:
优先 Apache 2.0。它仍是宽松许可证,但多了显式专利授权和 NOTICE 机制。

学术/科研代码、传统工程代码、想保持宽松但加“不背书”限制:
可选 BSD 3-Clause。很多科研/大学项目喜欢用 BSD 系列。

不想别人拿去闭源商业化:
考虑 GPLv3 / AGPL,但这会降低商业采用率,也会显著增加合规复杂度。