Appearance
项目结构:
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,但这会降低商业采用率,也会显著增加合规复杂度。