写点什么

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:009619

评论 2 条评论

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

知识图谱融入向量数据库,带来RAG效果飞升

Zilliz

知识图谱 向量数据库 LLMs rag

《Programming from the Ground Up》阅读笔记:p217-p238

codists

汇编 编程人

同风起,耀星河!华为携手伙伴一起创造无限可能

HarmonyOS开发者

HarmonyOS

智能体Agent应用的前沿:图文、短视频与流程图的生成技术

测吧(北京)科技有限公司

测试

大模型在商业领域的应用:如何提升决策效率与用户体验

测吧(北京)科技有限公司

测试

除了deadline,我们还能用什么驱动开发?

思码逸研发效能

程序员 DevOps 软件开发 编码 IT 运维

国内外大模型应用的现状与未来:以ChatGPT、Mixtral和Llama为例

测吧(北京)科技有限公司

测试

安全基础设施如何形成统一生态标准?OASA 硬件安全合作计划启动 | 2024 龙蜥大会

OpenAnolis小助手

安全 操作系统 龙蜥社区 龙蜥操作系统大会 龙蜥社区安全联盟

AIGC技术的变革:语音识别与视觉识别的深度融合

测吧(北京)科技有限公司

测试

智能合约与大语言模型的结合:未来的应用场景探索

测吧(北京)科技有限公司

测试

AI时代,2024火山引擎飞连新品发布会盛大开启

新消费日报

TikTok养号推荐:海外独享原生IP

Ogcloud

TikTok tiktok运营 海外原生IP TikTok养号 tiktok矩阵

全局视角看技术-Java多线程演进史

京东科技开发者

得物一面,都是非常经典的问题

王中阳Go

Go 面试 后端

开源大模型的私有部署:Llama与千问的比较研究

测吧(北京)科技有限公司

测试

联手豆包大模型,容联七陌打造更懂客户的智能客服

新消费日报

实现MySQL异地多活场景

NineData

数据一致性 数据同步 异地多活 NineData 单元节点

2024年第3届海南跨博会及低空经济产业博览会

秋硕展览

深度学习在视觉识别中的突破:从理论到实践

测吧(北京)科技有限公司

测试

【论文速读】|用于安全代码评估的大语言模型:一项多语言实证研究

云起无垠

SIGGRAPH Asia 2024 | 网易伏羲研究成果入选,3D面部动画技术再获新突破

网易伏羲

论文 网易伏羲

【免费可视化仪表盘】轻松实现静态/动态数据可视化图表—积木仪表盘

JEECG低代码

数据分析 数据可视化 BI 报表 数据仪表盘

用豆包MarsCode 和CozeAPI接口全自动做一个文生图组件

TRAE.ai

人工智能 大数据 AI Chat

检索增强生成(RAG)技术在知识图谱中的应用:Neo4j的探索

测吧(北京)科技有限公司

测试

2025包装展-2025年广州国际包装供应链博览会

秋硕展览

文生图与文生视频:从文本到视觉的创作革命

测吧(北京)科技有限公司

测试

制造已然走出国门,数据如何走向全球?

奇点云

人工智能 AI 互联网 软件 制造业

谈JVM xmx, xms等内存相关参数合理性设置

京东科技开发者

浅谈kafka

京东科技开发者

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