Killed by Google数据格式详解:JSON结构与字段规范完整说明
Killed by Google数据格式详解:JSON结构与字段规范完整说明
【免费下载链接】killedbygooglePart guillotine, part graveyard for Google's doomed apps, services, and hardware.项目地址: https://gitcode.com/gh_mirrors/ki/killedbygoogle
Killed by Google是一个记录Google已停止产品和服务的开源项目,它使用结构化的JSON数据格式来存储Google产品的生命周期信息。这个完整的数据格式指南将帮助开发者理解如何正确使用和贡献数据到项目中。📊
项目概述与核心功能
Killed by Google项目通过简洁的JSON数据结构记录了Google历史上所有已停止的产品、服务和应用。该项目不仅是一个纪念Google已逝产品的墓碑,更是一个宝贵的数据资源库,为开发者、研究者和技术爱好者提供了Google产品生态系统的完整历史视图。
JSON数据结构完整解析
基础数据模型
每个Google已停止产品在graveyard.json文件中都遵循统一的数据结构。让我们深入了解每个字段的详细规范:
{ "name": "Google Reader", "dateOpen": "2005-10-07", "dateClose": "2013-07-01", "description": "Google Reader was an RSS/Atom feed aggregator.", "link": "https://en.wikipedia.org/wiki/Google_Reader", "type": "service" }字段规范详解
1.name字段:产品名称
- 要求:必须使用产品的官方名称
- 格式:字符串类型,首字母大写
- 示例:
"Google Reader"、"Google+"、"Chromecast Audio" - 注意事项:保持名称的一致性,避免使用缩写或非官方名称
2.dateOpen字段:发布日期
- 格式:ISO 8601标准日期格式
YYYY-MM-DD - 验证规则:必须是有效日期,且早于dateClose
- 数据来源:官方公告、新闻稿或可靠历史记录
- 示例:
"2005-10-07"、"2013-09-29"
3.dateClose字段:停止日期
- 格式:ISO 8601标准日期格式
YYYY-MM-DD - 验证规则:必须是有效日期,且晚于dateOpen
- 重要说明:必须是实际停止服务的日期
- 示例:
"2013-07-01"、"2024-08-06"
4.description字段:产品描述
- 要求:单句描述,以产品名称开头
- 语法:使用过去时态,保持客观中立
- 格式:
"{产品名称} was {功能描述}" - 示例:
"Google Reader was an RSS/Atom feed aggregator." - 长度限制:建议不超过200个字符
5.link字段:引用链接
- 优先级:Wikipedia > 新闻机构 > 官方公告
- 禁止链接:Google支持文章、产品营销页面
- 要求:必须包含产品停止的相关信息
- 示例:
"https://en.wikipedia.org/wiki/Google_Reader"
6.type字段:产品类型
- 允许值:
"app"、"service"、"hardware" - 定义:
app:移动或桌面应用程序service:在线服务或平台hardware:物理硬件设备
数据类型定义与枚举
项目使用TypeScript类型定义确保数据一致性。查看类型定义文件:
export enum ProductType { APP = 'app', SERVICE = 'service', HARDWARE = 'hardware', } export interface Product { name: string; description: string; dateClose: string; dateOpen: string; link: string; type: ProductType; }数据验证与质量保证
自动化测试验证
项目包含严格的测试套件来验证数据完整性:
- 必填字段检查:确保所有字段都有值
- 日期格式验证:验证日期格式为YYYY-MM-DD
- 日期逻辑检查:确保停止日期晚于发布日期
- 类型枚举验证:只允许预定义的产品类型
- 唯一性检查:确保产品名称不重复
编辑指南
- 描述编写:使用过去时态,客观描述产品功能
- 链接选择:优先选择Wikipedia或权威新闻来源
- 类型判断:准确分类为app、service或hardware
- 日期确认:使用可靠来源确认准确的发布日期和停止日期
数据使用示例
前端组件数据消费
查看List组件如何展示产品数据:
// 计算产品生命周期 const getYears = () => { const duration = formatDistance(dateClose, dateOpen); return `It was ${duration} old.`; }; // 根据状态显示不同图标 const getIcon = () => { return isPast() ? { src: 'tombstone.svg', alt: 'Tombstone' } : { src: 'guillotine.svg', alt: 'Guillotine' }; };API数据端点
项目提供RESTful API端点,访问API路由获取处理后的数据:
export async function GET() { const data = await require('../../../graveyard.json'); const processedData = data.map((item: Product) => ({ ...item, type: item.type as ProductType, slug: slugify(item.name, { lower: true }), })); return NextResponse.json(processedData); }贡献数据的最佳实践
数据添加流程
- 收集信息:获取产品的完整信息
- 验证数据:确保所有字段符合规范
- 运行测试:执行
yarn test验证数据格式 - 提交PR:创建包含完整信息的拉取请求
常见错误避免
- ❌ 不要使用Google官方支持文章作为链接
- ❌ 不要使用现在时态描述已停止产品
- ❌ 不要使用非标准日期格式
- ❌ 不要使用非官方产品名称
- ✅ 使用Wikipedia作为首选链接来源
- ✅ 保持描述简洁客观
- ✅ 准确分类产品类型
- ✅ 验证日期信息的准确性
数据统计与分析
按类型分布统计
通过对graveyard.json数据的分析,可以发现:
- 服务类产品:占比最高,反映了Google频繁调整在线服务
- 应用程序:移动应用生命周期相对较短
- 硬件设备:物理产品通常有较长的生命周期
时间趋势分析
- 产品生命周期:从几个月到十几年不等
- 停止高峰期:特定年份有大量产品停止服务
- 类型演变:不同类型产品的停止趋势变化
技术实现细节
数据存储结构
项目使用单一JSON文件存储所有数据,这种设计具有以下优势:
- 简单性:易于理解和维护
- 版本控制友好:Git可以清晰跟踪变更历史
- 快速加载:前端可以直接导入使用
- 易于扩展:添加新产品只需追加JSON对象
数据验证脚本
查看测试文件了解完整的验证逻辑:
test('Dates are valid', () => { data.forEach((product: Product) => { const dateClose = moment(product.dateClose); const dateOpen = moment(product.dateOpen); expect(dateClose.isValid()).toBe(true); expect(dateOpen.isValid()).toBe(true); }); }); test('`dateClose` is after `dateOpen`', () => { data.forEach((product: Product) => { const dateClose = moment(product.dateClose); const dateOpen = moment(product.dateOpen); expect(dateClose.isAfter(dateOpen)).toBe(true); }); });实际应用场景
开发者使用案例
- 数据分析:研究Google产品战略演变
- 历史研究:了解科技产品生命周期
- 教育工具:学习产品管理和技术趋势
- API集成:构建基于该数据的应用程序
数据导出格式
项目数据可以轻松转换为多种格式:
- CSV格式:用于电子表格分析
- JSON-LD:用于语义网应用
- GraphQL:用于现代API查询
- RSS Feed:用于订阅更新
总结与最佳实践
Killed by Google项目的数据格式设计体现了简洁性、一致性和可维护性的原则。通过遵循本文所述的JSON结构规范和字段要求,开发者可以:
- 正确贡献数据:确保新条目符合项目标准
- 有效使用数据:在各种应用中集成产品信息
- 进行分析研究:基于结构化数据进行深入分析
- 构建衍生项目:创建基于该数据集的应用程序
这个数据格式不仅记录了Google产品的历史,也为开发者提供了一个高质量的数据集范例。通过严格的数据验证和清晰的规范,项目确保了数据的准确性和一致性,为技术社区提供了宝贵的资源。🚀
【免费下载链接】killedbygooglePart guillotine, part graveyard for Google's doomed apps, services, and hardware.项目地址: https://gitcode.com/gh_mirrors/ki/killedbygoogle
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
