写点什么

Trivago 从 PHP+Melody 迁移到 Next.js+TypeScript

作者: Vasco Veloso

  • 2022-07-02
  • 本文字数:1085 字

    阅读完需:约 4 分钟

Trivago从PHP+Melody迁移到Next.js+TypeScript

Trivago 的平台是使用 PHP 和他们自主研发的 Melody 框架构建的。Melodys 是由 Trivago 的一小部分工程师负责维护的,这存在连续性风险。由于人手不够,Melody 的文档和示例不可能像期望的那样丰富,这使得其他工程师更难参与并提供支持。后来,Trivago 决定使用 Next.js 在 TypeScript 上重写平台。

 

为了降低开发像 Melody 这样的自有框架所带来的风险,Trivago 工程部门必须在给 Melody 分配更多资源和放弃它之间做出选择。最终,他们决定停止使用 Melody。

 

对企业来说,这样的平台替换可能会有影响收入,因为在重写期间无法引入新功能。2020 年,项目在此类风险降低的情况下开始。

 

另一项风险是,在现有功能移植完成之后,新功能仍被搁置的话,开发团队的积极性就会丧失。因此,一旦新平台足够稳定,团队就需要开始构建新的功能,避免降低团队积极性。

 

开发体验、黑客马拉松成果和市场渗透率是选择新技术栈的决定性因素,团队最终决定采用:Next.js和使用 TypeScript 的Preact。采用应用广泛、有大量社区支持的库,开发人员将受益于更整洁的代码库。

 

在使用新技术设计新平台时,必须做许多架构决策。必须及时、务实地达成协议,以确保项目成功。Trivago 的工程师们使用了一种架构决策记录的形式。按照Tom Bartel的描述,这个过程基于以下几点:


决策文件将所有相关的事实和观点收集和组织起来。

 

决策负责人负责策划决策文件,准备决策会议,并负责达成决策。

 

决策会议上交流和讨论观点,并在最后做出决定。


从这个项目中得出的最重要的一条经验是,团队不应该发展得太快。作者指出,当少数几名工程师一起工作时,试验和处理方法都很容易更改;只有当所有关键决策都做完了,基础稳固了,才能将团队的规模扩大到 5 人以上。这样做可以防止沟通开销、挫败感和精力浪费。

 

既然是重写,新系统就需要实现与现有平台相同的功能。团队通过以 A/B 方式运行两个平台并比较一些指标,如用户互动、创收和搜索类型,以验证正确性。

 

作者补充说,重写还给终端用户带来了好处,新平台加快了应用程序的加载时间。


作者简介

Vasco Veloso 从事软件开发和设计已经有二十多年了。从汇编到 C、C++和 Prolog,再到 Java、Scala 和 Kotlin,在大型和小型机上,从软盘到 SSD,在企业内部和云端,他都经历过,做过,也用过。他把团队团结在一起,开发出精心设计的软件。他还喜欢通过教学来分享知识,并继续设计软件和联网设备。在业余时间,他会探索阿姆斯特丹这座城市。他喜欢摄影,并对航空业非常感兴趣。他曾驾驶过超轻型飞机。他相信,只要保持必要的关注,他就可以继续飞行、到达目的地并享受沿途的风景。

 

原文链接

Trivago’s Journey From PHP+Melody to Next.js and Typescript

2022-07-02 08:008913

评论 2 条评论

发布
用户头像
性能会降低吧, Next.js还不一定有PHP快。
2022-07-02 10:05
回复
Next.js是SSR的前端框架 跟PHP不是一个类型吧
2022-07-11 17:16
回复
没有更多了
发现更多内容

专业的字体设计软件 FontLab for Mac

Rose

Understand 7 优秀的代码分析工具

Rose

用友助力郴电国际司库建设项目成功上线,战略合作开启数智化转型新征程

用友智能财务

如何高效智能地进行设备数据采集?

万界星空科技

数据采集 mes 万界星空科技mes 设备数据采集 设备管理软件

Java程序使用预处理语句的性能提升

GreatSQL

DolphinScheduler开发者必看!IDEA本地调试实战指南

白鲸开源

开源 Apache DolphinScheduler 任务调度

参考文献管理工具 EndNote 21 大客户授权-mac/win

Rose

Photomatix Pro for Mac(专业HDR图像处理软件)v7.1.16激活版

Rose

长安马自达全球车型MAZDA 6e启航欧洲,全球化战略迈入新里程

科技热闻

Tampermonkey for Mac(油猴Safari浏览器辅助插件)中文版

Rose

LightWave 3D 2020 for mac 附激活秘钥 3D动画制作

Rose

DistilQwen2.5-DS3-0324发布:知识蒸馏+快思考=更高效解决推理难题

阿里云大数据AI技术

阿里云 LLM PAI 大模型蒸馏 DistilQwen2.5

Amazon Q 从入门到精通 – 加速构建亚马逊云基础设施

亚马逊云科技 (Amazon Web Services)

长安马自达全球车型MAZDA 6e启航欧洲,全球化战略迈入新里程

极客天地

OCR技术难点解读:数学公式检测与识别

合合技术团队

人工智能 算法 OCR OCR识别 #大数据

深入研究:小红书笔记详情API接口详解

tbapi

小红书笔记详情接口 小红书API 小红书笔记详情api 小红书笔记采集

Prometheus配置docker采集器

秃头小帅oi

开源之夏2025 Apache DolphinScheduler课题宣讲

白鲸开源

大数据 开源 Apache DolphinScheduler 任务调度 开源之夏

中国游戏出海迎来新机遇,腾讯游戏安全ACE助力应对安全挑战

新消费日报

AI与智能金融服务:如何利用AI分析大数据预测金融市场波动?

天津汇柏科技有限公司

人工智能 AI 人工智能

淘宝天猫商品数据爬取全攻略:官方API与非官方接口双管齐下

代码忍者

淘宝API接口

MacBooster 8 mac版 苹果电脑一站式系统清理维护工具

Rose

拥抱国产化:转转APP的鸿蒙NEXT端开发尝鲜之旅

JackJiang

网络编程 即时通讯 IM

如何在 NocoBase 中实现 CRM 销售漏斗可视化?

NocoBase

开源 低代码 零代码 销售 CRM

英特尔为酷睿 Ultra 200S-K 处理器发布 Boost 超频配置文件, 游戏性能提升 7%

E科讯

BOE(京东方)发布2024年可持续发展报告 以多维创新路径构建绿色未来

科技热闻

MCP协议重大升级,Spring AI Alibaba联合Higress发布业界首个Streamable HTTP实现方案

阿里巴巴云原生

阿里云 云原生

做好批次与保质期管理,告别库存混乱与货物过期痛点!

积木链小链

数字化转型 智能制造 批次管理

微信伴侣WechatTweak for mac(微信防撤回、多开助手) 中文集成版

Rose

安全与智能双加持,Coremail XT6解锁高效办公密码

科技热闻

GenAI 时代,数据唾手可得,但真正的挑战已经转变...

Baihai IDP

人工智能 程序员 AI LLM GenAI

Trivago从PHP+Melody迁移到Next.js+TypeScript_语言 & 开发_InfoQ精选文章